FocusController::setFocusedNode() should be setFocusedElement().
[WebKit-https.git] / Source / WebCore / ChangeLog
index b6425c5..5b91e81 100644 (file)
-2013-05-22  Jer Noble  <jer.noble@apple.com>
+2013-05-26  Andreas Kling  <akling@apple.com>
 
-        Unreviewed build fix; cast OSStatus to an int before passing it to printf.
+        FocusController::setFocusedNode() should be setFocusedElement().
+        <http://webkit.org/b/116780>
 
-        * platform/audio/mac/AudioSessionMac.cpp:
-        (WebCore::AudioSession::setPreferredBufferSize):
+        Reviewed by Antti Koivisto.
+
+        Only Elements can have focus, so make the public API of FocusController take Element*.
+
+        * WebCore.exp.in:
+        * page/FocusController.h:
+        * page/FocusController.cpp:
+        (WebCore::FocusController::setFocusedElement):
+
+            Out with the setFocusedNode(), in with the setFocusedElement().
+
+        * dom/Element.cpp:
+        (WebCore::Element::focus):
+        (WebCore::Element::blur):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::dispatchMouseEvent):
+        * plugins/PluginView.cpp:
+        (WebCore::PluginView::focusPluginElement):
+        * editing/FrameSelection.cpp:
+        (WebCore::FrameSelection::setFocusedNodeIfNeeded):
+
+            Tweak for FocusController taking Element* instead of Node*.
+
+        (WebCore::FrameSelection::setFocusedElementIfNeeded):
+
+            Renamed from setFocusedNodeIfNeeded().
+
+        * editing/htmlediting.h:
+        * editing/htmlediting.cpp:
+        (WebCore::enclosingAnchorElement):
+
+            Cleaned up the loop for readability and made it return an Element.
+
+2013-05-26  Andreas Kling  <akling@apple.com>
+
+        Move some form control things from Element to HTMLFormControlElement.
+        <http://webkit.org/b/116779>
+
+        Reviewed by Antti Koivisto.
+
+        The following methods sit better on HTMLFormControlElement than on Element:
+
+            - formControlType()
+            - wasChangedSinceLastFormControlChangeEvent()
+            - setChangedSinceLastFormControlChangeEvent()
+            - dispatchFormControlChangeEvent()
+
+        Moved them, and devirtualized as much as possible.
+
+        * dom/Document.cpp:
+        (WebCore::Document::setFocusedNode):
+
+            Check if the old focus target is an Element before (possibly) dispatching a change event.
+
+        * dom/Element.cpp:
+        * dom/Element.h:
+
+            Removed some stub methods that were only used by HTMLFormControlElement subclasses.
+
+        * html/HTMLFormControlElement.cpp:
+        * html/HTMLFormControlElement.h:
+        (WebCore::isHTMLFormControlElement):
+        (WebCore::toHTMLFormControlElement):
+
+            Add toHTMLFormControlElement() helper with ASSERT_WITH_SECURITY_IMPLICATION.
+
+        * html/HTMLTextFormControlElement.h:
+
+            Sprinkle OVERRIDE.
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Move Node::supportsFocus() to Element.
+        <http://webkit.org/b/116778>
+
+        Reviewed by Antti Koivisto.
+
+        Node never supports focus, so move supportsFocus() to Element instead.
+
+        * dom/Element.h:
+        * dom/Node.cpp:
+        * dom/Node.h:
+
+            Removed Node::supportsFocus(), it always returned false anyway.
+
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
+
+            Check that the underlying Node is an Element before asking if it supports focus.
+
+        * html/HTMLAnchorElement.h:
+        * html/HTMLAreaElement.h:
+        * html/HTMLBodyElement.h:
+        * html/HTMLElement.h:
+        * html/HTMLFieldSetElement.h:
+        * html/HTMLFormControlElement.h:
+        * html/HTMLFrameElementBase.h:
+        * html/HTMLMediaElement.h:
+        * html/HTMLOptGroupElement.h:
+        * html/HTMLOptionElement.h:
+        * html/HTMLOutputElement.h:
+        * svg/SVGAElement.h:
+        * svg/SVGCircleElement.h:
+        * svg/SVGEllipseElement.h:
+        * svg/SVGGElement.h:
+        * svg/SVGImageElement.h:
+        * svg/SVGLineElement.h:
+        * svg/SVGPathElement.h:
+        * svg/SVGPolyElement.h:
+        * svg/SVGRectElement.h:
+        * svg/SVGSVGElement.h:
+        * svg/SVGSwitchElement.h:
+        * svg/SVGSymbolElement.h:
+        * svg/SVGTextElement.h:
+        * svg/SVGUseElement.h:
+
+            OVERRIDE ALL THE THINGS!
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Move Node::isFocusable() to Element.
+        <http://webkit.org/b/116777>
+
+        Reviewed by Anders Carlsson.
+
+        Nodes cannot be focusable, so move isFocusable() from Node to Element.
+
+        * dom/Node.cpp:
+        * dom/Node.h:
+        * dom/Element.h:
+        * dom/Element.cpp:
+        (WebCore::Element::isFocusable):
+
+            Moved here from Node.
+
+        * dom/Document.cpp:
+        (WebCore::Document::setFocusedNode):
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
+
+            Check that the underlying node is an Element before asking if it's focusable.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::scrollToAnchor):
+
+            Renamed the 'anchorNode' variable to 'anchorElement' because reasons.
+
+        * html/HTMLAreaElement.h:
+        * html/HTMLFormControlElement.h:
+        * html/HTMLLabelElement.h:
+        * html/HTMLOptionElement.h:
+        * svg/SVGAElement.h:
+
+            Sprinkle OVERRIDE.
+
+        * html/ValidationMessage.cpp:
+        (WebCore::ValidationMessage::setMessage):
+
+            Update a comment to refer to Element::isFocusable() instead of Node.
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Move Node::tabIndex() to Element.
+        <http://webkit.org/b/116772>
+
+        Reviewed by Ryosuke Niwa.
+
+        Since only Elements are keyboard-focusable, it doesn't make sense for Node to have a tabIndex().
+
+        * dom/Element.h:
+        * dom/Node.cpp:
+        * dom/Node.h:
+
+            A Node can't have a tab index, so move tabIndex() to Element.
+
+        * page/FocusController.h:
+        * page/FocusController.cpp:
+        (WebCore::adjustedTabIndex):
+        (WebCore::FocusController::findElementWithExactTabIndex):
+        (WebCore::nextElementWithGreaterTabIndex):
+        (WebCore::previousElementWithLowerTabIndex):
+        (WebCore::FocusController::nextFocusableNode):
+        (WebCore::FocusController::previousFocusableNode):
+
+            Make this code deal in Element* when doing tab index stuff. FocusController needs
+            more Node->Element cleanup, but let's do that separately.
+
+        * html/HTMLAnchorElement.h:
+        * html/HTMLElement.h:
+        * html/HTMLFormControlElement.h:
+
+            Sprinkle OVERRIDE.
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Don't instantiate ChildNodeLists just to get a child count.
+        <http://webkit.org/b/116776>
+
+        Reviewed by Ryosuke Niwa.
+
+        Use ContainerNode::childNodeCount() instead of Node::childNodes()->length().
+
+        * editing/ApplyStyleCommand.cpp:
+        (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        PluginDocument::pluginNode() should be pluginElement() instead.
+        <http://webkit.org/b/116774>
+
+        Reviewed by Anders Carlsson.
+
+        Make PluginDocument hand out a HTMLPlugInElement* instead of a Node*.
+
+        * dom/Document.cpp:
+        (WebCore::eventTargetNodeForDocument):
+        * html/PluginDocument.h:
+        * html/PluginDocument.cpp:
+        (WebCore::PluginDocumentParser::createDocumentStructure):
+        (WebCore::PluginDocument::pluginWidget):
+        (WebCore::PluginDocument::setPluginElement):
+        (WebCore::PluginDocument::detach):
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Remove Document::getFocusableNodes().
+        <http://webkit.org/b/116773>
+
+        Reviewed by Joseph Pecoraro.
+
+        This was added in r42191 and there are no remaining clients of the API.
+
+        * dom/Document.cpp:
+        * dom/Document.h:
+        * WebCore.exp.in:
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Move Node::focusDelegate() to Element.
+        <http://webkit.org/b/116768>
+
+        Reviewed by Anders Carlsson.
+
+        Only Element can be a focus delegate (it's currently only ever HTMLInputElement actually)
+        so move Node::focusDelegate() to Element. Sprinkled isElementNode() checks as needed.
+
+        * dom/Node.cpp:
+        * dom/Node.h:
+        * dom/Element.h:
+        * dom/Element.cpp:
+        * html/shadow/SliderThumbElement.cpp:
+        (WebCore::SliderThumbElement::focusDelegate):
+        * html/shadow/SliderThumbElement.h:
+        * rendering/RenderTheme.cpp:
+        (WebCore::RenderTheme::isFocused):
+        * rendering/RenderThemeMac.mm:
+        (WebCore::RenderThemeMac::paintSliderThumb):
+
+2013-05-25  Alberto Garcia  <agarcia@igalia.com>
+
+        Path: clean up addPathForRoundedRect()
+        https://bugs.webkit.org/show_bug.cgi?id=116765
+
+        Reviewed by Andreas Kling.
+
+        Reorganize code that is a bit redundant.
+
+        No new tests, no behavior change.
+
+        * platform/graphics/Path.cpp:
+        (WebCore::Path::addPathForRoundedRect):
+
+2013-05-25  Simon Fraser  <simon.fraser@apple.com>
+
+        Unprefix Page Visibility API
+        https://bugs.webkit.org/show_bug.cgi?id=102340
+
+        Reviewed by Tim Horton.
+        
+        Remove prefixes from the document properties, and the visibilitychanged event.
+        
+        Rename the "preview" state to "unloaded". The "unloaded" state is never
+        reached yet (see https://bugs.webkit.org/show_bug.cgi?id=116769).
+        
+        Add some comments to places where we should update the visibility state
+        when going in and out of the page cache, but cannot safely do so yet.
+
+        Tested by existing Page Visibility tests.
+
+        * dom/Document.cpp:
+        (WebCore::Document::pageVisibilityState):
+        (WebCore::Document::visibilityState):
+        (WebCore::Document::hidden):
+        (WebCore::Document::dispatchVisibilityStateChangeEvent):
+        * dom/Document.h:
+        * dom/Document.idl:
+        * dom/EventNames.h:
+        * history/CachedFrame.cpp:
+        (WebCore::CachedFrameBase::restore):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::stopLoading):
+        * page/Page.cpp:
+        (WebCore::Page::setVisibilityState):
+        * page/PageVisibilityState.cpp:
+        (WebCore::pageVisibilityStateString):
+        * page/PageVisibilityState.h:
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Move Node::isMouseFocusable() to Element.
+        <http://webkit.org/b/116762>
+
+        Reviewed by Anders Carlsson.
+
+        Node::isMouseFocusable() would just return isFocusable(), which is never true for a non-Element
+        since Node::supportsFocus() always returns false. So move it to Element!
+
+        * dom/Node.h:
+        * dom/Node.cpp:
+        * dom/Element.h:
+        * dom/Element.cpp:
+        (WebCore::Element::isMouseFocusable):
+
+            Moved here from Node.
+
+        * editing/FrameSelection.cpp:
+        (WebCore::FrameSelection::setFocusedNodeIfNeeded):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::dispatchMouseEvent):
+
+            Walk up the parent chain with parentOrShadowHostElement() instead of parentOrShadowHostNode().
+            Removed a misleading no-op hunk about mouse-focusable ShadowRoots, since ShadowRoots are not
+            Elements and thus cannot be mouse-focusable.
+
+        * page/TouchAdjustment.cpp:
+        (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
+
+            Check that the Node is an Element before asking if it's mouse-focusable.
+
+        * html/HTMLAnchorElement.h:
+        * html/HTMLAreaElement.h:
+        * html/HTMLFormControlElement.h:
+        * html/HTMLInputElement.h:
+        * html/HTMLMediaElement.h:
+        * html/HTMLSelectElement.h:
+        * html/HTMLTextAreaElement.h:
+        * html/shadow/ClearButtonElement.h:
+        * html/shadow/TextControlInnerElements.h:
+        * svg/SVGAElement.h:
+        * svg/SVGStyledElement.h:
+
+            Sprinkle OVERRIDE.
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Move Node::isKeyboardFocusable() to Element.
+        <http://webkit.org/b/116761>
+
+        Reviewed by Antti Koivisto.
+
+        Only Elements can be keyboard-focusable. Move the base isKeyboardFocusable() implementation to Element
+        and sprinkle OVERRIDE on subclass overrides.
+        FocusController gets some temporary type checks that will go away as that code moves to dealing in
+        Elements instead of Node.
+
+        * dom/Node.h:
+        * dom/Node.cpp:
+        * dom/Element.h:
+        * dom/Element.cpp:
+        (WebCore::Element::isKeyboardFocusable):
+
+            Move isKeyboardFocusable() from Node to Element.
+
+        * page/FocusController.cpp:
+        (WebCore::isNonFocusableShadowHost):
+        (WebCore::isFocusableShadowHost):
+        (WebCore::shouldVisit):
+        (WebCore::FocusController::advanceFocusInDocumentOrder):
+
+            Check that the inspected Node is an Element before querying isKeyboardFocusable().
+
+        * html/HTMLAnchorElement.h:
+        * html/HTMLAreaElement.h:
+        * html/HTMLFormControlElement.h:
+        * html/HTMLFrameOwnerElement.h:
+        * html/HTMLInputElement.h:
+        * html/HTMLPlugInElement.h:
+        * html/HTMLSelectElement.h:
+        * html/HTMLTextAreaElement.h:
+        * svg/SVGAElement.h:
+        * svg/SVGStyledElement.h:
+
+            Sprinkle OVERRIDE.
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Begin moving "focus" state logic from Node to Element.
+        <http://webkit.org/b/116760>
+
+        Reviewed by Antti Koivisto.
+
+        Only Elements can be focused, so merge the "focus" state logic from Node and ContainerNode
+        and move it into Element. There's a lot more iceberg under this tip, but we'll be starting
+        with setFocus(bool) and focused().
+
+        * dom/Node.h:
+        * dom/ContainerNode.cpp:
+        * dom/ContainerNode.h:
+        * dom/Element.cpp:
+        (WebCore::Element::isUserActionElementFocused):
+        (WebCore::Element::setFocus):
+        * dom/Element.h:
+        (WebCore::Element::focused):
+        * dom/Node.cpp:
+
+            Move focused() and setFocus(bool) from Node/ContainerNode to Element.
+
+        * dom/Document.cpp:
+        (WebCore::Document::setFocusedNode):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::dispatchMouseEvent):
+
+            Check if the inspected Node is an Element before asking if it's focused.
+
+2013-05-25  Noam Rosenthal  <noam.rosenthal@nokia.com>
+
+        Direct pattern compositing breaks when no-repeat is set on a large layer
+        https://bugs.webkit.org/show_bug.cgi?id=116140
+
+        Reviewed by Antti Koivisto.
+
+        In some cases the directly composited background color logic overrides the layer's
+        contentsRect, which results in wrong rendering of tiled images.
+        This patch makes sure that the background image is applied after the solid color,
+        which ensures the correct contentsRect.
+
+        Test: compositing/patterns/direct-pattern-compositing-contain-no-repeat.html
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateDirectlyCompositedContents):
+
+2013-05-24  Andreas Kling  <akling@apple.com>
+
+        Move "hover" state logic from Node to Element.
+        <http://webkit.org/b/116757>
+
+        Reviewed by Antti Koivisto.
+
+        Resolve a 7 year old FIXME by merging the "hover" state logic from Node and ContainerNode
+        and moving it all to Element instead.
+
+        * dom/Node.cpp:
+        (WebCore::Node::detach):
+        * dom/Element.cpp:
+        (WebCore::Element::detach):
+
+            Move Document::hoveredNodeDetached() call from Node::detach() to Element::detach().
+
+        (WebCore::Element::isUserActionElementHovered):
+        (WebCore::Element::setHovered):
+        * dom/Element.h:
+        (WebCore::Element::hovered):
+
+            Moved here from Node/ContainerNode.
+
+        * dom/UserActionElementSet.h:
+        (WebCore::UserActionElementSet::setHovered):
+        (WebCore::UserActionElementSet::setFlags):
+
+            Make setHovered() take an Element* instead of a Node*. I'd like to do this will all
+            of these methods eventually, so added a setFlags() helper with the tighter type.
+
+        * html/HTMLLabelElement.h:
+        * html/shadow/SpinButtonElement.h:
+
+            Sprinkle OVERRIDE on setHovered() overrides.
+
+        * dom/Document.cpp:
+        (WebCore::Document::updateHoverActiveState):
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::isHovered):
+        * rendering/RenderTheme.cpp:
+        (WebCore::RenderTheme::isHovered):
+
+            Check if the inspected Node is an element before asking if it's hovered.
+
+2013-05-25  Andreas Kling  <akling@apple.com>
+
+        Document::formController() should return a reference.
+        <http://webkit.org/b/116758>
+
+        Reviewed by Antti Koivisto.
+
+        The formController() is created on demand, so return a reference instead.
+
+        * dom/Document.h:
+        * dom/Document.cpp:
+        (WebCore::Document::formController):
+        (WebCore::Document::setStateForNewFormElements):
+        * html/HTMLFormControlElementWithState.cpp:
+        (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
+        (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
+        (WebCore::HTMLFormControlElementWithState::didMoveToNewDocument):
+        (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::~HTMLFormElement):
+        (WebCore::HTMLFormElement::finishParsingChildren):
+        * html/HTMLInputElement.cpp:
+        (WebCore::HTMLInputElement::~HTMLInputElement):
+        (WebCore::HTMLInputElement::didMoveToNewDocument):
+        (WebCore::HTMLInputElement::checkedRadioButtons):
+
+2013-05-25  Sergio Villar Senin  <svillar@igalia.com>
+
+        Reducing CSS code duplication in declaration list error recovery
+        https://bugs.webkit.org/show_bug.cgi?id=115157
+
+        Reviewed by Andreas Kling.
+
+        From Blink r148974 by <serya@chromium.org>
+
+        Refactor "invalid_block_list error | /* empty */" in a new
+        decl_list_recovery rule that allows to remove 4 redundant rules.
+
+        No new test required as we're just refactoring code, no new behaviour.
+
+        * css/CSSGrammar.y.in:
+
+2013-05-24  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Build fix after r150664.
+
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore):
+
+2013-05-24  Sergio Villar Senin  <svillar@igalia.com>
+
+        Fixing invalid block recovery in some declaration list.
+        https://bugs.webkit.org/show_bug.cgi?id=115159
+
+        Reviewed by Darin Adler.
+
+        From Blink r148889 by <serya@chromium.org>
+
+        Improves the detection of some invalid block declarations inside a
+        declaration list. This allows the parser not to completely discard
+        a whole declaration list that contains an invalid block. In
+        particular grammar failed in tests 8, 12, 13, 15, 16 and 17 in the
+        new test added by this change.
+
+        Test: fast/css/parsing-invalid-block-recovery.html
+
+        * css/CSSGrammar.y.in:
+
+
+2013-05-24  Beth Dakin  <bdakin@apple.com>
+
+        DidFirstFlushForHeaderLayer can be called too soon on pages that redirect
+        https://bugs.webkit.org/show_bug.cgi?id=116749
+        -and corresponding-
+        <rdar://problem/13886753>
+
+        Reviewed by Simon Fraser.
+
+        Only start m_paintRelatedMilestonesTimer if we have actually painted.
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
+
+2013-05-24  Anders Carlsson  <andersca@apple.com>
+
+        Fix Windows build.
+
+        * WebCore.vcproj/WebCore.vcproj:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+
+2013-05-24  Tim Horton  <timothy_horton@apple.com>
+
+        Animated GIFs don't repaint after TiledCoreAnimationDrawingArea un-suspends painting
+        https://bugs.webkit.org/show_bug.cgi?id=116744
+        <rdar://problem/13973514>
+
+        Reviewed by Simon Fraser.
+
+        * WebCore.exp.in: Export FrameView::resumeAnimatingImages.
+        * page/FrameView.cpp:
+        (WebCore::FrameView::setIsInWindow):
+        (WebCore::FrameView::resumeAnimatingImages):
+        Factor the code to restart animated images out of frameView::setIsInWindow.
+
+        * page/FrameView.h:
+        (FrameView):
+
+2013-05-24  Anders Carlsson  <andersca@apple.com>
+
+        Move history property list writer to WebKit
+        https://bugs.webkit.org/show_bug.cgi?id=116746
+
+        Reviewed by Tim Horton.
+
+        Remove files from the Xcode project and remove symbols that now live in WebKit.
+
+        * WebCore.exp.in:
+        * WebCore.xcodeproj/project.pbxproj:
+
+2013-05-24  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        Global constructors exposed in worker environment have wrong attributes
+        https://bugs.webkit.org/show_bug.cgi?id=116708
+
+        Reviewed by Geoffrey Garen.
+
+        Fix JSC bindings generator so that Global constructors exposed in worker environment
+        have the following attributes:
+        { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
+
+        This is now consistent with global constructors on DOMWindow and with the Web IDL
+        specification:
+        http://dev.w3.org/2006/webapi/WebIDL/#es-interfaces
+
+        Test: fast/js/global-constructors-attributes-worker.html
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateAttributesHashTable):
+
+2013-05-24  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        Remove custom code for webkitAudioContext global constructor getter
+        https://bugs.webkit.org/show_bug.cgi?id=116530
+
+        Reviewed by Geoffrey Garen.
+
+        Get rid of custom code for webkitAudioContext global constructor getter. The
+        global DOMWindow attribute is now automatically generated by leveraging support
+        for [EnabledAtRuntime] extended attribute and the existing methods in
+        RuntimeEnabledFeatures class.
+
+        No new tests, no behavior change.
+
+        * GNUmakefile.list.am: Remove JSDOMWindowWebAudioCustom.*.
+        * Modules/webaudio/AudioContext.idl:
+        Remove [NoInterfaceObject] extended attribute so that the global constructor is
+        automatically generated instead of automatically added. Add [EnabledAtRuntime]
+        extended attribute since this global constructor can be disabled at runtime and
+        so that we can getter rid of the [CustomGetter] for the corresponding global
+        constructor. Use [InterfaceName] extended attribute so that the interface name
+        matches the global constructor on DOMWindow (webkitAudioContext).
+
+        * Target.pri: Remove JSDOMWindowWebAudioCustom.*.
+        * UseJSC.cmake: Remove JSDOMWindowWebAudioCustom.*.
+        * WebCore.exp.in: Export additional symbol.
+        * WebCore.order: Export additional symbol.
+        * WebCore.vcproj/WebCore.vcproj: Remove JSDOMWindowWebAudioCustom.*.
+        * WebCore.vcxproj/WebCore.vcxproj: Remove JSDOMWindowWebAudioCustom.*.
+        * WebCore.vcxproj/WebCore.vcxproj.filters: Remove JSDOMWindowWebAudioCustom.*.
+        * WebCore.xcodeproj/project.pbxproj: Remove JSDOMWindowWebAudioCustom.*.
+        * bindings/generic/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::setWebAudioEnabled):
+        * bindings/js/JSBindingsAllInOne.cpp: Remove JSDOMWindowWebAudioCustom.*.
+        * bindings/js/JSDOMWindowWebAudioCustom.cpp: Removed. We no longer need any custom code for
+        the WebAudio global constructor getter because we use [EnabledAtRuntime] support in the
+        bindings generator now.
+        * page/DOMWindow.idl: Remove global constructor for AudioContext as it is now automatically
+        generated.
+        * page/Settings.in: Remove webAudioEnabled setting as we use the existing setting
+        in RuntimeEnabledFeatures now.
+
+2013-05-24  Seokju Kwon  <seokju.kwon@gmail.com>
+
+        [AC] Needs to be guarded by USE(ACCELERATED_COMPOSITING)
+        https://bugs.webkit.org/show_bug.cgi?id=116712
+
+        Reviewed by Andreas Kling.
+
+        renderView is used when ACCELERATED_COMPOSITING is enabled.
+        So, this patch allows it to be guarded by USE(ACCELERATED_COMPOSITING).
+
+        No new tests, no behavior change.
 
-2013-05-22  Dean Jackson  <dino@apple.com>
+        * page/FrameView.cpp:
+        (WebCore::FrameView::setFrameRect):
 
-        Don't snapshot plugins that can't be snapshotted
-        https://bugs.webkit.org/show_bug.cgi?id=116490
+2013-05-24  Thomas Deniau  <deniau@apple.com>
 
-        Reviewed by Tim Horton.
+        Add more lines to the context during Dictionary lookups
+        https://bugs.webkit.org/show_bug.cgi?id=115256
 
-        Some plugins, such as QuickTime, don't support snapshotting. We're
-        planning on another way to capture snapshots, but in the meantime make
-        sure that they don't fail to initialise because they were told to
-        not use accelerated rendering.
+        Reviewed by Ryosuke Niwa.
 
-        * WebCore.exp.in: Export restartSnapshottedPlugin so that it can be used from WK2.
-        * html/HTMLPlugInImageElement.cpp:
-        (WebCore::HTMLPlugInImageElement::restartSimilarPlugIns): Don't set the play state before restarting.
-        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Make sure we indicated that this snapshotted plugin was clicked.
-        * html/HTMLPlugInImageElement.h: Move restartSnapshottedPlugin from protected to public.
-        * rendering/RenderSnapshottedPlugIn.cpp:
-        (WebCore::RenderSnapshottedPlugIn::handleEvent): Don't set play state here. Let the restart functions do it.
+        No new tests - no new functionality.
+
+        * WebCore.exp.in: Export a few methods in VisibleUnits needed to be able
+        to call previousLinePosition(), nextLinePosition(), startOfLine() and
+        endOfLine() in WebPageMac.mm when determining the context while looking
+        up a dictionary definition. These symbols used to be exported for iOS
+        only, export them on the desktop too.
+
+2013-05-24  Anders Carlsson  <andersca@apple.com>
+
+        Remove PagePopup code
+        https://bugs.webkit.org/show_bug.cgi?id=116732
+
+        Reviewed by Andreas Kling.
+
+        Remove all page popup code.
+
+        * GNUmakefile.list.am:
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/ContextFeatures.cpp:
+        * dom/ContextFeatures.h:
+        * loader/EmptyClients.h:
+        * page/ChromeClient.h:
+        * page/DOMWindowPagePopup.cpp: Removed.
+        * page/DOMWindowPagePopup.h: Removed.
+        * page/DOMWindowPagePopup.idl: Removed.
+        * page/PagePopup.h: Removed.
+        * page/PagePopupClient.cpp: Removed.
+        * page/PagePopupClient.h: Removed.
+        * page/PagePopupController.cpp: Removed.
+        * page/PagePopupController.h: Removed.
+        * page/PagePopupController.idl: Removed.
+        * page/PagePopupDriver.h: Removed.
+        * testing/Internals.cpp:
+        (WebCore::Internals::resetToConsistentState):
+        (WebCore):
+        * testing/Internals.h:
+        (WebCore):
+        (Internals):
+        * testing/Internals.idl:
+        * testing/MockPagePopupDriver.cpp: Removed.
+        * testing/MockPagePopupDriver.h: Removed.
 
-2013-05-22  Jer Noble  <jer.noble@apple.com>
+2013-05-24  Jer Noble  <jer.noble@apple.com>
 
         Mac: Set the default audio buffer size to a large value for <video> elements.
         https://bugs.webkit.org/show_bug.cgi?id=116342
 
         Reviewed by Eric Carlson.
+        Roll-in rubber stamped by Eric Carlson.
 
         To enable power savings by waking up the audio hardware less often, set the
         requested buffer frame size to a large value, such as 4096. Since this results
         where the available API requires a duration, perform the conversion from duration to
         size on behalf of the caller.
 
+        However, since the original version of this patch caused media test
+        failures on the Mac ML and Lion bots, only enable the buffer size
+        change for OS X > ML.
+
         * html/HTMLMediaElement.h:  Add a AudioSessionManagerToken member.
         * html/HTMLMediaElement.cpp:
         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize the token.
         (AudioSessionManager::updateSessionState): Set the buffer size depending on what audio outputs are present.
         * WebCore.xcodeproj/project.pbxproj: Add the new files to the project.
 
+2013-05-24  Alberto Garcia  <agarcia@igalia.com>
+
+        Path: upstream the missing bits from the BlackBerry port
+        https://bugs.webkit.org/show_bug.cgi?id=116658
+
+        Reviewed by Xan Lopez.
+
+        PathBlackBerry was upstreamed a while ago (r144612) but a few bits
+        were missing from the cross-platform code.
+
+        * platform/graphics/Path.cpp:
+        (WebCore::Path::addPathForRoundedRect):
+        * platform/graphics/Path.h:
+        (Graphics):
+        (Path):
+
+2013-05-24  Noam Rosenthal  <noam@webkit.org>
+
+        WebProcess is crashing on http://achicu.github.io/css-presentation when direct pattern compositing is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=115135
+
+        Reviewed by Antti Koivisto.
+
+        Issue is invoked when there is a visibility:hidden layer with a non-compositable
+        background image (e.g. a radial gradient).
+        The layer is treated as a no-contents layer because of its visibility, however
+        updateDirectlyCompositedBackgroundImage() later mistakenly treats it as a layer
+        with direct background-image compositing.
+
+        Fixed by returning early from updating directly composited contents for layers
+        with hidden contents.
+
+        Test: compositing/patterns/direct-pattern-compositing-hidden-radial-gradient.html
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateDirectlyCompositedContents):
+        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
+        (WebCore::RenderLayerBacking::paintsChildren):
+        (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
+
+2013-05-24  Robert Hogan  <robert@webkit.org>
+
+        Refactor shouldAddBorderPaddingMargin()
+        https://bugs.webkit.org/show_bug.cgi?id=98803
+
+        Reviewed by Ryosuke Niwa.
+
+        Make this helper function less clever-stupid in its misguided sacrifice of intelligibility
+        for the sake of concision.
+
+        No new tests, refactoring.
+
+        * rendering/RenderBlockLineLayout.cpp:
+        (WebCore::shouldAddBorderPaddingMargin):
+        (WebCore::inlineLogicalWidth):
+
+2013-05-24  Xiaobo Wang  <xiaobwang@blackberry.com>
+
+        [BlackBerry] DRT - crashed on GraphicsContext3D::makeContextCurrent
+        https://bugs.webkit.org/show_bug.cgi?id=116654
+
+        Reviewed by Carlos Garcia Campos.
+
+        PR 331552.
+        Internally reviewed and amended by Arvid Nilsson.
+
+        No new tests, this patch is to fix DRT crashes in fast/canvas/webgl.
+        The instance of GraphicsContext3D has already been destroyed but
+        WebGLLayerWebKitThread is not aware of that. This is because compositor
+        layer of the WebGL graphics context was referenced outside the context.
+        So when destructing GraphicsContext3D the compositing layer was not
+        destructed.
+        Fix by setting m_webGLContext to 0 when destructing GrapthicsContext3D
+        after releasing the compositor layer, so that it won't be de-referenced
+        again later.
+
+        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
+        (WebCore::GraphicsContext3D::~GraphicsContext3D):
+        * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
+        (WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
+        (WebCore::WebGLLayerWebKitThread::webGLContextDestroyed):
+        (WebCore):
+        * platform/graphics/blackberry/WebGLLayerWebKitThread.h:
+        (WebGLLayerWebKitThread):
+
+2013-05-24  Andreas Kling  <akling@apple.com>
+
+        Typing in Safari's unified field causes unnecessary web content repaints.
+        <http://webkit.org/b/116703>
+
+        Reviewed by Andy Estes.
+
+        Break out an alternate version of Page::markAllMatchesForText() that only counts the number of times
+        a string occurs in the page, but doesn't try to mark the occurrences.
+        This allows Safari to count matches for the 'Find "foo" on This Page' functionality in the unified
+        location bar without causing tile repaints.
+
+        * WebCore.exp.in:
+        * page/Page.h:
+        * page/Page.cpp:
+        (WebCore::Page::findMatchesForText):
+        (WebCore::Page::markAllMatchesForText):
+        (WebCore::Page::countFindMatches):
+
+            Renamed markAllMatchesForText() to findMatchesForText() and gave it a boolean parameter to control whether
+            matches should be marked or not. countFindMatches() is the new helper that doesn't mark.
+
+2013-05-23  Beth Dakin  <bdakin@apple.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=116702
+        REGRESSION (r150399): Scrollbar missing for all overflow scroll
+        -and corresponding-
+        <rdar://problem/13963712>
+
+        Reviewed by Simon Fraser.
+
+        This was a silly copy-paste error.
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::scrollbarAnimationsAreSuppressed):
+
+2013-05-23  peavo@outlook.com  <peavo@outlook.com>
+
+        [WinCairo] Build fails to link.
+        https://bugs.webkit.org/show_bug.cgi?id=116671
+
+        Reviewed by Brent Fulgham.
+
+        * page/FrameView.h: Added guard for ACCELERATED_COMPOSITING.
+
+2013-05-23  Roger Fong  <roger_fong@apple.com>
+
+        Unreviewed. Modify WebCore for AppleWin 2010 production build.
+
+        * WebCore.vcxproj/WebCoreGenerated.make:
+        (WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
+        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
+
+2013-05-23  Yongjun Zhang  <yongjun_zhang@apple.com>
+
+        We need to clear main resource when detaching DocumentLoader from the frame.
+        https://bugs.webkit.org/show_bug.cgi?id=116680
+
+        Normally, when we detach the documentLoader in DocumentLoader::detachFromFrame, main resource is also cleared
+        in stopLoading().  There is possibility that main resource not being cleared, and this could cause crash later
+        since docLoader could still receive resource callbacks.  To avoid that, we can remove docLoader from main resource's
+        client set in detachFromFrame.
+
+        Reviewed by Brady Eidson.
+
+        No new tests, this doesn't happen on OS X.
+
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::detachFromFrame):
+        (WebCore::DocumentLoader::clearMainResource):
+        * loader/cache/CachedResource.h: make hasClient accessible publicly.
+        (WebCore::CachedResource::hasClient):
+        (CachedResource):
+
+2013-05-23  Mihai Maerean  <mmaerean@adobe.com>
+
+        assertion failed: !node || node->isElementNode() in WebCore::RenderBlock::clone
+        https://bugs.webkit.org/show_bug.cgi?id=116614
+
+        Reviewed by David Hyatt.
+
+        Add a test for flow threads so they don't end up being cloned in region based multi columns with columns:1 where
+        the only child has column-span:all.
+
+        Test: fast/multicol/newmulticol/direct-child-column-span-all.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
+
+2013-05-23  Anders Carlsson  <andersca@apple.com>
+
+        Crash in convertMainResourceLoadToDownload when downloading file by option-return
+        https://bugs.webkit.org/show_bug.cgi?id=116451
+
+        Reviewed by Andreas Kling.
+
+        Handle MainResourceLoader being null here which will happen when loading a cached main resource.
+
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::continueAfterContentPolicy):
+
+2013-05-23  Benjamin Poulain  <bpoulain@apple.com>
+
+        KURL::createCFURL() should return a RetainPtr<CFURLRef>
+        https://bugs.webkit.org/show_bug.cgi?id=116644
+
+        Reviewed by Andreas Kling.
+
+        For consistency with the other createCFType() APIs in WebKit, KURL should
+        return a RetainPtr<> instead of raw +1 CFURLRef.
+
+        No leak were discovered while making this change.
+
+        * platform/KURL.h:
+        * platform/cf/KURLCFNet.cpp:
+        (WebCore):
+        (WebCore::createCFURLFromBuffer):
+        (WebCore::KURL::createCFURL):
+        (WebCore::KURL::fileSystemPath):
+        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
+        (WebCore::AVFWrapper::createAssetForURL):
+        * platform/graphics/cg/GraphicsContextCG.cpp:
+        (WebCore::GraphicsContext::setURLForRect):
+        * platform/mac/KURLMac.mm:
+        (WebCore):
+        (WebCore::KURL::operator NSURL *):
+        (WebCore::KURL::createCFURL):
+        * platform/network/cf/CookieJarCFNet.cpp:
+        (WebCore::setCookiesFromDOM):
+        (WebCore::cookiesForDOM):
+        (WebCore::cookieRequestHeaderFieldValue):
+        (WebCore::getRawCookies):
+        (WebCore::deleteCookie):
+        * platform/network/cf/DNSCFNet.cpp:
+        (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
+        * platform/network/cf/ProxyServerCFNet.cpp:
+        (WebCore::addProxyServersForURL):
+        * platform/network/cf/ResourceRequestCFNet.cpp:
+        (WebCore::ResourceRequest::doUpdatePlatformRequest):
+        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
+        * platform/network/cf/ResourceResponseCFNet.cpp:
+        (WebCore::ResourceResponse::cfURLResponse):
+        * platform/network/cf/SocketStreamHandleCFNet.cpp:
+        (WebCore::SocketStreamHandle::SocketStreamHandle):
+
+2013-05-18  Robert Hogan  <robert@webkit.org>
+
+        The ellipsis in a text overflow should not avoid floats
+        https://bugs.webkit.org/show_bug.cgi?id=115746
+
+        Reviewed by David Hyatt.
+
+        When placing an ellipsis for text overflow we shouldn't avoid any floats on the line.
+        That is to say, if there is a float in the box we overflow we should let our no-wrap text,
+        including the ellipsis, render inside the float just as we would if overflow was hidden but
+        a text-overflow rendering had not been specified.
+
+        Test: fast/css/text-overflow-ellipsis-behind-floats.html
+
+        * rendering/RenderBlockLineLayout.cpp:
+        (WebCore::RenderBlock::checkLinesForTextOverflow):
+
+2013-05-23  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        Unreviewed, rolling out r150586.
+        http://trac.webkit.org/changeset/150586
+        https://bugs.webkit.org/show_bug.cgi?id=116660
+
+        Those constructors should be exposed on the WorkerContext, not
+        the DOMWindow
+
+        * fileapi/FileReaderSync.idl:
+        * workers/WorkerLocation.idl:
+
+2013-05-23  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        Remove [NoInterfaceObject] from FileReaderSync and WorkerLocation
+        https://bugs.webkit.org/show_bug.cgi?id=116660
+
+        Reviewed by Kentaro Hara.
+
+        Remove [NoInterfaceObject] from FileReaderSync and WorkerLocation to match their
+        respective specifications:
+        - http://dev.w3.org/2006/webapi/FileAPI/#FileReaderSync
+        - http://dev.w3.org/html5/workers/#workerlocation
+
+        No new tests, covered by existing tests.
+
+        * fileapi/FileReaderSync.idl:
+        * workers/WorkerLocation.idl:
+
+2013-05-23  Christophe Dumez  <ch.dumez@sisa.samsung.com>
+
+        Remove special case for MessagePortArray from bindings generator
+        https://bugs.webkit.org/show_bug.cgi?id=116653
+
+        Reviewed by Kentaro Hara.
+
+        Use MessagePort[] instead of MessagePortArray type in the IDL as MessagePortArray
+        is not defined on IDL side. This allows us to remove the special case for
+        MessagePortArray from the bindings generator.
+
+        No new tests, no behavior change.
+
+        * bindings/js/JSMessageEventCustom.cpp:
+        (WebCore::JSMessageEvent::data):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (NativeToJSValue): Remove special case for MessagePortArray.
+        * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
+        * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h:
+        (WebDOMTestSerializedScriptValueInterface):
+        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
+        (webkit_dom_test_serialized_script_value_interface_get_property):
+        (webkit_dom_test_serialized_script_value_interface_class_init):
+        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+        (WebCore::jsTestSerializedScriptValueInterfacePorts):
+        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
+        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
+        * bindings/scripts/test/TestSerializedScriptValueInterface.idl: Replace MessagePortArray
+        by MessagePort[].
+        * dom/MessageEvent.h:
+        (WebCore::MessageEvent::ports): The method should return a Vector, not a Vector*
+        as the array on JavaScript side is not nullable.
+        * dom/MessageEvent.idl: Replace MessagePortArray by MessagePort[].
+
+2013-05-23  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
+
+        [EFL] Back, Forward and Stop should be hidden in context menu
+        https://bugs.webkit.org/show_bug.cgi?id=116615
+
+        Reviewed by Christophe Dumez.
+
+        Context menu items: Back, Forward, Stop, Reload, should be shown only when
+        they are able to perform action.
+
+        No new tests - no new functionality.
+
+        * page/ContextMenuController.cpp:
+        (WebCore::ContextMenuController::populate):
+
+2013-05-22  Dean Jackson  <dino@apple.com>
+
+        Rolling out r150555. It borked about 30 media tests.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::HTMLMediaElement):
+        * html/HTMLMediaElement.h:
+        * platform/audio/AudioSession.cpp:
+        (WebCore):
+        (WebCore::AudioSession::AudioSession):
+        (WebCore::AudioSession::preferredBufferDuration):
+        (WebCore::AudioSession::setPreferredBufferDuration):
+        * platform/audio/AudioSession.h:
+        * platform/audio/AudioSessionListener.h:
+        (AudioSessionListener):
+        * platform/audio/AudioSessionManager.cpp: Removed.
+        * platform/audio/AudioSessionManager.h: Removed.
+        * platform/audio/ios/AudioDestinationIOS.cpp:
+        (WebCore::AudioDestinationIOS::configure):
+        * platform/audio/ios/AudioSessionIOS.mm:
+        (WebCore::AudioSession::preferredBufferDuration):
+        (WebCore::AudioSession::setPreferredBufferDuration):
+        * platform/audio/mac/AudioDestinationMac.cpp:
+        (WebCore::AudioDestination::hardwareSampleRate):
+        (WebCore::AudioDestinationMac::AudioDestinationMac):
+        (WebCore::AudioDestinationMac::configure):
+        * platform/audio/mac/AudioDestinationMac.h:
+        (AudioDestinationMac):
+        * platform/audio/mac/AudioSessionMac.cpp: Removed.
+        * platform/audio/mac/AudioSessionManagerMac.cpp: Removed.
+
+2013-05-20  Jeffrey Pfau  <jpfau@apple.com>
+
+        Active DOM object resumption should match reason for suspending
+        https://bugs.webkit.org/show_bug.cgi?id=116476
+
+        Add a reason to the arguments for resuming active DOM object and
+        scheduled tasks and ensure that it matches the suspend reason before
+        actually resuming the objects.
+
+        Reviewed by Joseph Pecoraro.
+
+        No new tests, no change in functionality.
+
+        * bindings/js/PageScriptDebugServer.cpp:
+        (WebCore::PageScriptDebugServer::setJavaScriptPaused): Add matching resume reason
+        * dom/Document.cpp:
+        (WebCore::Document::resumeActiveDOMObjects): Check for matching resume reason
+        (WebCore::Document::resumeScheduledTasks): Check for matching resume reason
+        * dom/Document.h:
+        (Document):
+        * dom/ScriptExecutionContext.cpp:
+        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects): Check for matching resume reason
+        * dom/ScriptExecutionContext.h:
+        (ScriptExecutionContext):
+        (WebCore::ScriptExecutionContext::reasonForSuspendingActiveDOMObjects): Expose suspend reason to subclasses
+        * history/CachedFrame.cpp:
+        (WebCore::CachedFrameBase::restore): Add matching resume reason
+        * page/Frame.cpp:
+        (WebCore::Frame::resumeActiveDOMObjectsAndAnimations): Add matching resume reason
+        * page/PageGroupLoadDeferrer.cpp:
+        (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer): Add matching resume reason
+
+2013-05-22  Dean Jackson  <dino@apple.com>
+
+        Don't snapshot plugins that can't be snapshotted
+        https://bugs.webkit.org/show_bug.cgi?id=116490
+
+        Reviewed by Tim Horton.
+
+        Some plugins, such as QuickTime, don't support snapshotting. We're
+        planning on another way to capture snapshots, but in the meantime make
+        sure that they don't fail to initialise because they were told to
+        not use accelerated rendering.
+
+        * WebCore.exp.in: Export restartSnapshottedPlugin so that it can be used from WK2.
+        * html/HTMLPlugInImageElement.cpp:
+        (WebCore::HTMLPlugInImageElement::restartSimilarPlugIns): Don't set the play state before restarting.
+        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Make sure we indicated that this snapshotted plugin was clicked.
+        * html/HTMLPlugInImageElement.h: Move restartSnapshottedPlugin from protected to public.
+        * rendering/RenderSnapshottedPlugIn.cpp:
+        (WebCore::RenderSnapshottedPlugIn::handleEvent): Don't set play state here. Let the restart functions do it.
+
 2013-05-22  Max Vujovic  <mvujovic@adobe.com>
 
         [CSS Shaders] valueForCustomFilterTransformParameter should check that renderer is a RenderBox