1. 17 Feb, 2010 1 commit
    • eric@webkit.org's avatar
      2010-02-17 Yuzo Fujishima <yuzo@google.com> · 0b21a9bf
      eric@webkit.org authored
              Reviewed by Eric Seidel.
      
              In diffing render styles, consider all pseudo style changes.
              Without this patch, only :before and :after are considered. This is the cause of the following bug.
              https://bugs.webkit.org/show_bug.cgi?id=32187
      
              * fast/css/first-letter-first-line-hover.html: Added.
              * platform/mac/fast/css/first-letter-first-line-hover-expected.checksum: Added.
              * platform/mac/fast/css/first-letter-first-line-hover-expected.png: Added.
              * platform/mac/fast/css/first-letter-first-line-hover-expected.txt: Added.
      2010-02-17  Yuzo Fujishima  <yuzo@google.com>
      
              Reviewed by Eric Seidel.
      
              In diffing render styles, consider all pseudo style changes.
              Without this patch, only :before and :after are considered. This is the cause of the following bug.
              https://bugs.webkit.org/show_bug.cgi?id=32187
      
              Test: fast/css/first-letter-first-line-hover.html
      
              * dom/Node.cpp:
              (WebCore::Node::diff):
              * rendering/style/RenderStyle.cpp:
              (WebCore::RenderStyle::hasAnyPublicPseudoStyles):
              * rendering/style/RenderStyle.h:
              * rendering/style/RenderStyleConstants.h:
              (WebCore::):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54926 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0b21a9bf
  2. 28 Jan, 2010 1 commit
    • zimmermann@webkit.org's avatar
      2010-01-28 Nikolas Zimmermann <nzimmermann@rim.com> · 6b47683b
      zimmermann@webkit.org authored
              Reviewed by Dirk Schulze.
      
              Save additional memory in SVG*Element classes, by introducing SVGElementRareData
              https://bugs.webkit.org/show_bug.cgi?id=34268
      
              Introduce SVGElementRareData, to remove the need to store any members in SVGElement/SVGStyledElement.
              This saves some additional MB for the svg-node-count-vs-scroll.xhtml testcase.
      
              SVGElementRareData works just like NodeRareData. Unlike ElementRareData, we're not inheriting from
              NodeRareData in SVG, as we don't need all the rare data stored there, unlike Element.
      
              * GNUmakefile.am: Add SVGElementRareData.h to build.
              * WebCore.gypi: Ditto.
              * WebCore.pro: Ditto.
              * WebCore.vcproj/WebCore.vcproj: Ditto.
              * WebCore.xcodeproj/project.pbxproj: Ditto.
              * dom/Node.cpp: Use Nodes bitfield to keep track wheter a SVGElement has a SVGElementRareData object associated.
              (WebCore::Node::Node):
              * dom/Node.h: Add m_hasRareSVGData flag, merged with the existing bitfield, 10 bits remaining now.
              (WebCore::Node::hasRareSVGData):
              * svg/SVGAnimateMotionElement.cpp: SVGElement::instancesForElement() now returns a const-reference to the HashMap instead of copying.
              (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
              * svg/SVGAnimateTransformElement.cpp: Ditto.
              (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
              * svg/SVGAnimationElement.cpp: Ditto.
              (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
              * svg/SVGElement.cpp: Move the element instances HashSet and two cursor-related pointers into SVGElementRareData.
              (WebCore::SVGElement::SVGElement):
              (WebCore::SVGElement::~SVGElement):
              (WebCore::SVGElement::rareSVGData): Modelled just like Node::rareData().
              (WebCore::SVGElement::ensureRareSVGData): Dito.
              (WebCore::SVGElement::accessDocumentSVGExtensions):
              (WebCore::SVGElement::mapInstanceToElement): Route call through SVGElementRareData.
              (WebCore::SVGElement::removeInstanceMapping): Ditto.
              (WebCore::SVGElement::instancesForElement): Ditto.
              (WebCore::SVGElement::setCursorElement): Ditto.
              (WebCore::SVGElement::setCursorImageValue): Ditto.
              * svg/SVGElement.h:
              * svg/SVGElementInstance.cpp: Ditto.
              (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
              * svg/SVGElementRareData.h: Added. Based on NodeRareData - works exactly the same.
              (WebCore::SVGElementRareData::SVGElementRareData):
              (WebCore::SVGElementRareData::rareDataMap):
              (WebCore::SVGElementRareData::rareDataFromMap):
              (WebCore::SVGElementRareData::elementInstances):
              (WebCore::SVGElementRareData::instanceUpdatesBlocked):
              (WebCore::SVGElementRareData::setInstanceUpdatesBlocked):
              (WebCore::SVGElementRareData::cursorElement):
              (WebCore::SVGElementRareData::setCursorElement):
              (WebCore::SVGElementRareData::cursorImageValue):
              (WebCore::SVGElementRareData::setCursorImageValue):
              * svg/SVGStyledElement.cpp: Move m_instancesUpdatesBlocked into SVGElementRareData.
              (WebCore::SVGStyledElement::SVGStyledElement):
              (WebCore::SVGStyledElement::instanceUpdatesBlocked):
              (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
              * svg/SVGStyledElement.h:
              * svg/SVGUseElement.cpp: Adapt to element instances changes, now passed as const-reference.
              (WebCore::dumpInstanceTree):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@54009 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6b47683b
  3. 25 Jan, 2010 1 commit
    • dbates@webkit.org's avatar
      2010-01-25 Daniel Bates <dbates@webkit.org> · ef42d386
      dbates@webkit.org authored
              Reviewed by Adam Barth.
      
              https://bugs.webkit.org/show_bug.cgi?id=34073
      
              Fixes misspelled words in comments.
      
              * accessibility/AccessibilityListBox.cpp:
              (WebCore::AccessibilityListBox::addChildren):
              (WebCore::AccessibilityListBox::doAccessibilityHitTest):
              * accessibility/mac/AccessibilityObjectWrapper.mm:
              (-[AccessibilityObjectWrapper detach]):
              (AXAttributeStringSetElement):
              * bindings/js/JSDOMBinding.cpp:
              (WebCore::completeURL):
              * bindings/js/JSDOMWindowBase.cpp:
              * bindings/js/JSDOMWindowBase.h:
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::getOwnPropertySlot):
              * bindings/js/JSSVGPODTypeWrapper.h:
              * bindings/js/ScriptController.cpp:
              (WebCore::ScriptController::evaluateInWorld):
              * bridge/NP_jsobject.cpp:
              (_NPN_SetException):
              * bridge/jni/jsc/JavaInstanceJSC.cpp:
              (JavaInstance::invokeMethod):
              (JObjectWrapper::JObjectWrapper):
              * bridge/objc/objc_instance.mm:
              (ObjcInstance::setValueOfUndefinedField):
              (ObjcInstance::getValueOfUndefinedField):
              * css/CSSFontSelector.cpp:
              (WebCore::CSSFontSelector::addFontFaceRule):
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::CSSStyleSelector):
              (WebCore::CSSStyleSelector::sortMatchedRules):
              (WebCore::CSSStyleSelector::applyDeclarations):
              (WebCore::CSSStyleSelector::applyProperty):
              * dom/Document.cpp:
              (WebCore::Document::updateLayoutIgnorePendingStylesheets):
              (WebCore::Document::detach):
              * dom/Document.h:
              * dom/Element.cpp:
              (WebCore::Element::updateFocusAppearance):
              * dom/Element.h:
              * dom/MessagePortChannel.h:
              * dom/MouseRelatedEvent.cpp:
              (WebCore::MouseRelatedEvent::receivedTarget):
              * dom/Node.cpp:
              (WebCore::Node::isFocusable):
              (WebCore::Node::shadowAncestorNode):
              * dom/Node.h:
              * dom/Position.cpp:
              (WebCore::Position::upstream):
              * dom/Position.h:
              * dom/Range.cpp:
              (WebCore::Range::processContents):
              * dom/StyledElement.cpp:
              (WebCore::StyledElement::addCSSColor):
              * editing/ApplyStyleCommand.cpp:
              (WebCore::StyleChange::reconcileTextDecorationProperties):
              (WebCore::StyleChange::extractTextStyles):
              (WebCore::prepareEditingStyleToApplyAt):
              * editing/DeleteButtonController.cpp:
              (WebCore::isDeletableElement):
              * editing/DeleteSelectionCommand.cpp:
              (WebCore::DeleteSelectionCommand::initializeStartEnd):
              * editing/Editor.cpp:
              (WebCore::Editor::learnSpelling):
              * inspector/front-end/ConsoleView.js:
              (WebInspector.ConsoleMessage.prototype._format):
              * loader/Cache.cpp:
              (WebCore::Cache::pruneLiveResources):
              (WebCore::Cache::pruneDeadResources):
              * loader/Cache.h:
              * loader/CachedResource.cpp:
              (WebCore::CachedResource::makePurgeable):
              * loader/CachedResource.h:
              * loader/CachedResourceHandle.h:
              * loader/DocumentLoader.h:
              * loader/FTPDirectoryParser.cpp:
              (WebCore::parseOneFTPLine):
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::didExplicitOpen):
              * loader/ResourceLoader.cpp:
              (WebCore::ResourceLoader::didCancel):
              * loader/WorkerThreadableLoader.h:
              * loader/appcache/ApplicationCacheStorage.cpp:
              (WebCore::ApplicationCacheStorage::spaceNeeded):
              * notifications/NotificationPresenter.h:
              (WebCore::NotificationPresenter::):
              * page/animation/AnimationController.cpp:
              (WebCore::AnimationController::updateAnimations):
              * platform/LinkHash.cpp:
              (WebCore::cleanPath):
              * platform/graphics/cg/GraphicsContextCG.cpp:
              (WebCore::calculateDrawingMode):
              * platform/graphics/cg/PatternCG.cpp:
              (WebCore::Pattern::createPlatformPattern):
              * platform/graphics/mac/ComplexTextController.cpp:
              (WebCore::ComplexTextController::offsetForPosition):
              * platform/graphics/mac/GraphicsLayerCA.h:
              * platform/graphics/mac/GraphicsLayerCA.mm:
              (WebCore::GraphicsLayerCA::ensureStructuralLayer):
              * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
              (WebCore::MediaPlayerPrivate::doSeek):
              (WebCore::MediaPlayerPrivate::setClosedCaptionsVisible):
              (WebCore::MediaPlayerPrivate::hasAvailableVideoFrame):
              * platform/mac/PasteboardMac.mm:
              (WebCore::Pasteboard::writeSelection):
              (WebCore::Pasteboard::writePlainText):
              (WebCore::Pasteboard::writeURL):
              * platform/text/TextCodecICU.cpp:
              (WebCore::TextCodecICU::registerExtendedEncodingNames):
              * platform/text/TextEncodingDetectorICU.cpp:
              (WebCore::detectTextEncoding):
              * rendering/AutoTableLayout.cpp:
              (WebCore::AutoTableLayout::calcEffectiveWidth):
              (WebCore::AutoTableLayout::layout):
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::calcAbsoluteHorizontalValues):
              (WebCore::RenderBox::calcAbsoluteVerticalValues):
              (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
              (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
              * rendering/RenderLayer.cpp:
              (WebCore::RenderLayer::scrollByRecursively):
              (WebCore::RenderLayer::paintLayer):
              (WebCore::RenderLayer::hitTestLayer):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::destroy):
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::setInnerTextValue):
              * rendering/RenderTheme.cpp:
              (WebCore::RenderTheme::stateChanged):
              * rendering/SVGRenderSupport.cpp:
              (WebCore::SVGRenderBase::mapLocalToContainer):
              * rendering/SVGRootInlineBox.cpp:
              (WebCore::SVGRootInlineBox::buildTextChunks):
              * rendering/TransformState.cpp:
              (WebCore::TransformState::flattenWithTransform):
              * wml/WMLInputElement.cpp:
              (WebCore::WMLInputElement::dispatchBlurEvent):
              (WebCore::WMLInputElement::suggestedValue):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ef42d386
  4. 20 Jan, 2010 1 commit
    • zimmermann@webkit.org's avatar
      2010-01-19 Nikolas Zimmermann <nzimmermann@rim.com> · 800c638b
      zimmermann@webkit.org authored
              Reviewed by Alexey Proskuryakov.
      
              svg/custom/use-instanceRoot-event-bubbling.xhtml is flakey
              https://bugs.webkit.org/show_bug.cgi?id=33835
      
              mouseEvent fires mutiple times in svg/custom/use-instanceRoot-as-event-target.xhtml
              https://bugs.webkit.org/show_bug.cgi?id=32519
      
              Test: svg/custom/use-instanceRoot-event-listener-liveness.xhtml
      
              Stabilize <use> scripting support - use tests are reliable now (tested using --repeach-each 50 --random -p)
      
              Do not reclone trees anymore because of event listener changes, instead keep correspondingElement & shadowTreeElement
              synchronized for each SVGElementInstance - any mutations on any event listeners are live, and take immediate effect,
              w/o having to rely on a reclone - this was the root of several race conditions making the <use> tests flakey.
      
              Fix SVGUseElement::instanceRoot() to force shadow tree creation, even if it was not attached so far - we can't wait
              for finishedParsing() to be called which would recalculate the document style and attach the shadow tree as result.
              This is now matching Operas behaviour.
      
              Optimize createAttributeEventListener() to not create event listeners if the supplied Attribute isNull() - otherwhise
              DOM calls like removeAttribute("onclick") cause a temporary JSEventListener to be created, added to the event listener
              cache and removed afterwards.
      
              * bindings/js/ScriptEventListener.cpp:
              (WebCore::createAttributeEventListener): Return early if the supplied attribute is null as discussed with Geoffrey.
              * bindings/v8/ScriptEventListener.cpp:
              (WebCore::createAttributeEventListener): Ditto.
              * dom/Node.cpp: Synchronize event listeners with all element instances, instead of marking the use elements to reclone.
              (WebCore::instancesForSVGElement):
              (WebCore::tryAddEventListener):
              (WebCore::Node::addEventListener): When adding a listener, get a list of element instances and add it their as well.
              (WebCore::tryRemoveEventListener):
              (WebCore::Node::removeEventListener): Ditto for removals, but with special logic for listeners created from markup (see comments)
              * svg/SVGElementInstance.cpp: Cleaned up, removing unncessary checks of correspondingElement() - there is an ASSERT in the ctor.
              (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
              (WebCore::SVGElementInstance::scriptExecutionContext):
              (WebCore::SVGElementInstance::addEventListener):
              (WebCore::SVGElementInstance::removeEventListener):
              (WebCore::SVGElementInstance::removeAllEventListeners):
              (WebCore::SVGElementInstance::eventTargetData):
              (WebCore::SVGElementInstance::ensureEventTargetData):
              * svg/SVGUseElement.cpp: Call document()->updateLayoutIgnorePendingStylesheets() to force shadow tree creation, just like CSSStyleDecl works.
              (WebCore::SVGUseElement::instanceRoot):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      800c638b
  5. 19 Jan, 2010 1 commit
  6. 18 Jan, 2010 1 commit
    • ap@apple.com's avatar
      Reviewed by Darin Adler. · 38221c65
      ap@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=33787
              Add constants for more XML strings
      
              No change in functionality, so no tests.
      
              * WebCore/xml/xmlnsattrs.in: Added a new file for xmlns namespace and attribute - 
              XMLNames.{h,cpp} are auto-generated, and I dodn't see a reasonable way to extend it.
      
              * platform/text/AtomicString.cpp: (WebCore::AtomicString::init):
              * platform/text/AtomicString.h:
              Added atomic strings for "xml" and "xmlns".
      
              * page/Frame.cpp: (WebCore::Frame::Frame): Call XMLNSNames::init().
      
              * dom/Attr.cpp: (WebCore::Attr::setPrefix):
              * dom/Document.cpp:
              (WebCore::Document::hasPrefixNamespaceMismatch):
              (WebCore::Document::createAttributeNS):
              * dom/Node.cpp:
              (WebCore::Node::checkSetPrefix):
              (WebCore::Node::isDefaultNamespace):
              (WebCore::Node::lookupNamespaceURI):
              (WebCore::Node::lookupNamespacePrefix):
              * dom/XMLTokenizerLibxml2.cpp:
              (WebCore::XMLTokenizer::XMLTokenizer):
              (WebCore::handleElementNamespaces):
              * editing/markup.cpp:
              (WebCore::shouldAddNamespaceAttr):
              (WebCore::appendNamespace):
              * xml/XPathStep.cpp:
              (WebCore::XPath::nodeMatchesBasicTest):
              (WebCore::XPath::Step::nodesInAxis):
              Use the new constants.
      
              * Android.derived.mk:
              * DerivedSources.make:
              * GNUmakefile.am:
              * WebCore.gyp/WebCore.gyp:
              * WebCore.pri:
              * WebCore.vcproj/WebCore.vcproj:
              * WebCore.xcodeproj/project.pbxproj:
              * WebCoreSources.bkl:
              Added the new files to projects.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      38221c65
  7. 16 Jan, 2010 1 commit
    • ap@apple.com's avatar
      Reviewed by Darin Adler. · 7300505d
      ap@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=33752
              Assertion failure when getting a href attribute with prefix
      
              This was due to a temporary change made in 2005 (r9639) - checks in checkSetPrefix were
              disabled during introduction of QualifiedName, but never re-enabled.
      
              Tests: fast/dom/bad-href-attribute.html
                     fast/dom/node-prefix-setter-namespace-exception.html
      
              * dom/Attr.cpp: (WebCore::Attr::setPrefix):
              * dom/Element.cpp: (WebCore::Element::setPrefix):
              * dom/Node.cpp: (WebCore::Node::checkSetPrefix):
              Re-enabled the checks. Also, changed the prefix setter to treat "" as null, matching Firefox
              (DOM 3 Core spec says this behavior is implementation defined).
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7300505d
  8. 05 Jan, 2010 1 commit
  9. 22 Dec, 2009 1 commit
  10. 18 Dec, 2009 3 commits
    • bweinstein@apple.com's avatar
      Fixes <http://webkit.org/b/32613>. · b8133c38
      bweinstein@apple.com authored
      REGRESSION (r52008): Middle-clicking on a linked image starts a pan scroll,
      but should follow the link instead.
      
      Reviewed by Adam Roben.
      
      WebCore: 
      
      The node itself isn't the only possible node that can be a link (that was the
      original check), any of its ancestors could be links as well, we need to climb
      up the tree to see. Created a new function (enclosingAnchorNode), that finds a
      node's enclosing anchor element (if it exists), that we can share between RenderLayer
      and Node, and also added tests that test pan scrolling behavior in image maps.
      
      Tests: platform/win/fast/events/panScroll-image-no-scroll.html
             platform/win/fast/events/panScroll-imageMap-href-no-scroll.html
             platform/win/fast/events/panScroll-imageMap-noHref-scroll.html
      
      * dom/Node.cpp:
      (WebCore::Node::enclosingAnchorNode):
      (WebCore::Node::defaultEventHandler):
      * dom/Node.h:
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::hitTest):
      
      LayoutTests: 
      
      Added tests that test pan scrolling behavior when you middle click on images with
      links, and if you click on parts on image maps that are links, and that aren't.
      
      * platform/win/fast/events/panScroll-image-no-scroll-expected.txt: Added.
      * platform/win/fast/events/panScroll-image-no-scroll.html: Added.
      * platform/win/fast/events/panScroll-imageMap-href-no-scroll-expected.txt: Added.
      * platform/win/fast/events/panScroll-imageMap-href-no-scroll.html: Added.
      * platform/win/fast/events/panScroll-imageMap-noHref-scroll-expected.txt: Added.
      * platform/win/fast/events/panScroll-imageMap-noHref-scroll.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52341 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b8133c38
    • aroben@apple.com's avatar
      Reduce #includes in a few high-use headers · a7c639a8
      aroben@apple.com authored
      Removed unnecessary #includes in these headers:
        - Frame.h
        - FrameWin.h
        - Node.h
        - Page.h
        - StringImpl.h
      
      The rest of the patch is all adding #includes to source files that now
      require them.
      
      Fixes <http://webkit.org/b/32718>.
      
      Rubber-stamped by Anders Carlsson.
      
      WebCore:
      
      * dom/Node.h:
      * page/Frame.h:
      * page/Page.h:
      * page/win/FrameWin.h:
      * platform/text/StringImpl.h:
      Removed unnecessary #includes.
      
      * accessibility/win/AXObjectCacheWin.cpp:
      * bindings/js/JSDOMWindowBase.cpp:
      * bindings/js/JSDOMWindowCustom.cpp:
      * dom/Document.cpp:
      * dom/InputElement.cpp:
      * dom/Node.cpp:
      * dom/SelectElement.cpp:
      * editing/EditorCommand.cpp:
      * html/HTMLFormControlElement.cpp:
      * html/HTMLFormElement.cpp:
      * html/HTMLMediaElement.cpp:
      * html/HTMLParser.cpp:
      * html/HTMLTextAreaElement.cpp:
      * html/HTMLVideoElement.cpp:
      * inspector/InspectorController.cpp:
      * loader/FrameLoader.cpp:
      * loader/HistoryController.cpp:
      * loader/appcache/ApplicationCacheGroup.cpp:
      * page/Console.cpp:
      * page/EventHandler.cpp:
      * page/Frame.cpp:
      * page/FrameView.cpp:
      * page/Navigator.cpp:
      * page/PageGroup.cpp:
      * page/Settings.cpp:
      * page/mac/EventHandlerMac.mm:
      * platform/KURL.h:
      * platform/ScrollbarThemeComposite.cpp:
      * platform/cf/BinaryPropertyList.cpp:
      * platform/graphics/mac/GraphicsLayerCA.h:
      * platform/graphics/win/WKCACFLayerRenderer.cpp:
      * platform/mac/PopupMenuMac.mm:
      * platform/mac/WidgetMac.mm:
      * platform/network/cf/DNSCFNet.cpp:
      * platform/text/StringImpl.cpp:
      * platform/win/FileSystemWin.cpp:
      * platform/win/PlatformScreenWin.cpp:
      * platform/win/PopupMenuWin.cpp:
      * platform/win/WidgetWin.cpp:
      * plugins/PluginView.cpp:
      * plugins/win/PluginViewWin.cpp:
      * rendering/InlineTextBox.cpp:
      * rendering/RenderBox.cpp:
      * rendering/RenderFileUploadControl.cpp:
      * rendering/RenderInline.cpp:
      * rendering/RenderLayerCompositor.cpp:
      * rendering/RenderObject.cpp:
      * rendering/RootInlineBox.cpp:
      * storage/DatabaseTracker.cpp:
      * storage/DatabaseTracker.h:
      * storage/SQLTransactionClient.cpp:
      * svg/graphics/SVGImage.cpp:
      Added now-needed #includes.
      
      WebKit/mac:
      
      Add #includes needed after WebCore clean-up
      
      * WebView/WebFrame.mm:
      * WebView/WebFrameView.mm:
      * WebView/WebView.mm:
      
      WebKit/win:
      
      Add #includes needed after WebCore clean-up
      
      * WebCoreSupport/WebContextMenuClient.cpp:
      * WebDataSource.cpp:
      * WebHTMLRepresentation.cpp:
      * WebView.cpp:
      * WebView.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a7c639a8
    • eric@webkit.org's avatar
      2009-12-18 Shu Chang <Chang.Shu@nokia.com> · 6b156cf4
      eric@webkit.org authored
              Reviewed by Darin Adler.
      
              New test cases for isId support.
              https://bugs.webkit.org/show_bug.cgi?id=5578
      
              * dom/xhtml/level3/core/attrisid04-expected.txt:
              * dom/xhtml/level3/core/attrisid04.js:
              (setUpPage):
              * dom/xhtml/level3/core/attrisid05-expected.txt:
              * dom/xhtml/level3/core/attrisid05.js:
              (setUpPage):
              * fast/dom/Element/attrisid-extra01-expected.txt: Added.
              * fast/dom/Element/attrisid-extra01.html: Added.
              * fast/dom/Element/id-in-applet-expected.txt: Added.
              * fast/dom/Element/id-in-applet.html: Added.
              * fast/dom/Element/id-in-deletebutton-expected.txt: Added.
              * fast/dom/Element/id-in-deletebutton.html: Added.
              * fast/dom/Element/id-in-formcollection-expected.txt: Added.
              * fast/dom/Element/id-in-formcollection.html: Added.
              * fast/dom/Element/id-in-frame-expected.txt: Added.
              * fast/dom/Element/id-in-frame.html: Added.
              * fast/dom/Element/id-in-frameset-expected.txt: Added.
              * fast/dom/Element/id-in-frameset.html: Added.
              * fast/dom/Element/id-in-getelement01-expected.txt: Added.
              * fast/dom/Element/id-in-getelement01.html: Added.
              * fast/dom/Element/id-in-insert-hr-expected.txt: Added.
              * fast/dom/Element/id-in-insert-hr.html: Added.
              * fast/dom/Element/id-in-map-expected.txt: Added.
              * fast/dom/Element/id-in-map.html: Added.
              * fast/dom/Element/id-in-param-expected.txt: Added.
              * fast/dom/Element/id-in-param.html: Added.
      2009-12-18  Shu Chang  <Chang.Shu@nokia.com>
      
              Reviewed by Darin Adler.
      
              Implemented isId as specified by DOM Level 3. See detailed description below.
              https://bugs.webkit.org/show_bug.cgi?id=5578
      
              Added isId property and implementation:
              Tests: dom/xhtml/level3/core/attrisid01-07.xhtml
                     fast/dom/Element/attrisid-extra01.html
              * dom/Attr.cpp:
              (WebCore::Attr::isId):
              * dom/Attr.h:
              * dom/Attr.idl:
      
              Replaced instances of HTMLNames::idAttr with Element::idAttributeName()
              for the reason that id attribute name could be customized to a different
              string other than "id". A test case is associated to each code change.
              * dom/Document.cpp:
              (WebCore::Document::getElementById): Test: fast/dom/Element/id-in-getelement01.html
              * dom/Element.cpp: Tests: dom/xhtml/level3/core/attrisid01-07.xhtml
              (WebCore::Element::setAttribute):
              (WebCore::Element::setAttributeMap):
              (WebCore::Element::insertedIntoDocument):
              (WebCore::Element::removedFromDocument):
              (WebCore::Element::formatForDebugger):
              (WebCore::Element::rareIDAttributeName):
              * dom/Element.h: Added function idAttributeName().
              (WebCore::Element::idAttributeName):
              * dom/ElementRareData.h: Added member variable to store customized id name in ElementRareData.
              (WebCore::ElementRareData::ElementRareData):
              * dom/NamedAttrMap.cpp: Tests: dom/xhtml/level3/core/attrisid01-07.xhtml
              (WebCore::NamedNodeMap::setNamedItem):
              (WebCore::NamedNodeMap::removeNamedItem):
              (WebCore::NamedNodeMap::setAttributes):
              * dom/Node.cpp: Removed ASSERT as it may not hold any more.
              (WebCore::Node::querySelector):
              * dom/SelectorNodeList.cpp: Removed ASSERT as it may not hold any more.
              (WebCore::createSelectorNodeList):
              * dom/StyledElement.cpp: Tests: dom/xhtml/level3/core/attrisid01-07.xhtml
              (WebCore::StyledElement::parseMappedAttribute):
              * editing/DeleteButtonController.cpp: Test: fast/dom/Element/id-in-deletebutton.html
              (WebCore::DeleteButtonController::createDeletionUI):
              * editing/EditorCommand.cpp: Test: fast/dom/Element/id-in-insert-hr.html
              (WebCore::executeInsertHorizontalRule):
              * html/HTMLAppletElement.cpp: Test: fast/dom/Element/id-in-applet.html
              (WebCore::HTMLAppletElement::parseMappedAttribute):
              (WebCore::HTMLAppletElement::createRenderer):
              * html/HTMLCollection.cpp:
              (WebCore::HTMLCollection::checkForNameMatch): Test: fast/forms/select-namedItem.html
              (WebCore::HTMLCollection::updateNameCache): Test: fast/dom/collection-namedItem-via-item.html
              * html/HTMLDataGridColElement.cpp:
              (WebCore::HTMLDataGridColElement::ensureColumn): Test: fast/dom/HTMLDataGridElement/DataGridColumns-dom.html
              (WebCore::HTMLDataGridColElement::parseMappedAttribute): Test: fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html
              * html/HTMLElement.cpp:
              (WebCore::HTMLElement::parseMappedAttribute):
              * html/HTMLFormCollection.cpp: Test: fast/dom/Element/id-in-formcollection.html
              (WebCore::HTMLFormCollection::getNamedFormItem):
              (WebCore::HTMLFormCollection::nextNamedItem):
              (WebCore::HTMLFormCollection::updateNameCache):
              * html/HTMLFrameElementBase.cpp: Test: fast/dom/Element/id-in-frame.html
              (WebCore::HTMLFrameElementBase::parseMappedAttribute):
              (WebCore::HTMLFrameElementBase::setNameAndOpenURL):
              * html/HTMLImageElement.cpp: Test: fast/dom/Element/id-in-deletebutton.html
              (WebCore::HTMLImageElement::parseMappedAttribute):
              * html/HTMLMapElement.cpp: Test: fast/dom/Element/id-in-map.html
              (WebCore::HTMLMapElement::parseMappedAttribute):
              * html/HTMLNameCollection.cpp: Test: fast/dom/Element/id-in-frameset.html
              (WebCore::HTMLNameCollection::itemAfter):
              * html/HTMLObjectElement.cpp: Test: fast/dom/HTMLDocument/object-by-name-or-id.html
              (WebCore::HTMLObjectElement::parseMappedAttribute):
              * html/HTMLParamElement.cpp: Test: fast/dom/Element/id-in-param.html
              (WebCore::HTMLParamElement::parseMappedAttribute):
              * loader/CachedFont.cpp: Test: svg/custom/acid3-test-77.html
              (WebCore::CachedFont::getSVGFontById):
              * rendering/RenderLayerBacking.cpp:
              (WebCore::RenderLayerBacking::createGraphicsLayer): Debug-only code
              * rendering/SVGRenderTreeAsText.cpp: Test: svg/text/text-gradient-positioning.svg
              (WebCore::writeRenderResources):
              * svg/SVGElement.cpp: Test: svg/custom/acid3-test-77.html
              (WebCore::SVGElement::insertedIntoDocument):
              * svg/SVGStyledElement.cpp: Test: svg/custom/js-update-image-and-display.svg
              (WebCore::SVGStyledElement::isKnownAttribute):
              * wml/WMLElement.cpp:
              (WebCore::WMLElement::parseMappedAttribute):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52312 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6b156cf4
  11. 16 Dec, 2009 1 commit
  12. 11 Dec, 2009 2 commits
    • bweinstein@apple.com's avatar
      Fixes <http://webkit.org/b/32399>. · de40fd39
      bweinstein@apple.com authored
      Pan Scrolling Jumps out of frames if the initial location is in a frame that can't be scrolled.
              
      Reviewed by Darin Adler.
      
      WebCore: 
      
      When we initially figure out the layer that we should begin scrolling, don't try to jump out
      of frames/iFrames to look at the owner document. We don't want to jump out of frames, so we
      don't need that logic anymore.
              
      Added a test to make sure that we don't pan scroll if we start to scroll in an empty
      iFrame that has a scrollable owner document.
      
      Test: platform/win/fast/events/panScroll-no-iframe-jump.html
      
      * dom/Node.cpp:
      (WebCore::Node::defaultEventHandler):
      
      LayoutTests: 
      
      Added a test to make sure that we don't pan scroll if we start to scroll in an empty
      iFrame that has a scrollable owner document.
      
      * platform/win/fast/events/panScroll-no-iframe-jump-expected.txt: Added.
      * platform/win/fast/events/panScroll-no-iframe-jump.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52012 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      de40fd39
    • bweinstein@apple.com's avatar
      Fixes <http://webkit.org/b/32303>. · 60ee0fc5
      bweinstein@apple.com authored
      Middle-mouse button not firing mousedown DOM event when autoscroll happens.
              
      Reviewed by Adam Roben.
      
      WebCore: 
      
      This fix moves the pan scrolling code into Node.cpp, as part of the default event handler.
      We get two wins out of this:
          1) Mousedown DOM events are now fired before pan scrolling.
          2) Calling event.preventDefault() on a middle mouse button will now prevent pan scrolling.
              
      Added tests to show that middle mousedown DOM events are fired when panscrolling happens, and
      that when event.preventDefault is called, pan scrolling doesn't happen.
      
      Tests: platform/win/fast/events/panScroll-event-fired.html
             platform/win/fast/events/panScroll-preventDefault.html
      
      * dom/Node.cpp:
      (WebCore::Node::defaultEventHandler): Moved pan scrolling starting code to here.
      * page/EventHandler.cpp:
      (WebCore::EventHandler::startPanScrolling): Function to initialize scrolling variables and start timer.
      (WebCore::EventHandler::handleMousePressEvent): From here.
      * page/EventHandler.h:
      
      LayoutTests: 
      
      Added tests to show that middle mousedown DOM events are fired when panscrolling happens, and
      that when event.preventDefault is called, pan scrolling doesn't happen.
      
      * platform/win/fast/events/panScroll-event-fired-expected.txt: Added.
      * platform/win/fast/events/panScroll-event-fired.html: Added.
      * platform/win/fast/events/panScroll-preventDefault-expected.txt: Added.
      * platform/win/fast/events/panScroll-preventDefault.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52008 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      60ee0fc5
  13. 18 Nov, 2009 1 commit
    • mjs@apple.com's avatar
      2009-11-18 Maciej Stachowiak <mjs@apple.com> · f6f7b9d4
      mjs@apple.com authored
              Reviewed by Oliver Hunt.
      
              Fix REGRESSION (r47022): Performance of DocumentFragment.appendChild is 1000x slower sometimes
              https://bugs.webkit.org/show_bug.cgi?id=31237
              
              Also speeds up Dromaeo DOM Core tests by 1.31x.
      
              * bindings/js/JSNodeCustom.cpp:
              (WebCore::JSNode::markChildren): Change marking algorithm to avoid O(N^2) behavior. The subtree
              mark bit was no longer effective; instead I changed things so only a node that has no ancestors
              with wrappers would do marking; there should be only one in the typical case (the root of the
              detached subtree).
              * dom/Node.cpp:
              (WebCore::Node::Node): Remove now useless m_inSubtreeMark bit and related functions.
              * dom/Node.h: ditto
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51162 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f6f7b9d4
  14. 04 Nov, 2009 1 commit
    • eric@webkit.org's avatar
      2009-11-04 Eric Z. Ayers <zundel@google.com> · 896fc0a8
      eric@webkit.org authored
              Reviewed by Pavel Feldman.
      
              Followon to bug 31080, which protects Timeline
              instrumentation in the case where InspectorTimelineAgent
              is enabled or disabled during an event dispatch.
      
              https://bugs.webkit.org/show_bug.cgi?id=31121
      
              * bindings/v8/V8Proxy.cpp:
              (WebCore::V8Proxy::evaluate):
              * dom/Document.cpp:
              (WebCore::Document::recalcStyle):
              * dom/Node.cpp:
              (WebCore::Node::dispatchGenericEvent):
              * html/HTMLTokenizer.cpp:
              (WebCore::HTMLTokenizer::write):
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::inspectorTimelineAgent):
              (WebCore::DOMWindow::dispatchEvent):
              * page/DOMWindow.h:
              * page/FrameView.cpp:
              (WebCore::FrameView::layout):
              (WebCore::FrameView::paintContents):
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::callReadyStateChangeListener):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50523 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      896fc0a8
  15. 02 Nov, 2009 2 commits
    • eric@webkit.org's avatar
      2009-11-02 Kelly Norton <knorton@google.com> · 4c5b2734
      eric@webkit.org authored
              Reviewed by Timothy Hatcher.
      
              Adds a missed case for InspectorTimeline, DOMWindow dispatch of DOM events.
              https://bugs.webkit.org/show_bug.cgi?id=31030
      
              * dom/Node.cpp:
              (WebCore::eventHasListeners): Checks DOMWindow for listeners.
              (WebCore::Node::dispatchGenericEvent):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50428 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4c5b2734
    • pfeldman@chromium.org's avatar
      2009-11-01 Kelly Norton <knorton@google.com> · 01c47789
      pfeldman@chromium.org authored
              Reviewed by Timothy Hatcher.
      
              Adds window event dispatches to InspectorTimelineAgent.
              https://bugs.webkit.org/show_bug.cgi?id=31002
      
              * English.lproj/localizedStrings.js:
              * dom/Node.cpp: Updated call site to willDispatchEvent and didDispatchEvent.
              (WebCore::Node::dispatchGenericEvent):
              * inspector/InspectorTimelineAgent.cpp:
              (WebCore::InspectorTimelineAgent::willDispatchEvent): Renamed.
              (WebCore::InspectorTimelineAgent::didDispatchEvent): Renamed.
              * inspector/InspectorTimelineAgent.h:
              (WebCore::):
              * inspector/TimelineRecordFactory.cpp:
              (WebCore::TimelineRecordFactory::createEventDispatchRecord): Renamed.
              * inspector/TimelineRecordFactory.h:
              * inspector/front-end/TimelineAgent.js:
              * inspector/front-end/TimelinePanel.js:
              (WebInspector.TimelinePanel.prototype._formatRecord):
              (WebInspector.TimelinePanel.prototype._getRecordDetails):
              * page/DOMWindow.cpp:
              (WebCore::DOMWindow::dispatchEvent):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@50407 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01c47789
  16. 01 Nov, 2009 5 commits
  17. 28 Sep, 2009 1 commit
    • pfeldman@chromium.org's avatar
      2009-09-28 Joseph Pecoraro <joepeck@webkit.org> · a5c785e8
      pfeldman@chromium.org authored
              Reviewed by Timothy Hatcher.
      
              Inspector Should Show Event Listeners/Handlers Registered on each Node
              https://bugs.webkit.org/show_bug.cgi?id=17429
              
                Extracted a method from dispatchEvent to get the event ancestor chain
              
              * dom/Node.cpp:
              (WebCore::Node::eventAncestors): the extracted method
              (WebCore::Node::dispatchGenericEvent): use eventAncestors
              * dom/Node.h:
      
                Asynchronous Flow For the Inspector, Backend -> DOM Agent -> Frontend
                The DOMAgent's getEventListenersForNode handles the logic of finding
                all the relevant listeners in the event flow.
      
              * inspector/InspectorBackend.cpp:
              (WebCore::InspectorBackend::getEventListenersForNode):
              * inspector/InspectorBackend.h:
              * inspector/InspectorBackend.idl:
              * inspector/InspectorDOMAgent.cpp:
              (WebCore::InspectorDOMAgent::getEventListenersForNode):
              (WebCore::InspectorDOMAgent::buildObjectForEventListener):
              (WebCore::InspectorDOMAgent::buildObjectForNode): added localName
              * inspector/InspectorDOMAgent.h:
              (WebCore::EventListenerInfo::EventListenerInfo):
              * inspector/InspectorFrontend.cpp:
              (WebCore::InspectorFrontend::didGetEventListenersForNode):
              * inspector/InspectorFrontend.h:
              (WebCore::InspectorFrontend::scriptState):
              * inspector/front-end/DOMAgent.js: added localName to WebInspector.DOMNode from payload
              (WebInspector.EventListeners.getEventListenersForNodeAsync.mycallback):
              (WebInspector.EventListeners.getEventListenersForNodeAsync):
      
                New Sidebar Pane in the Element's Panel
                Includes Gear Menu for filtering the Event Listeners on the
                "Selected Node Only" or "All Nodes"
      
              * inspector/front-end/ElementsPanel.js: Handles refreshing the Pane when necessary
              (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
              (WebInspector.ElementsPanel):
              (WebInspector.ElementsPanel.prototype.updateEventListeners):
              * inspector/front-end/EventListenersSidebarPane.js: Added. 
              (WebInspector.EventListenersSidebarPane): The 1st level in the Pane
              (WebInspector.EventListenersSidebarPane.prototype.update.callback):
              (WebInspector.EventListenersSidebarPane.prototype.update):
              (WebInspector.EventListenersSection): The 2nd level in the Pane
              (WebInspector.EventListenersSection.prototype.update): filters on Preference
              (WebInspector.EventListenersSection.prototype.addListener):
              (WebInspector.EventListenerBar): The 3rd level in the Pane
              (WebInspector.EventListenerBar.prototype._getNodeDisplayName):
              (WebInspector.EventListenerBar.prototype._getFunctionDisplayName):
              (WebInspector.EventListenersSidebarPane.prototype._changeSetting): For the Gear Menu
              
                Consolidated "appropriateSelectorForNode"
      
              * inspector/front-end/StylesSidebarPane.js:
              * inspector/front-end/utilities.js:
      
                Miscellaneous Updates
      
              * English.lproj/localizedStrings.js: "Event Listeners", "No Event Listeners", "Selected Node Only", "All Nodes"
              * WebCore.gypi: included the new inspector files
              * WebCore.vcproj/WebCore.vcproj: included source files that were missing
              * inspector/front-end/Images/grayConnectorPoint.png: Added. Thanks to Timothy Hatcher.
              * inspector/front-end/Images/whiteConnectorPoint.png: Added. Thanks to Timothy Hatcher.
              * inspector/front-end/inspector.js: Preferences for the Gear Menu Event Listeners filter
              * inspector/front-end/inspector.css: reused as much as possible
              * inspector/front-end/inspector.html: include the new script
              * inspector/front-end/WebKit.qrc: included the new inspector files
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a5c785e8
  18. 24 Sep, 2009 1 commit
    • weinig@apple.com's avatar
      WebCore: Fix for https://bugs.webkit.org/show_bug.cgi?id=29703 · ee5bc0a2
      weinig@apple.com authored
      Add a function to element to check whether it matches a CSS selector
      
      Reviewed by Dan Bernstein.
      
      Implement Element.webkitMatchesSelector.
      
      * css/CSSSelectorList.cpp:
      (WebCore::forEachTagSelector):
      (WebCore::forEachSelector):
      (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
      (WebCore::CSSSelectorList::selectorsNeedNamespaceResolution):
      * css/CSSSelectorList.h:
      Moved code to iterate the CSSSelectorList and determine if any
      selectors need namespace resolution from a static function in
      Node.cpp to CSSSelectorList so that it can be used by webkitMatchesSelector
      as well as querySelector/querySelectorAll.
      
      * dom/Element.cpp:
      (WebCore::Element::webkitMatchesSelector):
      * dom/Element.h: 
      * dom/Element.idl:
      Implement the new function. Handles exceptional cases identically to
      querySelector/querySelectorAll.
      
      * dom/Node.cpp:
      (WebCore::Node::querySelector):
      (WebCore::Node::querySelectorAll):
      Moved selectorsNeedNamespaceResolution to CSSSelectorList from here.
      
      LayoutTests: Update tests for https://bugs.webkit.org/show_bug.cgi?id=29703
      Add a function to element to check whether it matches a CSS selector
      
      Reviewed by Dan Bernstein.
      
      Add webkitMatchesSelector to SelectorAPI tests.
      
      * fast/dom/SelectorAPI/caseID-almost-strict-expected.txt:
      * fast/dom/SelectorAPI/caseID-almost-strict.html:
      * fast/dom/SelectorAPI/caseID-expected.txt:
      * fast/dom/SelectorAPI/caseID-strict-expected.txt:
      * fast/dom/SelectorAPI/caseID-strict.html:
      * fast/dom/SelectorAPI/caseID.html:
      * fast/dom/SelectorAPI/caseTag-expected.txt:
      * fast/dom/SelectorAPI/caseTag.html:
      * fast/dom/SelectorAPI/caseTagX-expected.txt:
      * fast/dom/SelectorAPI/caseTagX.xhtml:
      * fast/dom/SelectorAPI/detached-element-expected.txt:
      * fast/dom/SelectorAPI/not-supported-namespace-in-selector-expected.txt:
      * fast/dom/SelectorAPI/not-supported-namespace-in-selector.html:
      * fast/dom/SelectorAPI/script-tests/detached-element.js:
      * fast/dom/SelectorAPI/script-tests/undefined-null-stringify.js:
      * fast/dom/SelectorAPI/script-tests/viewless-document.js:
      * fast/dom/SelectorAPI/undefined-null-stringify-expected.txt:
      * fast/dom/SelectorAPI/viewless-document-expected.txt:
      * fast/dom/Window/window-properties-expected.txt:
      * fast/dom/domListEnumeration-expected.txt:
      * fast/dom/script-tests/domListEnumeration.js:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48723 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ee5bc0a2
  19. 23 Sep, 2009 1 commit
    • ggaren@apple.com's avatar
      JavaScriptCore: Added the ability to swap vectors with inline capacities, so you can · 521f64b8
      ggaren@apple.com authored
      store a vector with inline capacity in a hash table.
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-23
      Reviewed by Sam Weinig.
      
      * wtf/Vector.h:
      (WTF::swap):
      (WTF::VectorBuffer::swap):
      
      WebCore: Bring a little sanity to this crazy EventTarget world of ours
      https://bugs.webkit.org/show_bug.cgi?id=29701
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-23
      Reviewed by Sam Weinig.
      
      Lots of EventTarget refactoring to achieve a single shared implementation
      that fixes some of the performance and correctness bugs of the many individual
      implementations, and makes reasoning about EventTargets and EventListeners
      much easier.
              
      The basic design is this:
          - EventTarget manages a set of EventListeners.
          - onXXX EventListener attributes forward to standard EventTarget APIs.
          - Since the onXXX code is repetitive, it is usually done with macros
            of the form DEFINE_ATTRIBUTE_EVENT_LISTENER(attributeName).
          - EventTarget provides a shared implementation of dispatchEvent,
            which subclasses with special event dispatch rules, like Node, override.
          - To support Node, which lazily instantiates its EventTarget data,
            EventTarget has no data members, and instead makes a virtual call
            to get its data from wherever its subclass chose to store it.
                    
      Code that used to call dispatchEvent, passing an ExceptionCode paratmeter,
      even though no exception could be thrown, has been changed not to do so,
      to improve clarity and performance.
              
      Code that used to call a special dispatchXXXEvent function, which just
      turned around and called dispatchEvent, has been changed to call
      dispatchEvent, to improve clarity and performance.
      
      * WebCore.base.exp:
      * WebCore.xcodeproj/project.pbxproj: Another day in the life of a WebKit
      engineer.
      
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::isObservableThroughDOM): Updated for Node API change. Added
      "is not in the document but is firing event listeners" as a condition
      that makes a Node observable in the DOM, so that event listeners firing
      on removed nodes are not destroyed midstream. (This was a long-standing
      bug that was somewhat hidden by the old implementation's habit of
      copying the RegisteredEventListener vector before firing events, which
      would keep almost all the relevant objects from being destroyed.)
      
      * bindings/js/JSEventListener.cpp:
      (WebCore::JSEventListener::handleEvent): Removed the isWindowEvent flag
      because it was one of the most elaborately planned no-ops in the history
      of software crime, and one of the reasons clients thought they needed more
      than one dispatchEvent function even though they didn't.
      * bindings/js/JSEventListener.h:
      
      * bindings/js/JSDOMWindowCustom.cpp:
      (WebCore::JSDOMWindow::markChildren):
      (WebCore::JSMessagePort::markChildren):
      * bindings/js/JSNodeCustom.cpp:
      (WebCore::JSNode::markChildren):
      * bindings/js/JSAbstractWorkerCustom.cpp:
      * bindings/js/JSDOMApplicationCacheCustom.cpp:
      * bindings/js/JSDedicatedWorkerContextCustom.cpp:
      * bindings/js/JSEventSourceCustom.cpp:
      * bindings/js/JSMessagePortCustom.cpp:
      * bindings/js/JSSharedWorkerContextCustom.cpp: Removed.
      * bindings/js/JSWebSocketCustom.cpp:
      * bindings/js/JSWorkerContextCustom.cpp:
      (WebCore::JSWorkerContext::markChildren):
      * bindings/js/JSWorkerCustom.cpp:
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::markChildren):
      * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
      (WebCore::JSXMLHttpRequestUpload::markChildren): EventListener marking is
      now autogenerated. Classes that still have custom mark functions for other
      reasons now call a shared EventTarget API to mark their EventListeners.
      
      * bindings/objc/ObjCEventListener.h:
      * bindings/objc/ObjCEventListener.mm:
      (WebCore::ObjCEventListener::handleEvent): Bye bye isWindowEvent.
      
      * bindings/scripts/CodeGeneratorJS.pm: Autogeneration support for
      marking and invalidating event listeners.
      
      * dom/CharacterData.cpp:
      (WebCore::CharacterData::dispatchModifiedEvent):
      * dom/ContainerNode.cpp:
      (WebCore::ContainerNode::insertBefore):
      (WebCore::ContainerNode::replaceChild):
      (WebCore::willRemoveChild):
      (WebCore::ContainerNode::appendChild):
      (WebCore::dispatchChildInsertionEvents):
      (WebCore::dispatchChildRemovalEvents):
      * dom/Document.cpp:
      (WebCore::Document::removeAllEventListeners):
      (WebCore::Document::implicitClose):
      (WebCore::Document::setFocusedNode):
      (WebCore::Document::dispatchWindowEvent):
      (WebCore::Document::dispatchWindowLoadEvent):
      (WebCore::Document::finishedParsing):
      * dom/Document.h: Use dispatchEvent directly.
      
      * dom/Element.h: Moved a few event listener attributes down from Node,
      since they don't apply to all Nodes, only Elements.
      
      * dom/EventListener.h: Removed isWindowEvent parameter.
      
      * dom/EventNames.h: Added the "display" event name, so it works correctly
      with attribute macros, and for performance.
      
      * dom/EventTarget.cpp:
      (WebCore::forbidEventDispatch):
      (WebCore::allowEventDispatch):
      (WebCore::eventDispatchForbidden): Made this code (embarrasingly) thread
      safe, since it's now called on multiple threads. (Currently, we only forbid
      event dispatch on the main thread. If we ever want to forbid event dispatch
      on secondary threads, we can improve it then.)
      
      (WebCore::EventTarget::addEventListener):
      (WebCore::EventTarget::removeEventListener):
      (WebCore::EventTarget::setAttributeEventListener):
      (WebCore::EventTarget::getAttributeEventListener):
      (WebCore::EventTarget::clearAttributeEventListener):
      (WebCore::EventTarget::dispatchEvent):
      (WebCore::EventTarget::fireEventListeners):
      (WebCore::EventTarget::getEventListeners):
      (WebCore::EventTarget::removeAllEventListeners):
      * dom/EventTarget.h:
      (WebCore::FiringEventEndIterator::FiringEventEndIterator):
      (WebCore::EventTarget::ref):
      (WebCore::EventTarget::deref):
      (WebCore::EventTarget::markEventListeners):
      (WebCore::EventTarget::invalidateEventListeners):
      (WebCore::EventTarget::isFiringEventListeners):
      (WebCore::EventTarget::hasEventListeners): The ONE TRUE IMPLEMENTATION of
      EventTarget APIs, crafted from an amalgam of all the different versions
      we used to have. The most significant change here is that we no longer
      make a copy of an EventListener vector before firing the events in the
      vector -- instead, we use a reference to the original vector, along with
      a notification mechanism for the unlikely case when an EventListener is
      removed from the vector. This substantially reduces malloc, copying, and
      refcount overhead, and complexity.
      
      * dom/InputElement.cpp:
      (WebCore::InputElement::setValueFromRenderer):
      * dom/MessageEvent.h:
      (WebCore::MessageEvent::create): Use dispatchEvent directly.
      
      * dom/MessagePort.cpp:
      (WebCore::MessagePort::dispatchMessages):
      (WebCore::MessagePort::eventTargetData):
      (WebCore::MessagePort::ensureEventTargetData):
      * dom/MessagePort.h:
      (WebCore::MessagePort::setOnmessage):
      (WebCore::MessagePort::onmessage):
      * dom/MessagePort.idl: Removed custom EventTarget implementation.
      
      * dom/MutationEvent.h:
      (WebCore::MutationEvent::create): Added some default values so callers
      can construct MutationEvents more easily, without calling a custom dispatch
      function.
      
      * dom/Node.cpp:
      (WebCore::Node::addEventListener):
      (WebCore::Node::removeEventListener):
      (WebCore::Node::eventTargetData):
      (WebCore::Node::ensureEventTargetData):
      (WebCore::Node::handleLocalEvents):
      (WebCore::Node::dispatchEvent):
      (WebCore::Node::dispatchGenericEvent):
      (WebCore::Node::dispatchSubtreeModifiedEvent):
      (WebCore::Node::dispatchUIEvent):
      (WebCore::Node::dispatchKeyEvent):
      (WebCore::Node::dispatchMouseEvent):
      (WebCore::Node::dispatchWheelEvent):
      (WebCore::Node::dispatchFocusEvent):
      (WebCore::Node::dispatchBlurEvent):
      * dom/Node.h:
      (WebCore::Node::preDispatchEventHandler):
      (WebCore::Node::postDispatchEventHandler):
      * dom/Node.idl:
      * dom/NodeRareData.h:
      (WebCore::NodeRareData::eventTargetData):
      (WebCore::NodeRareData::ensureEventTargetData): Use the shared EventTarget
      interface, and call dispatchEvent directly instead of custom dispatchXXXEvent
      functions that just forwarded to dispatchEvent.
      
      * dom/RegisteredEventListener.cpp:
      * dom/RegisteredEventListener.h:
      (WebCore::RegisteredEventListener::RegisteredEventListener):
      (WebCore::operator==): This is just a simple struct now, since we no longer
      do a complicated copy / refCount / isRemoved dance just to honor the rule
      that an EventListener can be removed during event dispatch.
      
      * history/CachedFrame.cpp:
      (WebCore::CachedFrameBase::restore): Removed another custom dispatchEvent.
      
      * html/HTMLBodyElement.cpp:
      * html/HTMLBodyElement.h: Use the shared EventTarget API.
      
      * html/HTMLFormControlElement.cpp:
      (WebCore::HTMLFormControlElement::dispatchFormControlChangeEvent):
      (WebCore::HTMLFormControlElement::checkValidity):
      * html/HTMLFormElement.cpp:
      (WebCore::HTMLFormElement::handleLocalEvents):
      (WebCore::HTMLFormElement::prepareSubmit):
      (WebCore::HTMLFormElement::reset):
      * html/HTMLFormElement.h: Use the standard dispatchEvent API.
      
      * html/HTMLFrameSetElement.cpp:
      * html/HTMLFrameSetElement.h: Use the shared EventTarget API.
      
      * html/HTMLImageLoader.cpp:
      (WebCore::HTMLImageLoader::dispatchLoadEvent):
      * html/HTMLInputElement.cpp:
      (WebCore::HTMLInputElement::onSearch):
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::loadInternal):
      * html/HTMLScriptElement.cpp:
      (WebCore::HTMLScriptElement::dispatchLoadEvent):
      (WebCore::HTMLScriptElement::dispatchErrorEvent):
      * html/HTMLSourceElement.cpp:
      (WebCore::HTMLSourceElement::errorEventTimerFired):
      * html/HTMLTokenizer.cpp:
      (WebCore::HTMLTokenizer::notifyFinished): Use the standard dispatchEvent API.
      
      * inspector/InspectorDOMAgent.cpp:
      (WebCore::InspectorDOMAgent::handleEvent):
      * inspector/InspectorDOMAgent.h:
      * inspector/InspectorDOMStorageResource.cpp:
      (WebCore::InspectorDOMStorageResource::handleEvent):
      * inspector/InspectorDOMStorageResource.h:
      * loader/FrameLoader.cpp:
      (WebCore::FrameLoader::stopLoading):
      (WebCore::FrameLoader::canCachePageContainingThisFrame):
      (WebCore::FrameLoader::logCanCacheFrameDecision):
      (WebCore::HashChangeEventTask::performTask):
      (WebCore::FrameLoader::pageHidden): No more isWindowEvent.
      
      * loader/ImageDocument.cpp:
      (WebCore::ImageEventListener::handleEvent):
      * loader/appcache/ApplicationCacheGroup.cpp:
      (WebCore::CallCacheListenerTask::performTask):
      * loader/appcache/ApplicationCacheHost.cpp:
      (WebCore::ApplicationCacheHost::notifyDOMApplicationCache):
      * loader/appcache/ApplicationCacheHost.h:
      * loader/appcache/DOMApplicationCache.cpp:
      (WebCore::DOMApplicationCache::eventTargetData):
      (WebCore::DOMApplicationCache::ensureEventTargetData):
      * loader/appcache/DOMApplicationCache.h:
      * loader/appcache/DOMApplicationCache.idl: Switched to the standard
      EventTarget API. As a part of this, I switched this class from using a
      custom internal event name enumeration to using the standard EventNames.
      
      * notifications/Notification.cpp:
      (WebCore::Notification::eventTargetData):
      (WebCore::Notification::ensureEventTargetData):
      * notifications/Notification.h:
      (WebCore::Notification::scriptExecutionContext):
      * notifications/Notification.idl: Switched to the standard EventTarget API.
      
      * page/DOMWindow.cpp:
      (WebCore::PostMessageTimer::event):
      (WebCore::windowsWithUnloadEventListeners):
      (WebCore::windowsWithBeforeUnloadEventListeners):
      (WebCore::allowsBeforeUnloadListeners):
      (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
      (WebCore::DOMWindow::pendingUnloadEventListeners):
      (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): Changed the "pending"
      unload / beforeunload listener tracker just to track which windows had
      such listeners, instead of actually keeping a copy of the listeners. Now,
      this code can use the standard EventTarget API.
      
      (WebCore::DOMWindow::~DOMWindow):
      (WebCore::DOMWindow::postMessageTimerFired):
      (WebCore::DOMWindow::addEventListener):
      (WebCore::DOMWindow::removeEventListener):
      (WebCore::DOMWindow::dispatchLoadEvent):
      (WebCore::DOMWindow::dispatchEvent):
      (WebCore::DOMWindow::removeAllEventListeners):
      (WebCore::DOMWindow::captureEvents):
      (WebCore::DOMWindow::releaseEvents):
      (WebCore::DOMWindow::eventTargetData):
      (WebCore::DOMWindow::ensureEventTargetData):
      * page/DOMWindow.h:
      * page/DOMWindow.idl: Use the standard EventTarget APIs.
      
      * page/EventHandler.cpp:
      (WebCore::EventHandler::canMouseDownStartSelect):
      (WebCore::EventHandler::canMouseDragExtendSelect):
      (WebCore::EventHandler::sendResizeEvent):
      (WebCore::EventHandler::sendScrollEvent): Use dispatchEvent directly.
      
      * page/EventSource.cpp:
      (WebCore::EventSource::endRequest):
      (WebCore::EventSource::didReceiveResponse):
      (WebCore::EventSource::parseEventStreamLine):
      (WebCore::EventSource::stop):
      (WebCore::EventSource::createMessageEvent):
      (WebCore::EventSource::eventTargetData):
      (WebCore::EventSource::ensureEventTargetData):
      * page/EventSource.h:
      * page/EventSource.idl: Use the standard EventTarget APIs.
      
      * page/FocusController.cpp:
      (WebCore::dispatchEventsOnWindowAndFocusedNode):
      (WebCore::FocusController::setFocusedFrame):
      * page/Frame.cpp:
      (WebCore::Frame::shouldClose):
      * page/Frame.h:
      * page/Page.cpp:
      (WebCore::networkStateChanged):
      * page/animation/AnimationController.cpp:
      (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
      * rendering/RenderListBox.cpp:
      (WebCore::RenderListBox::valueChanged):
      * rendering/RenderTextControl.cpp:
      (WebCore::RenderTextControl::selectionChanged):
      * rendering/RenderTextControlMultiLine.cpp:
      (WebCore::RenderTextControlMultiLine::subtreeHasChanged): Use dispatchEvent.
      
      * svg/SVGElement.cpp:
      (WebCore::hasLoadListener): Rewritten for new EventTarget API.
      
      * svg/SVGElementInstance.cpp:
      (WebCore::dummyEventTargetData):
      (WebCore::SVGElementInstance::addEventListener):
      (WebCore::SVGElementInstance::removeEventListener):
      (WebCore::SVGElementInstance::removeAllEventListeners):
      (WebCore::SVGElementInstance::dispatchEvent):
      (WebCore::SVGElementInstance::eventTargetData):
      (WebCore::SVGElementInstance::ensureEventTargetData): Use the EventTarget API.
      
      * svg/SVGElementInstance.h:
      * svg/SVGImageLoader.cpp:
      (WebCore::SVGImageLoader::dispatchLoadEvent):
      * svg/SVGScriptElement.cpp:
      (WebCore::SVGScriptElement::dispatchErrorEvent): Use dispatchEvent directly.
      
      * svg/SVGUseElement.cpp:
      (WebCore::SVGUseElement::transferEventListenersToShadowTree): Updated for
      new EventTarget API.
      
      * svg/animation/SVGSMILElement.cpp:
      (WebCore::ConditionEventListener::handleEvent): No more isWindowEvent.
      
      * websockets/WebSocket.cpp:
      (WebCore::ProcessWebSocketEventTask::create):
      (WebCore::ProcessWebSocketEventTask::performTask):
      (WebCore::ProcessWebSocketEventTask::ProcessWebSocketEventTask):
      (WebCore::WebSocket::didConnect):
      (WebCore::WebSocket::didReceiveMessage):
      (WebCore::WebSocket::didClose):
      (WebCore::WebSocket::eventTargetData):
      (WebCore::WebSocket::ensureEventTargetData):
      * websockets/WebSocket.h:
      * websockets/WebSocket.idl:
      * workers/AbstractWorker.cpp:
      (WebCore::AbstractWorker::eventTargetData):
      (WebCore::AbstractWorker::ensureEventTargetData):
      * workers/AbstractWorker.h:
      * workers/AbstractWorker.idl:
      * workers/DedicatedWorkerContext.cpp:
      * workers/DedicatedWorkerContext.h:
      * workers/DedicatedWorkerContext.idl:
      * workers/DefaultSharedWorkerRepository.cpp:
      (WebCore::SharedWorkerConnectTask::performTask):
      (WebCore::SharedWorkerScriptLoader::load):
      (WebCore::SharedWorkerScriptLoader::notifyFinished):
      * workers/SharedWorker.idl:
      * workers/SharedWorkerContext.cpp:
      (WebCore::createConnectEvent):
      * workers/SharedWorkerContext.h:
      * workers/SharedWorkerContext.idl:
      * workers/Worker.cpp:
      (WebCore::Worker::notifyFinished):
      * workers/Worker.h:
      * workers/Worker.idl:
      * workers/WorkerContext.cpp:
      (WebCore::WorkerContext::eventTargetData):
      (WebCore::WorkerContext::ensureEventTargetData):
      * workers/WorkerContext.h:
      * workers/WorkerContext.idl:
      * workers/WorkerMessagingProxy.cpp:
      (WebCore::MessageWorkerContextTask::performTask):
      (WebCore::MessageWorkerTask::performTask):
      (WebCore::WorkerExceptionTask::performTask):
      * xml/XMLHttpRequest.cpp:
      (WebCore::XMLHttpRequest::callReadyStateChangeListener):
      (WebCore::XMLHttpRequest::createRequest):
      (WebCore::XMLHttpRequest::abort):
      (WebCore::XMLHttpRequest::networkError):
      (WebCore::XMLHttpRequest::abortError):
      (WebCore::XMLHttpRequest::didSendData):
      (WebCore::XMLHttpRequest::didReceiveData):
      (WebCore::XMLHttpRequest::eventTargetData):
      (WebCore::XMLHttpRequest::ensureEventTargetData):
      * xml/XMLHttpRequest.h:
      * xml/XMLHttpRequest.idl:
      * xml/XMLHttpRequestProgressEvent.h:
      (WebCore::XMLHttpRequestProgressEvent::create):
      * xml/XMLHttpRequestUpload.cpp:
      (WebCore::XMLHttpRequestUpload::eventTargetData):
      (WebCore::XMLHttpRequestUpload::ensureEventTargetData):
      * xml/XMLHttpRequestUpload.h:
      * xml/XMLHttpRequestUpload.idl: Use new EventTarget API.
      
      WebKit/mac: Updated for a WebCore rename.
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-23
      Reviewed by Sam Weinig.
      
      * WebView/WebFrame.mm:
      (-[WebFrame _cacheabilityDictionary]):
      
      LayoutTests: Layout tests for event target sanitization.
              
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-23
      Reviewed by Sam Weinig.
      
      New tests for event dispatch:
      
      * fast/events/event-attributes-after-exception-expected.txt: Added.
      * fast/events/event-attributes-after-exception.html: Added.
      * fast/events/event-fire-order-expected.txt: Added.
      * fast/events/event-fire-order.html: Added.
      * fast/events/event-fired-after-removal-expected.txt: Added.
      * fast/events/event-fired-after-removal.html: Added.
              
      Fixed these tests:
      
      * fast/xmlhttprequest/xmlhttprequest-get-expected.txt: eventPhase should
      be AT_TARGET (2) when firing an event on an XHR, not INVALID (0).
      * http/tests/xmlhttprequest/infoOnProgressEvent-expected.txt: ditto
      
      * http/tests/xmlhttprequest/event-target-expected.txt:
      * http/tests/xmlhttprequest/event-target.html: Removing an event listener
      during event dispatch should prevent it from firing. (This test was backwards.)
              
      * svg/custom/loadevents-capturing.svg: Enhanced this test to tell you
      why it fails when it fails. Changed it to register runTest() (now named 
      reportResults()) using addEventListener() instead of the 'onload' attribute.
      The test relies on reportResults() running after handler(), so it needs
      to register reportResults() after handler().
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      521f64b8
  20. 16 Sep, 2009 3 commits
    • ggaren@apple.com's avatar
      WebCore: Removed some vestigial and potentially crashy code that makes consolidating · 2984d4f5
      ggaren@apple.com authored
      event listeners hard.
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-16
      Reviewed by Sam Weinig and Anders Carlsson.
      
      * dom/Node.cpp:
      (WebCore::Node::addEventListener): No need to limit when event listeners
      can be added. Other EventTargets don't do this.
              
      Also, check for null when accessing document(). Technically, the JS bindings
      do this check for us, but let's not rely on that.
      
      LayoutTests: Added a test for a potential crash when adding an event listener to a
      doctype node.
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-16
      Reviewed by Sam Weinig.
      
      * fast/dom/doctype-event-listener-crash-expected.txt: Added.
      * fast/dom/doctype-event-listener-crash.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48447 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2984d4f5
    • bolsinga@apple.com's avatar
      Add ENABLE(INSPECTOR) · d19fa0b4
      bolsinga@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=29260
      
      Reviewed by David Kilzer.
      
      JavaScriptCore:
      
      * wtf/Platform.h:
      
      WebCore:
      
      No new tests. (No change in default behavior.)
      
      * DerivedSources.make: Use new WebCore.Inspector.exp file if ENABLE_DRAG_SUPPORT.
      * WebCore.base.exp: Move Inspector only exports to WebCore.Inspector.exp.
      * WebCore.xcodeproj/project.pbxproj: Add WebCore.Inspector.exp.
      * bindings/js/JSDOMWindowBase.cpp: Use ENABLE(INSPECTOR) where applicable.
      (WebCore::JSDOMWindowBase::supportsProfiling):
      * bindings/js/JSInspectedObjectWrapper.cpp: Wrap entire file in ENABLE(INSPECTOR).
      * bindings/js/JSInspectorBackendCustom.cpp: Ditto.
      * bindings/js/JSInspectorCallbackWrapper.cpp: Ditto.
      * bindings/js/ScriptObject.cpp: Use ENABLE(INSPECTOR) where applicable.
      * bindings/js/ScriptObject.h: Ditto.
      * bindings/js/ScriptObjectQuarantine.cpp: Wrap entire file in ENABLE(INSPECTOR).
      * dom/Document.cpp: Use ENABLE(INSPECTOR) where applicable.
      (WebCore::Document::recalcStyle):
      (WebCore::Document::addMessage):
      (WebCore::Document::resourceRetrievedByXMLHttpRequest):
      (WebCore::Document::scriptImported):
      * dom/Document.h: Ditto.
      * dom/Node.cpp: Ditto.
      (WebCore::Node::dispatchGenericEvent):
      * dom/ScriptExecutionContext.h: Ditto.
      (WebCore::):
      * html/HTMLDocument.cpp: Ditto.
      (WebCore::HTMLDocument::createTokenizer):
      * html/HTMLTokenizer.cpp: Ditto.
      (WebCore::HTMLTokenizer::write):
      * inspector/ConsoleMessage.cpp: Ditto.
      (WebCore::ConsoleMessage::ConsoleMessage):
      (WebCore::ConsoleMessage::isEqual):
      * inspector/ConsoleMessage.h: Ditto.
      * inspector/DOMDispatchTimelineItem.cpp: Wrap entire file in ENABLE(INSPECTOR).
      * inspector/InspectorBackend.cpp: Ditto.
      * inspector/InspectorController.cpp: Ditto.
      * inspector/InspectorDOMAgent.cpp: Ditto.
      * inspector/InspectorDOMStorageResource.cpp: Ditto.
      * inspector/InspectorDatabaseResource.cpp: Ditto.
      * inspector/InspectorFrontend.cpp: Ditto.
      * inspector/InspectorResource.cpp: Ditto.
      * inspector/InspectorTimelineAgent.cpp: Ditto.
      * inspector/TimelineItem.cpp: Ditto.
      * loader/FrameLoader.cpp: Use ENABLE(INSPECTOR) where applicable.
      (WebCore::FrameLoader::detachFromParent):
      (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
      (WebCore::FrameLoader::loadedResourceFromMemoryCache):
      (WebCore::FrameLoader::dispatchWindowObjectAvailable):
      (WebCore::FrameLoader::dispatchDidCommitLoad):
      (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest):
      (WebCore::FrameLoader::dispatchWillSendRequest):
      (WebCore::FrameLoader::dispatchDidReceiveResponse):
      (WebCore::FrameLoader::dispatchDidReceiveContentLength):
      (WebCore::FrameLoader::dispatchDidFinishLoading):
      * page/Chrome.cpp: Ditto.
      (WebCore::Chrome::mouseDidMoveOverElement):
      * page/Console.cpp: Ditto.
      (WebCore::Console::addMessage):
      (WebCore::Console::count):
      (WebCore::Console::profile):
      (WebCore::Console::profileEnd):
      (WebCore::Console::time):
      (WebCore::Console::timeEnd):
      (WebCore::Console::group):
      (WebCore::Console::groupEnd):
      * page/ContextMenuController.cpp: Ditto.
      (WebCore::ContextMenuController::handleContextMenuEvent):
      (WebCore::ContextMenuController::contextMenuItemSelected):
      * page/DOMWindow.cpp: Ditto.
      (WebCore::DOMWindow::sessionStorage):
      (WebCore::DOMWindow::localStorage):
      * page/EventHandler.cpp: Ditto.
      (WebCore::EventHandler::handleMousePressEvent):
      * page/FrameView.cpp: Ditto.
      (WebCore::FrameView::layout):
      (WebCore::FrameView::paintContents):
      * page/FrameView.h: Ditto.
      * page/Page.cpp: Ditto.
      (WebCore::Page::Page):
      (WebCore::Page::~Page):
      * page/Page.h: Ditto.
      * platform/ContextMenu.cpp: Ditto.
      (WebCore::ContextMenu::checkOrEnableIfNeeded):
      * platform/ContextMenuItem.h: Ditto.
      (WebCore::):
      * storage/Database.cpp: Ditto.
      (WebCore::Database::openDatabase):
      * workers/WorkerContext.cpp: Ditto.
      (WebCore::WorkerContext::importScripts):
      * xml/XMLHttpRequest.cpp: Ditto.
      (WebCore::XMLHttpRequest::didFinishLoading):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48430 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d19fa0b4
    • bolsinga@apple.com's avatar
      Add ENABLE(CONTEXT_MENUS) · 08a4e0b1
      bolsinga@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=29225
      
      Reviewed by David Kilzer.
      
      JavaScriptCore:
      
      * wtf/Platform.h:
      
      WebCore:
      
      No new tests. (No change in default behavior.)
      
      * DerivedSources.make: Use new WebCore.ContextMenus.exp file if ENABLE_CONTEXT_MENUS.
      * WebCore.base.exp: Move ContextMenu only exports to WebCore.ContextMenus.exp.
      * WebCore.xcodeproj/project.pbxproj: Add WebCore.ContextMenus.exp.
      * dom/Node.cpp: Use ENABLE(CONTEXT_MENUS) where applicable.
      (WebCore::Node::defaultEventHandler):
      * loader/EmptyClients.h: Ditto.
      * page/ContextMenuController.cpp: Wrap entire file in ENABLE(CONTEXT_MENUS).
      * page/EventHandler.cpp: Use ENABLE(CONTEXT_MENUS) where applicable.
      * page/EventHandler.h: Ditto.
      * page/Page.cpp: Ditto.
      (WebCore::Page::Page):
      * page/Page.h: Ditto.
      * page/mac/EventHandlerMac.mm: Ditto.
      * page/mac/WebCoreViewFactory.h: Ditto.
      * platform/ContextMenu.cpp: Wrap entire file in ENABLE(CONTEXT_MENUS).
      * platform/LocalizedStrings.h: Use ENABLE(CONTEXT_MENUS) where applicable.
      * platform/mac/ContextMenuItemMac.mm: Wrap entire file in ENABLE(CONTEXT_MENUS).
      * platform/mac/ContextMenuMac.mm: Ditto.
      * platform/mac/LocalizedStringsMac.mm: Use ENABLE(CONTEXT_MENUS) where applicable.
      * svg/graphics/SVGImage.cpp: Ditto.
      (WebCore::SVGImage::dataChanged):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      08a4e0b1
  21. 15 Sep, 2009 2 commits
    • ggaren@apple.com's avatar
      Removed the notion of "disconnected nodes with event listeners" because · e0980d3c
      ggaren@apple.com authored
      it was vestigial. The reference cycle it tried to solve was solved another
      way in https://bugs.webkit.org/show_bug.cgi?id=21260.
      
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-15
      Reviewed by Sam Weinig.
      
      * dom/Document.cpp:
      (WebCore::Document::removeAllEventListeners):
      * dom/Document.h:
      * dom/Node.cpp:
      (WebCore::Node::~Node):
      (WebCore::Node::insertedIntoDocument):
      (WebCore::Node::removedFromDocument):
      (WebCore::Node::willMoveToNewOwnerDocument):
      (WebCore::Node::didMoveToNewOwnerDocument):
      (WebCore::Node::addEventListener):
      (WebCore::Node::removeEventListener):
      (WebCore::Node::clearAttributeEventListener):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48406 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e0980d3c
    • ggaren@apple.com's avatar
      Removed the jsEventListeners set from JSDOMGlobalObject, to simplify · f493144c
      ggaren@apple.com authored
      creation and destruction of JSDOMGlobalObject and event listeners.
              
      Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-15
      Reviewed by Sam Weinig.
      
      Added an abstract operator==() to EventListener, to replace the
      jsEventListeners set's role in determining if two event listeners are
      equal from the DOM's perspective.
              
      Added a type field to EventListener, and casting operations, to support
      operator==() and other abstract operations.
      
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/js/JSAbstractWorkerCustom.cpp:
      (WebCore::JSAbstractWorker::addEventListener):
      (WebCore::JSAbstractWorker::removeEventListener):
      * bindings/js/JSDOMApplicationCacheCustom.cpp:
      (WebCore::JSDOMApplicationCache::addEventListener):
      (WebCore::JSDOMApplicationCache::removeEventListener):
      * bindings/js/JSDOMGlobalObject.cpp:
      * bindings/js/JSDOMGlobalObject.h:
      * bindings/js/JSDOMWindowCustom.cpp:
      (WebCore::JSDOMWindow::addEventListener):
      (WebCore::JSDOMWindow::removeEventListener):
      * bindings/js/JSDesktopNotificationsCustom.cpp:
      (WebCore::JSNotification::addEventListener):
      (WebCore::):
      * bindings/js/JSEventListener.cpp:
      (WebCore::JSEventListener::JSEventListener):
      (WebCore::JSEventListener::~JSEventListener):
      (WebCore::JSEventListener::markJSFunction):
      (WebCore::JSEventListener::handleEvent):
      (WebCore::JSEventListener::reportError):
      (WebCore::JSEventListener::operator==):
      * bindings/js/JSEventListener.h:
      (WebCore::JSEventListener::cast):
      * bindings/js/JSEventSourceCustom.cpp:
      (WebCore::JSEventSource::addEventListener):
      (WebCore::JSEventSource::removeEventListener):
      * bindings/js/JSMessagePortCustom.cpp:
      (WebCore::JSMessagePort::addEventListener):
      (WebCore::JSMessagePort::removeEventListener):
      * bindings/js/JSNodeCustom.cpp:
      (WebCore::JSNode::addEventListener):
      (WebCore::JSNode::removeEventListener):
      * bindings/js/JSSVGElementInstanceCustom.cpp:
      (WebCore::JSSVGElementInstance::addEventListener):
      (WebCore::JSSVGElementInstance::removeEventListener):
      * bindings/js/JSWorkerContextCustom.cpp:
      (WebCore::JSWorkerContext::addEventListener):
      (WebCore::JSWorkerContext::removeEventListener):
      * bindings/js/JSXMLHttpRequestCustom.cpp:
      (WebCore::JSXMLHttpRequest::addEventListener):
      (WebCore::JSXMLHttpRequest::removeEventListener):
      * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
      (WebCore::JSXMLHttpRequestUpload::addEventListener):
      (WebCore::JSXMLHttpRequestUpload::removeEventListener):
      * bindings/objc/ObjCEventListener.h:
      (WebCore::ObjCEventListener::cast):
      * bindings/objc/ObjCEventListener.mm:
      (WebCore::ObjCEventListener::ObjCEventListener):
      (WebCore::ObjCEventListener::operator==):
      * dom/EventListener.h:
      (WebCore::EventListener::):
      (WebCore::EventListener::type):
      (WebCore::EventListener::EventListener):
      * dom/MessagePort.cpp:
      (WebCore::MessagePort::addEventListener):
      (WebCore::MessagePort::removeEventListener):
      * dom/Node.cpp:
      (WebCore::Node::removeEventListener):
      * inspector/InspectorDOMAgent.cpp:
      (WebCore::InspectorDOMAgent::InspectorDOMAgent):
      (WebCore::InspectorDOMAgent::mainFrameDocument):
      (WebCore::InspectorDOMAgent::operator==):
      * inspector/InspectorDOMAgent.h:
      (WebCore::InspectorDOMAgent::cast):
      * loader/ImageDocument.cpp:
      (WebCore::ImageEventListener::cast):
      (WebCore::ImageEventListener::ImageEventListener):
      (WebCore::ImageEventListener::operator==):
      * loader/appcache/DOMApplicationCache.cpp:
      (WebCore::DOMApplicationCache::addEventListener):
      (WebCore::DOMApplicationCache::removeEventListener):
      * notifications/Notification.cpp:
      (WebCore::Notification::removeEventListener):
      * page/DOMWindow.cpp:
      (WebCore::DOMWindow::removeEventListener):
      * page/EventSource.cpp:
      (WebCore::EventSource::addEventListener):
      (WebCore::EventSource::removeEventListener):
      * svg/animation/SVGSMILElement.cpp:
      (WebCore::ConditionEventListener::cast):
      (WebCore::ConditionEventListener::ConditionEventListener):
      (WebCore::ConditionEventListener::operator==):
      (WebCore::ConditionEventListener::handleEvent):
      * workers/AbstractWorker.cpp:
      (WebCore::AbstractWorker::addEventListener):
      (WebCore::AbstractWorker::removeEventListener):
      * workers/WorkerContext.cpp:
      (WebCore::WorkerContext::addEventListener):
      (WebCore::WorkerContext::removeEventListener):
      * xml/XMLHttpRequest.cpp:
      (WebCore::XMLHttpRequest::addEventListener):
      (WebCore::XMLHttpRequest::removeEventListener):
      * xml/XMLHttpRequestUpload.cpp:
      (WebCore::XMLHttpRequestUpload::addEventListener):
      (WebCore::XMLHttpRequestUpload::removeEventListener):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48402 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f493144c
  22. 11 Sep, 2009 1 commit
  23. 08 Sep, 2009 1 commit
    • eric@webkit.org's avatar
      2009-09-08 Kelly Norton <knorton@google.com> · 80bd7d6d
      eric@webkit.org authored
              Reviewed by Eric Seidel.
      
              WebInspector: Adds a timeline agent to InspectorController that collects
              high-level timing data about event dispatch, layout, painting and HTML
              parsing and makes it available to Inspector.
              https://bugs.webkit.org/show_bug.cgi?id=25503
      
              * WebCore.gypi:
              * WebCore.xcodeproj/project.pbxproj:
              * dom/Document.cpp:
              (WebCore::Document::recalcStyle):
              * dom/Document.h:
              (WebCore::Document::inspectorTimelineAgent):
              * dom/Node.cpp:
              (WebCore::Node::dispatchGenericEvent):
              * html/HTMLTokenizer.cpp:
              (WebCore::HTMLTokenizer::write):
              * inspector/DOMDispatchTimelineItem.cpp: Added.
              (WebCore::DOMDispatchTimelineItem::DOMDispatchTimelineItem):
              (WebCore::DOMDispatchTimelineItem::convertToScriptObject):
              * inspector/DOMDispatchTimelineItem.h: Added.
              (WebCore::DOMDispatchTimelineItem::~DOMDispatchTimelineItem):
              * inspector/InspectorBackend.cpp:
              (WebCore::InspectorBackend::enableTimeline):
              (WebCore::InspectorBackend::disableTimeline):
              (WebCore::InspectorBackend::timelineEnabled):
              * inspector/InspectorBackend.h:
              * inspector/InspectorBackend.idl:
              * inspector/InspectorController.cpp:
              (WebCore::InspectorController::setFrontendProxyObject):
              (WebCore::InspectorController::close):
              (WebCore::InspectorController::resetScriptObjects):
              (WebCore::InspectorController::enableTimeline):
              (WebCore::InspectorController::disableTimeline):
              (WebCore::InspectorController::timelineEnabled):
              * inspector/InspectorController.h:
              (WebCore::InspectorController::timelineAgent):
              * inspector/InspectorFrontend.cpp:
              (WebCore::InspectorFrontend::timelineWasEnabled):
              (WebCore::InspectorFrontend::timelineWasDisabled):
              (WebCore::InspectorFrontend::addItemToTimeline):
              * inspector/InspectorFrontend.h:
              * inspector/InspectorTimelineAgent.cpp: Added.
              (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
              (WebCore::InspectorTimelineAgent::~InspectorTimelineAgent):
              (WebCore::InspectorTimelineAgent::willDispatchDOMEvent):
              (WebCore::InspectorTimelineAgent::didDispatchDOMEvent):
              (WebCore::InspectorTimelineAgent::willLayout):
              (WebCore::InspectorTimelineAgent::didLayout):
              (WebCore::InspectorTimelineAgent::willRecalculateStyle):
              (WebCore::InspectorTimelineAgent::didRecalculateStyle):
              (WebCore::InspectorTimelineAgent::willPaint):
              (WebCore::InspectorTimelineAgent::didPaint):
              (WebCore::InspectorTimelineAgent::willWriteHTML):
              (WebCore::InspectorTimelineAgent::didWriteHTML):
              (WebCore::InspectorTimelineAgent::reset):
              (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
              (WebCore::InspectorTimelineAgent::currentTimeInMilliseconds):
              (WebCore::InspectorTimelineAgent::sessionTimeInMilliseconds):
              * inspector/InspectorTimelineAgent.h: Added.
              * inspector/TimelineItem.cpp: Added.
              (WebCore::TimelineItem::TimelineItem):
              (WebCore::TimelineItem::addToTimeline):
              (WebCore::TimelineItem::convertToScriptObject):
              (WebCore::TimelineItem::convertChildrenToScriptArray):
              (WebCore::TimelineItem::addChildItem):
              * inspector/TimelineItem.h: Added.
              (WebCore::):
              (WebCore::TimelineItem::~TimelineItem):
              (WebCore::TimelineItem::previous):
              (WebCore::TimelineItem::releasePrevious):
              (WebCore::TimelineItem::setEndTime):
              (WebCore::TimelineItem::type):
              * inspector/front-end/TimelineAgent.js: Added.
              (WebInspector.TimelineAgent):
              (WebInspector.addItemToTimeline):
              (WebInspector.timelineWasEnabled):
              (WebInspector.timelineWasDisabled):
              * inspector/front-end/inspector.html:
              * page/FrameView.cpp:
              (WebCore::FrameView::layout):
              (WebCore::FrameView::paintContents):
              * page/FrameView.h:
              (WebCore::FrameView::inspectorTimelineAgent):
              * page/Page.cpp:
              (WebCore::Page::inspectorTimelineAgent):
              * page/Page.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      80bd7d6d
  24. 06 Sep, 2009 1 commit
    • abarth@webkit.org's avatar
      2009-09-06 Erik Arvidsson <arv@chromium.org> · 4093379e
      abarth@webkit.org authored
              Reviewed by Eric Seidel.
      
              Tests for https://bugs.webkit.org/show_bug.cgi?id=27099
              Make hidden elements not focusable. This is important becaue we should
              not allow tabbing to a hidden element.
      
              The patch also makes a element without href behave like generic elements
              when it comes to focus. Added tests that asserts that this works as
              expected.
      
              * fast/events/click-focus-anchor-expected.txt: Added.
              * fast/events/click-focus-anchor.html: Added.
              * fast/events/resources/tabindex-focus-blur-all.js:
              (test):
              (testProgrammaticFocus):
              * fast/events/tab-focus-anchor-expected.txt: Added.
              * fast/events/tab-focus-anchor.html: Added.
              * fast/events/tab-focus-hidden-expected.txt: Added.
              * fast/events/tab-focus-hidden.html: Added.
              * fast/events/tabindex-focus-blur-all-expected.txt:
      2009-09-06  Erik Arvidsson  <arv@chromium.org>
      
              Reviewed by Eric Seidel.
      
              Make hidden elements not focusable.
      
              Clean up supportsFocus and isFocusable.
              supportsFocus now strictly means that the node can be focused by default.
              This is true for links, form controls and content editable elements for example.
              isFocusable means that the user can actually focus it.
              All (2) calls to supportsFocus have been updated to take this into account.
      
              Make a elements without href work correctly as well.
      
              https://bugs.webkit.org/show_bug.cgi?id=27099
      
              Tests: fast/events/click-focus-anchor.html
                     fast/events/tab-focus-anchor.html
                     fast/events/tab-focus-hidden.html
      
              * dom/Element.cpp:
              (WebCore::Element::focus):
              * dom/Node.cpp:
              (WebCore::Node::supportsFocus):
              (WebCore::Node::isFocusable):
              * dom/Node.h:
              * html/HTMLAnchorElement.cpp:
              (WebCore::HTMLAnchorElement::supportsFocus):
              (WebCore::HTMLAnchorElement::isMouseFocusable):
              (WebCore::HTMLAnchorElement::isKeyboardFocusable):
              * html/HTMLAnchorElement.h:
              * html/HTMLAreaElement.cpp:
              (WebCore::HTMLAreaElement::supportsFocus):
              * html/HTMLAreaElement.h:
              * html/HTMLElement.cpp:
              (WebCore::HTMLElement::supportsFocus):
              * html/HTMLElement.h:
              * html/HTMLFieldSetElement.cpp:
              (WebCore::HTMLFieldSetElement::supportsFocus):
              * html/HTMLFieldSetElement.h:
              * html/HTMLFormControlElement.cpp:
              (WebCore::HTMLFormControlElement::supportsFocus):
              (WebCore::HTMLFormControlElement::isFocusable):
              * html/HTMLFrameElementBase.cpp:
              (WebCore::HTMLFrameElementBase::supportsFocus):
              * html/HTMLFrameElementBase.h:
              * html/HTMLLegendElement.cpp:
              (WebCore::HTMLLegendElement::supportsFocus):
              * html/HTMLLegendElement.h:
              * html/HTMLOptGroupElement.cpp:
              (WebCore::HTMLOptGroupElement::supportsFocus):
              (WebCore::HTMLOptGroupElement::isFocusable):
              * html/HTMLOptGroupElement.h:
              * html/HTMLOptionElement.cpp:
              (WebCore::HTMLOptionElement::supportsFocus):
              (WebCore::HTMLOptionElement::isFocusable):
              * html/HTMLOptionElement.h:
              * page/EventHandler.cpp:
              (WebCore::EventHandler::dispatchMouseEvent):
              * page/FocusController.cpp:
              (WebCore::FocusController::advanceFocus):
              * svg/SVGAElement.cpp:
              (WebCore::SVGAElement::supportsFocus):
              (WebCore::SVGAElement::isFocusable):
              * wml/WMLAElement.cpp:
              (WebCore::WMLAElement::supportsFocus):
              * wml/WMLAElement.h:
              * wml/WMLFormControlElement.cpp:
              (WebCore::WMLFormControlElement::supportsFocus):
              (WebCore::WMLFormControlElement::isFocusable):
              * wml/WMLFormControlElement.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4093379e
  25. 04 Sep, 2009 1 commit
    • ap@apple.com's avatar
      Reviewed by Eric Seidel. · 7e34543c
      ap@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=26402
              Crashes when using a detached DocumentType node
      
              Test: fast/dom/DOMImplementation/detached-doctype.html
      
              DocumentType nodes are the only one that can have null document(), and they can never have
              children, so they are a degenerate case for NodeLists.
      
              * dom/Node.cpp:
              (WebCore::Node::childNodes): Don't try register node list with document if there's no
              document. Since there are no changes possible for a DocumentType's node list, this is not
              necessary.
              (WebCore::Node::registerDynamicNodeList): Ditto.
              (WebCore::Node::unregisterDynamicNodeList): Ditto. I couldn't find a scenario where this
              was invoked for a DocumentType node, but I also couldn't prove that it can't be (the
              de-registration code path that I saw taken was via Node destructor, and that already has
              a null check for document).
      
              * bindings/js/JSNodeCustom.cpp:
              (WebCore::JSNode::addEventListener): Bail out if there is no document (just as we already do
              if there is no window).
              (WebCore::JSNode::removeEventListener): Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7e34543c
  26. 27 Aug, 2009 1 commit
    • cmarrin@apple.com's avatar
      Final patch for Canvas 3D support · 4e7728f4
      cmarrin@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=28018
      
              This hooks everything up and provides a working implementation of
              Canvas 3D. I plumb the creation of the 3D canvas down to GraphicsLayer,
              passing the opaque context and texture pointers so a Canvas3DLayer can be
              created (more on that later). It also plumbs changes to the 3D canvas so
              that Canvas3DLayer can recomposite the results.
              
              A 3D Canvas element needs a RenderLayer and compositing layer to render.
              This is because it renders to an off-screen texture in the GPU and then
              hands it to a Canvas3DLayer, which is a subclass of CAOpenGLLayer, to
              render that texture as a 3D quad. This keeps everything in GPU memory to 
              maximize performance. When a CanvasRenderingContext3D is created it 
              forces a style recalc which creates the RenderLayer and compositing 
              layer if needed. 
              
              I repurposed an existing flag which was put in place for animation to accomplish 
              this. This flag is passed to setNeedsStyleRecalc(), and I renamed it from 
              AnimationStyleChange to SyntheticStyleChange. It essentially says that you need
              to do a complete style recalc, even though the style itself has not really
              changed.
              
              This patch also fixes a couple of bugs discovered when testing with 3d-canvas
              turned on. I also added a constructor DOMWindow.idl for CanvasRenderingContext3D.
              This is needed when making a JS wrapper for the object so the prototype 
              property can be set.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47843 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4e7728f4
  27. 21 Aug, 2009 1 commit
    • pkasting@chromium.org's avatar
      WebCore: https://bugs.webkit.org/show_bug.cgi?id=27452 · a3cf5d9e
      pkasting@chromium.org authored
      Add support for checkValidity() method and invalid event, from HTML5
      specs:
      http://www.whatwg.org/specs/web-apps/current-work/#dom-form-checkvalidity
      
      Patch by Michelangelo De Simone <micdesim@gmail.com> on 2009-08-21
      Reviewed by Adele Peterson.
      
      Tests: fast/events/invalid-001.html
             fast/events/invalid-002.html
             fast/events/invalid-003.html
             fast/events/invalid-004.html
             fast/events/invalid-005.html
             fast/forms/checkValidity-001.html
             fast/forms/checkValidity-002.html
             fast/forms/checkValidity-003.html
             fast/forms/checkValidity-004.html
      
      * dom/Document.idl: oninvalid event handler
      * dom/Element.idl: ditto
      * dom/EventNames.h: added invalid event
      * dom/Node.cpp:
      (WebCore::Node::oninvalid): ditto
      (WebCore::Node::setOninvalid): ditto
      * dom/Node.h: ditto
      * html/HTMLAttributeNames.in: oninvalid attribute
      * html/HTMLButtonElement.idl: added checkValidity() method
      * html/HTMLElement.cpp:
      (WebCore::HTMLElement::parseMappedAttribute): parses oninvalid
      * html/HTMLFieldSetElement.idl: added checkValidity() method
      * html/HTMLFormControlElement.cpp:
      (WebCore::HTMLFormControlElement::checkValidity): checkValidity()
      implementation
      * html/HTMLFormControlElement.h:
      * html/HTMLFormElement.cpp:
      (WebCore::HTMLFormElement::checkValidity): checkValidity() implementation
      for form elements
      * html/HTMLFormElement.h: checkValidity() definition
      * html/HTMLFormElement.idl: added checkValidity() method
      * html/HTMLInputElement.idl: added checkValidity() method
      * html/HTMLSelectElement.idl: added checkValidity() method
      * html/HTMLTextAreaElement.idl: added checkValidity() method
      * page/DOMWindow.cpp:
      (WebCore::DOMWindow::oninvalid): oninvalid event handler
      (WebCore::DOMWindow::setOninvalid): ditto
      * page/DOMWindow.h: ditto
      * page/DOMWindow.idl: ditto
      
      LayoutTests: https://bugs.webkit.org/show_bug.cgi?id=27452
      Tests for checkValidity() method and invalid event, from HTML5
      specs:
      http://www.whatwg.org/specs/web-apps/current-work/#dom-form-checkvalidity
      
      Patch by Michelangelo De Simone <micdesim@gmail.com> on 2009-08-21
      Reviewed by Adele Peterson.
      
      * fast/events/invalid-001-expected.txt: Added.
      * fast/events/invalid-001.html: Added.
      * fast/events/invalid-002-expected.txt: Added.
      * fast/events/invalid-002.html: Added.
      * fast/events/invalid-003-expected.txt: Added.
      * fast/events/invalid-003.html: Added.
      * fast/events/invalid-004-expected.txt: Added.
      * fast/events/invalid-004.html: Added.
      * fast/events/invalid-005-expected.txt: Added.
      * fast/events/invalid-005.html: Added.
      * fast/forms/checkValidity-001-expected.txt: Added.
      * fast/forms/checkValidity-001.html: Added.
      * fast/forms/checkValidity-002-expected.txt: Added.
      * fast/forms/checkValidity-002.html: Added.
      * fast/forms/checkValidity-003-expected.txt: Added.
      * fast/forms/checkValidity-003.html: Added.
      * fast/forms/checkValidity-004-expected.txt: Added.
      * fast/forms/checkValidity-004.html: Added.
      * fast/dom/Window/window-properties-expected.txt:
      * fast/dom/domListEnumeration-expected.txt:
      * fast/dom/resources/domListEnumeration.js:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47649 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a3cf5d9e
  28. 15 Aug, 2009 1 commit
    • darin@apple.com's avatar
      Make DOM classes start with a reference count of 1, like all other RefCounted · 7e131b6d
      darin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=28068
      
      Patch by Darin Adler <darin@apple.com> on 2009-08-14
      Reviewed by Sam Weinig.
      
      First half, everything except for element classes.
      
      * GNUmakefile.am: Removed DocPtr.h.
      * WebCore.gypi: Ditto.
      * WebCore.vcproj/WebCore.vcproj: Ditto.
      * WebCore.xcodeproj/project.pbxproj: Ditto.
      
      * dom/Attr.cpp:
      (WebCore::Attr::Attr): Added a call to createTextChild here so callers don't
      have to call it explicitly.
      (WebCore::Attr::create): Added.
      (WebCore::Attr::setValue): Changed to take AtomicString.
      (WebCore::Attr::cloneNode): Use create.
      
      * dom/Attr.h: Added a create function. Made the constructor private,
      and a lot of other functions private as well.
      
      * dom/Attribute.cpp:
      (WebCore::Attribute::createAttrIfNeeded): Use Attr::create.
      
      * dom/CDATASection.cpp:
      (WebCore::CDATASection::create): Added.
      (WebCore::CDATASection::cloneNode): Use create.
      (WebCore::CDATASection::virtualCreate): Ditto.
      
      * dom/CDATASection.h: Added a create function. Made everything private.
      Removed unneeded destructor declaration.
      
      * dom/CharacterData.cpp:
      (WebCore::CharacterData::CharacterData): Replaced the multiple constructors
      with a single one that takes ConstructionType.
      
      * dom/CharacterData.h: Made more functions be protected and private.
      Made m_data be private.
      
      * dom/Comment.cpp:
      (WebCore::Comment::Comment): Got rid of an extra constructor.
      (WebCore::Comment::create): Added.
      (WebCore::Comment::cloneNode): Call create.
      
      * dom/Comment.h: Added a create function. Made everything private.
      
      * dom/ContainerNode.cpp:
      (WebCore::dispatchChildInsertionEvents): Use RefPtr instead of DocPtr.
      (WebCore::dispatchChildRemovalEvents): Ditto.
      
      * dom/ContainerNode.h: Made the constructor protected and passed
      ConstructionType instead of an isElement boolean.
      
      * dom/DocPtr.h: Removed.
      
      * dom/Document.cpp:
      (WebCore::Document::Document): Simplified the code that sets m_document
      since it's no longer a smart pointer.
      (WebCore::Document::removedLastRef): Use explicit calls to selfOnlyRef
      and selfOnlyDeref instead of a DocPtr in here.
      (WebCore::Document::~Document): Simplified the code that sets m_document
      since it's no longer a smart pointer.
      (WebCore::Document::createDocumentFragment): Call create.
      (WebCore::Document::createTextNode): Ditto.
      (WebCore::Document::createComment): Ditto.
      (WebCore::Document::createCDATASection): Ditto.
      (WebCore::Document::createProcessingInstruction): Ditto.
      (WebCore::Document::createEntityReference): Ditto.
      (WebCore::Document::createEditingTextNode): Ditto.
      (WebCore::Document::importNode): Call Attr::create.
      (WebCore::Document::createAttributeNS): Ditto.
      
      * dom/Document.h: Call adoptRef. Made a lot of functions private and
      protected and sorted them so public functions come first.
      
      * dom/DocumentFragment.cpp:
      (WebCore::DocumentFragment::create): Added.
      (WebCore::DocumentFragment::cloneNode): Call create.
      * dom/DocumentFragment.h: Added create.
      
      * dom/DocumentType.cpp:
      (WebCore::DocumentType::DocumentType): Pass type to Node constructor.
      (WebCore::DocumentType::cloneNode): Use create.
      * dom/DocumentType.h:
      (WebCore::DocumentType::create): Call adoptRef.
      
      * dom/EditingText.cpp:
      (WebCore::EditingText::create): Added.
      * dom/EditingText.h: Added a create function. Made everything private.
      
      * dom/Element.cpp:
      (WebCore::Element::Element): Pass CreateElementZeroRefCount to preserve
      the zero reference count behavior for classes derived from Element.
      
      * dom/EntityReference.cpp:
      (WebCore::EntityReference::create): Added.
      (WebCore::EntityReference::cloneNode): Call create.
      * dom/EntityReference.h: Added create. Made everything private.
      
      * dom/Node.cpp:
      (WebCore::Node::initialRefCount): Added. Inline helper function for
      the constructor.
      (WebCore::Node::isContainer): Ditto.
      (WebCore::Node::isElement): Ditto.
      (WebCore::Node::isText): Ditto.
      (WebCore::Node::Node): Changed to take a construction type argument.
      Since m_document is now a normal pointer, added a call to selfOnlyRef.
      (WebCore::Node::~Node): Ditto, but selfOnlyDeref.
      (WebCore::Node::setDocument): Added selfOnlyRef/Deref calls.
      (WebCore::Node::appendTextContent): Use the data function instead of
      calling nodeValue functions, which do the same thing in a roundabout way.
      
      * dom/Node.h: Made the constructor protected and replaced the multiple
      arguments iwth a single ConstructionType argument. Sorted the public
      things first.
      
      * dom/Notation.h: Made most things private.
      * dom/Notation.cpp: Removed extra constructor.
      
      * dom/ProcessingInstruction.cpp:
      (WebCore::ProcessingInstruction::create): Added.
      (WebCore::ProcessingInstruction::cloneNode): Call create.
      * dom/ProcessingInstruction.h: Added create function. Made many other
      members private.
      
      * dom/Range.cpp:
      (WebCore::Range::processContents): Use DocumentFragment::create.
      
      * dom/Text.cpp:
      (WebCore::Text::Text): Updated for base class change.
      (WebCore::Text::create): Added.
      (WebCore::Text::splitText): Changed to not require access to m_data.
      (WebCore::Text::cloneNode): Call create.
      (WebCore::Text::createRenderer): Call dataImpl.
      (WebCore::Text::attach): Call data.
      (WebCore::Text::recalcStyle): Call dataImpl.
      (WebCore::Text::virtualCreate): Call create.
      (WebCore::Text::createWithLengthLimit): Call create.
      (WebCore::Text::formatForDebugger): Call data.
      
      * dom/Text.h: Added a create function. Made many other members private.
      Renamed createNew to virtualCreate.
      
      * dom/XMLTokenizer.cpp:
      (WebCore::XMLTokenizer::enterText): Call Text::create.
      
      * dom/XMLTokenizerLibxml2.cpp:
      (WebCore::XMLTokenizer::cdataBlock): Call CDATASection::create.
      (WebCore::XMLTokenizer::comment): Call Comment::create.
      
      * editing/CompositeEditCommand.cpp:
      (WebCore::CompositeEditCommand::deleteInsignificantText):
      Call data instead of string.
      
      * editing/CreateLinkCommand.cpp:
      (WebCore::CreateLinkCommand::doApply): Call Text::create.
      
      * editing/EditorCommand.cpp:
      (WebCore::executeInsertNode): Call DocumentFragment::create.
      
      * editing/SplitTextNodeCommand.cpp:
      (WebCore::SplitTextNodeCommand::doApply): Call Text::create.
      
      * editing/markup.cpp:
      (WebCore::appendStartMarkup): Call data instead of nodeValue.
      
      * html/HTMLDocument.h:
      (WebCore::HTMLDocument::create): Call adoptRef.
      
      * html/HTMLElement.cpp:
      (WebCore::HTMLElement::createContextualFragment): Call DocumentFragment::create.
      (WebCore::replaceChildrenWithFragment): Call data instead of string.
      (WebCore::replaceChildrenWithText): Call Text::create.
      (WebCore::HTMLElement::setInnerText): Call DocumentFragment::create and
      Text::create.
      (WebCore::HTMLElement::setOuterText): Call Text::create.
      
      * html/HTMLKeygenElement.cpp:
      (WebCore::HTMLKeygenElement::HTMLKeygenElement): Call Text::create.
      
      * html/HTMLOptionElement.cpp:
      (WebCore::HTMLOptionElement::setText): Call Text::create.
      
      * html/HTMLParser.cpp:
      (WebCore::HTMLParser::textCreateErrorCheck): Call Text::create.
      (WebCore::HTMLParser::commentCreateErrorCheck): Call Comment::create.
      (WebCore::HTMLParser::handleIsindex): Call Text::create.
      
      * html/HTMLViewSourceDocument.cpp:
      (WebCore::HTMLViewSourceDocument::addText): Call Text::create.
      
      * html/HTMLViewSourceDocument.h:
      (WebCore::HTMLViewSourceDocument::create): Call adoptRef.
      
      * loader/FTPDirectoryDocument.cpp:
      (WebCore::FTPDirectoryTokenizer::appendEntry): Call Text::create.
      (WebCore::FTPDirectoryTokenizer::createTDForFilename): Call Text::create.
      
      * loader/FTPDirectoryDocument.h:
      (WebCore::FTPDirectoryDocument::create): Call adoptRef.
      * loader/ImageDocument.h:
      (WebCore::ImageDocument::create): Ditto.
      * loader/MediaDocument.h:
      (WebCore::MediaDocument::create): Ditto.
      * loader/PlaceholderDocument.h:
      (WebCore::PlaceholderDocument::create): Ditto.
      * loader/PluginDocument.h:
      (WebCore::PluginDocument::create): Ditto.
      * loader/TextDocument.h:
      (WebCore::TextDocument::create): Ditto.
      
      * loader/loader.cpp:
      (WebCore::Loader::Host::didFinishLoading): Use RefPtr instead of DocPtr.
      (WebCore::Loader::Host::didFail): Ditto.
      
      * platform/TreeShared.h:
      (WebCore::TreeShared::TreeShared): Added an initialRefCount argument,
      defaulting to 1. Node still sometimes initializes it to 0 instead for now.
      
      * rendering/RenderText.cpp:
      (WebCore::RenderText::originalText): Use dataImpl instead of string.
      
      * rendering/RenderTextFragment.cpp:
      (WebCore::RenderTextFragment::originalText): Use dataImpl instead of string.
      (WebCore::RenderTextFragment::previousCharacter): Ditto.
      
      * svg/SVGDocument.h:
      (WebCore::SVGDocument::create): Use adoptRef.
      
      * svg/SVGElementInstance.cpp:
      (WebCore::SVGElementInstance::SVGElementInstance): Updated to take a
      PassRefPtr.
      
      * svg/SVGElementInstance.h: Made everything private.
      
      * wml/WMLDocument.h:
      (WebCore::WMLDocument::create): Called adoptRef.
      
      * xml/XPathNamespace.cpp:
      (WebCore::XPathNamespace::XPathNamespace): Take AtomicString arguments.
      * xml/XPathNamespace.h: Made everything private.
      
      * xml/XSLTProcessor.cpp:
      (WebCore::createFragmentFromSource): Use DocumentFragment::create and
      Text::create.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@47313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7e131b6d
  29. 10 Jul, 2009 1 commit
    • ddkilzer@apple.com's avatar
      2009-07-10 Shinichiro Hamaji <hamaji@chromium.org> · 9c4dacca
      ddkilzer@apple.com authored
              Reviewed by David Kilzer.
      
              WebKit needs a style linting tool
              https://bugs.webkit.org/show_bug.cgi?id=25884
      
              Fix bunch of style issues by autofix of cpplint.
              This patch is created to demonstrate the autofix of cpplint.py.
      
              No new testcases because it's a style fix
      
              * css/CSSParser.cpp:
              (WebCore::CSSParser::parseMediaQuery):
              (WebCore::CSSParser::validUnit):
              (WebCore::CSSParser::parseValue):
              (WebCore::skipCommaInDashboardRegion):
              (WebCore::CSSParser::parseDashboardRegions):
              (WebCore::ShadowParseContext::commitValue):
              (WebCore::ShadowParseContext::commitLength):
              (WebCore::ShadowParseContext::commitColor):
              (WebCore::BorderImageParseContext::commitNumber):
              (WebCore::BorderImageParseContext::commitWidth):
              (WebCore::BorderImageParseContext::commitRule):
              (WebCore::BorderImageParseContext::commitBorderImage):
              (WebCore::CSSParser::lex):
              (WebCore::CSSParser::text):
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::applyProperty):
              * css/MediaList.cpp:
              (WebCore::MediaList::deleteMedium):
              * css/MediaQuery.h:
              * css/MediaQueryEvaluator.cpp:
              (WebCore::parseAspectRatio):
              * css/MediaQueryEvaluator.h:
              * css/MediaQueryExp.h:
              (WebCore::MediaQueryExp::operator==):
              * css/WebKitCSSMatrix.h:
              * dom/Comment.h:
              * dom/Document.cpp:
              (WebCore::Document::setFocusedNode):
              * dom/Document.h:
              (WebCore::Document::setHasDashboardRegions):
              * dom/DocumentFragment.cpp:
              (WebCore::DocumentFragment::nodeName):
              * dom/DocumentFragment.h:
              * dom/DynamicNodeList.h:
              * dom/EditingText.h:
              * dom/Element.cpp:
              (WebCore::Element::dispatchAttrAdditionEvent):
              * dom/NamedAttrMap.cpp:
              (WebCore::NamedNodeMap::item):
              * dom/Node.cpp:
              (WebCore::Node::nodeValue):
              (WebCore::Node::nodeIndex):
              * dom/NodeRareData.h:
              (WebCore::NodeListsNodeData::create):
              * dom/Notation.h:
              * dom/ProcessingInstruction.h:
              * dom/Range.cpp:
              (WebCore::Range::processContents):
              * dom/StyledElement.cpp:
              (WebCore::toHex):
              * dom/XMLTokenizerLibxml2.cpp:
              (WebCore::PendingCallbacks::PendingStartElementNSCallback::~PendingStartElementNSCallback):
              (WebCore::PendingCallbacks::PendingStartElementNSCallback::call):
              (WebCore::PendingCallbacks::):
              (WebCore::OffsetBuffer::readOutBytes):
              (WebCore::handleElementNamespaces):
              (WebCore::handleElementAttributes):
              (WebCore::attributesStartElementNsHandler):
              * dom/XMLTokenizerQt.cpp:
              (WebCore::attributesStartElementNsHandler):
              (WebCore::XMLTokenizer::parseStartElement):
              * editing/ApplyStyleCommand.cpp:
              (WebCore::ApplyStyleCommand::applyInlineStyle):
              * editing/DeleteSelectionCommand.cpp:
              (WebCore::DeleteSelectionCommand::removeNode):
              * editing/Editor.cpp:
              (WebCore::Editor::pasteAsPlainText):
              * editing/SelectionController.cpp:
              (WebCore::SelectionController::directionOfEnclosingBlock):
              * editing/SmartReplaceICU.cpp:
              (WebCore::addAllCodePoints):
              * history/HistoryItem.cpp:
              (WebCore::HistoryItem::icon):
              (WebCore::HistoryItem::adoptVisitCounts):
              * html/CanvasStyle.cpp:
              (WebCore::CanvasStyle::applyFillColor):
              * html/HTMLAnchorElement.cpp:
              (WebCore::HTMLAnchorElement::setActive):
              (WebCore::HTMLAnchorElement::isLiveLink):
              * html/HTMLAppletElement.h:
              * html/HTMLAudioElement.h:
              * html/HTMLBRElement.h:
              * html/HTMLBaseElement.h:
              * html/HTMLBaseFontElement.h:
              * html/HTMLDListElement.h:
              * html/HTMLDirectoryElement.h:
              * html/HTMLFieldSetElement.cpp:
              (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
              * html/HTMLFormElement.cpp:
              (WebCore::HTMLFormElement::reset):
              * html/HTMLHRElement.cpp:
              (WebCore::HTMLHRElement::parseMappedAttribute):
              * html/HTMLHeadElement.h:
              * html/HTMLHtmlElement.h:
              * html/HTMLImageElement.h:
              (WebCore::HTMLImageElement::setLoadManually):
              * html/HTMLInputElement.cpp:
              (WebCore::HTMLInputElement::selection):
              * html/HTMLIsIndexElement.h:
              * html/HTMLMarqueeElement.cpp:
              * html/HTMLMediaElement.h:
              (WebCore::HTMLMediaElement::):
              * html/HTMLMenuElement.h:
              * html/HTMLMetaElement.h:
              * html/HTMLModElement.h:
              * html/HTMLOListElement.h:
              * html/HTMLOptionElement.cpp:
              (WebCore::HTMLOptionElement::childrenChanged):
              * html/HTMLParamElement.h:
              * html/HTMLQuoteElement.h:
              * html/HTMLStyleElement.h:
              * html/HTMLTableCaptionElement.h:
              * html/HTMLTableCellElement.h:
              * html/HTMLTableColElement.h:
              * html/HTMLTableSectionElement.cpp:
              (WebCore::HTMLTableSectionElement::deleteRow):
              * html/HTMLTitleElement.h:
              * html/HTMLTokenizer.cpp:
              (WebCore::HTMLTokenizer::parseNonHTMLText):
              (WebCore::HTMLTokenizer::parseEntity):
              (WebCore::HTMLTokenizer::parseTag):
              (WebCore::HTMLTokenizer::write):
              * html/HTMLUListElement.h:
              * html/HTMLVideoElement.h:
              * html/TimeRanges.h:
              (WebCore::TimeRanges::Range::Range):
              * inspector/InspectorController.cpp:
              (WebCore::InspectorController::enableResourceTracking):
              (WebCore::InspectorController::disableResourceTracking):
              * inspector/InspectorFrontend.cpp:
              (WebCore::InspectorFrontend::newInspectorJSONObject):
              * page/Console.cpp:
              (WebCore::Console::addMessage):
              * page/EventHandler.cpp:
              (WebCore::EventHandler::handleMousePressEvent):
              (WebCore::EventHandler::selectCursor):
              (WebCore::EventHandler::defaultKeyboardEventHandler):
              * page/Frame.cpp:
              (WebCore::Frame::jsDefaultStatusBarText):
              * page/android/DragControllerAndroid.cpp:
              (WebCore::DragController::dragOperation):
              * page/android/EventHandlerAndroid.cpp:
              (WebCore::EventHandler::tabsToAllControls):
              (WebCore::EventHandler::eventActivatedView):
              * page/animation/AnimationController.cpp:
              (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
              * page/gtk/DragControllerGtk.cpp:
              (WebCore::DragController::dragOperation):
              * page/qt/DragControllerQt.cpp:
              * page/win/DragControllerWin.cpp:
              (WebCore::DragController::isCopyKeyDown):
              * page/win/FrameWin.h:
              * rendering/RenderSlider.cpp:
              (WebCore::RenderSlider::mouseEventOffsetToThumb):
              * rendering/style/RenderStyle.h:
              (WebCore::InheritedFlags::setVerticalAlignLength):
              (WebCore::InheritedFlags::setUnicodeBidi):
              (WebCore::InheritedFlags::setCursor):
              * rendering/style/RenderStyleConstants.h:
              (WebCore::):
              * rendering/style/SVGRenderStyleDefs.h:
              * rendering/style/StyleInheritedData.h:
              (WebCore::StyleInheritedData::operator!=):
              * storage/DatabaseTask.h:
              * svg/GradientAttributes.h:
              * svg/LinearGradientAttributes.h:
              * svg/PatternAttributes.h:
              * svg/RadialGradientAttributes.h:
              * svg/SVGAnimatedPathData.h:
              * svg/SVGAnimatedPoints.h:
              * svg/SVGAnimationElement.h:
              * svg/SVGClipPathElement.h:
              * svg/SVGElementInstance.h:
              * svg/SVGFEBlendElement.cpp:
              (WebCore::SVGFEBlendElement::build):
              * svg/SVGFEBlendElement.h:
              * svg/SVGFEColorMatrixElement.cpp:
              (WebCore::SVGFEColorMatrixElement::build):
              * svg/SVGFEComponentTransferElement.cpp:
              (WebCore::SVGFEComponentTransferElement::build):
              * svg/SVGFECompositeElement.cpp:
              (WebCore::SVGFECompositeElement::build):
              * svg/SVGFEDiffuseLightingElement.cpp:
              (WebCore::SVGFEDiffuseLightingElement::build):
              * svg/SVGFEDisplacementMapElement.cpp:
              (WebCore::SVGFEDisplacementMapElement::build):
              * svg/SVGFEDistantLightElement.h:
              * svg/SVGFEFloodElement.cpp:
              (WebCore::SVGFEFloodElement::build):
              * svg/SVGFEFloodElement.h:
              * svg/SVGFEFuncAElement.h:
              * svg/SVGFEFuncBElement.h:
              * svg/SVGFEFuncGElement.h:
              * svg/SVGFEFuncRElement.h:
              * svg/SVGFEGaussianBlurElement.cpp:
              (WebCore::SVGFEGaussianBlurElement::build):
              * svg/SVGFEImageElement.cpp:
              (WebCore::SVGFEImageElement::build):
              * svg/SVGFEMergeElement.cpp:
              (WebCore::SVGFEMergeElement::build):
              * svg/SVGFEOffsetElement.cpp:
              (WebCore::SVGFEOffsetElement::build):
              * svg/SVGFEPointLightElement.h:
              * svg/SVGFESpecularLightingElement.cpp:
              (WebCore::SVGFESpecularLightingElement::build):
              * svg/SVGFESpotLightElement.h:
              * svg/SVGFETileElement.cpp:
              (WebCore::SVGFETileElement::build):
              * svg/SVGLineElement.cpp:
              (WebCore::SVGLineElement::parseMappedAttribute):
              * svg/SVGList.h:
              * svg/SVGListTraits.h:
              (WebCore::):
              * svg/SVGMPathElement.h:
              * svg/SVGMetadataElement.h:
              * svg/SVGParserUtilities.cpp:
              (WebCore::SVGPathParser::parseSVG):
              (WebCore::SVGPathParser::calculateArc):
              * svg/SVGPathElement.h:
              * svg/SVGPathSegClosePath.h:
              * svg/SVGSVGElement.h:
              * svg/SVGSetElement.h:
              * svg/SVGSwitchElement.h:
              * svg/SVGTextPathElement.cpp:
              (WebCore::SVGTextPathElement::parseMappedAttribute):
              * svg/SVGTextPathElement.h:
              * svg/SVGTitleElement.h:
              * svg/SVGTransformable.cpp:
              (WebCore::):
              * svg/SVGViewSpec.cpp:
              (WebCore::):
              * svg/animation/SMILTime.cpp:
              (WebCore::operator+):
              (WebCore::operator-):
              (WebCore::operator*):
              * svg/animation/SVGSMILElement.h:
              * svg/graphics/SVGResource.cpp:
              (WebCore::clientMap):
              * wml/WMLPostfieldElement.cpp:
              (WebCore::WMLPostfieldElement::value):
              * wml/WMLSetvarElement.cpp:
              (WebCore::WMLSetvarElement::value):
              * workers/WorkerRunLoop.cpp:
              * xml/XMLHttpRequest.cpp:
              (WebCore::XMLHttpRequest::dropProtection):
              * xml/XPathPath.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45747 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9c4dacca