Purge PassRefPtr create() factory functions in html
[WebKit-https.git] / Source / WebCore / ChangeLog
index b3a107c..2325709 100644 (file)
+2015-05-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Purge PassRefPtr create() factory functions in html 
+        https://bugs.webkit.org/show_bug.cgi?id=144522
+
+        Reviewed by Darin Adler.
+
+        Return Ref instead of PassRefPtr in create() factory functions in html, because the factory
+        can't return null. This patch is a first step to purge in html. Following patch is going to
+        be uploaded.
+
+        No new tests, no behavior changes.
+
+        * html/FileInputType.cpp:
+        (WebCore::UploadButtonElement::create):
+        (WebCore::UploadButtonElement::createForMultiple):
+        * html/MediaController.cpp:
+        (MediaController::create):
+        * html/MediaController.h:
+        * html/canvas/WebGLBuffer.cpp:
+        (WebCore::WebGLBuffer::create):
+        * html/canvas/WebGLBuffer.h:
+        * html/canvas/WebGLContextAttributes.cpp:
+        (WebCore::WebGLContextAttributes::create):
+        * html/canvas/WebGLContextAttributes.h:
+        * html/canvas/WebGLContextGroup.cpp:
+        (WebCore::WebGLContextGroup::create):
+        * html/canvas/WebGLContextGroup.h:
+        * html/canvas/WebGLFramebuffer.cpp:
+        (WebCore::WebGLFramebuffer::create):
+        * html/canvas/WebGLFramebuffer.h:
+        * html/canvas/WebGLProgram.cpp:
+        (WebCore::WebGLProgram::create):
+        * html/canvas/WebGLProgram.h:
+        * html/canvas/WebGLQuery.cpp:
+        (WebCore::WebGLQuery::create):
+        * html/canvas/WebGLQuery.h:
+        * html/canvas/WebGLRenderbuffer.cpp:
+        (WebCore::WebGLRenderbuffer::create):
+        * html/canvas/WebGLRenderbuffer.h:
+        * html/canvas/WebGLSampler.cpp:
+        (WebCore::WebGLSampler::create):
+        * html/canvas/WebGLSampler.h:
+        * html/canvas/WebGLShader.cpp:
+        (WebCore::WebGLShader::create):
+        * html/canvas/WebGLShader.h:
+        * html/canvas/WebGLShaderPrecisionFormat.cpp:
+        (WebCore::WebGLShaderPrecisionFormat::create):
+        * html/canvas/WebGLShaderPrecisionFormat.h:
+        * html/canvas/WebGLSync.cpp:
+        (WebCore::WebGLSync::create):
+        * html/canvas/WebGLSync.h:
+        * html/canvas/WebGLTexture.cpp:
+        (WebCore::WebGLTexture::create):
+        * html/canvas/WebGLTexture.h:
+        * html/canvas/WebGLTransformFeedback.cpp:
+        (WebCore::WebGLTransformFeedback::create):
+        * html/canvas/WebGLTransformFeedback.h:
+        * html/canvas/WebGLUniformLocation.cpp:
+        (WebCore::WebGLUniformLocation::create):
+        * html/canvas/WebGLUniformLocation.h:
+        * html/canvas/WebGLVertexArrayObject.cpp:
+        (WebCore::WebGLVertexArrayObject::create):
+        * html/canvas/WebGLVertexArrayObject.h:
+        * html/canvas/WebGLVertexArrayObjectOES.cpp:
+        (WebCore::WebGLVertexArrayObjectOES::create):
+        * html/canvas/WebGLVertexArrayObjectOES.h:
+
+2015-05-02  Andreas Kling  <akling@apple.com>
+
+        Style recalc always causes detach from shared StyleRareNonInheritedData.
+        <https://webkit.org/b/144530>
+
+        Reviewed by Darin Adler.
+
+        StyleResolver::adjustStyleForMaskImages() was always calling RenderStyle::ensureMaskLayers()
+        when we were in style recalc. This caused the RenderStyle to COW off from the previously
+        shared StyleRareNonInheritedData even if nothing actually changes.
+
+        This patch adds an early return to adjustStyleForMaskImages() when the previous style had
+        no mask images. Further refinements could be made, but this covers the most common case where
+        we don't have any mask images at all.
+
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::adjustStyleForMaskImages):
+
+2015-05-02  Alexey Proskuryakov  <ap@apple.com>
+
+        fast/frames/flattening/iframe-flattening-resize-event-count.html times out on Yosemite WK2
+        https://bugs.webkit.org/show_bug.cgi?id=144155
+
+        Unreviewed, will roll out soon.
+
+        Added some temporary logging to better see if alignment is indeed the culprit.
+
+        * page/Settings.cpp: (WebCore::Settings::setDOMTimerAlignmentInterval):
+
+2015-05-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Use Ref instead of PassRefPtr in WebCore/svg 
+        https://bugs.webkit.org/show_bug.cgi?id=144479
+
+        Reviewed by Darin Adler.
+
+        Remove remained PassRefPtr in svg.
+
+        No new tests, no behavior changes.
+
+        * svg/SVGFontFaceSrcElement.cpp:
+        (WebCore::SVGFontFaceSrcElement::srcValue):
+        * svg/SVGFontFaceSrcElement.h:
+        * svg/properties/SVGPropertyInfo.h:
+
+2015-05-02  Simon Fraser  <simon.fraser@apple.com>
+
+        Small cleanup in BitmapImage
+        https://bugs.webkit.org/show_bug.cgi?id=144515
+
+        Reviewed by Darin Adler.
+
+        Use an enum for the internalAdvanceAnimation() argument, with a default.
+        
+        Wrap the clearing of the timer in a clearTimer() function, called from
+        stopAnimation(). This fixes the jarring reading of BitmapImage::internalAdvanceAnimation(),
+        which used to start by calling stopAnimation().
+
+        * platform/graphics/BitmapImage.cpp:
+        (WebCore::BitmapImage::clearTimer):
+        (WebCore::BitmapImage::startAnimation):
+        (WebCore::BitmapImage::stopAnimation):
+        (WebCore::BitmapImage::advanceAnimation):
+        (WebCore::BitmapImage::internalAdvanceAnimation):
+        * platform/graphics/BitmapImage.h:
+        * platform/graphics/Image.h:
+
+2015-05-01  Simon Fraser  <simon.fraser@apple.com>
+
+        Avoid compositing updates after style recalcs which have no compositing implications
+        https://bugs.webkit.org/show_bug.cgi?id=144502
+
+        Reviewed by Darin Adler.
+        
+        After r183461, we have reliable information about whether a style change with zero
+        diff can be reliably ignored. Use that information to track whether a given
+        recalcStyle() does anything which should force a compositing update.
+        
+        This eliminates up to 40% of the post-recalcStyle compositing updates on some pages.
+        
+        Add Internals API to test.
+
+        Test: compositing/updates/no-style-change-updates.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::recalcStyle): Tell the FrameView we're going to recalc style.
+        * page/FrameView.cpp:
+        (WebCore::FrameView::willRecalcStyle): Pass it on to the compositor.
+        (WebCore::FrameView::updateCompositingLayersAfterStyleChange): Move the code
+        that was here into RenderLayerCompositor::didRecalcStyleWithNoPendingLayout().
+        * page/FrameView.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::willRecalcStyle): Reset the m_layerNeedsCompositingUpdate flag.
+        (WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout): Bail on the update if
+        no layers changed.
+        (WebCore::RenderLayerCompositor::updateCompositingLayers): Logging. Increment m_compositingUpdateCount,
+        which is used for testing.
+        (WebCore::RenderLayerCompositor::layerStyleChanged): Set the m_layerNeedsCompositingUpdate flag.
+        (WebCore::RenderLayerCompositor::startTrackingCompositingUpdates): Reset the counter.
+        (WebCore::RenderLayerCompositor::compositingUpdateCount):
+        * rendering/RenderLayerCompositor.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::startTrackingCompositingUpdates):
+        (WebCore::Internals::compositingUpdateCount):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2015-05-01  Andreas Kling  <akling@apple.com>
+
+        Reproducible crash removing name attribute from <img> node
+        <https://webkit.org/b/144371>
+        <rdar://problem/17198583>
+
+        Reviewed by Darin Adler.
+
+        The problem here was with HTMLImageElement::getNameAttribute(), which relies
+        on Element::hasName() to avoid slow attribute lookups when the attribute
+        is already known not to be present. Unfortunately hasName() uses an ElementData
+        flag that wasn't getting updated until after the call to parseAttribute().
+
+        This patch fixes the issue by moving the code that updates the hasName() flag
+        before the parseAttribute() virtual dispatch.
+
+        Test: fast/dom/HTMLImageElement/remove-name-id-attribute-from-image.html
+
+        * dom/Element.cpp:
+        (WebCore::Element::attributeChanged):
+
+2015-05-01  Eric Carlson  <eric.carlson@apple.com>
+
+        Postpone caption style sheet creation
+        https://bugs.webkit.org/show_bug.cgi?id=144499
+
+        Reviewed by Simon Fraser.
+        
+        Generating and inserting the caption user style sheet is expensive so don't do it until
+        we see a text track, and only do it for the first video element in a PageGroup.
+
+        Test: media/track/track-user-stylesheet.html
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::registerWithDocument): Only register for caption preferences
+        changes if we have done so before.
+        (WebCore::HTMLMediaElement::unregisterWithDocument): Only unregister for caption preferences
+        changes if we registered for them.
+        (WebCore::HTMLMediaElement::addTextTrack): Register for caption preference changes.
+        * html/HTMLMediaElement.h:
+
+        * page/CaptionUserPreferencesMediaAF.cpp:
+        (WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges): Only
+        generate the style sheet when called for the first time.
+
+2015-05-01  Dean Jackson  <dino@apple.com>
+
+        [iOS] Scrubber display is broken if the buffered range is empty
+        https://bugs.webkit.org/show_bug.cgi?id=144511
+
+        Reviewed by Eric Carlson.
+
+        Make sure that if video.buffered returns an empty list, we
+        still draw the scrubber background correctly.
+
+        * Modules/mediacontrols/mediaControlsiOS.js:
+        (ControllerIOS.prototype.drawTimelineBackground): Ensure that buffered
+        is always at least as big as the current time.
+
+2015-05-01  Roger Fong  <roger_fong@apple.com>
+
+        Media control volume slider should be vertical to avoid flickering issues.
+        https://bugs.webkit.org/show_bug.cgi?id=144496.
+        <rdar://problem/20451328>
+
+        Reviewed by Darin Adler.
+
+        * Modules/mediacontrols/mediaControlsApple.css:
+        Resize and reposition the volume box so that it does not have to rotated via a transform.
+        (audio::-webkit-media-controls-panel):
+        (audio::-webkit-media-controls-panel .volume-box): Also set overflow: hidden so we can't interact
+             with the volume slider while the volume box is hidden.
+        (audio::-webkit-media-controls-panel .volume-box:active):
+        Rotate and position the volume slider via transforms. Make sure it's not transformed in the fullscreen controls.
+        (video::-webkit-media-controls-volume-slider):
+        (video:-webkit-full-screen::-webkit-media-controls-volume-slider):
+
+2015-05-01  Brent Fulgham  <bfulgham@apple.com>
+
+        Expand test infrastructure to support scrolling tests (Part 4): Scroll Snap Support
+        https://bugs.webkit.org/show_bug.cgi?id=144482
+
+        Reviewed by Simon Fraser.
+
+        New tests will be landed in a second patch.
+
+        The new WheelEventTestTriggers do not work properly with scroll snap points, because some test deferral notifications
+        need to be triggered for state changes on the scrolling thread. This required the following changes:
+        1. A flag indicating that we want to know about WheelEvent state changes needed to be propagated to the scrolling thread,
+           so that tests could be deferred until Scrolling thread rubberband or scroll-snap animations had completed.
+        2. The ScrollingNodeID needed to be used for registering and clearing deferrals.
+        3. The scrolling thread needed a way to dispatch messages to the main thread indicating that we should (or should not)
+           defer tests due to scrolling actions.
+
+        Note that a future patch will extend this support to include the RemoteScrollingTree.
+
+        * page/WheelEventTestTrigger.cpp:
+        (WebCore::WheelEventTestTrigger::deferTestsForReason): Added some logging features.
+        (WebCore::WheelEventTestTrigger::removeTestDeferralForReason): Ditto.
+        (WebCore::dumpState): Helper function for logging test deferral state.
+        (WebCore::WheelEventTestTrigger::triggerTestTimerFired): Added some logging features.
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Make sure that the scrolling thread is
+        told that it needs to send scrolling state back to the main thread. Only do this if we are in testing mode.
+        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): The scrollingNodeID should be
+        used as the identifier for this operation, not the page address.
+        (WebCore::AsyncScrollingCoordinator::deferTestsForReason): Added. receives messages from the scrolling thread
+        and notifies the testing infrastructure.
+        (WebCore::AsyncScrollingCoordinator::removeTestDeferralForReason): Ditto.
+        * page/scrolling/AsyncScrollingCoordinator.h:
+        * page/scrolling/ScrollingStateScrollingNode.cpp:
+        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): When cloning the ScrollingStateScrollingNode,
+        include the testing mode state.
+        (WebCore::ScrollingStateScrollingNode::setExpectsWheelEventTestTrigger): Added.
+        * page/scrolling/ScrollingStateScrollingNode.h:
+        (WebCore::ScrollingStateScrollingNode::expectsWheelEventTestTrigger): Added.
+        * page/scrolling/ScrollingTree.h:
+        (WebCore::ScrollingTree::deferTestsForReason): Added stub.
+        (WebCore::ScrollingTree::removeTestDeferralForReason): Ditto.
+        * page/scrolling/ThreadedScrollingTree.cpp:
+        (WebCore::ThreadedScrollingTree::deferTestsForReason): Added. Dispatches messages from the scrolling thread to the
+        main thread.
+        (WebCore::ThreadedScrollingTree::removeTestDeferralForReason): Ditto.
+        * page/scrolling/ThreadedScrollingTree.h:
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac): Initialize testing state flag.
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren): If the 'ExpectsWheelEventTestTrigger' flag is
+        set, update local state.
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent): If we are testing, and the wheel event should be handled
+        asynchronously, tell the testing infrastructure we need to wait for the thread state to sync.
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::deferTestsForReason): Added. Notifies test system we need to defer tests
+        until we notify them. Also used by the ScrollController during animations.
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::removeTestDeferralForReason): Ditto.
+        * platform/Logging.h:
+        * platform/ScrollAnimator.cpp:
+        (WebCore::ScrollAnimator::deferTestsForReason): Added. Used by ScrollController during animation. This updates the
+        testing infrastructure directly, since it is running in the same process and main thread.
+        (WebCore::ScrollAnimator::removeTestDeferralForReason): Ditto.
+        * platform/ScrollAnimator.h:
+        * platform/cocoa/ScrollController.h:
+        (WebCore::ScrollControllerClient::deferTestsForReason): Change client API.
+        (WebCore::ScrollControllerClient::removeTestDeferralForReason): Ditto.
+        (WebCore::ScrollControllerClient::testTrigger): Deleted.
+        * platform/cocoa/ScrollController.mm:
+        (WebCore::ScrollController::startSnapRubberbandTimer): Use new client API.
+        (WebCore::ScrollController::stopSnapRubberbandTimer): Ditto.
+        (WebCore::ScrollController::startScrollSnapTimer): Ditto.
+        (WebCore::ScrollController::stopScrollSnapTimer): Ditto.
+
+2015-05-01  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Inline some small methods instead of them being EXPORT'd and out of line
+        https://bugs.webkit.org/show_bug.cgi?id=144498
+
+        Reviewed by Darin Adler.
+
+        * page/Page.cpp:
+        (WebCore::Page::testTrigger): Deleted.
+        (WebCore::Page::clearTrigger): Deleted.
+        (WebCore::Page::expectsWheelEventTriggers): Deleted.
+        * page/Page.h:
+        (WebCore::Page::testTrigger):
+        (WebCore::Page::clearTrigger):
+        (WebCore::Page::expectsWheelEventTriggers):
+
+2015-05-01  Dan Bernstein  <mitz@apple.com>
+
+        WebCore part of <rdar://problem/8636045> Back/forward navigation to an error page in Safari breaks the back-forward list
+        https://bugs.webkit.org/show_bug.cgi?id=144501
+
+        Reviewed by Darin Adler.
+
+        Test: TestWebKitAPI/Tests/WebKit2Cocoa/LoadAlternateHTMLString.mm
+
+        Normally, loading substitute data (such as an error page) creates a new back-forward list
+        item. FrameLoader has a mechanism that detects when a substitute data load occurs during
+        handling of a provisional load error and prevents the creation of a new back-forwards list
+        item in that case if the unreachable URL is the same as the failing provisional URL. This
+        mechanism was broken in WebKit2, where handling the provisional load error is asynchronous.
+
+        The fix is to capture some state (namely, the failing provisional URL) when dispatching the
+        load error and allow it to be restored when loading the substitute data.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::FrameLoader): Removed initialization of
+        m_delegateIsHandlingProvisionalLoadError.
+        (WebCore::FrameLoader::shouldReloadToHandleUnreachableURL): Instead of checking
+        m_delegateIsHandlingProvisionalLoadError and if true using the provisional document loader’s
+        URL, check m_provisionalLoadErrorBeingHandledURL.
+        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Instead of checking and setting
+        m_delegateIsHandlingProvisionalLoadError, use m_provisionalLoadErrorBeingHandledURL.
+        * loader/FrameLoader.h:
+        (WebCore::FrameLoader::provisionalLoadErrorBeingHandledURL): Added this getter. The client
+        can call this from its override of dispatchDidFailProvisionalLoad and store the result.
+        (WebCore::FrameLoader::setProvisionalLoadErrorBeingHandledURL): Added this setter. The
+        client can call this prior to loading substitute data if it’s done as part of handling a
+        previously-dispatched didFailProvisionalLoad.
+
+2015-05-01  Martin Robinson  <mrobinson@igalia.com>
+
+        USE(...) macro should expect unprefixed variables
+        https://bugs.webkit.org/show_bug.cgi?id=144454
+
+        Reviewed by Daniel Bates.
+
+        * DerivedSources.make: Replace all occurrences WTF_USE with USE.
+        * PlatformEfl.cmake: Ditto.
+        * PlatformGTK.cmake: Ditto.
+        * bindings/objc/PublicDOMInterfaces.h: Ditto.
+        * config.h: Ditto.
+        * crypto/mac/SerializedCryptoKeyWrapMac.mm: Ditto.
+        * page/AlternativeTextClient.h: Ditto.
+        * platform/efl/FileSystemEfl.cpp: Ditto.
+        (WebCore::fileSystemRepresentation): Ditto.
+        * platform/graphics/cg/ImageBufferDataCG.h: Ditto.
+        * platform/graphics/cg/PDFDocumentImage.h: Ditto.
+        * platform/ios/wak/WAKAppKitStubs.h: Ditto.
+        * rendering/RenderLayerCompositor.cpp: Ditto.
+
+2015-05-01  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [OS X] Text dilation parameters are not restored after being set
+        https://bugs.webkit.org/show_bug.cgi?id=144507
+        <rdar://problem/19446938>
+
+        Reviewed by Simon Fraser and Ned Holbrook.
+
+        Create a RAII class who is in charge of saving, applying, and restoring dilation parameters. Use this class
+        around our text drawing routines.
+
+        Note that this migrates our use of CTFontSetRenderingParameters() to CTFontSetRenderingStyle().
+
+        Test: fast/text/dilation-save-restore.html
+
+        * platform/graphics/cocoa/FontCascadeCocoa.mm:
+        (WebCore::RenderingStyleSaver::RenderingStyleSaver):
+        (WebCore::RenderingStyleSaver::~RenderingStyleSaver):
+        (WebCore::showGlyphsWithAdvances):
+        * platform/spi/cg/CoreGraphicsSPI.h:
+        * platform/spi/cocoa/CoreTextSPI.h:
+
+2015-05-01  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r183687.
+        https://bugs.webkit.org/show_bug.cgi?id=144505
+
+        Appears to have caused assertions (Requested by ap on
+        #webkit).
+
+        Reverted changeset:
+
+        "Media control volume slider is opaque."
+        https://bugs.webkit.org/show_bug.cgi?id=144470
+        http://trac.webkit.org/changeset/183687
+
+2015-05-01  Jeremy Jones  <jeremyj@apple.com>
+
+        Stop using deprecated AVKit SPI for enter and exit fullscreen.
+        https://bugs.webkit.org/show_bug.cgi?id=144493
+
+        Reviewed by Jer Noble.
+
+        Replace 
+            -enterFullScreenWithCompletionHandler:
+            -exitFullScreenWithCompletionHandler:
+        with
+            -enterFullScreenAnimated:completionHandler:
+            -exitFullScreenAnimated:completionHandler:
+        
+        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
+        (WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard):
+        (WebVideoFullscreenInterfaceAVKit::exitFullscreenInternal):
+        * platform/spi/cocoa/AVKitSPI.h:
+
+2015-05-01  Roger Fong  <roger_fong@apple.com>
+
+        Media control volume slider is opaque.
+        https://bugs.webkit.org/show_bug.cgi?id=144470.
+        <rdar://problem/20770350>
+
+        Rubberstamped by Simon Fraser.
+
+        * Modules/mediacontrols/mediaControlsApple.css:
+        (audio::-webkit-media-controls-panel): 
+        Don't create a stacking context just for the controls.
+        Doing so causes the mix-blend-mode on the volume box to fail.
+
+2015-05-01  Joanmarie Diggs  <jdiggs@igalia.com>
+
+        [GTK] REGRESSION(183368): It made editing tests assert
+        https://bugs.webkit.org/show_bug.cgi?id=144447
+
+        Reviewed by Chris Fleizach.
+
+        Don't notify platforms of editing actions of type EditActionUnspecified.
+        If we don't know what the action is, platform accessibility APIs certainly
+        won't.
+
+        Add AXTextEditTypeAttributesChange and AXTextAttributesChanged as catch-alls
+        for formatting changes. ATK lacks finely-grained signals through which to
+        specify which text attributes have changed. If other platforms have such
+        signals, new types can always be added.
+
+        Don't post an accessible replacement notification for AXTextEditTypeCut.
+        The notification is handled by DeleteSelectionCommand. It is possible for
+        white space to be inserted in preparation for a cut which was triggering
+        a not-reached assert, but insertion of whitespace in preparation for a
+        cut does not seem notification-worthy.
+
+        Treat AXTextEditTypeDictation the same as other insertion types (insert,
+        paste, typing) with respect to replacement notifications.
+
+        No new tests. The hundreds of editing tests that had been crashing seem sufficient.
+
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::AXObjectCache::showIntent):
+        (WebCore::AXObjectCache::textChangeForEditType):
+        * accessibility/AXObjectCache.h:
+        * accessibility/AXTextStateChangeIntent.h:
+        * accessibility/atk/AXObjectCacheAtk.cpp:
+        (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
+        * editing/AppendNodeCommand.cpp:
+        (WebCore::AppendNodeCommand::doApply):
+        (WebCore::AppendNodeCommand::doUnapply):
+        * editing/DeleteFromTextNodeCommand.cpp:
+        (WebCore::DeleteFromTextNodeCommand::doApply):
+        (WebCore::DeleteFromTextNodeCommand::doUnapply):
+        * editing/EditCommand.cpp:
+        (WebCore::EditCommand::applyEditType):
+        (WebCore::EditCommand::unapplyEditType):
+        * editing/InsertIntoTextNodeCommand.cpp:
+        (WebCore::InsertIntoTextNodeCommand::doApply):
+        (WebCore::InsertIntoTextNodeCommand::doUnapply):
+        * editing/InsertNodeBeforeCommand.cpp:
+        (WebCore::InsertNodeBeforeCommand::doApply):
+        (WebCore::InsertNodeBeforeCommand::doUnapply):
+        * editing/ReplaceInsertIntoTextNodeCommand.cpp:
+        (WebCore::ReplaceInsertIntoTextNodeCommand::notifyAccessibilityForTextChange):
+
+2015-05-01  Brady Eidson  <beidson@apple.com>
+
+        Add API to disable meta refreshes.
+        <rdar://problem/20333198> and https://bugs.webkit.org/show_bug.cgi?id=144269
+
+        Reviewed by Alexey Proskuryakov.
+
+        Test: loader/meta-refresh-disabled.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::processHttpEquiv): Bail early if Settings have meta refreshes disabled.
+        * page/Settings.in:
+
+2015-05-01  Martin Robinson  <mrobinson@igalia.com>
+
+        [Freetype] Properly support synthetic oblique in vertical text
+        https://bugs.webkit.org/show_bug.cgi?id=144492
+
+        Reviewed by Sergio Villar Senin.
+
+        No new tests. Covered by existing tests.
+
+        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
+        (WebCore::FontPlatformData::initializeWithFontFace): Skew vertical when using synthetic
+        oblique for vertical text.
+
+2015-05-01  Joanmarie Diggs  <jdiggs@igalia.com>
+
+        AX: [ATK] REGRESSION: accessibility/canvas-fallback-content.html now crashes
+        https://bugs.webkit.org/show_bug.cgi?id=144481
+
+        Reviewed by Chris Fleizach.
+
+        Canvas fallback content is allowed to be focusable if the canvas is displayed
+        and visible. Update the style when creating an accessible object for a node in
+        a canvas subtree and before Element::isFocusable() gets called.
+
+        No new tests. The existing, crashing test no longer crashes.
+
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::AXObjectCache::getOrCreate):
+
+2015-05-01  Alex Christensen  <achristensen@webkit.org>
+
+        [Content Extensions] Add CombinedURLFilters debugging code.
+        https://bugs.webkit.org/show_bug.cgi?id=144491
+
+        Reviewed by Daniel Bates.
+
+        No change in behavior.
+
+        * contentextensions/CombinedURLFilters.cpp:
+        (WebCore::ContentExtensions::recursiveMemoryUsed):
+        (WebCore::ContentExtensions::CombinedURLFilters::memoryUsed):
+        (WebCore::ContentExtensions::prefixTreeVertexToString):
+        (WebCore::ContentExtensions::recursivePrint):
+        (WebCore::ContentExtensions::CombinedURLFilters::print):
+        (WebCore::ContentExtensions::CombinedURLFilters::addPattern):
+        (WebCore::ContentExtensions::generateNFAForSubtree):
+        (WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
+        * contentextensions/CombinedURLFilters.h:
+        * contentextensions/NFA.cpp:
+        (WebCore::ContentExtensions::NFA::memoryUsed):
+        * contentextensions/NFA.h:
+        * contentextensions/Term.h:
+        (WebCore::ContentExtensions::quantifierToString):
+        (WebCore::ContentExtensions::Term::toString):
+
+2015-05-01  Eric Carlson  <eric.carlson@apple.com>
+
+        Fix text track language selection logic
+        https://bugs.webkit.org/show_bug.cgi?id=144467
+
+        Reviewed by Brent Fulgham.
+
+        No new tests, media/track/track-language-preference.html was updated.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::configureTextTrackGroup): Correct a minor style typo.
+        (WebCore::HTMLMediaElement::configureTextTrackDisplay): Update logging.
+
+        * page/CaptionUserPreferences.cpp:
+        (WebCore::CaptionUserPreferences::textTrackSelectionScore): Minor cleanup.
+        (WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Give exact matches a
+        higher score.
+
+        * page/CaptionUserPreferencesMediaAF.cpp:
+        (WebCore::CaptionUserPreferencesMediaAF::textTrackSelectionScore): Update for 
+        indexOfBestMatchingLanguageInList change.
+
+        * platform/Language.cpp:
+        (WebCore::indexOfBestMatchingLanguageInList): Add parameter for exact match. Convert the
+        passed language to lower case as we do with the preferred languages.
+        * platform/Language.h:
+
+2015-05-01  Martin Robinson  <mrobinson@igalia.com>
+
+        [Freetype] Add support for the font-synthesis property
+        https://bugs.webkit.org/show_bug.cgi?id=144472
+
+        Reviewed by Sergio Villar Senin.
+
+        No new tests. This causes fast/css3-text/font-synthesis.html to pass
+        for WebKitGTK+.
+
+        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
+        (WebCore::FontPlatformData::FontPlatformData): Only use synthetic bold when the font description allows it.
+        (WebCore::FontPlatformData::initializeWithFontFace): Ditto for synthetic oblique.
+
+2015-05-01  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] New CORS tests from r183280 fail on WebKitGTK+
+        https://bugs.webkit.org/show_bug.cgi?id=144469
+
+        Reviewed by Sergio Villar Senin.
+
+        No new tests. This causes failing tests to pass.
+
+        * platform/network/soup/ResourceHandleSoup.cpp:
+        (WebCore::doRedirect): Clear the origin header on cross-origin redirects.
+
+2015-04-30  Alex Christensen  <achristensen@webkit.org>
+
+        Compile fix when using content extensions debugging code.
+
+        * contentextensions/ContentExtensionCompiler.cpp:
+        (WebCore::ContentExtensions::compileRuleList):
+        * contentextensions/ContentExtensionsDebugging.h:
+        * contentextensions/DFA.cpp:
+        (WebCore::ContentExtensions::printTransitions):
+        (WebCore::ContentExtensions::DFA::debugPrintDot):
+        * contentextensions/DFANode.h:
+        * contentextensions/NFA.cpp:
+        (WebCore::ContentExtensions::NFA::memoryUsed):
+        (WebCore::ContentExtensions::NFA::debugPrintDot):
+
+2015-04-30  Dan Bernstein  <mitz@apple.com>
+
+        Fixed the build for <rdar://problem/20758514>
+
+        * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
+        (WebCore::AudioSourceProviderAVFObjC::destroyMix): Don’t pass nil to
+        -[AVMutableAudioMix setInputParameters:].
+
+2015-04-30  Daniel Bates  <dabates@apple.com>
+
+        Clean up: Remove unnecessary runtime computation of string length
+        https://bugs.webkit.org/show_bug.cgi?id=144483
+
+        Reviewed by Joseph Pecoraro.
+
+        Following <http://trac.webkit.org/changeset/183649>, WebCore::fullyQualifiedInfoTableName()
+        computes strlen() of the first string literal as part of concatenating two string literals.
+        It is sufficient to use sizeof() - 1 instead of strlen() to compute the length of the first
+        string literal because the size of the string literal is known at compile time.
+
+        * Modules/webdatabase/DatabaseBackendBase.cpp:
+        (WebCore::fullyQualifiedInfoTableName):
+
+2015-04-30  Dean Jackson  <dino@apple.com>
+
+        Expose -apple-system as a font family
+        https://bugs.webkit.org/show_bug.cgi?id=144484
+        <rdar://problem/20767330>
+
+        Reviewed by Tim Horton.
+
+        Accept "-apple-system" for the font-family property, and
+        rename "-apple-system-font-monospaced-numbers" to
+        "-apple-system-monospaced-numbers".
+
+        Also change the media controls to use the new name.
+
+        Covered by existing tests and this new one:
+            fast/text/system-font-legacy-name.html
+
+        * Modules/mediacontrols/mediaControlsApple.css:
+        (audio::-webkit-media-controls-time-remaining-display):
+        * Modules/mediacontrols/mediaControlsiOS.css:
+        (::-webkit-media-controls):
+        (audio::-webkit-media-controls-time-remaining-display):
+        (audio::-webkit-media-controls-status-display):
+        * platform/graphics/ios/FontCacheIOS.mm: Add support for the new name.
+        (WebCore::createCTFontWithFamilyNameAndWeight):
+        * platform/graphics/mac/FontCacheMac.mm: Ditto.
+        (WebCore::fontWithFamily):
+
+2015-04-30  Javier Fernandez  <jfernandez@igalia.com>
+
+        [CSS Grid Layout] overflow-position keyword for align and justify properties.
+        https://bugs.webkit.org/show_bug.cgi?id=144235
+
+        Reviewed by Sergio Villar Senin.
+
+        When the alignment subject is larger than the alignment container,
+        it will overflow. Some alignment modes, if honored in this
+        situation, may cause data loss; an overflow alignment mode can be
+        explicitly specified to avoid this.
+
+        This patch implements overflow-keyword handling for Grid Layout on
+        align-self and justify-self properties.
+
+        Test: fast/css-grid-layout/grid-align-justify-overflow.html
+
+        * rendering/RenderGrid.cpp:
+        (WebCore::computeOverflowAlignmentOffset):
+        (WebCore::RenderGrid::rowPositionForChild):
+        (WebCore::RenderGrid::columnPositionForChild):
+        (WebCore::RenderGrid::rowAxisPositionForChild): Deleted.
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::resolveAlignmentData):
+        (WebCore::resolveJustificationData):
+        (WebCore::RenderStyle::resolveAlignment):
+        (WebCore::RenderStyle::resolveAlignmentOverflow):
+        (WebCore::RenderStyle::resolveJustification):
+        (WebCore::RenderStyle::resolveJustificationOverflow):
+        * rendering/style/RenderStyle.h:
+
+2015-04-30  Jon Honeycutt  <jhoneycutt@apple.com>
+
+        Rebaseline bindings tests results after r183648.
+
+        Unreviewed.
+
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
+        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
+        (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
+        (WebCore::setJSTestInterfaceImplementsStr2):
+        (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
+        (WebCore::setJSTestInterfaceSupplementalStr2):
+        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
+        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
+        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
+        (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
+        (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
+        (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
+        (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::setJSTestObjConstructorStaticStringAttr):
+        (WebCore::setJSTestObjStringAttr):
+        (WebCore::setJSTestObjReflectedStringAttr):
+        (WebCore::setJSTestObjReflectedURLAttr):
+        (WebCore::setJSTestObjReflectedCustomURLAttr):
+        (WebCore::setJSTestObjStringAttrWithGetterException):
+        (WebCore::setJSTestObjStringAttrWithSetterException):
+        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
+        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
+        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
+        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
+        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
+        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
+        (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
+        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
+        (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
+        (WebCore::setJSTestTypedefsStringAttrWithGetterException):
+        (WebCore::setJSTestTypedefsStringAttrWithSetterException):
+        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
+
+2015-04-30  Simon Fraser  <simon.fraser@apple.com>
+
+        Fixed elements end up in the middle of the view with pageScale < 1
+        https://bugs.webkit.org/show_bug.cgi?id=144428
+        rdar://problem/20404982
+
+        Reviewed by Tim Horton.
+
+        When pageScale is < 1, we used fixed layout mode, and FrameView::fixedElementsLayoutRelativeToFrame()
+        returns true. However, the scrolling thread was calling the static scrollOffsetForFixedPosition()
+        hardcoding 'false' for this parameter.
+        
+        Fix by sending the value of fixedElementsLayoutRelativeToFrame over to the scrolling thread,
+        so we can use it when doing scrolling-thread fixed position stuff.
+
+        Not testable.
+
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
+        * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
+        (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
+        (WebCore::ScrollingStateFrameScrollingNode::setFixedElementsLayoutRelativeToFrame):
+        * page/scrolling/ScrollingStateFrameScrollingNode.h:
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode):
+        (WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        (WebCore::ScrollingTreeFrameScrollingNode::fixedElementsLayoutRelativeToFrame):
+        (WebCore::ScrollingTreeFrameScrollingNode::shouldUpdateScrollLayerPositionSynchronously): Deleted.
+        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
+        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
+
+2015-04-30  Beth Dakin  <bdakin@apple.com>
+
+        Remove invalid assertion from MouseEvent::create()
+        https://bugs.webkit.org/show_bug.cgi?id=144477
+
+        Reviewed by Tim Horton.
+
+        mouseforcechanged events and mouseforcewillbegin trigger this assertion. The 
+        assertion does not seem valuable, so rather than changing it, just remove it.
+        * dom/MouseEvent.cpp:
+        (WebCore::MouseEvent::create):
+
+2015-04-30  Dean Jackson  <dino@apple.com>
+
+        -apple-system-font-monospaced-numbers doesn't work on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=144478
+        <rdar://problem/20544940>
+
+        Reviewed by Brent Fulgham.
+
+        Make sure to start from the system font descriptor when
+        asking for a monospaced numeric alternate.
+
+        Test: platform/ios-simulator/fast/text/system-monospaced-numbers.html
+
+        * platform/graphics/ios/FontCacheIOS.mm:
+        (WebCore::createCTFontWithFamilyNameAndWeight):
+
+2015-04-30  Oliver Hunt  <oliver@apple.com>
+
+        DOM bindings should not be using a reference type to point to a temporary object
+        https://bugs.webkit.org/show_bug.cgi?id=144474
+
+        Reviewed by Beth Dakin.
+
+        The DOM bindings will currently try and use a local reference to point
+        to a temporary object. This currently works as a by product of the compiler's
+        stack layout. This patch removes the dependency on undefined behaviour
+        by ensuring that we use a value rather than reference type.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateParametersCheck):
+        (GetNativeTypeForCallbacks):
+
+2015-04-30  Brady Eidson  <beidson@apple.com>
+
+        Build fix after r183646 for less enlightened platforms.
+
+        Unreviewed.
+
+        * Modules/webdatabase/DatabaseBackendBase.cpp:
+        (WebCore::fullyQualifiedInfoTableName): Windows doesn’t have stpcpy :(
+
+2015-04-30  Brady Eidson  <beidson@apple.com>
+
+        Javascript using WebSQL can create their own WebKit info table.
+        <rdar://problem/20688792> and https://bugs.webkit.org/show_bug.cgi?id=144466
+
+        Reviewed by Alex Christensen.
+
+        Test: storage/websql/alter-to-info-table.html
+
+        * Modules/webdatabase/DatabaseBackendBase.cpp:
+        (WebCore::DatabaseBackendBase::databaseInfoTableName): Return the info table name.
+        (WebCore::fullyQualifiedInfoTableName): Append "main." to the info table name.
+        (WebCore::DatabaseBackendBase::DatabaseBackendBase): Use the fully qualified name.
+        (WebCore::DatabaseBackendBase::performOpenAndVerify): Ditto.
+        (WebCore::DatabaseBackendBase::getVersionFromDatabase): Ditto.
+        (WebCore::DatabaseBackendBase::setVersionInDatabase): Ditto.
+
+2015-04-30  Beth Dakin  <bdakin@apple.com>
+
+        Should choose UIScrollView indicatorStyle based on the document background color
+        https://bugs.webkit.org/show_bug.cgi?id=144473
+        -and corresponding-
+        rdar://problem/19897699
+
+        Reviewed by Simon Fraser.
+
+        Export this function.
+        * platform/graphics/Color.h:
+
+2015-04-30  Brent Fulgham  <bfulgham@apple.com>
+
+        [Win] Allow WebKit to build without ANGLE support
+        https://bugs.webkit.org/show_bug.cgi?id=144459
+        <rdar://problem/20707307>
+
+        Reviewed by Dean Jackson.
+
+        * platform/graphics/GLContext.cpp: Use the ENABLE(GRAPHICS_CONTEXT_3D)
+        macro to avoid compiling this code if not using WEBGL/3D contexts.
+
+2015-04-29  David Hyatt  <hyatt@apple.com>
+
+        Avoid containingBlock() calls when no writing mode flipping is needed.
+        https://bugs.webkit.org/show_bug.cgi?id=144407
+
+        Reviewed by Simon Fraser.
+
+        Add a bool to RenderView that indicates whether or not any flipped blocks have been
+        added to the view. Once tainted, the view just stays dirty forever. If no flipped
+        blocks are ever seen, we can then optimize away calls to containingBlock().
+
+        The motivation for this patch is to improve layer position updating, which makes many
+        calls to topLeftLocationOffset(), one of the functions that can be optimized by this
+        change.
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::layoutOverflowRectForPropagation):
+        * rendering/RenderBoxModelObject.cpp:
+        (WebCore::RenderBoxModelObject::updateFromStyle):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::calculateClipRects):
+        * rendering/RenderLineBoxList.cpp:
+        (WebCore::RenderLineBoxList::rangeIntersectsRect):
+        * rendering/RenderView.cpp:
+        (WebCore::RenderView::RenderView):
+        * rendering/RenderView.h:
+
+2015-04-29  Jer Noble  <jer.noble@apple.com>
+
+        Make GenericTaskQueue even more generic (and usable inside platform/)
+        https://bugs.webkit.org/show_bug.cgi?id=144414
+
+        Reviewed by Eric Carlson.
+
+        Templatize GenericTaskQueue so that it can be used from within platform/.
+
+        * CMakeLists.txt:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/GenericTaskQueue.cpp: Removed.
+        * html/HTMLMediaElement.h:
+        * platform/GenericTaskQueue.h: Renamed from Source/WebCore/dom/GenericTaskQueue.h.
+        (WebCore::TaskDispatcher::TaskDispatcher): Added default templatized class which just calls the parameter's postTask().
+        (WebCore::TaskDispatcher::postTask): Call context's postTask().
+        (WebCore::TaskDispatcher<Timer>::TaskDispatcher): Add a timer version which does not require a context.
+        (WebCore::TaskDispatcher<Timer>::postTask): Set the timer.
+        (WebCore::TaskDispatcher<Timer>::timerFired): Call the task.
+        (WebCore::GenericTaskQueue::GenericTaskQueue): Moved from .cpp.
+        (WebCore::GenericTaskQueue::enqueueTask): Ditto.
+        (WebCore::GenericTaskQueue::close): Ditto.
+        (WebCore::GenericTaskQueue::cancelAllTasks): Ditto.
+        (WebCore::GenericTaskQueue::hasPendingTasks): Ditto.
+
+2015-04-29  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Unreviewed build fix. WebCore has a weak symbol.
+
+        WebCore has a weak external symbol in it. A common cause of weak external
+        symbols is when an inline function is listed in the linker export file.
+        ERROR: symbol __ZNK7WebCore4Page25expectsWheelEventTriggersEv
+
+        * page/Page.cpp:
+        (WebCore::Page::expectsWheelEventTriggers):
+        * page/Page.h:
+        (WebCore::Page::expectsWheelEventTriggers): Deleted.
+
+2015-04-29  Simon Fraser  <simon.fraser@apple.com>
+
+        Crash at WebCore::Document::absoluteRegionForEventTargets 
+        https://bugs.webkit.org/show_bug.cgi?id=144426
+        rdar://problem/20502166
+
+        Reviewed by Tim Horton.
+
+        When a frame had wheel event handlers, we would register the document itself
+        as a handler in its parent document. This is problematic, because there's not
+        code path that removes it when the frame is destroyed.
+        
+        It turns out we don't need to do this at all; the non-fast scrollable region
+        already takes handlers in subframes into account.
+
+        Tests: fast/events/wheelevent-in-frame.html
+               fast/events/wheelevent-in-reattached-frame.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::didAddWheelEventHandler):
+        (WebCore::Document::didRemoveWheelEventHandler):
+
+2015-04-29  Eric Carlson  <eric.carlson@apple.com>
+
+        Not all videos should automatically play to playback target
+        https://bugs.webkit.org/show_bug.cgi?id=144430
+        <rdar://problem/20718523>
+
+        Reviewed by Darin Adler.
+
+        * Modules/mediasession/WebMediaSessionManager.cpp:
+        (WebCore::WebMediaSessionManager::clientStateDidChange): Consider ExternalDeviceAutoPlayCandidate.
+        Minor cleanup.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaState): Set ExternalDeviceAutoPlayCandidate when a <video>
+        has a file with an audio track that does not loop.
+
+        * page/MediaProducer.h: Add ExternalDeviceAutoPlayCandidate.
+
+2015-04-29  Joseph Pecoraro  <pecoraro@apple.com>
+
+        LiveNodeList may unexpectedly return an element for empty string
+        https://bugs.webkit.org/show_bug.cgi?id=144429
+
+        Reviewed by Darin Adler.
+
+        * dom/LiveNodeList.cpp:
+        (WebCore::LiveNodeList::namedItem):
+        Never return a result for an empty string.
+
+2015-04-29  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
+
+        Remove PassRefPtr in SVGFEFooElement classes
+        https://bugs.webkit.org/show_bug.cgi?id=144425
+
+        Reviewed by Darin Adler.
+
+        As a step to use Ref instead of PassRefPtr, this patch purges PassRefPtr
+        in SVGFEFooElement.
+
+        No new tests, no behavior changes.
+
+        * css/RGBColor.cpp:
+        (WebCore::RGBColor::create):
+        * css/RGBColor.h:
+        * platform/graphics/filters/PointLightSource.h:
+        (WebCore::PointLightSource::create):
+        * platform/graphics/filters/SpotLightSource.h:
+        (WebCore::SpotLightSource::create):
+        * svg/SVGColor.cpp:
+        (WebCore::SVGColor::rgbColor):
+        * svg/SVGColor.h:
+        * svg/SVGFEDistantLightElement.cpp:
+        (WebCore::SVGFEDistantLightElement::lightSource):
+        * svg/SVGFEDistantLightElement.h:
+        * svg/SVGFELightElement.cpp:
+        (WebCore::SVGFELightElement::findLightSource):
+        * svg/SVGFELightElement.h:
+        * svg/SVGFEPointLightElement.cpp:
+        (WebCore::SVGFEPointLightElement::lightSource):
+        * svg/SVGFEPointLightElement.h:
+        * svg/SVGFESpotLightElement.cpp:
+        (WebCore::SVGFESpotLightElement::lightSource):
+        * svg/SVGFESpotLightElement.h:
+
+2015-04-29  Dean Jackson  <dino@apple.com>
+
+        Create a named CSS property for system colors
+        https://bugs.webkit.org/show_bug.cgi?id=144423
+        <rdar://problem/20491011>
+
+        Reviewed by Tim Horton.
+
+        Test: fast/css/apple-system-colors.html
+
+        Expose the following values to CSS color properties:
+            -apple-system-blue
+            -apple-system-brown
+            -apple-system-gray
+            -apple-system-green
+            -apple-system-orange
+            -apple-system-pink
+            -apple-system-purple
+            -apple-system-red
+            -apple-system-yellow
+
+        On platforms other than OS X Yosemite and iOS, the
+        actual color values are undefined and become transparent
+        black. (In fact, not all are defined on iOS either.)
+
+        * WebCore.xcodeproj/project.pbxproj: Two new SPI header files.
+
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::validSystemColorValue): New helper function that
+        checks if a CSSValueID is between the two system color values. This
+        was being tested everywhere, which meant adding a new system color was
+        at risk of being ignored. It's a static method so it can be used
+        from the SVG CSS parser too.
+        (WebCore::validPrimitiveValueColor): Use the new helper.
+        (WebCore::CSSParser::parseValue): Ditto.
+        (WebCore::CSSParser::parseBackgroundColor): Ditto.
+        (WebCore::CSSParser::parseShadow): Ditto.
+        (WebCore::parseDeprecatedGradientColorStop): Ditto.
+        (WebCore::parseGradientColorOrKeyword): Ditto.
+        * css/CSSParser.h: New static helper function.
+
+        * css/CSSValueKeywords.in: Add the new CSS value keywords.
+
+        * css/SVGCSSParser.cpp:
+        (WebCore::validSystemControlColorValue): SVG has a restricted
+        set of system colors, so use the helper from CSSParser but with
+        an extra condition.
+        (WebCore::CSSParser::parseSVGValue): Use the helper.
+
+        * platform/spi/ios/UIColorSPI.h: Added.
+        * platform/spi/cocoa/NSColorSPI.h: Added.
+
+        * rendering/RenderThemeIOS.h: New systemColor override. Also add a cache for system colors.
+        * rendering/RenderThemeIOS.mm:
+        (WebCore::RenderThemeIOS::systemColor): Ask UIColor to provide the color values for the new CSS values.
+        * rendering/RenderThemeMac.mm:
+        (WebCore::RenderThemeMac::systemColor): Ditto.
+
+2015-04-29  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r183600.
+        https://bugs.webkit.org/show_bug.cgi?id=144432
+
+        New tests time out everywhere (Requested by ap on #webkit).
+
+        Reverted changeset:
+
+        "Crash at WebCore::Document::absoluteRegionForEventTargets"
+        https://bugs.webkit.org/show_bug.cgi?id=144426
+        http://trac.webkit.org/changeset/183600
+
+2015-04-29  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Unreviewed iOS build fix. Unused parameter no longer exists.
+
+        * page/scrolling/ScrollingCoordinator.cpp:
+        (WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame):
+
+2015-04-29  Simon Fraser  <simon.fraser@apple.com>
+
+        Crash at WebCore::Document::absoluteRegionForEventTargets 
+        https://bugs.webkit.org/show_bug.cgi?id=144426
+        rdar://problem/20502166
+
+        Reviewed by Tim Horton.
+
+        When a frame had wheel event handlers, we would register the document itself
+        as a handler in its parent document. This is problematic, because there's not
+        code path that removes it when the frame is destroyed.
+        
+        It turns out we don't need to do this at all; the non-fast scrollable region
+        already takes handlers in subframes into account.
+
+        Tests: fast/events/wheelevent-in-frame.html
+               fast/events/wheelevent-in-reattached-frame.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::didAddWheelEventHandler):
+        (WebCore::Document::didRemoveWheelEventHandler):
+
+2015-04-29  David Kilzer  <ddkilzer@apple.com>
+
+        Attempt #2: Switch QuickLook soft-linking to use QuickLookSoftLink.{h,mm}
+        <http://webkit.org/b/144362>
+
+        Reviewed by Andy Estes.
+
+        This patch switches soft-linking of QuickLook.framework to
+        QuickLookSoftLink.{h,mm} so that we stop exporting unintended
+        symbols.
+
+        No new tests since no change in behavior.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        - Add QuickLookSoftLinking.{h,mm} to the project.
+
+        * platform/ios/QuickLookSoftLink.h: Added.
+        * platform/ios/QuickLookSoftLink.mm: Added.
+        * platform/mac/SoftLinking.h:
+        (SOFT_LINK_CLASS_FOR_HEADER): Add macro.
+        (SOFT_LINK_CLASS_FOR_SOURCE): Add macro.
+        (SOFT_LINK_POINTER_FOR_HEADER): Add macro.
+        (SOFT_LINK_POINTER_FOR_SOURCE): Add macro.
+
+        * platform/network/ios/QuickLook.h:
+        - Remove unused declarations.
+
+        * platform/network/ios/QuickLook.mm:
+        (WebCore::QLPreviewConverterClass): Deleted.
+        (WebCore::QLTypeCopyBestMimeTypeForFileNameAndMimeType): Deleted.
+        (WebCore::QLTypeCopyBestMimeTypeForURLAndMimeType): Deleted.
+        (WebCore::QLTypeCopyUTIForURLAndMimeType): Deleted.
+        - Remove SOFT_LINK macros and unused methods after switching to
+          new QuickLookSoftLink.{h,mm}.
+        (WebCore::QLPreviewGetSupportedMIMETypesSet):
+        - Switch to use NeverDestroyed<>.
+        (WebCore::registerQLPreviewConverterIfNeeded):
+        (createQLPreviewProtocol):
+        (WebCore::QLPreviewProtocol):
+        (WebCore::QuickLookHandle::QuickLookHandle):
+        (WebCore::QuickLookHandle::create):
+        (WebCore::QuickLookHandle::shouldCreateForMIMEType):
+        - Simplify code when using QuickLookSoftLink.h.
+
+        * platform/network/ios/WebCoreURLResponseIOS.mm:
+        - Include QuickLookSoftLink.h header.
+
+2015-04-29  Simon Fraser  <simon.fraser@apple.com>
+
+        Compute the non-fast-scrollable region in main-document coordinates
+        https://bugs.webkit.org/show_bug.cgi?id=144420
+
+        Reviewed by Tim Horton.
+
+        Compute the non-fast-scrollable region in document coordinates, to make it easier
+        to reason about. Previously, it was document coordinates offset by top content inset.
+
+        * page/DebugPageOverlays.cpp:
+        (WebCore::MouseWheelRegionOverlay::updateRegion): Traverse all frames to compute the wheel
+        event handler region, mapping each to root view coords, and then mapping back into document
+        coords at the end.
+        (WebCore::NonFastScrollableRegionOverlay::updateRegion): No offset needed here; the
+        overlay and region are both document coordinates.
+        * page/FrameView.h: Make some mapping function overrides public, and expose widgetsInRenderTree().
+        * page/Page.cpp:
+        (WebCore::Page::nonFastScrollableRects): Remove frame argument.
+        * page/Page.h:
+        * page/PageOverlay.cpp:
+        (WebCore::PageOverlay::bounds):
+        (WebCore::PageOverlay::viewToOverlayOffset): Convenience function to map between
+        view and overlay coordinates.
+        * page/PageOverlay.h:
+        * page/scrolling/AsyncScrollingCoordinator.cpp: New computeNonFastScrollableRegion() signature.
+        (WebCore::AsyncScrollingCoordinator::updateNonFastScrollableRegion):
+        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
+        (WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):
+        * page/scrolling/ScrollingCoordinator.cpp:
+        (WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame): This function
+        recurses on frames, computing an absolute (document-relative) region per frame. This
+        removes the confusing offsetting through top content inset.
+        Change how we get to plugins that want wheel events; we can't get from PluginViewBase
+        to renderers, so use FrameView's list of Widgets, and their RenderWidgets. This fixes
+        regions for transformed plugin-ins.
+        For subframes, we get a region in the subframe's document coords. Map to that sub-frame,
+        then to our frame, then to our document.
+        (WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegion): Wrapper that hides
+        the recursive function.
+        (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Deleted.
+        * page/scrolling/ScrollingCoordinator.h:
+        * page/scrolling/ScrollingTree.cpp:
+        (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Map the event point
+        from view coordinates to document coordinates for testing against the non-fast region.
+        We previously assert that the root note is a FrameScrolling node.
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::viewToContentsOffset): Similar to ScrollView::viewToContents()
+        for the scrolling tree.
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::nonFastScrollableRects): No need for frame arg.
+
+2015-04-29  Brent Fulgham  <bfulgham@apple.com>
+
+        Expand test infrastructure to support scrolling tests
+        https://bugs.webkit.org/show_bug.cgi?id=143684
+        <rdar://problem/20375516>
+
+        Reviewed by Simon Fraser.
+
+        Tested by various fast/scrolling and platform/mac-wk2/tiled-drawing/scrolling tests.
+
+        This series of changes adds a new singleton class, 'WheelEventTestTrigger', which encapsulates a
+        function object to be fired when scroll events are finished. The object also keeps track of reasons
+        why the test should not yet fire (e.g., 'rubberbanding' is active) so that tests do not incorrectly
+        check rendering state in the middle of an animation.
+
+        Switch from the original WeakPtr design to ThreadSafeRefPtr, because WeakPtr cannot be shared
+        across multiple threads.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::layout): Make sure ScrollAnimator knows about any active test trigger.
+        (WebCore::FrameView::setScrollPosition): Ditto.
+        (WebCore::FrameView::didAddScrollbar): Ditto.
+        * page/MainFrame.cpp:
+        (WebCore::MainFrame::testTrigger): Moved to Page.
+        (WebCore::MainFrame::ensureTestTrigger): Ditto.
+        * page/MainFrame.h:
+        * page/Page.cpp:
+        (WebCore::Page::testTrigger): Moved from MainFrame, and converted to use RefPtr.
+        (WebCore::Page::ensureTestTrigger): Ditto.
+        * page/Page.h:
+        * page/WheelEventTestTrigger.cpp:
+        (WebCore::WheelEventTestTrigger::WheelEventTestTrigger): Remove WeakPtr code.
+        (WebCore::WheelEventTestTrigger::createWeakPtr): Deleted.
+        * page/WheelEventTestTrigger.h:
+        * page/mac/EventHandlerMac.mm:
+        (WebCore::EventHandler::platformPrepareForWheelEvents): Make sure the scroll animator knows about
+        any active test trigger object.
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): Notify WheelEventTestTrigger
+        that the scrolling thread is synced with the main thread.
+        * platform/ScrollAnimator.h: Hold a RefPtr to the WheelEventTestTrigger. 
+        (WebCore::ScrollAnimator::ScrollAnimator::setWheelEventTestTrigger):
+        * platform/cocoa/ScrollController.h:
+        * platform/cocoa/ScrollController.mm:
+        (WebCore::ScrollController::startSnapRubberbandTimer): Notify test trigger to hold tests until rubber band
+        snapping is complete.
+        (WebCore::ScrollController::stopSnapRubberbandTimer): Notify test trigger that rubber band snapping is done.
+        (WebCore::ScrollController::startScrollSnapTimer): Notify test trigger to hold tests until scroll snapping
+        is complete.
+        (WebCore::ScrollController::stopScrollSnapTimer): Notify test trigger that scroll snapping is done.
+        * platform/mac/ScrollAnimatorMac.mm:
+        (WebCore::ScrollAnimatorMac::didBeginScrollGesture): Notify test trigger that a content scroll is in progress.
+        (WebCore::ScrollAnimatorMac::didEndScrollGesture): Notify test trigger that a content scroll is finished.
+        (WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon): Notify test trigger to hold tests until the content
+        scrolling is complete.
+        (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired): Notify test trigger that content scrolling is done.
+        * rendering/RenderBox.cpp:
+        (WebCore::connectScrollAnimatorToTestTrigger): Helper function.
+        (WebCore::RenderBox::setScrollLeft): Call 'connectScrollAnimatorToTestTrigger' to connect the ScrollAnimator
+        to the WheelEventTestTrigger so that future scroll operations can notify the test infrastructure.
+        (WebCore::RenderBox::setScrollTop): Ditto.
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::createScrollbar): Make sure the ScrollAnimator knows about any active test triggers.
+        * rendering/RenderListBox.cpp:
+        (WebCore::connectScrollAnimatorToTestTrigger): Helper function.
+        (WebCore::RenderListBox::setScrollLeft): Call 'connectScrollAnimatorToTestTrigger' to connect the ScrollAnimator
+        to the WheelEventTestTrigger so that future scroll operations can notify the test infrastructure.
+        (WebCore::RenderListBox::setScrollTop): Ditto.
+        (WebCore::RenderListBox::createScrollbar): Ditto.
+        * testing/js/WebCoreTestSupport.cpp:
+        (WebCoreTestSupport::monitorWheelEvents): Look for WheelEventTestTrigger in Page, rather than MainFrame.
+        (WebCoreTestSupport::setTestCallbackAndStartNotificationTimer): Ditto.
+
+2015-04-29  Javier Fernandez  <jfernandez@igalia.com>
+
+        [CSS Box Alignment] Unifying alignment data in a single class
+        https://bugs.webkit.org/show_bug.cgi?id=144384
+
+        Reviewed by David Hyatt.
+
+        The new CSS Box Alignment specification introduces more complex
+        values and syntax for defining alignment properties. Most of the
+        alignment values were just keyword identifiers, but the new syntax
+        allows different combinations of identifiers to determine the
+        alignment behavior (eg. overflow-alignment keyword).
+
+        This patch wll help to implement later overflow handling and
+        specially Content Dstribution alignment, the most complex case by
+        far. It will be more consistent against style changes and repaint,
+        snce we will have just one field to monitoring for value
+        modfications.
+
+        No new tests, because no new functionality was added; it's just a
+        code refactoring which is just expected to pass current tests.
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::resolveSelfAlignmentAuto):
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSPropertyNames.in:
+        * css/StyleBuilderConverter.h:
+        (WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData):
+        (WebCore::StyleBuilderConverter::convertSVGColor): Deleted.
+        * css/StyleBuilderCustom.h:
+        (WebCore::StyleBuilderCustom::applyInitialWebkitMaskImage): Deleted.
+        (WebCore::StyleBuilderCustom::applyInheritWebkitMaskImage): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::applyValue): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::getValue): Deleted.
+        (WebCore::ApplyPropertyBorderImageModifier::setValue): Deleted.
+        (WebCore::StyleBuilderCustom::applyInheritLineHeight): Deleted.
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::adjustRenderStyle):
+        * mathml/MathMLTextElement.cpp:
+        (WebCore::MathMLTextElement::createElementRenderer):
+        * rendering/RenderFlexibleBox.cpp:
+        (WebCore::RenderFlexibleBox::styleDidChange):
+        * rendering/RenderFullScreen.cpp:
+        (WebCore::createFullScreenStyle):
+        * rendering/RenderMenuList.cpp:
+        (WebCore::RenderMenuList::adjustInnerStyle):
+        * rendering/mathml/RenderMathMLRoot.cpp:
+        (WebCore::RenderMathMLRoot::updateStyle):
+        * rendering/mathml/RenderMathMLScripts.cpp:
+        (WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
+        (WebCore::RenderMathMLScripts::fixAnonymousStyles):
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::resolveAlignment):
+        (WebCore::RenderStyle::resolveJustification):
+        * rendering/style/RenderStyle.h:
+        * rendering/style/StyleRareNonInheritedData.cpp:
+        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
+        (WebCore::StyleRareNonInheritedData::operator==):
+        (WebCore::StyleRareNonInheritedData::contentDataEquivalent): Deleted.
+        * rendering/style/StyleRareNonInheritedData.h:
+        * rendering/style/StyleSelfAlignmentData.h: Added.
+        (WebCore::StyleSelfAlignmentData::StyleSelfAlignmentData):
+        (WebCore::StyleSelfAlignmentData::setPosition):
+        (WebCore::StyleSelfAlignmentData::setPositionType):
+        (WebCore::StyleSelfAlignmentData::setOverflow):
+        (WebCore::StyleSelfAlignmentData::position):
+        (WebCore::StyleSelfAlignmentData::positionType):
+        (WebCore::StyleSelfAlignmentData::overflow):
+        (WebCore::StyleSelfAlignmentData::operator==):
+        (WebCore::StyleSelfAlignmentData::operator!=):
+
+2015-04-29  Joseph Pecoraro  <pecoraro@apple.com>
+
+        NodeList has issues with Symbol and empty string
+        https://bugs.webkit.org/show_bug.cgi?id=144310
+
+        Reviewed by Darin Adler.
+
+        Tests: fast/dom/StyleSheet/stylesheet-symbol-names.html
+               fast/dom/dataset-name-getter-symbols.html
+               fast/dom/named-items-with-empty-name.html
+               fast/dom/named-items-with-symbol-name.html
+               storage/domstorage/localstorage/named-items.html
+
+        Test different bindings objects with custom named setter
+        and getter handlers. Ensure that they handle Symbol properties
+        gracefully. Often times avoiding the string path.
+
+        * dom/StaticNodeList.cpp:
+        (WebCore::StaticNodeList::namedItem):
+        (WebCore::StaticElementList::namedItem):
+        Better handle the empty string. It should not match an item.
+
+        * bindings/js/JSDOMBinding.h:
+        (WebCore::propertyNameToString):
+        In cases where we would use this, we should have handled
+        Symbol properties.
+
+        (WebCore::propertyNameToAtomicString):
+        For Symbols, use the unique string. This should result
+        in no matches for a Symbol property.
+
+        * bindings/js/JSDOMStringMapCustom.cpp:
+        (WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):
+        (WebCore::JSDOMStringMap::deleteProperty):
+        (WebCore::JSDOMStringMap::putDelegate):
+        * bindings/js/JSStorageCustom.cpp:
+        (WebCore::JSStorage::canGetItemsForName):
+        (WebCore::JSStorage::nameGetter):
+        (WebCore::JSStorage::deleteProperty):
+        (WebCore::JSStorage::putDelegate):
+        * bindings/js/JSStyleSheetListCustom.cpp:
+        (WebCore::JSStyleSheetList::canGetItemsForName):
+        Treat Symbol properties as private properties. They just
+        go directly through to the Object, and avoid the string
+        getter/setter property path.
+
+2015-04-29  Eric Carlson  <eric.carlson@apple.com>
+
+        [Mac] Register with device picker whenever a page has <video>
+        https://bugs.webkit.org/show_bug.cgi?id=144408
+
+        Reviewed by Jer Noble.
+
+        * Modules/mediasession/WebMediaSessionManager.cpp:
+        (WebCore::WebMediaSessionManager::setPlaybackTarget): Drive-by fix: don't tell a client to play
+        to the target when it has not routes.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaState): Set RequiresPlaybackTargetMonitoring whenever the 
+        element is <video> with a video track that does not block wireless playback.
+
+2015-04-29  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK] Add support for automatic hyphenation
+        https://bugs.webkit.org/show_bug.cgi?id=44478
+
+        Reviewed by Carlos Garcia Campos.
+
+        No new tests. This patch unskips and updates results for existing hyphenation tests.
+
+        * PlatformGTK.cmake: Add the libhypen implementation to the source list.
+        * platform/gtk/GtkUtilities.cpp:
+        (WebCore::topLevelPath): Add this helper function taken from the test harness.
+        (WebCore::getWebKitBuildDirectory): Ditto.
+        * platform/gtk/GtkUtilities.h: Add function declarations for the helper functions.
+        * platform/text/Hyphenation.cpp: Surround this implementation with !USE(LIBHYPHEN),
+          so that it can still be shared.
+        * platform/text/gtk/HyphenationLibHyphen.cpp: Added.
+        (WebCore::extractLocaleFromDictionaryFilePath): Take in a dictionary filename and
+        determine the locale that it covers.
+        (WebCore::scanDirectoryForDicionaries): Look for all installed dictionaries as well
+        as ones in the JHBuild root for testing.
+        (WebCore::scanTestDictionariesDirectoryIfNecessary): Try to scan the dictionaries installed
+        in the JHBuild root.
+        (WebCore::availableLocales): Getter for global hash of installed dictionaries.
+        (WebCore::canHyphenate): Added libhyphen implementation.
+        (WebCore::HyphenationDictionary): Helper class that properly manages the memory of
+        an open libhyphen dictionary. This is useful so that they can be stored in an MRU
+        cache. This is a similar approach to the CoreFoundation implementation.
+        (WebCore::AtomicStringKeyedMRUCache<RefPtr<HyphenationDictionary>>::createValueForNullKey): MRU cache
+        helper.
+        (WebCore::AtomicStringKeyedMRUCache<RefPtr<HyphenationDictionary>>::createValueForKey): Ditto.
+        (WebCore::hyphenDictionaryCache): A cache for opened hyphenation dictionaries.
+        (WebCore::countLeadingSpaces): Count leading spaces, since WebCore often passes words with them.
+        (WebCore::lastHyphenLocation): Added libhyphen implementation.
+
+2015-04-29  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Unreviewed build fix.
+
+        * platform/graphics/mac/FontCacheMac.mm:
+        (WebCore::fontWithFamily):
+
+2015-04-29  Eric Carlson  <eric.carlson@apple.com>
+
+        Some media tests assert after r183096
+        https://bugs.webkit.org/show_bug.cgi?id=144098
+
+        Reviewed by Brent Fulgham.
+
+        Never assert when a MediaPlaybackTargetClient client calls one of the methods on Document
+        after it has been unregistered. A media element unregisters itself when it is removed from the 
+        document, but scripts can still run and modify state that results in a call to
+        playbackTargetPickerClientStateDidChange. Remove the asserts instead of adding checks to
+        the various call sites.
+
+        * dom/Document.cpp:
+        (WebCore::Document::showPlaybackTargetPicker): Don't assert if the client has already
+        been unregistered.
+        (WebCore::Document::playbackTargetPickerClientStateDidChange): Ditto.
+
+2015-04-29  Zalan Bujtas  <zalan@apple.com>
+
+        Simple line layout: Web process spins endlessly below layoutSimpleLines.
+        https://bugs.webkit.org/show_bug.cgi?id=144403
+        rdar://problem/20742783
+
+        Reviewed by Antti Koivisto.
+
+        When a text fragment overlaps multiple renderes and it does not fit the current line,
+        we revert the text fragment iterator position so that the overlapping content
+        gets processed again for the next line.
+        However, TextFragmentIterator::revertToFragment() was reverting too much and
+        we started processing old content all over again -> infinite loop.
+
+        This patch ensures that text fragment iterator is reverted to the right position.
+
+        Test: fast/text/simple-line-layout-wrapping-multiple-renderers-hang.html
+
+        * rendering/SimpleLineLayout.cpp:
+        (WebCore::SimpleLineLayout::createLineRuns):
+        * rendering/SimpleLineLayoutTextFragmentIterator.cpp:
+        (WebCore::SimpleLineLayout::TextFragmentIterator::revertToEndOfFragment):
+        (WebCore::SimpleLineLayout::TextFragmentIterator::revertToFragment): Deleted.
+        * rendering/SimpleLineLayoutTextFragmentIterator.h:
+
+2015-04-29  Filip Pizlo  <fpizlo@apple.com>
+
+        JSTypeInfo should have an inline type flag to indicate of getCallData() has been overridden
+        https://bugs.webkit.org/show_bug.cgi?id=144397
+
+        Reviewed by Andreas Kling.
+
+        If you override getCallData() and you want to be called a "function", then you need to use the
+        new TypeOfShouldCallGetCallData flag.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateHeader):
+        * bridge/objc/objc_runtime.h:
+        * bridge/runtime_method.h:
+        * bridge/runtime_object.h:
+
+2015-04-29  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r183553 and r183561.
+        https://bugs.webkit.org/show_bug.cgi?id=144406
+
+        broke the iOS build (Requested by thorton__ on #webkit).
+
+        Reverted changesets:
+
+        "Switch QuickLook soft-linking to use
+        QuickLookSoftLink.{h,mm}"
+        https://bugs.webkit.org/show_bug.cgi?id=144362
+        http://trac.webkit.org/changeset/183553
+
+        "Unreviewed iOS build fix after r183553: fix declaration of
+        QLPreviewScheme"
+        http://trac.webkit.org/changeset/183561
+
+2015-04-29  Antti Koivisto  <antti@apple.com>
+
+        ResourceLoadPriority should be enum class
+        https://bugs.webkit.org/show_bug.cgi?id=144326
+
+        Reviewed by Darin Adler.
+
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::process):
+        * loader/LinkLoader.cpp:
+        (WebCore::LinkLoader::loadLink):
+        * loader/ResourceLoadScheduler.cpp:
+        (WebCore::ResourceLoadScheduler::scheduleLoad):
+        (WebCore::ResourceLoadScheduler::servePendingRequests):
+        (WebCore::ResourceLoadScheduler::HostInformation::~HostInformation):
+        (WebCore::ResourceLoadScheduler::HostInformation::priorityToIndex):
+        (WebCore::ResourceLoadScheduler::HostInformation::schedule):
+        (WebCore::ResourceLoadScheduler::HostInformation::remove):
+        (WebCore::ResourceLoadScheduler::HostInformation::hasRequests):
+        (WebCore::ResourceLoadScheduler::HostInformation::limitRequests):
+        * loader/ResourceLoadScheduler.h:
+        (WebCore::ResourceLoadScheduler::HostInformation::requestsPending):
+
+            Modernize ResourceLoadScheduler code a bit while switching to enum class.
+
+        * loader/cache/CachedResource.cpp:
+        (WebCore::defaultPriorityForResourceType):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::requestResource):
+        * loader/icon/IconLoader.cpp:
+        (WebCore::IconLoader::startLoading):
+        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
+        (WebCore::WebCoreAVFResourceLoader::startLoading):
+        * platform/network/ResourceLoadPriority.h:
+        (WebCore::operator++):
+        (WebCore::operator--):
+        * platform/network/ResourceRequestBase.cpp:
+        (WebCore::ResourceRequestBase::adopt):
+        (WebCore::ResourceRequestBase::copyData):
+        (WebCore::ResourceRequestBase::cachePolicy):
+        (WebCore::ResourceRequestBase::priority):
+        (WebCore::ResourceRequestBase::setPriority):
+        * platform/network/ResourceRequestBase.h:
+
+            Remove bitfields. ResourceRequests are not present in large enough numbers to require this kind of optimization.
+            Use modern initialization syntax.
+
+        (WebCore::ResourceRequestBase::ResourceRequestBase):
+        (WebCore::CrossThreadResourceRequestDataBase::CrossThreadResourceRequestDataBase): Deleted.
+        * platform/network/cf/ResourceRequestCFNet.cpp:
+        (WebCore::initializeMaximumHTTPConnectionCountPerHost):
+        (WebCore::initializeHTTPConnectionSettingsOnStartup):
+        * platform/network/cf/ResourceRequestCFNet.h:
+        (WebCore::toResourceLoadPriority):
+        (WebCore::toPlatformRequestPriority):
+        * platform/network/soup/ResourceRequest.h:
+        (WebCore::toSoupMessagePriority):
+        * testing/Internals.cpp:
+        (WebCore::stringToResourceLoadPriority):
+
+2015-04-29  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        [OS X] Use CTFontCreateForCSS instead of doing font search ourselves
+        https://bugs.webkit.org/show_bug.cgi?id=132159
+
+        Reviewed by Darin Adler.
+
+        On platforms that support it, delegate font selection logic to the platform. Currently, this is
+        only supported on Mac, using CTFontCreateForCSS().
+
+        This also changes the mechanism that enforces our font whitelist in our tests. We used to
+        swizzle the implementations of NSFontManager methods. This patch migrates to using a whitelist of
+        font family names instead.
+
+        Note that this patch is a work in progress, because it makes the following tests fail:
+        fast/css/font-weight-1.html
+        fast/forms/validation-message-appearance.html
+        fast/forms/select/optgroup-rendering.html
+
+        No new tests, because there is no behavior change.
+
+        * platform/graphics/FontCache.h: Add a function to set the whitlist.
+        * platform/graphics/mac/FontCacheMac.mm:
+        (WebCore::fontWhitelist):
+        (WebCore::FontCache::setFontWhitelist):
+        (WebCore::toAppKitFontWeight):
+        (WebCore::toCoreTextFontWeight):
+        (WebCore::fontWithFamily): If ENABLE(PLATFORM_FONT_LOOKUP), use CTFontCreateForCSS().
+        (WebCore::FontCache::createFontPlatformData):
+        * platform/spi/cocoa/CoreTextSPI.h: Add signature for CTFontCreateForCSS().
+
+2015-04-29  Jer Noble  <jer.noble@apple.com>
+
+        Unreviewed iOS build fix after r183553: fix declaration of QLPreviewScheme
+
+        * platform/ios/QuickLookSoftLink.mm:
+
+2015-04-29  Eric Carlson  <eric.carlson@apple.com>
+
+        [Mac] Use new device picker menu API
+        https://bugs.webkit.org/show_bug.cgi?id=144392
+
+        Reviewed by Jer Noble.
+
+        * Modules/mediasession/WebMediaSessionManager.cpp:
+        (WebCore::WebMediaSessionManager::showPlaybackTargetPicker): Pass the route state to the picker.
+        * platform/graphics/MediaPlaybackTargetPicker.h:
+
+        * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
+        * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
+        (WebCore::MediaPlaybackTargetPickerMac::MediaPlaybackTargetPickerMac):  m_deviceChangeTimer -> m_pendingActionTimer.
+        (WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac): Ditto.
+        (WebCore::MediaPlaybackTargetPickerMac::pendingActionTimerFired): Renamed from 
+        outputeDeviceAvailabilityChangedTimerFired.
+        (WebCore::MediaPlaybackTargetPickerMac::availableDevicesDidChange): Use addPendingAction.
+        (WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Call new picker API if it is
+        available. New API returns true if a target is chosen, so call currentDeviceDidChange in that case.
+        (WebCore::MediaPlaybackTargetPickerMac::addPendingAction): New.
+        (WebCore::MediaPlaybackTargetPickerMac::currentDeviceDidChange): Make asynchronous because it 
+        can now be called from showPlaybackTargetPicker.
+        (WebCore::MediaPlaybackTargetPickerMac::outputeDeviceAvailabilityChangedTimerFired): Renamed
+        pendingActionTimerFired.
+
+        * platform/spi/cocoa/AVKitSPI.h: Add new SPI.
+
+2015-04-29  Antti Koivisto  <antti@apple.com>
+
+        Main resource loaded via 304 response becomes empty if reloaded by user
+        https://bugs.webkit.org/show_bug.cgi?id=144386
+
+        Reviewed by Darin Adler.
+
+        Memory cache layer may make a main resource request conditional (add If-modified-since/If-none-match header).
+        DocumentLoader stores the final ResourceRequest associated with document. If user triggered reload for
+        conditionally loaded document DocumentLoader would include the same conditionals to the new request as well.
+        Since these were not added by the memory cache it would pass any 304 response back to the DocumentLoader.
+        However DocumentLoader has no code to handle 304 so we would end up with an empty document.
+
+        Test: http/tests/cache/main-resource-304-reload.html
+
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::startLoadingMainResource):
+
+            Ensure DocumentLoader doesn't issue conditional requests.
+
+2015-04-28  Jer Noble  <jer.noble@apple.com>
+
+        Replace HTMLMediaElement's seek timer with a task queue.
+        https://bugs.webkit.org/show_bug.cgi?id=144353
+
+        Reviewed by Eric Carlson.
+
+        No change in functionality, so no new tests added.
+
+        Replace a zero-length timer with an explicit task queue, backed by Document's postTask(). To
+        make enqueued tasks cancellable, add a new GenericTaskQueue class modelled on
+        GenericEventQueue which can cancel enqueued but not-yet-executed tasks.
+
+        * CMakeLists.txt:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/GenericTaskQueue.cpp: Added.
+        (WebCore::GenericTaskQueue::GenericTaskQueue): Initialize ivars.
+        (WebCore::GenericTaskQueue::enqueueTask): Wrap the task and pass it to the ScriptExecutionContext.
+        (WebCore::GenericTaskQueue::close): Assert that the task queue will not accept any additional tasks.
+        (WebCore::GenericTaskQueue::cancelAllTasks): Revoke outstanding weak pointers, thereby cancelling tasks.
+        * dom/GenericTaskQueue.h: Added.
+        (WebCore::GenericTaskQueue::hasPendingTasks):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize the task queue.
+        (WebCore::HTMLMediaElement::~HTMLMediaElement): Close the task queue.
+        (WebCore::HTMLMediaElement::seekWithTolerance): Post a task, rather than start a timer.
+        (WebCore::HTMLMediaElement::seekTask): Renamed from seekTimerFired().
+        (WebCore::HTMLMediaElement::seekTimerFired): Deleted.
+        * html/HTMLMediaElement.h:
+
+2015-04-28  David Kilzer  <ddkilzer@apple.com>
+
+        Switch QuickLook soft-linking to use QuickLookSoftLink.{h,mm}
+        <http://webkit.org/b/144362>
+
+        Reviewed by Andy Estes.
+
+        This patch switches soft-linking of QuickLook.framework to
+        QuickLookSoftLink.{h,mm} so that we stop exporting unintended
+        symbols.
+
+        No new tests since no change in behavior.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        - Add QuickLookSoftLinking.{h,mm} to the project.
+
+        * platform/ios/QuickLookSoftLink.h: Added.
+        * platform/ios/QuickLookSoftLink.mm: Added.
+        * platform/mac/SoftLinking.h:
+        (SOFT_LINK_CLASS_FOR_HEADER): Add macro.
+        (SOFT_LINK_CLASS_FOR_SOURCE): Add macro.
+
+        * platform/network/ios/QuickLook.h:
+        - Remove unused declarations.
+
+        * platform/network/ios/QuickLook.mm:
+        (WebCore::QLPreviewConverterClass): Deleted.
+        (WebCore::QLTypeCopyBestMimeTypeForFileNameAndMimeType): Deleted.
+        (WebCore::QLTypeCopyBestMimeTypeForURLAndMimeType): Deleted.
+        (WebCore::QLTypeCopyUTIForURLAndMimeType): Deleted.
+        - Remove SOFT_LINK macros and unused methods after switching to
+          new QuickLookSoftLink.{h,mm}.
+        (WebCore::QLPreviewGetSupportedMIMETypesSet):
+        - Switch to use NeverDestroyed<>.
+        (WebCore::registerQLPreviewConverterIfNeeded):
+        (createQLPreviewProtocol):
+        (WebCore::QLPreviewProtocol):
+        (WebCore::QuickLookHandle::QuickLookHandle):
+        (WebCore::QuickLookHandle::create):
+        (WebCore::QuickLookHandle::shouldCreateForMIMEType):
+        - Simplify code when using QuickLookSoftLink.h.
+
+        * platform/network/ios/WebCoreURLResponseIOS.mm:
+        - Include QuickLookSoftLink.h header.
+
+2015-04-29  Darin Adler  <darin@apple.com>
+
+        [ES6] Implement Unicode code point escapes
+        https://bugs.webkit.org/show_bug.cgi?id=144377
+
+        Reviewed by Antti Koivisto.
+
+        Test: js/unicode-escape-sequences.html
+
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseEscape): Use ICU's UCHAR_MAX_VALUE instead of writing
+        out 0x10FFFF; clearer this way. Also use our replacementCharacter instead of
+        writing out 0xFFFD.
+
+        * html/parser/HTMLEntityParser.cpp:
+        (WebCore::isAlphaNumeric): Deleted.
+        (WebCore::HTMLEntityParser::legalEntityFor): Use ICU's UCHAR_MAX_VALUE and
+        U_IS_SURROGATE instead of writing the code out. Didn't use U_IS_UNICODE_CHAR
+        because that also includes U_IS_UNICODE_NONCHAR and thus would change behavior,
+        but maye it's something we want to do in the future.
+        (WebCore::HTMLEntityParser::consumeNamedEntity): Use isASCIIAlphanumeric instead
+        of a the function in this file that does the same thing less efficiently.
+
+        * html/parser/InputStreamPreprocessor.h:
+        (WebCore::InputStreamPreprocessor::processNextInputCharacter): Use
+        replacementCharacter from CharacterNames.h instead of writing out 0xFFFd.
+
+        * xml/parser/CharacterReferenceParserInlines.h:
+        (WebCore::consumeCharacterReference): Use ICU's UCHAR_MAX_VALUE instead of
+        defining our own local highestValidCharacter constant.
+
+2015-04-29  Martin Robinson  <mrobinson@igalia.com>
+
+        [CMake] [GTK] Organize and clean up unused CMake variables
+        https://bugs.webkit.org/show_bug.cgi?id=144364
+
+        Reviewed by Gyuyoung Kim.
+
+        * PlatformGTK.cmake: Add variables specific to this project.
+
+2015-04-29  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        REGRESSION(r182573): [GTK] The default context menu contains an empty item since r182573
+        https://bugs.webkit.org/show_bug.cgi?id=144388
+
+        Reviewed by Brady Eidson.
+
+        There used to be a method in ContextMenuItem to check if share
+        menu item was supported or not, but since r182573, there's a
+        method to get the share menu item. If the returned menu item is
+        null, it's not added to the menu, but we are not returning a null
+        ContextMenu item even though we don't support share menu item.
+
+        * platform/gtk/ContextMenuItemGtk.cpp:
+        (WebCore::ContextMenuItem::shareMenuItem): Return a null ContextMenuItem.
+
+2015-04-29  Zan Dobersek  <zdobersek@igalia.com>
+
+        Switch to std::function<>, std::bind() in MediaPlayerPrivateAVFoundationObjC
+        https://bugs.webkit.org/show_bug.cgi?id=144232
+
+        Reviewed by Darin Adler.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): 
+        Replace uses of WTF::Function<> and WTF::bind() with the STL alternatives.
+
+2015-04-29  Hyungwook Lee  <hyungwook.lee@navercorp.com>
+
+        Fix crash in WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::setBlock().
+        https://bugs.webkit.org/show_bug.cgi?id=140261
+
+        Reviewed by Darin Adler.
+
+        We need to check whether RenderObject is valid in RenderView::fooSubtreeSelection functions
+        because invalid object has caused a crash. This patch adds isValidObjectForNewSelection(), and use it.
+
+        * rendering/RenderView.cpp:
+        (WebCore::isValidObjectForNewSelection):
+        (WebCore::RenderView::clearSubtreeSelection):
+        (WebCore::RenderView::applySubtreeSelection):
+
+2015-04-29  Youenn Fablet  <youenn.fablet@crf.canon.fr>
+
+        Synchronous XMLHttpRequest should get access to AppCache resources stored as flat files
+        https://bugs.webkit.org/show_bug.cgi?id=143711
+
+        Reviewed by Darin Adler.
+
+        This patch checks whether a substitute resource data is stored in memory or in file for synchronous loads.
+        If data is stored in file, it reads the data through SharedBuffer::createWithContentsOfFile.
+        This patch refactors some routines to replace Vector<char> by SharedBuffer to transmit response data.
+
+        Test: http/tests/appcache/simple-video-sync.html
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::parseAttribute):
+        * loader/DocumentThreadableLoader.cpp:
+        (WebCore::DocumentThreadableLoader::loadRequest):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::loadResourceSynchronously):
+        * loader/FrameLoader.h:
+        * loader/appcache/ApplicationCacheHost.cpp:
+        (WebCore::ApplicationCacheHost::maybeLoadResource):
+        (WebCore::ApplicationCacheHost::createFileURL):
+        (WebCore::ApplicationCacheHost::maybeLoadSynchronously):
+        (WebCore::ApplicationCacheHost::maybeLoadFallbackSynchronously):
+        * loader/appcache/ApplicationCacheHost.h:
+        * xml/XSLTProcessorLibxslt.cpp:
+        (WebCore::docLoaderFunc):
+        * xml/parser/XMLDocumentParserLibxml2.cpp:
+        (WebCore::openFunc):
+
+2015-04-29  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
+
+        Purge PassRefPtr from createSVGPathSegFoo factory functions
+        https://bugs.webkit.org/show_bug.cgi?id=144374
+
+        Reviewed by Darin Adler.
+
+        Use Ref instead of PassRefPtr in createSVGPathSegFoo functions because
+        those factory functions can't return null. Additionally let's remove unnecessary
+        #include<PassRefPtr.h> there.
+
+        No new tests, no behavior changes.
+
+        * svg/SVGColor.cpp:
+        (WebCore::SVGColor::cloneForCSSOM):
+        * svg/SVGColor.h:
+        * svg/SVGGlyphMap.h:
+        (WebCore::GlyphMapNode::create):
+        * svg/SVGPaint.cpp:
+        (WebCore::SVGPaint::cloneForCSSOM):
+        * svg/SVGPaint.h:
+        * svg/SVGPathElement.cpp:
+        (WebCore::SVGPathElement::createSVGPathSegClosePath):
+        (WebCore::SVGPathElement::createSVGPathSegMovetoAbs):
+        (WebCore::SVGPathElement::createSVGPathSegMovetoRel):
+        (WebCore::SVGPathElement::createSVGPathSegLinetoAbs):
+        (WebCore::SVGPathElement::createSVGPathSegLinetoRel):
+        (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicAbs):
+        (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicRel):
+        (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticAbs):
+        (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticRel):
+        (WebCore::SVGPathElement::createSVGPathSegArcAbs):
+        (WebCore::SVGPathElement::createSVGPathSegArcRel):
+        (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalAbs):
+        (WebCore::SVGPathElement::createSVGPathSegLinetoHorizontalRel):
+        (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalAbs):
+        (WebCore::SVGPathElement::createSVGPathSegLinetoVerticalRel):
+        (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothAbs):
+        (WebCore::SVGPathElement::createSVGPathSegCurvetoCubicSmoothRel):
+        (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothAbs):
+        (WebCore::SVGPathElement::createSVGPathSegCurvetoQuadraticSmoothRel):
+        * svg/SVGPathElement.h:
+        * svg/SVGPathSegArcAbs.h:
+        (WebCore::SVGPathSegArcAbs::create):
+        * svg/SVGPathSegArcRel.h:
+        (WebCore::SVGPathSegArcRel::create):
+        * svg/SVGPathSegClosePath.h:
+        (WebCore::SVGPathSegClosePath::create):
+        * svg/SVGPathSegCurvetoCubicAbs.h:
+        (WebCore::SVGPathSegCurvetoCubicAbs::create):
+        * svg/SVGPathSegCurvetoCubicRel.h:
+        (WebCore::SVGPathSegCurvetoCubicRel::create):
+        * svg/SVGPathSegCurvetoCubicSmoothAbs.h:
+        (WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):
+        * svg/SVGPathSegCurvetoCubicSmoothRel.h:
+        (WebCore::SVGPathSegCurvetoCubicSmoothRel::create):
+        * svg/SVGPathSegCurvetoQuadraticAbs.h:
+        (WebCore::SVGPathSegCurvetoQuadraticAbs::create):
+        * svg/SVGPathSegCurvetoQuadraticRel.h:
+        (WebCore::SVGPathSegCurvetoQuadraticRel::create):
+        * svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:
+        (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):
+        * svg/SVGPathSegCurvetoQuadraticSmoothRel.h:
+        (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):
+        * svg/SVGPathSegLinetoAbs.h:
+        (WebCore::SVGPathSegLinetoAbs::create):
+        * svg/SVGPathSegLinetoHorizontalAbs.h:
+        (WebCore::SVGPathSegLinetoHorizontalAbs::create):
+        * svg/SVGPathSegLinetoHorizontalRel.h:
+        (WebCore::SVGPathSegLinetoHorizontalRel::create):
+        * svg/SVGPathSegLinetoRel.h:
+        (WebCore::SVGPathSegLinetoRel::create):
+        * svg/SVGPathSegLinetoVerticalAbs.h:
+        (WebCore::SVGPathSegLinetoVerticalAbs::create):
+        * svg/SVGPathSegLinetoVerticalRel.h:
+        (WebCore::SVGPathSegLinetoVerticalRel::create):
+        * svg/SVGPathSegMovetoAbs.h:
+        (WebCore::SVGPathSegMovetoAbs::create):
+        * svg/SVGPathSegMovetoRel.h:
+        (WebCore::SVGPathSegMovetoRel::create):
+        * svg/SVGViewSpec.h:
+        (WebCore::SVGViewSpec::create):
+        * svg/animation/SMILTimeContainer.h:
+        (WebCore::SMILTimeContainer::create):
+        * svg/animation/SVGSMILElement.cpp:
+        (WebCore::ConditionEventListener::create):
+        * svg/graphics/SVGImage.h:
+        * svg/graphics/SVGImageForContainer.h:
+        * svg/graphics/filters/SVGFilter.cpp:
+        (WebCore::SVGFilter::create):
+        * svg/graphics/filters/SVGFilter.h:
+
+2015-04-28  Simon Fraser  <simon.fraser@apple.com>
+
+        Make a non-static version of FrameView::yPositionForRootContentLayer()
+        https://bugs.webkit.org/show_bug.cgi?id=144375
+
+        Reviewed by Andy Estes.
+
+        There were two calls to the static FrameView::yPositionForRootContentLayer()
+        which passed in all the arguments for the same FrameView. Make a member
+        function for convenience.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::yPositionForRootContentLayer):
+        * page/FrameView.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
+
+2015-04-28  Ryuan Choi  <ryuan.choi@navercorp.com>
+
+        [CoordinatedGraphics] Merge TILED_BACKING_STORE guard with COORDINATED_GRAPHICS
+        https://bugs.webkit.org/show_bug.cgi?id=143001
+
+        Reviewed by Gyuyoung Kim.
+
+        TiledBackingStore has only been used by Coordinated Graphics since Qt and WebKit1/Efl were dropped.
+        So, this patch replaces USE(TILED_BACKING_STORE) with USE(COORDINATED_GRAPHICS) to merge the features.
+
+        In addition, this moves TiledBackingStore and related files from platform to platform/texmap/coordinated
+        where other coordinated graphics files are located.
+
+        * CMakeLists.txt: Move TiledBackingStore.cpp because this is not common file.
+        * PlatformEfl.cmake:
+        * PlatformGTK.cmake:
+        * WebCore.vcxproj/WebCore.vcxproj: Follow new location of TiledBackingStore* files.
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+        * loader/EmptyClients.h:
+        * page/Chrome.cpp:
+        * page/Chrome.h:
+        * page/ChromeClient.h:
+        * page/Frame.cpp:
+        (WebCore::Frame::createView):
+        * page/FrameView.cpp:
+        (WebCore::FrameView::requestScrollPositionUpdate):
+        * page/FrameView.h:
+        * page/Page.cpp:
+        (WebCore::Page::setPageScaleFactor):
+        * platform/HostWindow.h:
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
+        (WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):
+        (WebCore::ScrollView::visibleContentRectInternal):
+        (WebCore::ScrollView::scrollTo):
+        * platform/ScrollView.h:
+        * platform/graphics/cairo/TileCairo.h: Removed because it is dead code since r169328
+        * platform/graphics/texmap/coordinated/Tile.h: Renamed from Source/WebCore/platform/graphics/Tile.h.
+        * platform/graphics/texmap/coordinated/TiledBackingStore.cpp: Renamed from Source/WebCore/platform/graphics/TiledBackingStore.cpp.
+        * platform/graphics/texmap/coordinated/TiledBackingStore.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStore.h.
+        * platform/graphics/texmap/coordinated/TiledBackingStoreBackend.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStoreBackend.h.
+        * platform/graphics/texmap/coordinated/TiledBackingStoreClient.h: Renamed from Source/WebCore/platform/graphics/TiledBackingStoreClient.h.
+
+2015-04-28  Brent Fulgham  <bfulgham@apple.com>
+
+        REGRESSION(180076): [Mac, iOS] Correct possible null dereference in printing code
+        https://bugs.webkit.org/show_bug.cgi?id=144366
+        <rdar://problem/20533513>
+
+        Reviewed by Dean Jackson.
+
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::needsAppleMailPaginationQuirk): Check if the document settings is a nullptr
+        before attempting to dereference it. 
+
+2015-04-28  Andreas Kling  <akling@apple.com>
+
+        Simplify DOM wrapper destruction, don't deref() in finalizers.
+        <https://webkit.org/b/144183>
+
+        Reviewed by Darin Adler.
+
+        DOM JS bindings had two mechanisms to call deref() on the WebCore object,
+        once through a weak finalizer, and once through the JSCell's regular destructor.
+
+        That was once believed to be an optimization, but these days the finalizer will
+        run just moments before the destructor anyway, all in the same call stack.
+        And more importantly, the finalizer is not guaranteed to run, for instance in the
+        case where a Weak is assigned to after going dead, but before the WeakBlock
+        has been swept by the incremental sweeper.
+
+        Simplify this by just removing the deref() from the generated finalizers.
+        This makes it easier to reason about DOM wrapper destruction, and eliminates
+        the awkward time window  where a DOM wrapper could have a null impl().
+
+        We could spend more time on figuring out a way to have finalizers manage the
+        destruction of these wrappers, but that would require fundamental changes to
+        our implementation of JSC::Weak pointers. It would allow us to make JSDOMWrapper
+        destructor-less, and shrink each wrapper object by 1 pointer (the ClassInfo*.)
+        However the risk:reward ratio does not seem justified at this point in time.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateHeader):
+        (GenerateImplementation):
+        * bindings/js/JSCSSValueCustom.cpp:
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
+        (WebCore::JSTestActiveDOMObject::~JSTestActiveDOMObject):
+        (WebCore::JSTestActiveDOMObjectOwner::finalize):
+        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
+        (WebCore::JSTestCustomNamedGetter::~JSTestCustomNamedGetter):
+        (WebCore::JSTestCustomNamedGetterOwner::finalize):
+        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
+        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
+        (WebCore::JSTestEventConstructor::~JSTestEventConstructor):
+        (WebCore::JSTestEventConstructorOwner::finalize):
+        * bindings/scripts/test/JS/JSTestEventConstructor.h:
+        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
+        (WebCore::JSTestEventTarget::~JSTestEventTarget):
+        (WebCore::JSTestEventTargetOwner::finalize):
+        * bindings/scripts/test/JS/JSTestEventTarget.h:
+        * bindings/scripts/test/JS/JSTestException.cpp:
+        (WebCore::JSTestException::~JSTestException):
+        (WebCore::JSTestExceptionOwner::finalize):
+        * bindings/scripts/test/JS/JSTestException.h:
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
+        (WebCore::JSTestGenerateIsReachable::~JSTestGenerateIsReachable):
+        (WebCore::JSTestGenerateIsReachableOwner::finalize):
+        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        (WebCore::JSTestInterface::~JSTestInterface):
+        (WebCore::JSTestInterfaceOwner::finalize):
+        * bindings/scripts/test/JS/JSTestInterface.h:
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
+        (WebCore::JSTestMediaQueryListListener::~JSTestMediaQueryListListener):
+        (WebCore::JSTestMediaQueryListListenerOwner::finalize):
+        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+        (WebCore::JSTestNamedConstructor::~JSTestNamedConstructor):
+        (WebCore::JSTestNamedConstructorOwner::finalize):
+        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
+        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
+        (WebCore::JSTestNondeterministic::~JSTestNondeterministic):
+        (WebCore::JSTestNondeterministicOwner::finalize):
+        * bindings/scripts/test/JS/JSTestNondeterministic.h:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        (WebCore::JSTestObj::~JSTestObj):
+        (WebCore::JSTestObjOwner::finalize):
+        * bindings/scripts/test/JS/JSTestObj.h:
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
+        (WebCore::JSTestOverloadedConstructorsOwner::finalize):
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+        (WebCore::JSTestSerializedScriptValueInterface::~JSTestSerializedScriptValueInterface):
+        (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
+        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
+        (WebCore::JSTestTypedefs::~JSTestTypedefs):
+        (WebCore::JSTestTypedefsOwner::finalize):
+        * bindings/scripts/test/JS/JSTestTypedefs.h:
+        * bindings/scripts/test/JS/JSattribute.cpp:
+        (WebCore::JSattribute::~JSattribute):
+        (WebCore::JSattributeOwner::finalize):
+        * bindings/scripts/test/JS/JSattribute.h:
+        * bindings/scripts/test/JS/JSreadonly.cpp:
+        (WebCore::JSreadonly::~JSreadonly):
+        (WebCore::JSreadonlyOwner::finalize):
+        * bindings/scripts/test/JS/JSreadonly.h:
+
+2015-04-28  Alex Christensen  <achristensen@webkit.org>
+
+        Build WinCairo without cygwin.
+        https://bugs.webkit.org/show_bug.cgi?id=144365
+
+        Reviewed by Myles Maxfield.
+
+        * WebCore.vcxproj/WebCoreGeneratedWinCairo.make:
+        Pass the CC executable to build-generated-files.pl like r182164.
+        * WebCore.vcxproj/build-generated-files.pl:
+        Default to 8 CPUs unless otherwise specified.
+
+2015-04-28  Sam Weinig  <sam@webkit.org>
+
+        [Content Extensions] Process NFAs individually to avoid having all NFAs live at the same time
+        https://bugs.webkit.org/show_bug.cgi?id=144363
+
+        Reviewed by Alex Christensen.
+
+        This brings dirty memory use when compiling our test content extension down from ~300MB to ~100MB.
+
+        * contentextensions/CombinedURLFilters.cpp:
+        (WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
+        (WebCore::ContentExtensions::CombinedURLFilters::createNFAs): Deleted.
+        * contentextensions/CombinedURLFilters.h:
+        Replace function that creates a Vector of all the NFAs with one that allows incremental processing
+        as they are created.
+
+        * contentextensions/ContentExtensionCompiler.cpp:
+        (WebCore::ContentExtensions::addUniversalActionsToDFA):
+        Extract code to add universal actions into a helper, since we need to call it in two places now.
+
+        (WebCore::ContentExtensions::compileRuleList):
+        Adopt CombinedURLFilters::processNFAs. Now that we don't have a Vector of NFAs, we need to keep track
+        of whether or not any NFAs were processed and if we are currently processing the first NFA so we can
+        ensure that we have some bytecode generated event for empty rule sets, and that universal actions are
+        placed on the first DFA.
+
+2015-04-28  Timothy Horton  <timothy_horton@apple.com>
+
+        [TextIndicator] Yellow highlight takes too long to fade out on scroll
+        https://bugs.webkit.org/show_bug.cgi?id=144358
+        <rdar://problem/19451011>
+
+        Reviewed by Beth Dakin.
+
+        * page/TextIndicator.h:
+        Add Lifetime and DismissalAnimation enums.
+
+        (WebCore::TextIndicator::contentImageWithHighlight):
+        (WebCore::TextIndicator::contentImage):
+        Fix style.
+
+        * page/mac/TextIndicatorWindow.h:
+        * page/mac/TextIndicatorWindow.mm:
+        (WebCore::TextIndicatorWindow::TextIndicatorWindow):
+        (WebCore::TextIndicatorWindow::~TextIndicatorWindow):
+        (WebCore::TextIndicatorWindow::clearTextIndicator):
+        (WebCore::TextIndicatorWindow::setTextIndicator):
+        (WebCore::TextIndicatorWindow::closeWindow):
+        (WebCore::TextIndicatorWindow::startFadeOut):
+        Rename m_startFadeOutTimer to m_temporaryTextIndicatorTimer (and related).
+        This is just about temporary-lifetime TextIndicators, like the ones
+        you get when the find-in-page UI is hidden but you hit Cmd-G.
+
+        Add clearTextIndicator, which takes a DismissalAnimation, providing
+        clients an opportunity to avoid the normal fade-out animation, if it
+        was going to happen.
+
+2015-04-28  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
+        https://bugs.webkit.org/show_bug.cgi?id=144304
+
+        Reviewed by Geoffrey Garen.
+
+        Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+2015-04-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r183514.
+        https://bugs.webkit.org/show_bug.cgi?id=144359
+
+        It broke cloop test bots (Requested by mcatanzaro on #webkit).
+
+        Reverted changeset:
+
+        "Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT"
+        https://bugs.webkit.org/show_bug.cgi?id=144304
+        http://trac.webkit.org/changeset/183514
+
+2015-04-28  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
+        https://bugs.webkit.org/show_bug.cgi?id=144304
+
+        Reviewed by Geoffrey Garen.
+
+        Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+2015-04-28  Zalan Bujtas  <zalan@apple.com>
+
+        Checkboxes on bugs.webkit.org are painted with stripes at some zoom levels.
+        https://bugs.webkit.org/show_bug.cgi?id=144351
+
+        Reviewed by Simon Fraser.
+
+        This patch ensures that CG context is properly restored after painting dashed/dotted lines.
+
+        Test: fast/forms/checkbox-painting-with-hr.html
+
+        * platform/graphics/cg/GraphicsContextCG.cpp:
+        (WebCore::GraphicsContext::drawLine):
+
+2015-04-28  Simon Fraser  <simon.fraser@apple.com>
+
+        Provide contentsToView() and viewToContents() functions on ScrollView, and use them
+        https://bugs.webkit.org/show_bug.cgi?id=144357
+
+        Reviewed by Tim Horton.
+
+        Too much code was consulting topContentInset() and headerHeight() directly. Replace
+        with calls to new contentsToView() and viewToContents() functions, which wrap the
+        exisiting documentScrollOffsetRelativeToViewOrigin().
+        
+        Use the new functions in FrameView and ScrollView coordinate mapping functions.
+        
+        No behavior change.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::convertFromRendererToContainingView):
+        (WebCore::FrameView::convertFromContainingViewToRenderer):
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::viewToContents):
+        (WebCore::ScrollView::contentsToView):
+        (WebCore::ScrollView::rootViewToContents):
+        (WebCore::ScrollView::contentsToRootView):
+        (WebCore::ScrollView::rootViewToTotalContents):
+        (WebCore::ScrollView::windowToContents):
+        (WebCore::ScrollView::contentsToWindow):
+        * platform/ScrollView.h:
+
+2015-04-28  Eric Carlson  <eric.carlson@apple.com>
+
+        [Mac] Simplify code to support media engines which do not support target playback
+        https://bugs.webkit.org/show_bug.cgi?id=144332
+
+        Reviewed by Jer Noble.
+
+        * Modules/mediasession/WebMediaSessionManager.cpp:
+        (WebCore::WebMediaSessionManager::externalOutputDeviceAvailableDidChange): Always make client
+        callback, let them decide if it is significant or not.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::HTMLMediaElement): m_loadTimer -> m_pendingActionTimer.
+        (WebCore::HTMLMediaElement::scheduleDelayedAction): Handle CheckPlaybackTargetCompatablity.
+        (WebCore::HTMLMediaElement::scheduleNextSourceChild): m_loadTimer -> m_pendingActionTimer.
+        (WebCore::HTMLMediaElement::loadTimerFired): Renamed pendingActionTimerFired.
+        (WebCore::HTMLMediaElement::prepareForLoad): m_loadTimer -> m_pendingActionTimer.
+        (WebCore::HTMLMediaElement::setDefaultPlaybackRate): Add logging.
+        (WebCore::HTMLMediaElement::clearMediaPlayer): m_loadTimer -> m_pendingActionTimer.
+        (WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsSupported): Removed.
+        (WebCore::HTMLMediaElement::dispatchEvent): If a 'webkitcurrentplaybacktargetiswirelesschanged'
+        event is dispatched when the current target is wireless but the media engine does not support
+        wireless playback, tell the media engine not to play to the target.
+        * html/HTMLMediaElement.h:
+        * html/HTMLMediaElement.idl:
+
+        * html/HTMLMediaSession.cpp:
+        (WebCore::HTMLMediaSession::showPlaybackTargetPicker): Drive-by fix to disallow audio-only files.
+        (WebCore::HTMLMediaSession::currentPlaybackTargetIsSupported): Deleted.
+        * html/HTMLMediaSession.h:
+
+        * platform/graphics/MediaPlayer.cpp:
+        (WebCore::MediaPlayer::isCurrentPlaybackTargetSupported): Deleted.
+        * platform/graphics/MediaPlayer.h:
+        * platform/graphics/MediaPlayerPrivate.h:
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Use a RetainPtr
+        to explicitly manage the lifetime of the temporary object.
+        (WebCore::MediaPlayerPrivateAVFoundationObjC::isPlayingToWirelessPlaybackTarget): Ditto.
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setShouldPlayToPlaybackTarget):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetWireless):
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isCurrentPlaybackTargetSupported): Deleted.
+
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+        (WebCore::MediaPlayerPrivateQTKit::setShouldPlayToPlaybackTarget):
+        (WebCore::MediaPlayerPrivateQTKit::isCurrentPlaybackTargetWireless):
+        (WebCore::MediaPlayerPrivateQTKit::isCurrentPlaybackTargetSupported): Deleted.
+
 2015-04-28  Alex Christensen  <achristensen@webkit.org>
 
         [Content Extensions] Use less memory for CombinedURLFilters.