ChangeLog-2014-10-07   [plain text]


2014-10-07  Chris Dumez  <cdumez@apple.com>

        Unreviewed iOS build fix after r174400.

        Missing explicit WebKit:: namespace.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLoadForMainFrame]):
        (-[WKWebView _restorePageStateToExposedRect:scale:]):
        (-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):

2014-10-07  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for RenderText / RenderTextFragment
        https://bugs.webkit.org/show_bug.cgi?id=137476

        Reviewed by Darin Adler.

        Use is<>() / downcast<>() for RenderText / RenderTextFragment.

        * Shared/WebRenderObject.cpp:
        (WebKit::WebRenderObject::WebRenderObject):

2014-10-07  Christophe Dumez  <cdumez@apple.com>

        [WK2] Use is<>() / downcast<>() for DrawingAreaProxy subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137477

        Reviewed by Andreas Kling.

        Use is<>() / downcast<>() for DrawingAreaProxy subclasses.

        * Shared/cf/KeyedDecoder.cpp:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLoadForMainFrame]):
        (-[WKWebView _restorePageStateToExposedRect:scale:]):
        (-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):
        * UIProcess/Cocoa/WebPageProxyCocoa.mm:
        * UIProcess/DrawingAreaProxy.h:
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::layerTreeHost):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::updateVisibleContentRects):
        (WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):
        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID):
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:

2014-10-06  Vivek Galatage  <vivek.vg@samsung.com>

        Remove unused warning in WebPageOverlay
        https://bugs.webkit.org/show_bug.cgi?id=137444

        Reviewed by Darin Adler.

        Commenting the unused parameter to supress the warning.

        * WebProcess/WebPage/WebPageOverlay.h:
        (WebKit::WebPageOverlay::Client::copyAccessibilityAttributeStringValueForPoint):
        (WebKit::WebPageOverlay::Client::copyAccessibilityAttributeBoolValueForPoint):

2014-10-06  Ada Chan  <adachan@apple.com>

        Call WKPageUIClient::isPlayingAudioDidChange() whenever audio starts/stops playing on a page.
        https://bugs.webkit.org/show_bug.cgi?id=137050

        Reviewed by Anders Carlsson.

        Implement WebChromeClient::isPlayingAudioDidChange() which sends the new isPlayingAudio state
        over to the UI process. WebPageProxy caches the isPlayingAudio state, and when that changes,
        it calls WKPageUIClient::isPlayingAudioDidChange().

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::isPlayingAudioDidChange):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageUIClient):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::isPlayingAudioDidChange):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::isPlayingAudio):
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::isPlayingAudioDidChange):
        * WebProcess/WebCoreSupport/WebChromeClient.h:

2014-10-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Restore previous scroll position using restoreViewState()
        https://bugs.webkit.org/show_bug.cgi?id=136999

        Reviewed by Benjamin Poulain.

        There are duplicating code paths to restore previous scroll position and scale factor in
        HistoryController::restoreScrollPositionAndViewState. EFL port has processed the two code paths.
        It causes wrong rendering update or scroll position change when previous page's scroll position
        is restored. Thus EFL port begins to use restoreViewState() to restore scroll position and scale factor.
        This patch is first step to support it.

        Additionally EFL port has supported to use ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate()
        since r173785. So EFL port can use the requestScrollPositionUpdate() to restore scroll position on previous page
        instead of delegatedScrollRequested(). However setScrollPosition() can't be used there for now, because iOS port
        should call it when delegatesScrolling is disabled. On the other hand, EFL port supports it only when delegatesScrolling
        is enabled.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::saveViewStateToItem):
        Move iOS saveViewStateToItem() to common place in order to share iOS implementation with EFL port.

        (WebKit::WebFrameLoaderClient::restoreViewState):
        EFL begins to share restoreViewState() of iOS, thus move iOS restoreViewState() to common place.

        * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
        (WebKit::WebFrameLoaderClient::saveViewStateToItem): Deleted.
        (WebKit::WebFrameLoaderClient::restoreViewState): Deleted.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/efl/WebPageEfl.cpp:
        (WebKit::WebPage::restorePageState):
        Call scalePage() to update previous scaleFactor and scrollPosition of historyItem both to WebProcess and UIProcess.

        (WebKit::WebPage::savePageState):

2014-10-06  Chris Dumez  <cdumez@apple.com>

        [Mac] We are spending too much time serializing ProtectionSpace objects
        https://bugs.webkit.org/show_bug.cgi?id=137367

        Reviewed by Dan Bernstein.

        When profiling the load of nytimes.com, I noticed that we were spending
        a lot of CPU time serializing ProtectionSpace objects (in particular
        the NSURLProtectionSpace platform data):
        - 5.6% of CPU time for Network Process
        - 2.5% of CPU time for WebProcess

        Serializing an NSURLProtectionSpace seems to be costly due to server
        trust verification. We do this for every sub-resource load over HTTPS
        due to the canAuthenticateAgainstProtectionSpace() callback for server
        trust validation, from the NetworkProcess to the WebProcess and then to
        the UIProcess.

        This patch adds a WKContextSetCanHandleHTTPSServerTrustEvaluation(bool)
        WK2 private API that the client can call to indicate that it cannot
        handle HTTPS server trust evaluation and that it is thus unnecessary to
        call the canAuthenticateAgainstProtectionSpace() callback for such
        evaluations. This reduces the amount of IPC between the process and
        thus the number of times we have to serialize the ProtectionSpace.

        In the case of the nytimes.com load, there is no longer any
        ProtectionSpace serialization happening as
        canAuthenticateAgainstProtectionSpace() was only called for HTTPS
        server trust evaluation.

        * NetworkProcess/NetworkProcess.cpp:
        (WebKit::NetworkProcess::NetworkProcess):
        (WebKit::NetworkProcess::initializeNetworkProcess):
        (WebKit::NetworkProcess::setCanHandleHTTPSServerTrustEvaluation):
        * NetworkProcess/NetworkProcess.h:
        (WebKit::NetworkProcess::canHandleHTTPSServerTrustEvaluation):
        * NetworkProcess/NetworkProcess.messages.in:
        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):
        * Shared/Network/NetworkProcessCreationParameters.cpp:
        (WebKit::NetworkProcessCreationParameters::encode):
        (WebKit::NetworkProcessCreationParameters::decode):
        * Shared/Network/NetworkProcessCreationParameters.h:
        * UIProcess/API/C/WKContext.cpp:
        (WKContextSetCanHandleHTTPSServerTrustEvaluation):
        * UIProcess/API/C/WKContextPrivate.h:
        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _setCanHandleHTTPSServerTrustEvaluation:]):
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::WebContext):
        (WebKit::WebContext::ensureNetworkProcess):
        (WebKit::WebContext::setCanHandleHTTPSServerTrustEvaluation):
        * UIProcess/WebContext.h:

2014-10-06  Simon Fraser  <simon.fraser@apple.com>

        Don't attempt to paint into zero-sized backing store
        https://bugs.webkit.org/show_bug.cgi?id=137465

        Reviewed by Tim Horton.
        
        Page scale could cause the backing store for a small composited element to become empty,
        in which case we'd try to allocate, and paint into a graphics context with no surface
        behind it.
        
        Fix by bailing from RemoteLayerBackingStore::display() when checking the backing store
        size after accounting for scale.

        * Shared/mac/RemoteLayerBackingStore.h:
        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::backingStoreSize):
        (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
        (WebKit::RemoteLayerBackingStore::display):

2014-10-06  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for ScrollingTree subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137449

        Reviewed by Ryosuke Niwa.

        Use is<>() / downcast<>() for ScrollingTree subclasses.

        * UIProcess/Scrolling/RemoteScrollingTree.h:
        * WebProcess/WebPage/EventDispatcher.cpp:
        (WebKit::EventDispatcher::addScrollingTreeForPage):

2014-10-05  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for ScrollingCoordinator / ScrollingStateNode subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137440

        Reviewed by Ryosuke Niwa.

        Use is<>() / downcast<>() for ScrollingCoordinator / ScrollingStateNode subclasses.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (WebKit::encodeNodeAndDescendants):
        (WebKit::RemoteScrollingCoordinatorTransaction::decode):
        (WebKit::RemoteScrollingTreeTextStream::dump):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateBeforeChildren):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
        * WebProcess/Scrolling/RemoteScrollingCoordinator.h:
        * WebProcess/WebPage/EventDispatcher.cpp:
        (WebKit::EventDispatcher::addScrollingTreeForPage):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):

2014-10-05  Ryuan Choi  <ryuan.choi@gmail.com>

        [EFL] Introduce EWebKit_Extension
        https://bugs.webkit.org/show_bug.cgi?id=134921

        Reviewed by Gyuyoung Kim.

        EWebKit2 does not provide the functionality to extend WebProcess.
        Although there is ewk_context_new_with_injected_bundle_path() in ewebkit2 APIs,
        application developers can not make bundle object without touching WK APIs
        which ewebkit2 does not expose.

        This patch introduces EWebKit_Extension, basic structure for the extension of WebProcess.

        * PlatformEfl.cmake:
        Added files for the EWebKit_Extension and install them properly.
        * UIProcess/API/efl/ewk_context.cpp:
        (EwkContext::EwkContext):
        (bundlePathForExtension):
        (EwkContext::create):
        (EwkContext::getInjectedBundleInitializationUserData):
        (EwkContext::setMessageFromInjectedBundleCallback):
        (ewk_context_new_with_extensions_path):
        Deleted because ewebkit2 does not have a way to make injected bundle.
        Instead, Ewk_Extension will cover the same functionalities.
        (ewk_context_new_with_injected_bundle_path): Deleted.
        * UIProcess/API/efl/ewk_context.h:
        * UIProcess/API/efl/ewk_context_private.h:
        (EwkContext::extensionsPath):
        * UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp: Removed.
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
        (EWK2UnitTest::EWK2UnitTestEnvironment::extensionSample):
        (EWK2UnitTest::EWK2UnitTestEnvironment::injectedBundleSample): Renamed injectedBundleSample to extensionSample.
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
        * UIProcess/API/efl/tests/extensions/extension_sample.cpp: Copied from Source/WebKit2/UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp.
        * UIProcess/API/efl/tests/test_ewk2_context.cpp: Renamed ewk_context_new_with_injected_bundle_path to ewk_context_new_with_extensions_path.
        (TEST_F):
        * WebProcess/InjectedBundle/API/efl/EWebKit_Extension.h: Added.
        * WebProcess/InjectedBundle/API/efl/ewk_extension.cpp: Added.
        (EwkExtension::append):
        (EwkExtension::remove):
        (ewk_extension_client_add):
        (ewk_extension_client_del):
        * WebProcess/InjectedBundle/API/efl/ewk_extension.h: Added.
        * WebProcess/InjectedBundle/API/efl/ewk_extension_private.h: Added.
        (EwkExtension::EwkExtension):
        (EwkExtension::~EwkExtension):
        * WebProcess/efl/ExtensionManagerEfl.cpp: Added.
        (WebKit::ExtensionManagerEfl::shared):
        (WebKit::ExtensionManagerEfl::ExtensionManagerEfl):
        (WebKit::ExtensionManagerEfl::initialize):
        * WebProcess/efl/ExtensionManagerEfl.h: Added.
        * WebProcess/efl/WebInjectedBundleMainEfl.cpp: Added.
        (WKBundleInitialize):
        * efl/ewebkit2-extension.pc.in: Added.

2014-10-05  Lorenzo Tilve  <ltilve@igalia.com>

        [GTK] Fix build when DRAG_SUPPORT is disabled
        https://bugs.webkit.org/show_bug.cgi?id=137361

        Reviewed by Carlos Garcia Campos.

        Flag out unbuildable code without DRAG_SUPPORT.

        * Shared/gtk/ArgumentCodersGtk.cpp:
        * Shared/gtk/ArgumentCodersGtk.h:
        * UIProcess/API/gtk/PageClientImpl.cpp:
        * UIProcess/API/gtk/PageClientImpl.h:
        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseConstructed):
        * UIProcess/PageClient.h:

2014-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] The new web inspector can't be docked again once undocked
        https://bugs.webkit.org/show_bug.cgi?id=121544

        Reviewed by Martin Robinson.

        Use a GtkHeaderBar for the inspector window to add dock buttons
        when building with GTK+ >= 3.10.

        * UIProcess/WebInspectorProxy.cpp:
        (WebKit::WebInspectorProxy::WebInspectorProxy):
        * UIProcess/WebInspectorProxy.h:
        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
        (WebKit::WebInspectorProxy::dockButtonClicked):
        (WebKit::WebInspectorProxy::createInspectorWindow):
        (WebKit::WebInspectorProxy::updateInspectorWindowTitle):
        (WebKit::WebInspectorProxy::platformInspectedURLChanged):
        (WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):

2014-10-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Add missing inspector files to compilation.

        * PlatformGTK.cmake: Add javascript sources in
        WebInspectorUI/UserInterface/External/Esprima to the list of
        inspector files.

2014-10-03  Anders Carlsson  <andersca@apple.com>

        Remove a workaround for a bug that's been fixed
        https://bugs.webkit.org/show_bug.cgi?id=137411

        Reviewed by Dan Bernstein.

        * mac/rewrite-availability-macros.sh:

2014-10-03  Jer Noble  <jer.noble@apple.com>

        Revert an accidental change introduced by r173318.

        Rubber-stamped by Tim Horton.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::suspendPainting):
        (WebKit::TiledCoreAnimationDrawingArea::resumePainting):

2014-10-03  Tim Horton  <timothy_horton@apple.com>

        WKWebView snapshot of Daring Fireball has the wrong color in the obscured inset
        https://bugs.webkit.org/show_bug.cgi?id=137383
        <rdar://problem/18535439>

        Reviewed by Sam Weinig.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::snapshotAtSize):
        Use documentBackgroundColor instead of baseBackgroundColor if backgroundShouldExtendBeyondPage is set.

2014-10-03  Andy Estes  <aestes@apple.com>

        [iOS] Highlight clicked links in WKPDFView
        https://bugs.webkit.org/show_bug.cgi?id=137400

        Reviewed by Tim Horton.

        Show a _UIHighlightView on top of clicked links for 200 ms before starting the navigation. This matches the behavior of UIWebPDFView.

        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView _createHighlightViewWithFrame:]): Created a _UIHighlightView with a color and border radius matching the values used by UIWebPDFView.
        (-[WKPDFView annotation:wasTouchedAtPoint:controller:]): Displayed the highlight, then removed it after the navigation began.

2014-10-03  Csaba Osztrogonác  <ossy@webkit.org>

        [GTK] URTBF after r174231.

        * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
        (webkit_web_page_get_dom_document):
        * WebProcess/WebPage/DrawingAreaImpl.cpp:
        (WebKit::DrawingAreaImpl::didInstallPageOverlay): Deleted.
        (WebKit::DrawingAreaImpl::didUninstallPageOverlay): Deleted.
        (WebKit::DrawingAreaImpl::setPageOverlayNeedsDisplay): Deleted.
        (WebKit::DrawingAreaImpl::setPageOverlayOpacity): Deleted.
        * WebProcess/WebPage/DrawingAreaImpl.h:
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
        (WebKit::LayerTreeHostGtk::createPageOverlayLayer):
        (WebKit::LayerTreeHostGtk::destroyPageOverlayLayer):
        (WebKit::LayerTreeHostGtk::didInstallPageOverlay): Deleted.
        (WebKit::LayerTreeHostGtk::didUninstallPageOverlay): Deleted.
        (WebKit::LayerTreeHostGtk::setPageOverlayNeedsDisplay): Deleted.
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:

2014-10-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Fix build break since r174231 and r174256
        https://bugs.webkit.org/show_bug.cgi?id=137384

        Unreviewed, EFL build fix.

        r174231 and r174256 didn't consider EFL port and CoordinatedGraphics area.

        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
        (WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged):
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
        (WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
        (WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
        (WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
        * WebProcess/WebPage/TapHighlightController.cpp:
        (WebKit::TapHighlightController::highlight):
        (WebKit::TapHighlightController::hideHighlight):
        * WebProcess/WebPage/TapHighlightController.h: Add WebCore:: namespace prefix to PageOverlay argument type.

2014-10-02  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r174231 to fix non Apple builds.

        * WebProcess/WebPage/WebPage.h:

2014-10-02  Andy Estes  <aestes@apple.com>

        [iOS] Create an SPI wrapper for _UIHighlightView and use it in WKContentView
        https://bugs.webkit.org/show_bug.cgi?id=137370

        Reviewed by Tim Horton.

        * UIProcess/ios/WKContentViewInteraction.mm: Included <WebCore/_UIHighlightViewSPI.h> instead of <UIKit/_UIHighlightView.h>.

2014-10-02  Andy Estes  <aestes@apple.com>

        Fix the iOS build.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::blurAssistedNode):
        (WebKit::WebPage::setAssistedNodeValue):
        (WebKit::WebPage::setAssistedNodeValueAsNumber):
        (WebKit::WebPage::setAssistedNodeSelectedIndex):

2014-10-02  Andy Estes  <aestes@apple.com>

        [iOS] Teach WKPDFView to navigate to pageNumber links
        https://bugs.webkit.org/show_bug.cgi?id=137358

        Reviewed by Tim Horton.

        Treat PDF pageNumber annotations as if they were fragment navigations in an HTML document. For a given page
        number N, create a fragment called "#pageN" and tell WebKit to navigate to it. By doing this we create history
        entries for each pageNumber navigation and allow for proper back/forward. When navigating to a page, reset to
        the initial scale factor and scroll to the beginning of the Nth page.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _zoomToPoint:atScale:animated:]): Added an animated parameter. If animated is NO, use a duration of 0.
        (-[WKWebView _zoomToRect:atScale:origin:animated:]): Added an animated parameter and passed it to _zoomToPoint:atScale:animated:.
        (-[WKWebView _zoomOutWithOrigin:animated:]): Ditto.
        (-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]): Called _zoomToRect:atScale:origin:animated:,
        setting animated to YES.
        (-[WKWebView _didSameDocumentNavigationForMainFrame:]): Called web_didSameDocumentNavigation: on _customContentView.
        (-[WKWebView _zoomToPoint:atScale:]): Deleted.
        (-[WKWebView _zoomToRect:atScale:origin:]): Deleted.
        (-[WKWebView _zoomOutWithOrigin:]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/Cocoa/WKWebViewContentProvider.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame): Called _didSameDocumentNavigationForMainFrame on m_webView.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _zoomOutWithOrigin:]): Called _zoomOutWithOrigin:animated: on m_webView, setting animated to YES.
        * UIProcess/ios/WKPDFPageNumberIndicator.h:
        * UIProcess/ios/WKPDFPageNumberIndicator.mm:
        (-[WKPDFPageNumberIndicator hide]): Added a method to hide the page number indicator.
        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView web_setContentProviderData:suggestedFilename:]): Added a FIXME for restoring scroll position and page scale when loading from the back/forward list.
        (-[WKPDFView scrollViewDidScroll:]): Stopped showing the page number indicator if a same-document navigation is occurring (to match UIWebPDFView).
        (-[WKPDFView _updatePageNumberIndicator]): Ditto.
        (-[WKPDFView web_didSameDocumentNavigation:]):
        (-[WKPDFView _resetZoomAnimated:]): For same-document navigations of type kWKSameDocumentNavigationSessionStatePop, extracted the page index from the URL fragment
        identifier, hid the page number indicator, reset the zoom (without an animation to match UIWebPDFView), and scrolled to the beginning of the given page.
        (-[WKPDFView resetZoom:]): Called _resetZoomAnimated:, setting animated to YES.
        (-[WKPDFView annotation:wasTouchedAtPoint:controller:]): If there is a non-zero pageNumber in the link annotation, construct a "#pageN" fragment and navigate to it.

2014-10-02  Tim Horton  <timothy_horton@apple.com>

        Move PageOverlay[Controller] to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=137164
        <rdar://problem/18508258>

        Reviewed by Anders Carlsson.

        * CMakeLists.txt:
        * WebKit2.xcodeproj/project.pbxproj:
        Make the appropriate build system changes.

        * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
        Make WKBundlePageOverlayRef map to WebPageOverlay instead of PageOverlay.

        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
        (WKBundlePageInstallPageOverlay):
        (WKBundlePageUninstallPageOverlay):
        (WKBundlePageInstallPageOverlayWithAnimation):
        (WKBundlePageUninstallPageOverlayWithAnimation):
        Forward PageOverlay installation/uninstallation to WebCore.

        * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
        (WKBundlePageOverlayGetTypeID):
        (WKBundlePageOverlayCreate):
        (WKBundlePageOverlaySetAccessibilityClient):
        Use WebPageOverlay instead of PageOverlay, and references instead of pointers.
        We forward client callbacks through from PageOverlay::Client to WebPageOverlay::Client.

        (PageOverlayClientImpl::copyAccessibilityAttributeValue):
        (PageOverlayClientImpl::copyAccessibilityAttributeNames):
        Convert from wtf types to WebKit2 types.

        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::graphicsLayerFactory):
        If we don't have a drawing area, don't dereference it!

        (WebKit::WebChromeClient::attachViewOverlayGraphicsLayer):
        Forward attachViewOverlayGraphicsLayer to the DrawingArea.

        * WebProcess/WebCoreSupport/WebChromeClient.h:

        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
        * WebProcess/WebCoreSupport/WebInspectorClient.h:
        * WebProcess/WebPage/FindController.cpp:
        * WebProcess/WebPage/FindController.h:
        * WebProcess/WebPage/ios/FindControllerIOS.mm:
        * WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        * WebProcess/WebPage/ServicesOverlayController.h:
        Mechanical changes to adopt to the fact that PageOverlay is in WebCore now.

        * WebProcess/WebPage/LayerTreeHost.h:
        * WebProcess/WebPage/WebPage.cpp:
        * WebProcess/WebPage/WebPage.h:
        Remove support for WebKit2-based page overlays.
        Return MainFrame instead of Frame from mainFrame().

        * WebProcess/WebPage/WebPageOverlay.cpp: Added.
        * WebProcess/WebPage/WebPageOverlay.h: Added.
        (WebKit::WebPageOverlay::create):
        (WebKit::WebPageOverlay::WebPageOverlay):
        (WebKit::WebPageOverlay::~WebPageOverlay):
        (WebKit::WebPageOverlay::setNeedsDisplay):
        (WebKit::WebPageOverlay::clear):
        (WebKit::WebPageOverlay::pageOverlayDestroyed):
        (WebKit::WebPageOverlay::willMoveToPage):
        (WebKit::WebPageOverlay::didMoveToPage):
        (WebKit::WebPageOverlay::drawRect):
        (WebKit::WebPageOverlay::mouseEvent):
        (WebKit::WebPageOverlay::didScrollFrame):
        (WebKit::WebPageOverlay::copyAccessibilityAttributeStringValueForPoint):
        (WebKit::WebPageOverlay::copyAccessibilityAttributeBoolValueForPoint):
        (WebKit::WebPageOverlay::copyAccessibilityAttributeNames):
        WebPageOverlay exists to be our API object, but forwards everything
        to its WebCore::PageOverlay, and implements WebCore::PageOverlay::Client, and
        forwards client callbacks to its WebPageOverlay::Client (which
        WKBundlePageOverlay implements).

        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
        (-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]):
        (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
        Forward the three AX properties that PageOverlays are ever queried for
        to the appropriate PageOverlayController function.
        
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
        (WebKit::RemoteLayerTreeDrawingArea::updateRootLayers):
        Factor updateRootLayers out of setRootCompositingLayer.

        (WebKit::RemoteLayerTreeDrawingArea::attachViewOverlayGraphicsLayer):
        If we attach/detach the view-relative page overlay root layer,
        reattach the root compositing layer's children.

        (WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
        Ditto for the root compositing layer.

        (WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        (WebKit::RemoteLayerTreeDrawingArea::mainFrameContentSizeChanged):
        Informing PageOverlayController of exposed rect/document size changes is now
        WebCore's job.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
        (WebKit::TiledCoreAnimationDrawingArea::updateRootLayers):
        Factor updateRootLayers out of setRootCompositingLayer.

        (WebKit::TiledCoreAnimationDrawingArea::attachViewOverlayGraphicsLayer):
        (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
        Make use of updateRootLayers when we attach/detach root compositing layer/view overlay layer.

        (WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
        (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
        (WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):
        Informing PageOverlayController of exposed rect/document size changes is now
        WebCore's job.

        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::attachViewOverlayGraphicsLayer):

        * Shared/WebRenderLayer.cpp:
        * Shared/WebRenderObject.cpp:
        * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
        * WebProcess/WebProcess.cpp:
        Include MainFrame.h because WebPage::mainFrame returns a MainFrame now.

2014-10-02  Jeff Miller  <jeffm@apple.com>

        WKDownloadCopyRequest() returns 0 until the download starts
        https://bugs.webkit.org/show_bug.cgi?id=137322

        Reviewed by Anders Carlsson.

        The m_request ivar in DownloadProxy was only being initialized when didStart() was called after the
        download starts. Since clients have access to the ResourceRequest when the DownloadProxy is created,
        there's no reason not to pass that along to DownloadProxy::create() so it can be returned if
        WKDownloadCopyRequest() is called before didStart().

        * UIProcess/Downloads/DownloadProxy.cpp:
        (WebKit::DownloadProxy::create):
        Add ResourceRequest parameter, and pass it to DownloadProxy constructor.

        (WebKit::DownloadProxy::DownloadProxy):
        Initialize m_request.

        * UIProcess/Downloads/DownloadProxy.h:
        Add ResourceRequest parameter to create() and constructor.

        * UIProcess/Downloads/DownloadProxyMap.cpp:
        (WebKit::DownloadProxyMap::createDownloadProxy):
        Add ResourceRequest parameter and pass it to DownloadProxy::create().

        * UIProcess/Downloads/DownloadProxyMap.h:
        Add ResourceRequest parameter to createDownloadProxy().

        * UIProcess/Network/NetworkProcessProxy.cpp:
        (WebKit::NetworkProcessProxy::createDownloadProxy):
        Add ResourceRequest parameter and pass it to DownloadProxy::create().

        * UIProcess/Network/NetworkProcessProxy.h:
        Add ResourceRequest parameter to createDownloadProxy().

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::download):
        Pass ResourceRequest to createDownloadProxy().

        (WebKit::WebContext::createDownloadProxy):
        Add ResourceRequest parameter and pass it to createDownloadProxy() functions.

        * UIProcess/WebContext.h:
        Add ResourceRequest parameter to createDownloadProxy().

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::receivedPolicyDecision):
        Pass m_decidePolicyForResponseRequest to WebContext::createDownloadProxy().

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::createDownloadProxy):
        Add ResourceRequest parameter and pass it to DownloadProxyMap::create().

        * UIProcess/WebProcessProxy.h:
        Add ResourceRequest parameter to createDownloadProxy().

2014-10-01  Christophe Dumez  <cdumez@apple.com>

        Have is<>(T*) function do a null check on the pointer argument
        https://bugs.webkit.org/show_bug.cgi?id=137333

        Reviewed by Gavin Barraclough.

        Have is<>(T*) function do a null check on the argument instead of a
        simple assertion. This makes sense for 2 reasons:
        1. It is more consistent with downcast<>(T*), which will succeed even
           if the argument is a nullptr.
        2. It simplifies the code a bit as it gets rid of a lot of explicit
           null checks.

        * Shared/WebRenderObject.cpp:
        (WebKit::WebRenderObject::WebRenderObject):
        * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
        (WebKit::InjectedBundleHitTestResult::mediaType):
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::handleEvent):
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::focusedElementChanged):
        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::textFieldDidBeginEditing):
        (WebKit::WebEditorClient::textFieldDidEndEditing):
        (WebKit::WebEditorClient::textDidChangeInTextField):
        (WebKit::WebEditorClient::textDidChangeInTextArea):
        (WebKit::WebEditorClient::doTextFieldCommandFromEvent):
        (WebKit::WebEditorClient::textWillBeDeletedInTextField):
        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::containsAnyFormElements):
        (WebKit::WebFrame::containsAnyFormControls):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::pdfDocumentForPrintingFrame):
        (WebKit::WebPage::determinePrimarySnapshottedPlugIn):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::blurAssistedNode):
        (WebKit::WebPage::setAssistedNodeValue):
        (WebKit::WebPage::setAssistedNodeValueAsNumber):
        (WebKit::WebPage::setAssistedNodeSelectedIndex):
        (WebKit::WebPage::getPositionInformation):
        (WebKit::WebPage::performActionOnElement):
        (WebKit::isAssistableNode):
        (WebKit::WebPage::getAssistedNodeInformation):

2014-10-02  Daniel Bates  <dabates@apple.com>

        Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
        https://bugs.webkit.org/show_bug.cgi?id=137277

        Reviewed by Alexey Proskuryakov.

        Use wtf/spi/darwin/XPCSPI.h instead of including the corresponding XPC headers/
        forward declaring XPC functions.

        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.mm:
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:

2014-10-02  Ryuan Choi  <ryuan.choi@gmail.com>

        [EFL][WK2] test_ewk2_view is failed
        https://bugs.webkit.org/show_bug.cgi?id=132983

        Reviewed by Gyuyoung Kim.

        Enable test_ewk2_view because test cases of test_ewk2_view are passed except
        for few tests related to device_pixel_ratio.
        This patch adds macro guard for ailed test case to CAIRO_SURFACE_SET_DEVICE_SCALE macro.
        In addition, fixed some warnings while building with test_ewk2_view.

        * PlatformEfl.cmake: Enables test_ewk2_view.
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Added const keyword for argument to fix the warnings.
        (EWK2UnitTest::EWK2UnitTestBase::keyDown):
        (EWK2UnitTest::EWK2UnitTestBase::keyUp):
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F):

2014-10-02  JinYoung Hur  <hurims@gmail.com>

        Minor bug in UIClient::exceededDatabaseQuota()
        https://bugs.webkit.org/show_bug.cgi?id=137213

        Reviewed by Anders Carlsson.

        Make sure not to call the completion handler twice if exceededDatabaseQuota is null.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageUIClient):

2014-10-01  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/137308> WebKit should build on OS X Yosemite for external users

        Reviewed by Dan Bernstein.

        * Configurations/DebugRelease.xcconfig: Use libWebKitSystemInterfaceYosemite.a on Yosemite.

2014-10-01  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r174180, r174183, and r174186.
        https://bugs.webkit.org/show_bug.cgi?id=137320

        Broke the Mac MountainLion build. Will investigate offline.
        (Requested by dydz on #webkit).

        Reverted changesets:

        "Clean up: Move XPC forward declarations in JavaScriptCore to
        WTF SPI wrapper header"
        https://bugs.webkit.org/show_bug.cgi?id=137277
        http://trac.webkit.org/changeset/174180

        "Attempt to fix the build after
        <https://trac.webkit.org/changeset/174180>"
        https://bugs.webkit.org/show_bug.cgi?id=137277
        http://trac.webkit.org/changeset/174183

        "Another attempt to fix the Mac build after
        <https://trac.webkit.org/changeset/174180>"
        https://bugs.webkit.org/show_bug.cgi?id=137277
        http://trac.webkit.org/changeset/174186

2014-10-01  Daniel Bates  <dabates@apple.com>

        Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
        https://bugs.webkit.org/show_bug.cgi?id=137277

        Reviewed by Alexey Proskuryakov.

        Use wtf/spi/darwin/XPCSPI.h instead of including the corresponding XPC headers/
        forward declaring XPC functions.

        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.mm:
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:

2014-10-01  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for Event classes
        https://bugs.webkit.org/show_bug.cgi?id=137284

        Reviewed by Andreas Kling.

        Use is<>() / downcast<>() for Event classes.

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::handleEvent):

2014-10-01  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] <select> with <optgroup> may change initial selected option when assisted
        https://bugs.webkit.org/show_bug.cgi?id=137261

        Reviewed by Enrica Casucci.

        The initial assignemnt of _singleSelectionIndex was calculating the
        item index (ignoring groups) instead of the row index (affected by
        groups!). Thus if there was N groups we would select the row N
        before the real selection.

        Also avoid this entirely if this is a multiple selection picker.
        This logic is only needed for single selection with groups.

        * UIProcess/ios/forms/WKFormSelectPicker.mm:
        (-[WKMultipleSelectPicker initWithView:]):

2014-09-30  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Rename TEST_THEME_DIR macro
        https://bugs.webkit.org/show_bug.cgi?id=137244

        Reviewed by Csaba Osztrogonác.

        TEST_THEME_DIR is to get a path for default theme though, it has used TEST_ prefix.
        DEFAULT_THEME_DIR is better than it.

        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
        (EWK2UnitTest::EWK2UnitTestEnvironment::defaultTheme):
        (EWK2UnitTest::EWK2UnitTestEnvironment::pathForTheme):
        * UIProcess/efl/WebInspectorProxyEfl.cpp:
        (WebKit::WebInspectorProxy::platformCreateInspectorPage):

2014-09-30  Christophe Dumez  <cdumez@apple.com>

        Generalize is<>() / downcast<>() support to all types
        https://bugs.webkit.org/show_bug.cgi?id=137243

        Reviewed by Benjamin Poulain.

        Generalize is<>() / downcast<>() support to all types, not just Nodes.

        * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
        (-[WKDOMDocument createElement:]):
        (-[WKDOMDocument createTextNode:]):
        (-[WKDOMDocument body]):
        * WebProcess/InjectedBundle/API/mac/WKDOMText.mm:
        (-[WKDOMText data]):
        (-[WKDOMText setData:]):

2014-09-30  Chris Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for Element
        https://bugs.webkit.org/show_bug.cgi?id=137241

        Reviewed by Andreas Kling.

        Use is<>() / downcast<>() for Element instead of isElementNode() /
        toElement().

        * Shared/WebRenderObject.cpp:
        (WebKit::WebRenderObject::WebRenderObject):
        * WebProcess/InjectedBundle/API/mac/WKDOMElement.mm:
        (-[WKDOMElement hasAttribute:]):
        (-[WKDOMElement getAttribute:]):
        (-[WKDOMElement setAttribute:value:]):
        (-[WKDOMElement tagName]):
        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::InjectedBundleNodeHandle::elementBounds):
        * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
        (WebKit::InjectedBundleHitTestResult::mediaType):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
        (WebKit::WebPage::blurAssistedNode):
        (WebKit::WebPage::getPositionInformation):
        (WebKit::nextFocusableElement):
        (WebKit::WebPage::elementDidFocus):

2014-09-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r173929): [GTK] TestInspector fails after r173929
        https://bugs.webkit.org/show_bug.cgi?id=137247

        Reviewed by Philippe Normand.

        Add WebKitWebInspector:can-attach property to notify when the
        inspector attach availability changes.

        * UIProcess/API/C/gtk/WKInspectorClientGtk.h:
        * UIProcess/API/gtk/WebKitWebInspector.cpp:
        (webkit_web_inspector_class_init): Add WebKitWebInspector:can-attach property.
        (didChangeAttachAvailability): Emit notify::can-attach.
        (webkitWebInspectorCreate): Add implementation for didChangeAttachAvailability.
        (webkit_web_inspector_get_can_attach): Return whether the inspector can be attached.
        * UIProcess/API/gtk/WebKitWebInspector.h:
        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add index of new symbols in 2.8.
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
        * UIProcess/gtk/WebInspectorClientGtk.cpp:
        (WebKit::WebInspectorClientGtk::didChangeAttachAvailability):
        * UIProcess/gtk/WebInspectorClientGtk.h:
        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
        (WebKit::WebInspectorProxy::platformAttachAvailabilityChanged): Notify the client.

2014-09-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] The remote web inspector shows the HTML content as plain text
        https://bugs.webkit.org/show_bug.cgi?id=137250

        Reviewed by Gustavo Noronha Silva.

        Use GResource API directly to get the resource data, instead of
        using the GFile API, and use g_content_type_guess() to get the
        MIME Type.

        * UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
        (WebKit::WebInspectorServer::platformResourceForPath):

2014-09-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Move GtkPopupMenu implementation to WebPopupMenuProxyGtk
        https://bugs.webkit.org/show_bug.cgi?id=137193

        Reviewed by Gustavo Noronha Silva.

        GtkPopupMenu was in platform only to have a common implementation to
        be shared with WebKit1. Now that it's only used by
        WebPopupMenuProxyGtk in WebKit2, we can simplify the code by
        merging the implementation directly into WebPopupMenuProxyGtk.

        * UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
        (WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk):
        (WebKit::WebPopupMenuProxyGtk::~WebPopupMenuProxyGtk):
        (WebKit::WebPopupMenuProxyGtk::populatePopupMenu):
        (WebKit::WebPopupMenuProxyGtk::showPopupMenu):
        (WebKit::WebPopupMenuProxyGtk::hidePopupMenu):
        (WebKit::WebPopupMenuProxyGtk::typeAheadFind):
        (WebKit::WebPopupMenuProxyGtk::resetTypeAheadFindState):
        (WebKit::WebPopupMenuProxyGtk::selectItemCallback):
        (WebKit::WebPopupMenuProxyGtk::keyPressEventCallback):
        * UIProcess/gtk/WebPopupMenuProxyGtk.h:
        (WebKit::WebPopupMenuProxyGtk::setCurrentlySelectedMenuItem):

2014-09-29  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for Document
        https://bugs.webkit.org/show_bug.cgi?id=137221

        Reviewed by Andreas Kling.

        Use is<>() / downcast<>() for Document instead of isDocumentNode() /
        toDocument().

        * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
        (-[WKDOMDocument createElement:]):
        (-[WKDOMDocument createTextNode:]):
        (-[WKDOMDocument body]):

2014-09-29  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r174045.
        https://bugs.webkit.org/show_bug.cgi?id=137231

        Introduced a crash during page loading tests on Mac (Requested
        by rniwa on #webkit).

        Reverted changeset:

        "Replace OSObjectPtr with RetainPtr/adoptOS"
        https://bugs.webkit.org/show_bug.cgi?id=137158
        http://trac.webkit.org/changeset/174045

2014-09-29  Anders Carlsson  <andersca@apple.com>

        Set the TBA versions based on the PLATFORM_NAME
        https://bugs.webkit.org/show_bug.cgi?id=137226
        Follow-up fix for <rdar://problem/17761459>.

        Reviewed by Dan Bernstein.

        * mac/rewrite-availability-macros.sh:
        Turns out that MACOSX_DEPLOYMENT_TARGET is set even for iOS builds,
        so set the versions based on the PLATFORM_NAME environment variable.

2014-09-29  Dan Bernstein  <mitz@apple.com>

        Build fix.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::performActionOnElement):

2014-09-27  Andy Estes  <aestes@apple.com>

        [iOS] Add basic support for link navigation in WKPDFView
        https://bugs.webkit.org/show_bug.cgi?id=137182

        Reviewed by Tim Horton.

        Teach WKPDFView to navigate to URLs when PDF link annotations are tapped.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::navigateToURLWithSimulatedClick): Sent Messages::WebPage::NavigateToURLWithSimulatedClick.
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKPDFView.h:
        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView _clearPages]): Removed self as the UIPDFAnnotationControllerDelegate.
        (-[WKPDFView _revalidateViews]): Added self as the UIPDFAnnotationControllerDelegate.
        (-[WKPDFView annotation:wasTouchedAtPoint:controller:]): Retrieved the URL from the touched annotation,
        computed the touched point relative to the WKPDFView and to the screen, and called
        navigateToURLWithSimulatedClick() after a 200 ms delay in order to show a soon-to-be-added tap highlight
        (this value matches the delay in UIWebPDFView).
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::navigateToURLWithSimulatedClick): Created a fake single-click MouseEvent and called
        FrameLoader::urlSelected(). Creating a mouse event ensures that the navigation appears as a
        NavigationTypeLinkClicked in navigation policy delegates.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-09-29  Christophe Dumez  <cdumez@apple.com>

        Use the new is<>() / downcast<>() for Text Nodes
        https://bugs.webkit.org/show_bug.cgi?id=137188

        Reviewed by Darin Adler.

        Use the new is<>() / downcast<>() functions for Text Nodes instead of
        isText() / toText().

        * WebProcess/InjectedBundle/API/mac/WKDOMText.mm:
        (-[WKDOMText data]):
        (-[WKDOMText setData:]):

2014-09-29  Christophe Dumez  <cdumez@apple.com>

        Make is<>() / downcast<>() work for HTMLDocument and its subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137169

        Reviewed by Darin Adler.

        Use is<>() / downcast<>() for HTMLDocument and its subclasses.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::pdfDocumentForPrintingFrame):

2014-09-29  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>

        Fix !ENABLE(INSPECTOR) build after r173929
        https://bugs.webkit.org/show_bug.cgi?id=137210

        Reviewed by Timothy Hatcher.

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::getLaunchOptions):

2014-09-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r172919): WebKitPluginProcess fails to scan GTK+2 plugins after r172919.
        https://bugs.webkit.org/show_bug.cgi?id=137191

        Reviewed by Philippe Normand.

        In r172919 I moved the GTK+ symbols mix check earlier, before the
        plugin is loaded and initialized. That made impossible to use the
        GTK3 plugin process to scan gtk2 plugins, because we need to load
        the plugin to get its metadata. But we don't need to initialize
        the plugin to check if it requires GTK2, so we can do that check
        in the UI process to decide which plugin process to use.

        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
        (WebKit::NetscapePluginModule::getPluginInfoForLoadedPlugin):
        Remove the requires GTK2 check.
        (WebKit::NetscapePluginModule::scanPlugin): Don't write
        requires-gtk2 to stdout.
        * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
        (WebKit::pluginRequiresGtk2): Helper function to check if the
        given plugin path requires GTK2.
        (WebKit::PluginProcessProxy::scanPlugin): Check if the plugin path
        requires GTK2 and use WebKitPluginProcess2 in such case, or return
        early if GTK2 plugins are not enabled. Log error messages when
        something fails scanning the plugin to make it easiert to debug
        problems in the future.

2014-09-28  Myles C. Maxfield  <mmaxfield@apple.com>

        Replace wkGetGlyphsForCharacters() with CGFontGetGlyphsForUnichars()
        https://bugs.webkit.org/show_bug.cgi?id=137197

        Reviewed by Alexey Proskuryakov.

        No new tests because there is no behavior change.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface):
        * mac/WebKit2.order:

2014-09-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Use std::unique_ptr for ContextMenuController
        https://bugs.webkit.org/show_bug.cgi?id=137178

        Reviewed by Darin Adler.

        Switch to using std::unique_ptr instead of OwnPtr and PassOwnPtr
        for ContextMenuController class. Inherited class is changed by this use as well.

        * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
        (WebKit::WebContextMenuClient::customizeMenu):
        * WebProcess/WebCoreSupport/WebContextMenuClient.h:

2014-09-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Move ColorInputType class to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=137173

        Reviewed by Darin Adler.

        Replace uses of PassOwnPtr in code under ColorInputType class with std::unique_ptr.
        Child classes follow this change as well.

        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::createColorChooser):
        * WebProcess/WebCoreSupport/WebChromeClient.h:

2014-09-26  Sam Weinig  <sam@webkit.org>

        Replace OSObjectPtr with RetainPtr/adoptOS
        https://bugs.webkit.org/show_bug.cgi?id=137158

        Reviewed by Dan Bernstein.

        * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
        (DatabaseServiceInitializer):
        * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
        (WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate):
        (NetworkServiceInitializer):
        * Platform/IPC/Connection.h:
        (IPC::Connection::Identifier::Identifier):
        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::ConnectionTerminationWatchdog::createConnectionTerminationWatchdog):
        (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
        * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
        (WebKit::PluginServiceInitializerDelegate::PluginServiceInitializerDelegate):
        (PluginServiceInitializer):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
        (WebKit::XPCServiceInitializerDelegate::XPCServiceInitializerDelegate):
        (WebKit::XPCServiceInitializer):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
        (WebKit::XPCServiceInitializerDelegate::checkEntitlements):
        (WebKit::XPCServiceInitializerDelegate::hasEntitlement):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
        (WebKit::XPCServiceEventHandler):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
        (WebKit::XPCServiceEventHandler):
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):
        (WebKit::connectToReExecService):
        * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
        (WebContentServiceInitializer):

2014-09-26  Christophe Dumez  <cdumez@apple.com>

        Stop using legacy NODE_TYPE_CASTS() macro for HTML Elements
        https://bugs.webkit.org/show_bug.cgi?id=137137

        Reviewed by Benjamin Poulain.

        Use is<>() / downcast<>() where appropriate.

        * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
        (WebKit::PDFPluginTextAnnotation::value):
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::initializePlugin):
        (WebKit::PluginView::pluginSnapshotTimerFired):
        (WebKit::PluginView::pluginDidReceiveUserInteraction):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::createPlugin):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::performActionOnElement):

2014-09-26  Anders Carlsson  <andersca@apple.com>

        Add API for loading local files
        https://bugs.webkit.org/show_bug.cgi?id=137153
        rdar://problem/17761459

        Reviewed by Oliver Hunt.

        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView loadFileURL:allowingReadAccessToURL:]):
        Load the file, wrapping the navigation ID in a WKNavigation using createLoadRequestNavigation.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::loadFile):
        * UIProcess/WebPageProxy.h:
        Return the navigation ID (or 0 if the navigation failed).

2014-09-26  Timothy Hatcher  <timothy@apple.com>

        Add WKInspector back function stubs that went missing from r173929.
        My changes to WKDeprecatedFunctions.cpp got lost in the shuffle.

        * Shared/API/c/WKDeprecatedFunctions.cpp:
        (WKInspectorIsDebuggingJavaScript):
        (WKInspectorToggleJavaScriptDebugging):
        (WKInspectorIsProfilingJavaScript):
        (WKInspectorToggleJavaScriptProfiling):

2014-09-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r173929): Web inspector doesn't work after r173929 when INSPECTOR_SERVER is enabled
        https://bugs.webkit.org/show_bug.cgi?id=137150

        Reviewed by Timothy Hatcher.

        The inspector doesn't show any information about the inspected
        page because it's sending messages to a remote frontend that is
        not running.

        * WebProcess/WebPage/WebInspector.cpp:
        (WebKit::WebInspector::WebInspector): Initialize m_remoteFrontendConnected.
        (WebKit::WebInspector::sendMessageToFrontend): Send
        SendMessageToRemoteFrontend message to the UI process when remote
        frontend is connected, or SendMessageToFrontend message to
        WebInspectorUI otherwise.
        (WebKit::WebInspector::remoteFrontendConnected): Set m_remoteFrontendConnected to true.
        (WebKit::WebInspector::remoteFrontendDisconnected): Set m_remoteFrontendConnected to false.
        * WebProcess/WebPage/WebInspector.h:

2014-09-26  Alberto Garcia  <berto@igalia.com>

        [GTK] Don't include full path names in WebKitEnumTypes.h
        https://bugs.webkit.org/show_bug.cgi?id=137148

        Reviewed by Carlos Garcia Campos.

        Replace @filename@ with @basename@ in the template, since we don't
        want to include the full path name in the generated header.

        * UIProcess/API/gtk/WebKitEnumTypes.h.template:

2014-09-25  Yusuke Suzuki  <utatane.tea@gmail.com>

        Clean up unused parameter warnings
        https://bugs.webkit.org/show_bug.cgi?id=137107

        Reviewed by Benjamin Poulain.

        * Scripts/webkit/messages.py:
        (generate_message_handler):
        Sometimes generated code doesn't use `connection` parameter. So `UNUSED_PARAM(connection)` is necessary.
        * UIProcess/API/C/WKPage.cpp:
        (WKPageIsPlayingAudio):

2014-09-25  Christophe Dumez  <cdumez@apple.com>

        Use is<HTML*Element>() instead of isHTML*Element() - Part 2
        https://bugs.webkit.org/show_bug.cgi?id=137103

        Reviewed by Benjamin Poulain.

        Use is<HTML*Element>() instead of isHTML*Element().

        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::containsAnyFormElements):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::determinePrimarySnapshottedPlugIn):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getAssistedNodeInformation):

2014-09-25  Anders Carlsson  <andersca@apple.com>

        Expand WK_MAC_TBA and WK_IOS_TBA to the current deployment target version (or NA).
        https://bugs.webkit.org/show_bug.cgi?id=137127
        Part of rdar://problem/17761459.

        Reviewed by Dan Bernstein.

        * mac/rewrite-availability-macros.sh:

2014-09-25  Tim Horton  <timothy_horton@apple.com>

        CommitLayerTree decode fails in 32-bit apps on 64-bit devices (TransformationMatrix alignment differs)
        https://bugs.webkit.org/show_bug.cgi?id=136444
        <rdar://problem/17952526>

        Reviewed by Anders Carlsson.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<TransformationMatrix>::encode):
        (IPC::ArgumentCoder<TransformationMatrix>::decode):
        Stop using SimpleArgumentCoder to encode/decode TransformationMatrix,
        because the alignment of TransformationMatrix differs between architectures,
        and there's no guarantee that both sides of a connection are the same architecture.

2014-09-25  Alberto Garcia  <berto@igalia.com>

        Unreviewed typo fix.

        * UIProcess/API/C/soup/WKContextSoup.cpp:

2014-09-25  Shivakumar JM  <shiva.jm@samsung.com>

        [WebKit2] Fix build warning in WebKit2/WebProcess module.
        https://bugs.webkit.org/show_bug.cgi?id=137105

        Reviewed by Csaba Osztrogonác.

        Fix build warning by removing unused parameter names

        * WebProcess/WebPage/WebInspector.h:
        (WebKit::WebInspector::didReceiveInvalidMessage):
        * WebProcess/WebPage/WebInspectorUI.h:
        (WebKit::WebInspectorUI::didReceiveInvalidMessage):

2014-09-24  Sam Weinig  <sam@webkit.org>

        Remove incorrect use of the BKSProcessAssertionAllowSuspendOnSleep flag for process suspension in iOS WebKit2
        <rdar://problem/18400566>
        https://bugs.webkit.org/show_bug.cgi?id=137077

        Reviewed by Anders Carlsson.

        * UIProcess/ios/ProcessAssertionIOS.mm:
        Remove use of the BKSProcessAssertionAllowSuspendOnSleep which does not do what we expect, and instead
        causes processes to be suspended "forever" after sleep.

2014-09-24  Christophe Dumez  <cdumez@apple.com>

        Use is<HTML*Element>() instead of isHTML*Element() - Part 1
        https://bugs.webkit.org/show_bug.cgi?id=137068

        Reviewed by Ryosuke Niwa.

        Start using is<HTML*Element>() instead of isHTML*Element().
        Remaining usages will be updated in a follow-up patch to
        reduce the size of the change.

        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::InjectedBundleNodeHandle::setHTMLInputElementValueForUser):
        (WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutofilled):
        (WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutofilled):
        (WebKit::InjectedBundleNodeHandle::htmlInputElementLastChangeWasUserEdit):
        (WebKit::InjectedBundleNodeHandle::htmlTextAreaElementLastChangeWasUserEdit):
        (WebKit::InjectedBundleNodeHandle::isTextField):
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::focusedElementChanged):
        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::textFieldDidBeginEditing):
        (WebKit::WebEditorClient::textFieldDidEndEditing):
        (WebKit::WebEditorClient::textDidChangeInTextField):
        (WebKit::WebEditorClient::textDidChangeInTextArea):
        (WebKit::WebEditorClient::doTextFieldCommandFromEvent):
        (WebKit::WebEditorClient::textWillBeDeletedInTextField):
        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::containsAnyFormControls):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setAssistedNodeValue):
        (WebKit::WebPage::setAssistedNodeValueAsNumber):
        (WebKit::WebPage::setAssistedNodeSelectedIndex):

2014-09-23  Ada Chan  <adachan@apple.com>

        Add stub implementation of WKPageIsPlayingAudio().
        https://bugs.webkit.org/show_bug.cgi?id=137044

        Reviewed by Anders Carlsson.

        Also add an isPlayingAudioDidChange callback to WKPageUIClient.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageIsPlayingAudio):
        * UIProcess/API/C/WKPagePrivate.h:
        * UIProcess/API/C/WKPageUIClient.h:

2014-09-21  Timothy Hatcher  <timothy@apple.com>

        Make the Web Inspector use a separate web process.

        https://bugs.webkit.org/show_bug.cgi?id=135120

        Reviewed by Anders Carlsson.

        * CMakeLists.txt:
        * DerivedSources.make:
        * PlatformEfl.cmake:
        * PlatformGTK.cmake:
        * WebKit2.xcodeproj/project.pbxproj:
        Added new WebInspectorUI files and removed WebInspectorFrontendClient.cpp.

        * Shared/APIObject.h: Added BundleInspectorUI.

        * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm:
        (WebKit::ChildProcessMainDelegate::getExtraInitializationData):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
        (WebKit::XPCServiceInitializerDelegate::getExtraInitializationData):
        Add support for "inspector-process" data, a boolean that is used by
        WebProcess::initializeProcessName.

        * UIProcess/API/C/WKInspector.cpp:
        (WKInspectorIsDebuggingJavaScript):
        (WKInspectorToggleJavaScriptDebugging):
        (WKInspectorIsProfilingJavaScript):
        (WKInspectorToggleJavaScriptProfiling):
        * UIProcess/API/C/WKInspector.h:
        Stub out functions we don't support but need to keep for nightly compatibility.

        * UIProcess/WebInspectorProxy.cpp:
        (WebKit::WebInspectorPageGroups::createInspectorPageGroup):
        (WebKit::WebInspectorProxy::WebInspectorProxy):
        (WebKit::WebInspectorProxy::invalidate):
        (WebKit::WebInspectorProxy::connect):
        (WebKit::WebInspectorProxy::showConsole):
        (WebKit::WebInspectorProxy::showResources):
        (WebKit::WebInspectorProxy::showMainResourceForFrame):
        (WebKit::WebInspectorProxy::attach):
        (WebKit::WebInspectorProxy::detach):
        (WebKit::WebInspectorProxy::inspectorContext):
        (WebKit::WebInspectorProxy::dispatchMessageFromRemoteFrontend):
        (WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):
        (WebKit::WebInspectorProxy::createInspectorPage):
        (WebKit::WebInspectorProxy::open):
        (WebKit::WebInspectorProxy::didClose):
        (WebKit::WebInspectorProxy::attachAvailabilityChanged):
        * UIProcess/WebInspectorProxy.h:
        (WebKit::WebInspectorProxy::isConnected):
        (WebKit::WebInspectorProxy::canAttach):
        * UIProcess/WebInspectorProxy.messages.in:
        * UIProcess/efl/WebInspectorProxyEfl.cpp:
        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
        (WebKit::WebInspectorProxy::platformAttach):
        * UIProcess/mac/WebInspectorProxyMac.mm:
        (-[WKWebInspectorProxyObjCAdapter close]):
        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
        (WebKit::WebInspectorProxy::platformDidClose):
        (WebKit::WebInspectorProxy::platformHide):
        (WebKit::WebInspectorProxy::platformSave):
        (WebKit::WebInspectorProxy::platformAppend):
        (WebKit::WebInspectorProxy::platformAttach):
        Changed how the Inspector page is created by making it in a new WebContext for
        the Inspector. This removes us from the main process pool and guarantees no process
        sharing for our user interface. Also send new WebInspectorUI messages to the Inspector
        page and not the inspected page when appropriate.

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::getLaunchOptions): Add "inspector-process" to extraInitializationData
        if the context is the Inspector context. This is used by WebProcess::initializeProcessName.

        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
        (WebKit::WebInspectorClient::openInspectorFrontend):
        (WebKit::WebInspectorClient::closeInspectorFrontend):
        (WebKit::WebInspectorClient::bringFrontendToFront):
        * WebProcess/WebCoreSupport/WebInspectorClient.h:
        Remove the InspectorFrontendChannel class from WebInspectorClient and clean up a little.
        InspectorFrontendChannel implementation moved to WebInspector.

        * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp: Removed. Superseded by WebInspectorUI.

        * WebProcess/WebPage/WebInspector.cpp:
        (WebKit::WebInspector::create):
        (WebKit::WebInspector::WebInspector):
        (WebKit::WebInspector::createInspectorPage):
        (WebKit::WebInspector::closeFrontend):
        (WebKit::WebInspector::openInNewTab):
        (WebKit::WebInspector::showConsole):
        (WebKit::WebInspector::showResources):
        (WebKit::WebInspector::showMainResourceForFrame):
        (WebKit::WebInspector::startPageProfiling):
        (WebKit::WebInspector::stopPageProfiling):
        (WebKit::WebInspector::canAttachWindow):
        (WebKit::WebInspector::updateDockingAvailability):
        (WebKit::WebInspector::sendMessageToBackend):
        (WebKit::WebInspector::sendMessageToFrontend):
        (WebKit::WebInspector::remoteFrontendConnected):
        (WebKit::WebInspector::remoteFrontendDisconnected):
        * WebProcess/WebPage/WebInspector.h:
        (WebKit::WebInspector::didClose):
        (WebKit::WebInspector::didReceiveInvalidMessage):
        (WebKit::WebInspector::setAttached):
        * WebProcess/WebPage/WebInspector.messages.in:
        Stop taking an optional InspectorFrontendChannel and inherit it instead. Create a connection that
        can be passed to the other web process for WebInspectorUI to use. Stop referencing Inspector's page
        directly, since it is in another process now.

        * WebProcess/WebPage/WebInspectorUI.cpp: Added.
        (WebKit::WebInspectorUI::create):
        (WebKit::WebInspectorUI::WebInspectorUI):
        (WebKit::WebInspectorUI::establishConnection):
        (WebKit::WebInspectorUI::windowObjectCleared):
        (WebKit::WebInspectorUI::frontendLoaded):
        (WebKit::WebInspectorUI::moveWindowBy):
        (WebKit::WebInspectorUI::bringToFront):
        (WebKit::WebInspectorUI::closeWindow):
        (WebKit::WebInspectorUI::requestSetDockSide):
        (WebKit::WebInspectorUI::setDockSide):
        (WebKit::WebInspectorUI::changeAttachedWindowHeight):
        (WebKit::WebInspectorUI::changeAttachedWindowWidth):
        (WebKit::WebInspectorUI::setToolbarHeight):
        (WebKit::WebInspectorUI::openInNewTab):
        (WebKit::WebInspectorUI::save):
        (WebKit::WebInspectorUI::append):
        (WebKit::WebInspectorUI::inspectedURLChanged):
        (WebKit::WebInspectorUI::showConsole):
        (WebKit::WebInspectorUI::showResources):
        (WebKit::WebInspectorUI::showMainResourceForFrame):
        (WebKit::WebInspectorUI::startPageProfiling):
        (WebKit::WebInspectorUI::stopPageProfiling):
        (WebKit::WebInspectorUI::didSave):
        (WebKit::WebInspectorUI::didAppend):
        (WebKit::WebInspectorUI::sendMessageToFrontend):
        (WebKit::WebInspectorUI::sendMessageToBackend):
        (WebKit::WebInspectorUI::evaluateCommandOnLoad):
        (WebKit::WebInspectorUI::evaluateExpressionOnLoad):
        (WebKit::WebInspectorUI::evaluatePendingExpressions):
        * WebProcess/WebPage/WebInspectorUI.h: Added.
        (WebKit::WebInspectorUI::page):
        (WebKit::WebInspectorUI::didClose):
        (WebKit::WebInspectorUI::didReceiveInvalidMessage):
        (WebKit::WebInspectorUI::attachedBottom):
        (WebKit::WebInspectorUI::attachedRight):
        (WebKit::WebInspectorUI::detached):
        (WebKit::WebInspectorUI::evaluateCommandOnLoad):
        * WebProcess/WebPage/WebInspectorUI.messages.in: Added.
        * WebProcess/WebPage/efl/WebInspectorUIEfl.cpp: Added.
        (WebKit::WebInspectorUI::canSave):
        (WebKit::WebInspectorUI::localizedStringsURL):
        * WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp: Added.
        (WebKit::WebInspectorUI::canSave):
        (WebKit::WebInspectorUI::localizedStringsURL):
        * WebProcess/WebPage/mac/WebInspectorUIMac.mm: Added.
        (WebKit::WebInspectorUI::canSave):
        (WebKit::WebInspectorUI::localizedStringsURL):
        Implement the InspectorFrontendClient and handle a connection to the inspected page's WebInspector.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::~WebPage):
        (WebKit::WebPage::inspector):
        (WebKit::WebPage::inspectorUI):
        (WebKit::WebPage::didReceiveMessage):
        Setup as a listener for WebInspectorUI messages.

        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::isInspectorPage): It is an Inspector page if we have a m_inspectorUI.

        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::initializeProcessName):
        Name the process "%@ Web Inspector" if it is an Inspector content process. Processes in that
        context are not shared with multiple pages.

2014-09-24  Dean Jackson  <dino@apple.com>

        Add a deprecated stub for WKPreferencesSetMultithreadedWebGLEnabled (and Get)
        https://bugs.webkit.org/show_bug.cgi?id=137071

        Reviewed by Brent Fulgham.

        Put in stubs for WKPreferencesSetMultithreadedWebGLEnabled and
        WKPreferencesGetMultithreadedWebGLEnabled. These were removed in
        r173776 but are still needed for nightly builds to link
        (or will be once Yosemite nightlies are available).

        * Shared/API/c/WKDeprecatedFunctions.cpp:
        (WKPreferencesSetMultithreadedWebGLEnabled):
        (WKPreferencesGetMultithreadedWebGLEnabled):

2014-09-24  Daniel Bates  <dabates@apple.com>

        [iOS] Fix the iOS build after <http://trac.webkit.org/changeset/173893>
        (https://bugs.webkit.org/show_bug.cgi?id=137007)

        Add closing parenthesis characters that were inadvertently removed in <http://trac.webkit.org/changeset/173893>.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setAssistedNodeSelectedIndex):
        (WebKit::WebPage::getAssistedNodeInformation):

2014-09-23  Christophe Dumez  <cdumez@apple.com>

        Unreviewed build fix after r173893.

        Partial revert of r173893 to fix debug builds.

        * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
        (WebKit::PDFPluginTextAnnotation::value):
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::initializePlugin):
        (WebKit::PluginView::pluginSnapshotTimerFired):
        (WebKit::PluginView::pluginDidReceiveUserInteraction):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::createPlugin):

2014-09-23  Chris Dumez  <cdumez@apple.com>

        Use downcast<HTML*Element>() instead of toHTML*Element()
        https://bugs.webkit.org/show_bug.cgi?id=137007

        Reviewed by Benjamin Poulain.

        Use downcast<HTML*Element>() instead of toHTML*Element().

        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::InjectedBundleNodeHandle::setHTMLInputElementValueForUser):
        (WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutofilled):
        (WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutofilled):
        (WebKit::InjectedBundleNodeHandle::htmlInputElementLastChangeWasUserEdit):
        (WebKit::InjectedBundleNodeHandle::htmlTextAreaElementLastChangeWasUserEdit):
        (WebKit::InjectedBundleNodeHandle::isTextField):
        (WebKit::InjectedBundleNodeHandle::htmlTableCellElementCellAbove):
        (WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
        * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
        (WebKit::PDFPluginChoiceAnnotation::commit):
        * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
        (WebKit::PDFPluginTextAnnotation::createAnnotationElement):
        (WebKit::PDFPluginTextAnnotation::value):
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::initializePlugin):
        (WebKit::PluginView::pluginSnapshotTimerFired):
        (WebKit::PluginView::pluginDidReceiveUserInteraction):
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::focusedElementChanged):
        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::textFieldDidBeginEditing):
        (WebKit::WebEditorClient::textFieldDidEndEditing):
        (WebKit::WebEditorClient::textDidChangeInTextField):
        (WebKit::WebEditorClient::textDidChangeInTextArea):
        (WebKit::WebEditorClient::doTextFieldCommandFromEvent):
        (WebKit::WebEditorClient::textWillBeDeletedInTextField):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::createPlugin):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setAssistedNodeValue):
        (WebKit::WebPage::setAssistedNodeValueAsNumber):
        (WebKit::WebPage::setAssistedNodeSelectedIndex):
        (WebKit::isAssistableNode): Deleted.
        (WebKit::WebPage::getAssistedNodeInformation): Deleted.

2014-09-23  Jer Noble  <jer.noble@apple.com>

        REGRESSION (r171197): Clip's content is drawn behind Safari window when entering Full Screen youtube html5 first time
        https://bugs.webkit.org/show_bug.cgi?id=137029

        Reviewed by Brent Fulgham.

        In r171197, we ordered the full screen window on- and off-screen so that the fullscreen animation went to the
        correct screen, which introduced a subtle glitch at the beginning and end of an animation. For entering, ensure
        that the window is scaled to its starting size before ordering on-screen. For exiting, order the window off-
        screen before resetting its clipping rect.

        * UIProcess/mac/WKFullScreenWindowController.mm:
        (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
        (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):

2014-09-23  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
        https://bugs.webkit.org/show_bug.cgi?id=136893

        Reviewed by Timothy Hatcher.

        * WebProcess/WebPage/WebInspector.cpp:
        (WebKit::WebInspector::remoteFrontendConnected):

2014-09-22  Daniel Bates  <dabates@apple.com>

        [Cocoa] Add UI delegate callback when window.close() is called
        https://bugs.webkit.org/show_bug.cgi?id=137008
        <rdar://problem/17801001>

        Reviewed by Anders Carlsson.

        Implement support infrastructure to notify the UI client when window.close() is called.

        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added method declaration for -_webViewClose:.
        * UIProcess/Cocoa/UIDelegate.h: Added override declaration for API::UIClient::close().
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::setDelegate): Wire up delegate method to Objective-C selector, -[WKUIDelegatePrivate _webViewClose:].
        (WebKit::UIDelegate::UIClient::close): Added; turns around and calls -[WKUIDelegatePrivate _webViewClose:] (if applicable).

2014-09-21  Chris Dumez  <cdumez@apple.com>

        Generate Element casting helper functions
        https://bugs.webkit.org/show_bug.cgi?id=136839

        Reviewed by Darin Adler.

        Use JSXXX::toWrapped() instead of toXXX() function.

        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::InjectedBundleNodeHandle::getOrCreate):
        * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
        (WebKit::InjectedBundleRangeHandle::getOrCreate):
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::webNotificationID):

2014-09-19  Ryosuke Niwa  <rniwa@webkit.org>

        WebContent crash in WebKit::WebPage::expandedRangeFromHandle
        https://bugs.webkit.org/show_bug.cgi?id=136969

        Reviewed by David Kilzer.

        The crash was caused by m_currentBlockSelection and frame.selection().selection().toNormalizedRange()
        both being null and the subsequent lines of code assuming currentRange to be not null.

        Replace the assertion by an early exit since the range could be null here.

        In the future, we should figure out if there are other things we need to do in addition
        to checking the nullity when this race condition is hit.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):

2014-09-19  Dean Jackson  <dino@apple.com>

        Multithreaded WebGL is a bad idea - remove it
        https://bugs.webkit.org/show_bug.cgi?id=136964
        <rdar://problem/18399858>

        Reviewed by Brent Fulgham.

        Remove the setting to allow multithreaded WebGL.

        * Shared/WebPreferencesDefinitions.h:
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetMultithreadedWebGLEnabled): Deleted.
        (WKPreferencesGetMultithreadedWebGLEnabled): Deleted.
        * UIProcess/API/C/WKPreferencesRefPrivate.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-09-19  Simon Fraser  <simon.fraser@apple.com>

        Provide a default argument for the most commonly used HitTestRequest variant
        https://bugs.webkit.org/show_bug.cgi?id=136653

        Reviewed by Darin Adler.

        Make the default HitTestRequest flags be ReadOnly | Active | DisallowShadowContent
        and change call sites using the default flags to use a HitTestRequest temporary.

        * WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
        (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-09-19  Daniel Bates  <dabates@apple.com>

        Always assume internal SDK when building configuration Production
        https://bugs.webkit.org/show_bug.cgi?id=136925
        <rdar://problem/18362399>

        Reviewed by Dan Bernstein.

        As a side effect of this change we will always enable ENABLE_TOUCH_EVENTS, ENABLE_IOS_{GESTURE, TOUCH}_EVENTS,
        and ENABLE_XSLT when either building configuration Production or building with the Internal SDK.

        * Configurations/Base.xcconfig:

2014-09-19  Simon Fraser  <simon.fraser@apple.com>

        Fix the Mac Mavericks build. Only iOS cares about fencing.

        * Platform/mac/LayerHostingContext.h:
        * Platform/mac/LayerHostingContext.mm:

2014-09-19  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Missing inspector files in the tarball
        https://bugs.webkit.org/show_bug.cgi?id=136952

        Reviewed by Gustavo Noronha Silva.

        * PlatformGTK.cmake: Use APPEND instead of GLOB to add individual
        and generated files to the list of inspector files.

2014-09-19  Carlos Garcia Campos  <cgarcia@igalia.com>

        Webkitgtk 2.5.3: tarball contains APPLE LICENSE file - stating not distributable
        https://bugs.webkit.org/show_bug.cgi?id=136632

        Reviewed by Gustavo Noronha Silva.

        * PlatformGTK.cmake: Use only the icons from the gtk directory since they are free.

2014-09-19  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] generate-inspector-gresource-manifest.py should receive the list of files from the makefile
        https://bugs.webkit.org/show_bug.cgi?id=136943

        Reviewed by Philippe Normand.

        * PlatformGTK.cmake: Fix the inspector file list and pass it to
        the generate-inspector-gresource-manifest.py script.

2014-09-18  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Dot not allow to create delete-on-destroy GMainLoopSources
        https://bugs.webkit.org/show_bug.cgi?id=136923

        Reviewed by Gustavo Noronha Silva.

        * Platform/gtk/WorkQueueGtk.cpp:
        (WorkQueue::dispatch): Use GMainLoopSource::scheduleAndDeleteOnDestroy().
        (WorkQueue::dispatchAfter): Use GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy().

2014-09-18  Ryuan Choi  <ryuan.choi@gmail.com>

        [EFL][CoordinatedGraphics] Remove setBackgroundColor message
        https://bugs.webkit.org/show_bug.cgi?id=136824

        Reviewed by Gyuyoung Kim.

        CoordinatedGraphics used setBackgroundColor() to draw the background of contents
        although tiles are not ready.

        This patch removes setBackgroundColor() and uses pageExtendedBackgroundColor()
        which provides similar functionality.

        * UIProcess/API/efl/EwkView.cpp:
        Enables or disables WKPageSetBackgroundExtendsBeyondPage to use pageExtendedBackgroundColor()
        (EwkView::EwkView):
        (EwkView::setBackgroundColor):
        * UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
        (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext): Passed pageExtendedBackgroundColor.
        (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext): Ditto.
        (WebCore::CoordinatedGraphicsScene::setBackgroundColor): Deleted.
        * UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h:
        (WebCore::CoordinatedGraphicsScene::setDrawsBackground): Deleted.
        * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
        (WebKit::CoordinatedLayerTreeHostProxy::setBackgroundColor): Deleted.
        * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
        * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
        * UIProcess/CoordinatedGraphics/WebView.cpp:
        (WebKit::WebView::paintToCurrentGLContext):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::pageExtendedBackgroundColorDidChange):
        Refactored to use const reference for the Color parameter.
        * UIProcess/WebPageProxy.h:
        * UIProcess/efl/WebViewEfl.cpp:
        (WebKit::WebViewEfl::paintToCairoSurface):
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange):
        Added PLATFORM(EFL) to pass PageExtendedBackgroundColorDidChange message.
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
        (WebKit::CoordinatedLayerTreeHost::setBackgroundColor): Deleted.
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
        * WebProcess/WebPage/LayerTreeHost.h:
        (WebKit::LayerTreeHost::setBackgroundColor): Deleted.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::mainFrameDidLayout):

2014-09-18  Jeremy Jones  <jeremyj@apple.com>

        Improve fullscreen video rotation animation.
        https://bugs.webkit.org/show_bug.cgi?id=136870

        Reviewed by Simon Fraser.

        Remove WKCAContext from LayerHostingContext and use a fencePort to synchronize animation between processes.

        * Platform/mac/LayerHostingContext.h: add setFencePort. Remove WKCAContext.
        * Platform/mac/LayerHostingContext.mm:
        (WebKit::LayerHostingContext::createForPort): Remove WKCAContext.
        (WebKit::LayerHostingContext::createForExternalHostingProcess): ditto
        (WebKit::LayerHostingContext::setRootLayer): ditto
        (WebKit::LayerHostingContext::rootLayer): ditto
        (WebKit::LayerHostingContext::contextID): ditto
        (WebKit::LayerHostingContext::invalidate): ditto
        (WebKit::LayerHostingContext::setColorSpace): ditto
        (WebKit::LayerHostingContext::colorSpace): ditto
        (WebKit::LayerHostingContext::setFencePort): added
        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): 
        * WebProcess/ios/WebVideoFullscreenManager.h:
        * WebProcess/ios/WebVideoFullscreenManager.messages.in: add fence port parameter
        * WebProcess/ios/WebVideoFullscreenManager.mm: ditto
        (WebKit::WebVideoFullscreenManager::didSetupFullscreen): ditto
        (WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): ditto

2014-09-18  Simon Fraser  <simon.fraser@apple.com>

        Avoid divide by zero when we get an empty rect while snapshotting a node
        https://bugs.webkit.org/show_bug.cgi?id=136932
        rdar://problem/18383473

        Reviewed by Dean Jackson.
        
        renderer()->paintingRootRect() can return an empty rect for some inline configurations,
        for example an <a> containing a floated <span>
        
        When this occurs, avoid a divide by zero and return a null snapshot image.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::snapshotNode):

2014-09-18  Carlos Garcia Campos  <cgarcia@igalia.com>

        Incorrect pending API request URL when loading an HTML string
        https://bugs.webkit.org/show_bug.cgi?id=136913

        Reviewed by Alexey Proskuryakov.

        Use about:blank as pending API request URL when the given base URL
        is empty, otherwise use the given base URL.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::loadHTMLString):

2014-09-18  Tim Horton  <timothy_horton@apple.com>

        Occasional unreproducible crashes in MessageReceiverMap::dispatchMessage
        https://bugs.webkit.org/show_bug.cgi?id=136909
        <rdar://problem/17758325>

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView dealloc]):
        We're seeing some messages dispatched on the WebContext that end up
        attempting to call dispatchMessage on a freed MessageReceiver.
        The WKRemoteObjectRegistry message receiver is added to the WebContext
        message receiver map, but never removed, despite the WebContext easily
        outliving the WKWebView that owns the remote object registry.

2014-09-17  Rohit Kumar  <kumar.rohit@samsung.com>

        [EFL][WK2] Use the correct enum for control key in Ewk_Event_Modifiers in ewk_navigation_policy_decision.cpp
        https://bugs.webkit.org/show_bug.cgi?id=136740

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
        (toEwkEventModifiers):

2014-09-17  Daniel Bates  <dabates@apple.com>

        Unreviewed, rolling out r173695.

        Broke building third-party Legacy WebKit apps; will
        investigate offline

        Reverted changeset:

        "[iOS] Make WebCore build with public iOS SDK"
        https://bugs.webkit.org/show_bug.cgi?id=136487
        http://trac.webkit.org/changeset/173695

2014-09-17  Simon Fraser  <simon.fraser@apple.com>

        Fix an issue that caused video playback to not always use high resolution streams
        https://bugs.webkit.org/show_bug.cgi?id=136879
        rdar://problem/18316542

        Reviewed by Eric Carlson.
        
        The underlying video framework expects to be able to use -[CALayer convertRect:toLayer:nil] on
        the video layer to obtain information about the display resolution of the video,
        including the device scale factor. This doesn't work for layers in the web process,
        which are remotely hosted into the UI process.
        
        For now, use a workaround which involves putting a scale transform equivalent to
        the device scale factor on the web process layer, and the inverse scale on the 
        hosting layer in the UI process.
        
        We have to do this in two places, for in-page video, and for fullscreen video.

        * Shared/mac/RemoteLayerTreeTransaction.h: Add hostingDeviceScaleFactor to the LayerCreation
        properties.
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
        (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode):
        (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (-[WKRemoteView initWithFrame:contextID:hostingDeviceScaleFactor:]): Set the inverse scale
        transform on the layer.
        (WebKit::RemoteLayerTreeHost::createLayer):
        (-[WKRemoteView initWithFrame:contextID:]): Deleted.
        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID):
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
        (WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        (WebKit::RemoteLayerTreeContext::deviceScaleFactor):
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::layerWasCreated):
        * WebProcess/ios/WebVideoFullscreenManager.mm:
        (WebKit::WebVideoFullscreenManager::enterFullscreenForNode):
        (WebKit::WebVideoFullscreenManager::didSetupFullscreen):

2014-09-17  Gavin Barraclough  <baraclough@apple.com>

        Aways have a PageThrottler (sometimes have a UserActivity::Impl)
        https://bugs.webkit.org/show_bug.cgi?id=136892

        Reviewed by Geoffrey Garen.

        Some instances of Page have a PageThrottler to track activity on the Page, and some do not.
        (Specifically, those created from WebPage in WK2 do, those related to WK1, SVG & inspector do not).

        We do this for three reasons:
            * We do not need to take AppNap assertions on WK1.
            * Some Pages do not track their visibility correctly, and would always claim to be visible.
            * Page VisibilityState is not set until after construction, so if we instantiate

        Creating the entire PageThrottler lazily has the drawback that we have to check for its existence at
        numerous points throughout the code, and we'll miss activity that occurs between the Page being created
        & the PageThrottler added to it (really a theoretical problem right now, since they're currently always
        created pretty much back to back).

        Instead, Page should always have a PageThrottler, & instead make the UserActivity::Impl on the
        PageThrottler be added later.

        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
        (WebKit::NPRuntimeObjectMap::evaluate):
            - createPageThrottler -> enablePageThrottler
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::mouseEvent):
        (WebKit::WebPage::wheelEvent):
        (WebKit::WebPage::keyEvent):
            - Page::pageThrottler now returns a reference rather than a pointer

2014-09-17  Daniel Bates  <dabates@apple.com>

        [iOS] Make WebCore build with public iOS SDK
        https://bugs.webkit.org/show_bug.cgi?id=136487

        Reviewed by David Kilzer.

        Update WebKit2 source files to include the wrapper SPI headers instead of the corresponding
        actual SPI header(s).

        * Platform/mac/SharedMemoryMac.cpp:
        * Shared/ios/NativeWebTouchEventIOS.mm:
        * Shared/mac/RemoteLayerBackingStore.mm:
        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        * UIProcess/API/Cocoa/WKWebView.mm:
        * UIProcess/ios/WKPDFPageNumberIndicator.mm:
        * UIProcess/ios/WKScrollView.mm:
        * UIProcess/ios/WebMemoryPressureHandlerIOS.mm:
        * UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
        * WebProcess/WebPage/WebPage.cpp:

2014-09-17  Gavin Barraclough  <barraclough@apple.com>

        DOM timer throttling for hidden plugins
        https://bugs.webkit.org/show_bug.cgi?id=136197

        Reviewed by Geoff Garen & Andreas Kling.

        For non-visible web pages we slow timers (since they can't be driving animations, etc).
        We should do the same for plugins.

        * PluginProcess/WebProcessConnection.cpp:
        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
            - remove now redundant includes.
        * WebProcess/Plugins/PluginView.h:
            - audioHardwareActivity is now virtual, override.

2014-09-17  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] WebKitWebView::load-failed-with-tls-errors should receive the failing URI instead of a host
        https://bugs.webkit.org/show_bug.cgi?id=136889

        Reviewed by Gustavo Noronha Silva.

        We were passing a host for two different reasons, first because
        it's more convenient to add an exception with
        webkit_web_context_allow_tls_certificate_for_host(), but also
        because we were assuming the active URI is the failing URI in case
        of failure. This assumption is correct because our current code
        does that, but I'm not sure we are doing it on purpose. That
        behaviour is not documented anywhere and it's not what WebKit2 does
        internaly.

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkit_web_view_class_init):
        (webkitWebViewLoadFailedWithTLSErrors):
        * UIProcess/API/gtk/WebKitWebView.h:

2014-09-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Fix layering violations in PasteboardGtk
        https://bugs.webkit.org/show_bug.cgi?id=136802

        Reviewed by Darin Adler.

        * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
        (WebKit::WebEditorClient::updateGlobalSelection): Use new API to
        update the global selection.

2014-09-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        DragData should not depend on Clipboard, DocumentFragment, and Document
        https://bugs.webkit.org/show_bug.cgi?id=21358

        Reviewed by Darin Adler.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::performDragControllerAction): Update to API
        change in DragData::asURL().

2014-09-16  Daniel Bates  <dabates@apple.com>

        [iOS] Add iOS SDK name and version suffix to WebKitSystemInterface debug/release product name
        https://bugs.webkit.org/show_bug.cgi?id=136862

        Reviewed by David Kilzer.

        * Configurations/DebugRelease.xcconfig:

2014-09-16  Enrica Casucci  <enrica@apple.com>

        Remove PLATFORM(IOS) from WebCore/editing (Part 3).
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Benjamin Poulain.

        This is the updated version of the patch that was landed in r173340.
        This patch removes the use of PLATFORM(IOS) from TextAffinity.h
        and removes the assumption that EAffinity values match NSSelectionAffinity
        values. It also removes the includes in TextAffinity.h, creating the need to
        include explicitly the files when necessary.

        * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:

2014-09-16  Dan Bernstein  <mitz@apple.com>

        Standardized the return type of a delegate method.

        Rubber-stamped by Anders Carlsson.

        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Changed a return type from bool to BOOL.

2014-09-16  Tomas Popela  <tpopela@redhat.com>

        [GTK] Typo in  webkit_security_manager_register_uri_scheme_as_empty_document documentation
        https://bugs.webkit.org/show_bug.cgi?id=136852

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitSecurityManager.cpp:

2014-09-13  Gavin Barraclough  <baraclough@apple.com>

        Should call [BKSProcessAssertion invalidate]
        https://bugs.webkit.org/show_bug.cgi?id=136804
        <rdar://problem/17897780>

        Reviewed by Darin Adler.

        We should invalidate the process assertion before releasing it. Fortunately this is really easy,
        since there is a simple 1:1 relationship with ProcessAssertion, with their lifetimes matching exactly.

        * UIProcess/ProcessAssertion.cpp:
        (WebKit::ProcessAssertion::~ProcessAssertion):
            - no-op implementation.
        * UIProcess/ProcessAssertion.h:
            - added destructor.
        * UIProcess/ios/ProcessAssertionIOS.mm:
        (WebKit::ProcessAssertion::~ProcessAssertion):
            - destructor invalidates the BKSProcessAssertion.

2014-09-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        REGRESSION(r170243): [EFL][WK2] Dirty image is shown when new page is loading on fixed layout 
        https://bugs.webkit.org/show_bug.cgi?id=136568

        Reviewed by Csaba Osztrogonác.

        r170243 landed wrong didCommitNewPage() since it always returns false. It cause that
        PageViewportControllerClientEfl::didChangeVisibleContents() continues to draw dirty image on 0,0 coordinate.
        This patch fixes the problem.

        * UIProcess/API/efl/EwkView.h:
        (EwkView::waitingForNewPage):
        (EwkView::didCommitNewPage):
        * UIProcess/efl/PageViewportControllerClientEfl.cpp:
        (WebKit::PageViewportControllerClientEfl::didChangeVisibleContents):

2014-09-14  Chris Dumez  <cdumez@apple.com>

        Rename Node::childNodeCount() to countChildNodes() and avoid inefficient uses
        https://bugs.webkit.org/show_bug.cgi?id=136789

        Reviewed by Darin Adler.

        Avoid calling slow Node::countChildNodes().

        * WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:
        (WebKit::WebPage::findZoomableAreaForPoint):
        Replace call to "node->parentNode()->childNodeCount() != 1" by
        "!node->parentNode()->hasOneChild()" which is equivalent but more
        efficient.

2014-09-10  Jon Honeycutt  <jhoneycutt@apple.com>

        Re-add the request autocomplete feature

        <https://bugs.webkit.org/show_bug.cgi?id=136730>

        This feature was rolled out in r148731 because it was only used by
        Chromium. As we consider supporting this feature, roll it back in, but
        leave it disabled.

        This rolls out r148731 (which removed the feature) with small changes
        needed to make the code build in ToT, to match modern style, to make
        the tests run, and to remove unused code.

        Reviewed by Andy Estes.

        * Configurations/FeatureDefines.xcconfig:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::didRequestAutocomplete):
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

2014-09-12  Tim Horton  <timothy_horton@apple.com>

        Swiping back from a Twitter image to Twitter flashes to the wrong position
        https://bugs.webkit.org/show_bug.cgi?id=136798
        <rdar://problem/18324338>

        Reviewed by Darin Adler and Sam Weinig.

        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::didFinishLoadForMainFrame):
        (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame):
        Add a 250ms repeating timer that we start in didFinishLoadForMainFrame
        if we are for some reason still loading, and in didSameDocumentNavigationForMainFrame
        unconditionally, to match behavior of the old swipe implementation.

        Also, do the active gesture check in both of those places so that we don't
        start the timer if we're in the middle of a live swipe or have already torn
        down the snapshot (removeSwipeSnapshotAfterRepaint does this as well, so
        this isn't really a behavior change).

        (WebKit::ViewGestureController::activeLoadMonitoringTimerFired):
        Every time the timer fires, check if we're still loading; if not,
        tear down the swipe snapshot (after repainting).

        (WebKit::ViewGestureController::removeSwipeSnapshotAfterRepaint):
        Stop the active load monitoring timer.

2014-09-12  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r173575.
        https://bugs.webkit.org/show_bug.cgi?id=136790

        Failing tests (Requested by enrica on #webkit).

        Reverted changeset:

        "Remove PLATFORM(IOS) from WebCore/editing (Part 3)."
        https://bugs.webkit.org/show_bug.cgi?id=136474
        http://trac.webkit.org/changeset/173575

2014-09-12  Enrica Casucci  <enrica@apple.com>

        Remove PLATFORM(IOS) from WebCore/editing (Part 3).
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Benjamin Poulain.

        This is the updated version of the patch that was landed in r173340.
        I changed the use of IntPoint to FloatPoint since it was causing tests
        to fail.
        This patch removes the use of PLATFORM(IOS) from TextAffinity.h
        and removes the assumption that EAffinity values match NSSelectionAffinity
        values. It also removes the includes in TextAffinity.h, creating the need to
        include explicitly the files when necessary. It also removes the unnecessary
        use of platform specific types, replacing them with WebCore types.

        * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):

2014-09-12  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Message generation scripts should be installed in WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=136771

        Reviewed by Anders Carlsson.

        * DerivedSources.make: Updated for rename of Scripts/webkit2 to Scripts/webkit.
        * Scripts/generate-message-receiver.py:
        (main): Updated for rename from webkit2 to webkit.
        * Scripts/generate-messages-header.py:
        (main): Ditto.
        * Scripts/webkit: Renamed from Source/WebKit2/Scripts/webkit2.
        * Scripts/webkit/messages.py: Updated for rename.
        * Scripts/webkit/parser.py: Ditto.
        * WebKit2.xcodeproj/project.pbxproj: Moved the Copy Message Generation Scripts build phase
        from the WebKit2 target to the WebKit target and changed its destination to
        WebKit.framework/PrivateHeaders/Scripts/webkit. Removed the Remove Compiled Python Files
        build phase, since compiled files no longer get copied.

2014-09-12  Tim Horton  <timothy_horton@apple.com>

        Flash of page scrolled to wrong origin before restoring scroll position after swiping back to CNN front page from an article
        https://bugs.webkit.org/show_bug.cgi?id=136788
        <rdar://problem/18314597>

        Reviewed by Sam Weinig.

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::didHitRenderTreeSizeThreshold):
        (WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame):
        Always wait until didFinishLoadForMainFrame or didSameDocumentNavigationForMainFrame
        before removing the snapshot, because otherwise we don't know if the scroll
        position has been restored yet.

        We should revisit this at some point, because it should be possible to
        determine if the scroll position has been restored appropriately, but for
        now it is safest to restore the antique behavior.

2014-09-12  Dan Bernstein  <mitz@apple.com>

        Build fix.

        Reverted r173564.

        * DerivedSources.make:
        * Scripts/generate-message-receiver.py:
        (main):
        * Scripts/generate-messages-header.py:
        (main):
        * Scripts/webkit: Removed.
        * Scripts/webkit/LegacyMessageReceiver-expected.cpp: Removed.
        * Scripts/webkit/LegacyMessages-expected.h: Removed.
        * Scripts/webkit/MessageReceiver-expected.cpp: Removed.
        * Scripts/webkit/MessageReceiverSuperclass-expected.cpp: Removed.
        * Scripts/webkit/Messages-expected.h: Removed.
        * Scripts/webkit/MessagesSuperclass-expected.h: Removed.
        * Scripts/webkit/__init__.py: Removed.
        * Scripts/webkit/messages.py: Removed.
        * Scripts/webkit/messages_unittest.py: Removed.
        * Scripts/webkit/model.py: Removed.
        * Scripts/webkit/parser.py: Removed.
        * Scripts/webkit/test-legacy-messages.in: Removed.
        * Scripts/webkit/test-messages.in: Removed.
        * Scripts/webkit/test-superclass-messages.in: Removed.
        * Scripts/webkit2: Copied from Scripts/webkit2.
        * WebKit2.xcodeproj/project.pbxproj:

2014-09-11  Andy Estes  <aestes@apple.com>

        [WebKit2] WKImageCreateCGImage crashes when passed a null WKImage
        https://bugs.webkit.org/show_bug.cgi?id=136768

        Reviewed by Tim Horton.

        WKImageCreateFromCGImage can return null, so it only seems fair that WKImageCreateCGImage should tolerate null.

        * Shared/API/c/cg/WKImageCG.cpp:
        (WKImageCreateCGImage):

2014-09-12  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Message generation scripts should be installed in WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=136771

        Reviewed by Anders Carlsson.

        * DerivedSources.make: Updated for rename of Scripts/webkit2 to Scripts/webkit.
        * Scripts/generate-message-receiver.py:
        (main): Updated for rename from webkit2 to webkit.
        * Scripts/generate-messages-header.py:
        (main): Ditto.
        * Scripts/webkit: Renamed from Source/WebKit2/Scripts/webkit2.
        * Scripts/webkit/messages.py: Updated for rename.
        * Scripts/webkit/parser.py: Ditto.
        * WebKit2.xcodeproj/project.pbxproj: Moved the Copy Message Generation Scripts build phase
        from the WebKit2 target to the WebKit target and changed its destination to
        WebKit.framework/PrivateHeaders/Scripts/webkit. Removed the Remove Compiled Python Files
        build phase, since compiled files no longer get copied.

2014-09-12  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Use a nicer HTTP authentication dialog
        https://bugs.webkit.org/show_bug.cgi?id=136615

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:
        (webkitAuthenticationDialogInitialize): Use a nicer layout.
        (packTwoColumnLayoutInBox): Deleted.
        (createLabel): Deleted.
        (createEntry): Deleted.

2014-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r173423): CertificateInfo is never sent to the UI process when using shared secondary process model
        https://bugs.webkit.org/show_bug.cgi?id=136669

        Reviewed by Antti Koivisto.

        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::WebResourceLoadScheduler::scheduleLoad): Use
        ResourceLoader::shouldIncludeCertificateInfo() to initialize
        needsCertificateInfo parameter.

2014-09-11  Ryuan Choi  <ryuan.choi@gmail.com>

        [EFL][CoordinatedGraphics] Move CoordinatedGraphicsScene and CoordinatedBackingStore to WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=136770

        Reviewed by Gyuyoung Kim.

        CoordinatedGraphicsScene and CoordinatedBackingStore is only for UIProcess.
        This patch moved them from WebCore to WebKit2/UIProcess/CoordinatedGraphics/.

        * PlatformEfl.cmake:
        * UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.cpp:
        * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp.
        * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.h.
        * UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp.
        * UIProcess/CoordinatedGraphics/CoordinatedGraphicsScene.h: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h.
        * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
        * UIProcess/CoordinatedGraphics/WebView.cpp:
        * UIProcess/efl/WebViewEfl.cpp:

2014-09-11  Bear Travis  <betravis@adobe.com>

        [CSS Font Loading] Enable CSS Font Loading on Mac
        https://bugs.webkit.org/show_bug.cgi?id=135473

        Reviewed by Antti Koivisto.

        Enable CSS Font Loading in FeatureDefines.

        * Configurations/FeatureDefines.xcconfig:

2014-09-11  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [WK2] Authentication dialog is displayed for cross-origin XHR
        https://bugs.webkit.org/show_bug.cgi?id=131349

        Reviewed by Alexey Proskuryakov.

        Precomputing client credential policy in the Web Process before sending the resource load task to the Network Process.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::didReceiveAuthenticationChallenge): Added an ASSERT to ensure that credential policy is never set to DoNotAskClientForCrossOriginCredentials.
        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::WebResourceLoadScheduler::scheduleLoad): Precomputing client credential policy to handle the case of cross-origin requests.
        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::willSendRequest): Added a TODO to check whether redirections need a specific handling.

2014-09-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Merge WebKitAuthenticationWidget into WebKitAuthenticationDialog
        https://bugs.webkit.org/show_bug.cgi?id=136700

        Reviewed by Sergio Villar Senin.

        Copy WebKitAuthenticationWidget implementation inside
        WebKitAuthenticationDialog using a normal GtkBox instead.

        * UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:
        (okButtonClicked):
        (cancelButtonClicked):
        (packTwoColumnLayoutInBox):
        (createLabel):
        (createEntry):
        (webkitAuthenticationDialogInitialize): Remove the
        CredentialStorageMode parameter since it's now a member.
        (webkitAuthenticationDialogNew): Initialize the
        CredentialStorageMode member too.
        * UIProcess/API/gtk/WebKitAuthenticationDialog.h:

2014-09-10  Antti Koivisto  <antti@apple.com>

        NetworkResourceLoader cleanups
        https://bugs.webkit.org/show_bug.cgi?id=136701

        Reviewed by Darin Adler.

        After smashing NetworkResourceLoader together with the clients it can be made nicer.

        * NetworkProcess/NetworkResourceLoadScheduler.cpp:
        (WebKit::NetworkResourceLoadScheduler::scheduleLoader):
        (WebKit::NetworkResourceLoadScheduler::removeLoader):
        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData):

            The original request is now part of the loader.

        (WebKit::sendReplyToSynchronousRequest):
        (WebKit::NetworkResourceLoader::NetworkResourceLoader):

            Instead of copying everything out from NetworkResourceLoadParameters just include the whole thing as a const field.
            SanboxExtension construction moves to NetworkResourceLoadParameters::decode()
            Stuff that is related to starting the load moves to start().

        (WebKit::NetworkResourceLoader::~NetworkResourceLoader):
        (WebKit::NetworkResourceLoader::start):
        (WebKit::NetworkResourceLoader::setDefersLoading):

            Eliminate m_deferredRequest since we now always remember the original request.

        (WebKit::NetworkResourceLoader::cleanup):
        (WebKit::NetworkResourceLoader::didConvertHandleToDownload):
        (WebKit::NetworkResourceLoader::abort):
        (WebKit::NetworkResourceLoader::didReceiveResponseAsync):
        (WebKit::NetworkResourceLoader::didFail):
        (WebKit::NetworkResourceLoader::willSendRequestAsync):
        (WebKit::NetworkResourceLoader::continueWillSendRequest):

            Eliminate unnecessary m_suggestedRequestForWillSendRequest.

        (WebKit::NetworkResourceLoader::wasBlocked):
        (WebKit::NetworkResourceLoader::cannotShowURL):
        (WebKit::NetworkResourceLoader::shouldUseCredentialStorage):
        (WebKit::NetworkResourceLoader::didReceiveAuthenticationChallenge):
        (WebKit::NetworkResourceLoader::receivedCancellation):
        (WebKit::NetworkResourceLoader::startBufferingTimerIfNeeded):
        (WebKit::NetworkResourceLoader::consumeSandboxExtensions):
        (WebKit::NetworkResourceLoader::invalidateSandboxExtensions):
        (WebKit::NetworkResourceLoader::sendAbortingOnFailure):
        * NetworkProcess/NetworkResourceLoader.h:
        (WebKit::NetworkResourceLoader::originalRequest):
        (WebKit::NetworkResourceLoader::currentRequest):
        (WebKit::NetworkResourceLoader::sessionID):
        (WebKit::NetworkResourceLoader::defersLoading):
        (WebKit::NetworkResourceLoader::isLoadingMainResource):
        (WebKit::NetworkResourceLoader::request): Deleted.
        (WebKit::NetworkResourceLoader::sendAbortingOnFailure): Deleted.

            Made private and moved to cpp.

        * NetworkProcess/mac/NetworkDiskCacheMonitor.mm:
        (WebKit::NetworkDiskCacheMonitor::NetworkDiskCacheMonitor):

            Use original request instead of the current one. This might fix a bug where we didn't use file backing over redirects.

        * Shared/Network/NetworkResourceLoadParameters.cpp:
        (WebKit::NetworkResourceLoadParameters::decode):

            Decode to SanboxExtensions to the actual type rather than a handle.

        * Shared/Network/NetworkResourceLoadParameters.h:

2014-09-10  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] allow overwriting destination of download
        https://bugs.webkit.org/show_bug.cgi?id=136372

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitDownload.cpp:
        (webkitDownloadGetProperty): Added
        (webkit_download_class_init): Install webkitDownloadGetProperty
        (webkitDownloadDecideDestinationWithSuggestedFilename): Add
        allowOverwrite parameter and set it appropriately
        (webkit_download_get_allow_overwrite): Added
        (webkit_download_set_allow_overwrite): Added
        * UIProcess/API/gtk/WebKitDownload.h: New API
        * UIProcess/API/gtk/WebKitDownloadClient.cpp:
        (decideDestinationWithSuggestedFilename): Pass allowOverwrite to
        webkitDownloadDecideDestinationWithSuggestedFilename
        * UIProcess/API/gtk/WebKitDownloadPrivate.h: Add allowOverwrite
        parameter to webkitDownloadDecideDestinationWithSuggestedFilename
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: New API

2014-09-10  Rohit Kumar  <kumar.rohit@samsung.com>

        [GTK] Clean up the WebKit build from unused parameter warning in Webkit2/UIProcess module
        https://bugs.webkit.org/show_bug.cgi?id=136670

        Reviewed by Martin Robinson.

        * UIProcess/API/gtk/PageClientImpl.cpp:
        (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):

2014-09-09  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): -webkit-touch-callout: none has no effect.
        https://bugs.webkit.org/show_bug.cgi?id=136685
        rdar://problem/17629840

        Reviewed by Benjamin Poulain.

        We need to check if the touch callout is enabled for the element before starting
        the long press gesture.
        The information about the touch callout is returned together with the rest of data
        returned by the InteractionInformationAtPosition.

        * Shared/InteractionInformationAtPosition.cpp:
        (WebKit::InteractionInformationAtPosition::encode):
        (WebKit::InteractionInformationAtPosition::decode):
        * Shared/InteractionInformationAtPosition.h:
        (WebKit::InteractionInformationAtPosition::InteractionInformationAtPosition):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _actionForLongPress]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getPositionInformation):

2014-09-09  Benjamin Poulain  <bpoulain@apple.com>

        Disable the "unreachable-code" warning
        https://bugs.webkit.org/show_bug.cgi?id=136677

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig:

2014-09-09  Dan Bernstein  <mitz@apple.com>

        [Cocoa] -[WKBackForwardList backList] contains an unnecessary nil check
        https://bugs.webkit.org/show_bug.cgi?id=136680

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKBackForwardList.mm:
        (-[WKBackForwardList backList]): Removed nil check.
        (-[WKBackForwardList forwardList]): Ditto.

2014-09-09  Tim Horton  <timothy_horton@apple.com>

        Make DrawingArea a real MessageReceiver
        https://bugs.webkit.org/show_bug.cgi?id=136438

        Reviewed by Darin Adler.

        * WebProcess/WebPage/DrawingArea.cpp:
        (WebKit::DrawingArea::DrawingArea):
        (WebKit::DrawingArea::~DrawingArea):
        * WebProcess/WebPage/DrawingArea.h:
        * WebProcess/WebPage/DrawingArea.messages.in:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::~WebPage):
        (WebKit::WebPage::didReceiveMessage):
        Make DrawingArea a real MessageReceiver instead of a LegacyReceiver that
        jumps through WebPage to receive its messages.

2014-09-08  Antti Koivisto  <antti@apple.com>

        Pass certificate info as part of ResourceResponse
        https://bugs.webkit.org/show_bug.cgi?id=136611

        Reviewed by Darin Adler.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::didReceiveResponseAsync):

            Initialize the certificate info only if requested.

        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::didReceiveResponse):
        (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): Deleted.

            Rename didReceiveResponseWithCertificateInfo -> didReceiveResponse as it is now part of the response.

        * WebProcess/Network/WebResourceLoader.h:
        * WebProcess/Network/WebResourceLoader.messages.in:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

            Request certificate info for the main resource only.

        (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::certificateInfo):

2014-09-08  Shivakumar JM  <shiva.jm@samsung.com>

        [WebKit2] Fix build error in WebKit2/WebProcess module
        https://bugs.webkit.org/show_bug.cgi?id=136667

        Reviewed by Darin Adler.

        Fix the build error by handling default case.

        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::maximumBufferingTime):

2014-09-08  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:

2014-09-08  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Remove FILTERS flag
        https://bugs.webkit.org/show_bug.cgi?id=136571

        Reviewed by Darin Adler.

        * Configurations/FeatureDefines.xcconfig:

2014-09-08  Antti Koivisto  <antti@apple.com>

        Buffer images on web process side
        https://bugs.webkit.org/show_bug.cgi?id=136631

        Reviewed by Darin Adler.

        We can substantially reduce IPC and decoding time for large images by allowing some buffering.

        This patch makes us buffer image data up to 0.5s before sending it over to the web process.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::NetworkResourceLoader):
        (WebKit::NetworkResourceLoader::cleanup):
        (WebKit::NetworkResourceLoader::didReceiveBuffer):

            Start the timer.

        (WebKit::NetworkResourceLoader::didFinishLoading):
        (WebKit::NetworkResourceLoader::startBufferingTimerIfNeeded):
        (WebKit::NetworkResourceLoader::bufferingTimerFired):
        (WebKit::NetworkResourceLoader::sendBuffer):

            Send the data when the timer fires or the load finishes, whichever happens first.

        * NetworkProcess/NetworkResourceLoader.h:
        * Platform/IPC/ArgumentCoders.h:

            Support encoding std::chrono::duration

        * Shared/Network/NetworkResourceLoadParameters.cpp:
        (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
        (WebKit::NetworkResourceLoadParameters::encode):
        (WebKit::NetworkResourceLoadParameters::decode):
        * Shared/Network/NetworkResourceLoadParameters.h:

            Pass maximimum buffering duration.

        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::maximumBufferingTime):

            Deterimine duration from the resource type.
            Enabled full buffering for font resources. They are not decoded incrementally.

        (WebKit::WebResourceLoadScheduler::scheduleLoad):

2014-09-08  Dan Bernstein  <mitz@apple.com>

        HAVE(VOUCHERS) is not available outside of WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=136637

        Reviewed by Tim Horton.

        * config.h: Moved the definition of HAVE_VOUCHERS from here to wtf’s Platform.h.

2014-09-08  Tim Horton  <timothy_horton@apple.com>

        Try to fix the build after r173383, part 4.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
        Machine finally caught up so I could actually test the fixes!

2014-09-08  Tim Horton  <timothy_horton@apple.com>

        Try to fix the build after r173383, part 3.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:

2014-09-08  Dan Bernstein  <mitz@apple.com>

        Build fix.

        * Platform/IPC/Connection.h:

2014-09-06  Sam Weinig  <sam@webkit.org>

        XPCPtr should be converted into an all purpose smart pointer for os_objects
        https://bugs.webkit.org/show_bug.cgi?id=136602

        Reviewed by Darin Adler.

        * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
        (DatabaseServiceInitializer):
        * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
        (WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate):
        (NetworkServiceInitializer):
        * Platform/IPC/Connection.h:
        (IPC::Connection::Identifier::Identifier):
        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::ConnectionTerminationWatchdog::createConnectionTerminationWatchdog):
        (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
        * Platform/IPC/mac/XPCPtr.h: Removed.
        * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
        (WebKit::PluginServiceInitializerDelegate::PluginServiceInitializerDelegate):
        (PluginServiceInitializer):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
        (WebKit::XPCServiceInitializerDelegate::XPCServiceInitializerDelegate):
        (WebKit::XPCServiceInitializer):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
        (WebKit::XPCServiceInitializerDelegate::checkEntitlements):
        (WebKit::XPCServiceInitializerDelegate::hasEntitlement):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
        (WebKit::XPCServiceEventHandler):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
        (WebKit::XPCServiceEventHandler):
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):
        (WebKit::connectToReExecService):
        * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
        (WebContentServiceInitializer):
        Update after the rename of XPCPtr to OSObjectPtr.

2014-09-06  Darin Adler  <darin@apple.com>

        Make updates suggested by new version of Xcode
        https://bugs.webkit.org/show_bug.cgi?id=136603

        Reviewed by Mark Rowe.

        * Configurations/Base.xcconfig: Added CLANG_WARN_UNREACHABLE_CODE, COMBINE_HIDPI_IMAGES,
        and ENABLE_STRICT_OBJC_MSGSEND as suggested by the Xcode upgrade check.

        * PluginProcess/mac/PluginProcessMac.mm:
        (WebKit::initializeCocoaOverrides): Changed NSConcreteTask_launch to use the same technique
        as the other functions in this file, doing the type casting right at the call to
        method_setImplementation so the global has a suitable type for making a function call,
        rather than relying on the abilty to call through a type without a specific argument list.

        * UIProcess/Plugins/PluginInfoStore.cpp:
        (WebKit::pathExtension): Use size_t for the result of String::reverseFind rather than
        converting it to an int. Also don't rely on the fact that WTF's notFound becomes -1 when
        cast from size_t to int.

        * WebKit2.xcodeproj/project.pbxproj: Let Xcode delete some orphaned items, and updated
        LastUpgradeCheck.

2014-09-06  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: convert DockSide to an enum class
        https://bugs.webkit.org/show_bug.cgi?id=136601

        Reviewed by Timothy Hatcher.

        * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
        (WebKit::WebInspectorFrontendClient::attachWindow):
        * WebProcess/WebPage/WebInspector.cpp:
        (WebKit::WebInspector::attachedBottom):
        (WebKit::WebInspector::attachedRight):
        (WebKit::WebInspector::detached):

2014-09-06  Antti Koivisto  <antti@apple.com>

        Serialize ResourceResponses using WebKit types
        https://bugs.webkit.org/show_bug.cgi?id=136545

        Reviewed by Alexey Proskuryakov.

        Remove the WK2 serialization code for responses. It moves to the types itself in WebCore where it is
        close to the data being serialized and less likely to get out of sync.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<ResourceResponse>::encode): Deleted.
        (IPC::ArgumentCoder<ResourceResponse>::decode): Deleted.
        * Shared/WebCoreArgumentCoders.h:
        * Shared/mac/WebCoreArgumentCodersMac.mm:
        (IPC::ArgumentCoder<ResourceResponse>::encodePlatformData): Deleted.
        (IPC::ArgumentCoder<ResourceResponse>::decodePlatformData): Deleted.

2014-09-06  Ryuan Choi  <ryuan.choi@gmail.com>

        [EFL] Drop evas object cursor support
        https://bugs.webkit.org/show_bug.cgi?id=136324

        Reviewed by Gyuyoung Kim.

        Removed evas object cursor because there are some bugs.
        ewebkit will only support ecore_x_cursor because ewebkit is available with X, now.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkViewEventHandler<EVAS_CALLBACK_MOUSE_IN>::handleEvent):
        (EwkView::EwkView):
        (EwkView::updateCursor): Simplifies not to use evas object cursor.
        (EwkView::setCursor): Ditto.
        * UIProcess/API/efl/EwkView.h:

2014-09-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r173340 and r173342.
        https://bugs.webkit.org/show_bug.cgi?id=136596

        Broke many tests (Requested by ap on #webkit).

        Reverted changesets:

        "Remove PLATFORM(IOS) from WebCore/editing (Part 3)."
        https://bugs.webkit.org/show_bug.cgi?id=136474
        http://trac.webkit.org/changeset/173340

        "Build fix after r173340."
        http://trac.webkit.org/changeset/173342

2014-09-05  Joseph Pecoraro  <pecoraro@apple.com>

        Use WTFString::split(char) in more places
        https://bugs.webkit.org/show_bug.cgi?id=136543

        Reviewed by Sam Weinig.

        * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
        (WebKit::PluginVersion::parse):
        * UIProcess/gtk/WebContextGtk.cpp:
        (WebKit::initInspectorServer):
        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
        (WebKit::isTransparentSilverlightBackgroundValue):

2014-09-05  Enrica Casucci  <enrica@apple.com>

        Remove PLATFORM(IOS) from WebCore/editing (Part 3).
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Benjamin Poulain.

        This patch removes the use of PLATFORM(IOS) from TextAffinity.h
        and removes the assumption that EAffinity values match NSSelectionAffinity
        values. It also removes the includes in TextAffinity.h, creating the need to
        include explicitly the files when necessary. It also removes the unnecessary
        use of platform specific types, replacing them with WebCore types.

        * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):

2014-09-05  David Kilzer  <ddkilzer@apple.com>

        JavaScriptCore should build with newer clang
        <http://webkit.org/b/136002>
        <rdar://problem/18020616>

        Reviewed by Geoffrey Garen.

        * Shared/API/c/WKString.cpp:
        (WKStringCreateWithJSString): Add NULL check to prevent
        WebKitTestRunner crashes that relied on the previous |this|
        behavior where NULL values were allowed.

2014-09-05  Beth Dakin  <bdakin@apple.com>

        ScrollablArea::handleWheelEvent() should return early if the ScrollableArea is not 
        actually scrollable
        https://bugs.webkit.org/show_bug.cgi?id=136558

        Reviewed by Simon Fraser.

        New ScrollableArea virtual function.
        * WebProcess/Plugins/PDF/PDFPlugin.h:

2014-09-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed, speculative build fix on GTK port since r173305.

        * UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
        (webkitURISchemeRequestReadCallback):

2014-09-03  Andy Estes  <aestes@apple.com>

        [Cocoa] Some WebKitLegacy headers migrated from WebCore incorrectly contain WEBCORE_EXPORT
        https://bugs.webkit.org/show_bug.cgi?id=136521

        Reviewed by Anders Carlsson.

        * config.h: Included <WebCore/PlatformExportMacros.h> instead of defining WEBCORE_EXPORT.

2014-09-04  Maciej Stachowiak  <mjs@apple.com>

        Remove WebCoreSystemInterface glue for otherwise unused WKSI calls
        https://bugs.webkit.org/show_bug.cgi?id=136527

        Reviewed by Alexey Proskuryakov.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface):

2014-09-04  Antti Koivisto  <antti@apple.com>

        Remove ResourceResponse::m_suggestedFilename
        https://bugs.webkit.org/show_bug.cgi?id=136534

        Reviewed by Alexey Proskuryakov.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<ResourceResponse>::encode):
        (IPC::ArgumentCoder<ResourceResponse>::decode):

            No more m_suggestedFilename.

        * WebProcess/Plugins/PDF/PDFPlugin.mm:
        (WebKit::PDFPlugin::addArchiveResource):

            Fake the suggested filename by using the Content-Disposition header.

2014-09-04  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Remove CSS_FILTERS flag
        https://bugs.webkit.org/show_bug.cgi?id=136529

        Reviewed by Dirk Schulze.

        * Configurations/FeatureDefines.xcconfig:
        * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
        (IPC::ArgumentCoder<WebCore::FilterOperations>::decode):
        (IPC::ArgumentCoder<GraphicsLayerAnimation>::encode):
        (IPC::ArgumentCoder<GraphicsLayerAnimation>::decode):
        (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::encode):
        (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::decode):
        * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
        * Shared/WebCoreArgumentCoders.cpp:
        * Shared/WebCoreArgumentCoders.h:
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
        (WebKit::GraphicsLayerCARemote::filtersCanBeComposited):
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
        (WebKit::PlatformCAAnimationRemote::setFromValue):
        (WebKit::PlatformCAAnimationRemote::setToValue):
        (WebKit::PlatformCAAnimationRemote::setValues):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
        (WebKit::PlatformCALayerRemote::filtersCanBeComposited):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:

2014-09-04  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r173245.
        https://bugs.webkit.org/show_bug.cgi?id=136533

        Broke JSC tests. (Requested by ddkilzer on #webkit).

        Reverted changeset:

        "JavaScriptCore should build with newer clang"
        https://bugs.webkit.org/show_bug.cgi?id=136002
        http://trac.webkit.org/changeset/173245

2014-09-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        Initialize m_usesNetworkProcess earlier in WebProcess::initializeWebProcess()
        https://bugs.webkit.org/show_bug.cgi?id=136478

        Reviewed by Alexey Proskuryakov.

        The soup network backend uses WebProcess::usesNetworkProcess()
        from WebProcess::platformSetCacheModel() and
        WebProcess::platformInitializeWebProcess(), both called before the
        m_usesNetworkProcess member has been initialized.

        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::initializeWebProcess): Move the
        m_usesNetworkProcess initialization at the beginning right before
        calling platformInitializeWebProcess().
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformSetCacheModel): Remove the early
        return when using the network process, since this was dead code
        before this change, and not really needed now that
        usesNetworkProcess() will return true.
        (WebKit::WebProcess::platformInitializeWebProcess): Remove comment
        that is not accurate since r171156.

2014-09-03  Michael Catanzaro  <mcatanzaro@igalia.com>

        [SOUP] Race condition when downloading a file due to the intermediate temporary file
        https://bugs.webkit.org/show_bug.cgi?id=136423

        Reviewed by Carlos Garcia Campos.

        * Shared/Downloads/soup/DownloadSoup.cpp:
        (WebKit::DownloadClient::DownloadClient): Replace m_destinationURI with
        m_destinationFile and add m_createdDestination.
        (WebKit::DownloadClient::deleteFilesIfNeeded): Added.
        (WebKit::DownloadClient::downloadFailed): Call deleteFilesIfNeeded.
        (WebKit::DownloadClient::didReceiveResponse): Attempt to create the
        destination file before the intermediate file. Fail here if the file
        exists and overwrite is not allowed, so we don't erroneously fire the
        didCreateDestination event or waste time downloading the file when we
        know the download will fail.
        (WebKit::DownloadClient::didFinishLoading): Unconditionally overwrite
        the empty destination file.
        (WebKit::DownloadClient::cancel): Call deleteFilesIfNeeded.
        (WebKit::DownloadClient::deleteIntermediateFileInNeeded): Deleted.

2014-09-03  David Kilzer  <ddkilzer@apple.com>

        JavaScriptCore should build with newer clang
        <http://webkit.org/b/136002>
        <rdar://problem/18020616>

        Reviewed by Geoffrey Garen.

        * Shared/API/c/WKString.cpp:
        (WKStringCreateWithJSString): Add NULL check to prevent
        WebKitTestRunner crashes that relied on the previous |this|
        behavior where NULL values were allowed.

2014-09-03  Enrica Casucci  <enrica@apple.com>

        Remove PLATFORM(IOS) from WebCore/editing (Part 1).
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Tim Horton.

        * UIProcess/WebEditCommandProxy.cpp:
        (WebKit::WebEditCommandProxy::nameForEditAction):

2014-09-03  Yongjun Zhang  <yongjun_zhang@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=136395
        Need a way to get userAgent from WKWebView.

        Add _userAgent property to return user agent string from WKWebView.

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _userAgent]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-09-02  Maciej Stachowiak  <mjs@apple.com>

        Clean up naming for and slightly refactor legacy video fullscreen support
        https://bugs.webkit.org/show_bug.cgi?id=136446

        Reviewed by Jer Noble.

        Key changes:
        supportsFullscreenForNode(Node*) --> supportsVideoFullscreen()
        enterFullscreenForNode(Node*) --> enterVideoFullscreenForVideoElement(HTMLVideoElement*)
        exitFullscreenForNode(Node*) --> exitVideoFullscreen()
        
        The old versions had unnecessary parameters, did not clearly distinguish their purpose
        from enterFullscreenForElement and friends, and wrongly claimed generality to all Nodes.
        Also changed many other places to use HTMLVideoElement* instead of Node* or 
        HTMLMediaElement* when they were in fact only used for video elements and would only
        work for such.

        Legacy video fullscreen in WebKit2 is only supported on iOS (for other ports that support
        it, it's WK1 only).
        
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::supportsVideoFullscreen): Adjust for renames as
        mentioned.
        (WebKit::WebChromeClient::enterVideoFullscreenForVideoElement): ditto
        (WebKit::WebChromeClient::exitVideoFullscreen): ditto
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/ios/WebVideoFullscreenManager.h:
        * WebProcess/ios/WebVideoFullscreenManager.mm:
        (WebKit::clientRectForElement): No need to be generic to node.
        (WebKit::WebVideoFullscreenManager::supportsVideoFullscreen): Adjust for the
        main refactoring. Also change m_node to m_videoElement with appropriate type change.
        (WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): ditto
        (WebKit::WebVideoFullscreenManager::exitVideoFullscreen): ditto
        (WebKit::WebVideoFullscreenManager::didEnterFullscreen): ditto 
        (WebKit::WebVideoFullscreenManager::didExitFullscreen): ditto
        (WebKit::WebVideoFullscreenManager::didCleanupFullscreen): ditto

2014-09-03  Dan Bernstein  <mitz@apple.com>

        Get rid of HIGH_DPI_CANVAS leftovers
        https://bugs.webkit.org/show_bug.cgi?id=136491

        Reviewed by Benjamin Poulain.

        * Configurations/FeatureDefines.xcconfig: Removed definition of ENABLE_HIGH_DPI_CANVAS
        and removed it from FEATURE_DEFINES.

2014-09-02  Yongjun Zhang  <yongjun_zhang@apple.com>

        Pass the resource identifier in willSendRequest callback.
        https://bugs.webkit.org/show_bug.cgi?id=136325

        Reviewed by Dan Bernstein.

        Add two new delegate methods webProcessPlugInBrowserContextController:frame:willSendRequestForResource:request:redirectResponse:
        and webProcessPlugInBrowserContextController:frame:didInitiateLoadForResource:request:pageIsProvisionallyLoading:. We will remove
        the old willSendRequest and didInitiateLoadForResource when clients adopt the new methods.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (willSendRequestForFrame):
        (didInitiateLoadForResource):

2014-09-02  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, GTK build fix after r173163.

        * UIProcess/API/gtk/PageClientImpl.cpp:
        (WebKit::PageClientImpl::createDrawingAreaProxy):
        * UIProcess/DrawingAreaProxyImpl.cpp:
        (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
        (WebKit::DrawingAreaProxyImpl::update):
        (WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
        (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
        (WebKit::DrawingAreaProxyImpl::sendUpdateBackingStoreState):
        (WebKit::DrawingAreaProxyImpl::waitForAndDispatchDidUpdateBackingStoreState):
        (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
        (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
        (WebKit::DrawingAreaProxyImpl::updateAcceleratedCompositingMode):
        * UIProcess/DrawingAreaProxyImpl.h:

2014-09-01  Timothy Horton  <timothy_horton@apple.com>

        Fix the iOS build.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _createDrawingAreaProxy]):
        Whoops.

2014-09-01  Ryuan Choi  <ryuan.choi@gmail.com>

        Build break on the EFL port since r173163
        https://bugs.webkit.org/show_bug.cgi?id=136443

        Unreviewed build fix.

        * UIProcess/BackingStore.cpp:
        (WebKit::BackingStore::BackingStore):
        * UIProcess/BackingStore.h:
        * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
        (WebKit::CoordinatedDrawingAreaProxy::CoordinatedDrawingAreaProxy):
        (WebKit::CoordinatedDrawingAreaProxy::updateViewport):
        (WebKit::CoordinatedDrawingAreaProxy::contentsRect):
        (WebKit::CoordinatedDrawingAreaProxy::update):
        (WebKit::CoordinatedDrawingAreaProxy::didUpdateBackingStoreState):
        (WebKit::CoordinatedDrawingAreaProxy::incorporateUpdate):
        (WebKit::CoordinatedDrawingAreaProxy::sendUpdateBackingStoreState):
        (WebKit::CoordinatedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):
        (WebKit::CoordinatedDrawingAreaProxy::enterAcceleratedCompositingMode):
        (WebKit::CoordinatedDrawingAreaProxy::exitAcceleratedCompositingMode):
        (WebKit::CoordinatedDrawingAreaProxy::updateAcceleratedCompositingMode):
        * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:
        (WebKit::CoordinatedDrawingAreaProxy::page):
        * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
        (WebKit::CoordinatedLayerTreeHostProxy::CoordinatedLayerTreeHostProxy):
        (WebKit::CoordinatedLayerTreeHostProxy::~CoordinatedLayerTreeHostProxy):
        (WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
        (WebKit::CoordinatedLayerTreeHostProxy::setVisibleContentsRect):
        (WebKit::CoordinatedLayerTreeHostProxy::renderNextFrame):
        (WebKit::CoordinatedLayerTreeHostProxy::purgeBackingStores):
        (WebKit::CoordinatedLayerTreeHostProxy::commitScrollOffset):
        * UIProcess/CoordinatedGraphics/WebView.cpp:
        (WebKit::WebView::createDrawingAreaProxy):
        * UIProcess/cairo/BackingStoreCairo.cpp:
        (WebKit::BackingStore::incorporateUpdate):

2014-09-01  Tim Horton  <timothy_horton@apple.com>

        Remove two unused WebKit2 PDF-related preferences
        https://bugs.webkit.org/show_bug.cgi?id=136441

        Reviewed by Dan Bernstein.

        * Shared/WebPreferencesDefinitions.h:
        Move the macro arguments comment down near where the macros are being used.
        No need to check both PLATFORM(IOS) and PLATFORM(IOS_SIMULATOR); the second can't be true without the first.
        These two PDF preferences are long-unused; if we bring back their functionality,
        we'll bring back the preferences.

2014-09-01  Tim Horton  <timothy_horton@apple.com>

        DrawingAreaProxy and friends can hold on to WebPageProxy by reference
        https://bugs.webkit.org/show_bug.cgi?id=136440

        Reviewed by Dan Bernstein.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _createDrawingAreaProxy]):
        * UIProcess/DrawingAreaProxy.cpp:
        (WebKit::DrawingAreaProxy::DrawingAreaProxy):
        (WebKit::DrawingAreaProxy::~DrawingAreaProxy):
        (WebKit::DrawingAreaProxy::setExposedRect):
        (WebKit::DrawingAreaProxy::exposedRectChangedTimerFired):
        * UIProcess/DrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::sizeDidChange):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::deviceScaleFactorDidChange):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::scaledExposedRect):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidEnd):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorScale):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing):
        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
        (WebKit::TiledCoreAnimationDrawingAreaProxy::TiledCoreAnimationDrawingAreaProxy):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::deviceScaleFactorDidChange):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::sizeDidChange):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::colorSpaceDidChange):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::minimumLayoutSizeDidChange):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::enterAcceleratedCompositingMode):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::updateAcceleratedCompositingMode):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateViewState):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::intrinsicContentSizeDidChange):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::adjustTransientZoom):
        (WebKit::TiledCoreAnimationDrawingAreaProxy::commitTransientZoom):

2014-09-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMAKE] Build warning by INTERFACE_LINK_LIBRARIES
        https://bugs.webkit.org/show_bug.cgi?id=136194

        Reviewed by Csaba Osztrogonác.

        Set the LINK_INTERFACE_LIBRARIES target property on the top level CMakeLists.txt.

        * CMakeLists.txt:

2014-09-01  Michael Catanzaro  <mcatanzaro@igalia.com>

        [SOUP] WebKitDownload cannot overwrite existing file
        https://bugs.webkit.org/show_bug.cgi?id=136322

        Reviewed by Carlos Garcia Campos.

        * Shared/Downloads/soup/DownloadSoup.cpp:
        (WebKit::DownloadClient::didReceiveResponse): pass a member variable
        to Download::decideDestinationWithSuggestedFilename instead of a
        temporary bool, so we can use the result in didFinishLoading.
        (WebKit::DownloadClient::didFinishLoading): overwrite the destination
        if Download::decideDestinationWithSuggestedFilename determined we
        should do so.

2014-08-31  Tim Horton  <timothy_horton@apple.com>

        Occasional crashes (null deref) under ViewGestureController::endMagnificationGesture
        https://bugs.webkit.org/show_bug.cgi?id=136409
        <rdar://problem/18104748>

        Reviewed by Dan Bernstein.

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::endMagnificationGesture):
        Null-check DrawingArea.

2014-08-26  Maciej Stachowiak  <mjs@apple.com>

        Use RetainPtr::autorelease in some places where it seems appropriate
        https://bugs.webkit.org/show_bug.cgi?id=136280

        Reviewed by Darin Adler.

        * Shared/Cocoa/WKNSURLExtras.mm:
        (urlWithWTFString): Use autorelease() instead of CFBridgingRelease(leakRef())

2014-08-29  Tim Horton  <timothy_horton@apple.com>

        More occasional crashes in ServicesController::resfreshExistingServices
        https://bugs.webkit.org/show_bug.cgi?id=136387
        <rdar://problem/18167200>

        Reviewed by Dan Bernstein.

        * UIProcess/mac/ServicesController.mm:
        (WebKit::ServicesController::ServicesController):
        Speculative fix; if this block is called synchronously, we'll end up
        calling back into ::shared() before the NeverDestroyed is initialized,
        ending up with two ServicesControllers.

2014-08-29  Alexey Proskuryakov  <ap@apple.com>

        Crashes in IPC code under VisitedLinkProvider::pendingVisitedLinksTimerFired
        https://bugs.webkit.org/show_bug.cgi?id=136384
        rdar://problem/16991213

        Reviewed by Sam Weinig.

        VisitedLinkProvider process tracking relied on a combination of WebPageProxy process
        lifecycle notifications and checking process state. As evidenced by multiple FIXMEs,
        these are not yet as reliable as they should be.
        
        Changed to unregister a process when it closes, not when it no longer has any pages
        using the particular VisitedLinkProvider or WebUserContentControllerProxy. This
        is a deoptimization that should not matter in practice.

        * UIProcess/UserContent/WebUserContentControllerProxy.cpp:
        (WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy):
        (WebKit::WebUserContentControllerProxy::removeProcess):
        (WebKit::WebUserContentControllerProxy::addUserScript):
        (WebKit::WebUserContentControllerProxy::removeAllUserScripts):
        (WebKit::WebUserContentControllerProxy::addUserStyleSheet):
        (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):
        (WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
        (WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
        * UIProcess/UserContent/WebUserContentControllerProxy.h:
        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::~VisitedLinkProvider):
        (WebKit::VisitedLinkProvider::removeProcess):
        (WebKit::VisitedLinkProvider::removeAll):
        (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
        (WebKit::VisitedLinkProvider::resizeTable):
        * UIProcess/VisitedLinkProvider.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::close):
        (WebKit::WebPageProxy::processDidFinishLaunching):
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::disconnect):
        (WebKit::WebProcessProxy::addVisitedLinkProvider):
        (WebKit::WebProcessProxy::addWebUserContentControllerProxy):
        (WebKit::WebProcessProxy::didDestroyVisitedLinkProvider):
        (WebKit::WebProcessProxy::didDestroyWebUserContentControllerProxy):
        * UIProcess/WebProcessProxy.h:

2014-08-29  Alexey Proskuryakov  <ap@apple.com>

        WebPageProxy::close() is a no-op for terminated processes
        https://bugs.webkit.org/show_bug.cgi?id=136378
        Related to <rdar://problem/16991213> and to <rdar://problem/17095600>

        Reviewed by Brady Eidson.

        Also fixes issues that got uncovered after making close() work.

        * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::invalidate): Don't
        close the page, because it makes no sense, and causes an assertion now. Previosly,
        this was OK because the page was invalid already, and close() was a no-op.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::~WebPageProxy): Added some assertions to catch invalidation
        issues earlier.
        (WebKit::WebPageProxy::reattachToWebProcess): Make it an invariant that a page's
        process always has a message receiver for it, until close() removes it.
        (WebKit::WebPageProxy::close): Make this function work for all open pages, whether
        they have a page or not.
        (WebKit::WebPageProxy::processDidFinishLaunching): Added an asserion that process
        agrees about its state.
        (WebKit::WebPageProxy::resetStateAfterProcessExited): Don't remove a message receiver,
        we now only do this in reattach or close.

2014-08-29  Antti Koivisto  <antti@apple.com>

        Remove NetworkResourceLoaderClient and subclasses.
        https://bugs.webkit.org/show_bug.cgi?id=136370

        Reviewed by Darin Adler.

        This code is needlessly abstract. Move what logic these classes have to NetworkResourceLoader.

        * NetworkProcess/AsynchronousNetworkLoaderClient.cpp: Removed.
        * NetworkProcess/AsynchronousNetworkLoaderClient.h: Removed.
        * NetworkProcess/NetworkLoaderClient.h: Removed.
        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::NetworkResourceLoader):
        (WebKit::NetworkResourceLoader::~NetworkResourceLoader):
        (WebKit::NetworkResourceLoader::isSynchronous):
        (WebKit::NetworkResourceLoader::didReceiveResponseAsync):
        (WebKit::NetworkResourceLoader::didReceiveBuffer):
        (WebKit::NetworkResourceLoader::didFinishLoading):
        (WebKit::NetworkResourceLoader::didFail):
        (WebKit::NetworkResourceLoader::willSendRequestAsync):
        (WebKit::NetworkResourceLoader::didSendData):
        (WebKit::NetworkResourceLoader::sendBuffer):
        (WebKit::NetworkResourceLoader::sendReplyToSynchronousRequest):
        (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):
        * NetworkProcess/NetworkResourceLoader.h:
        (WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData):
        * NetworkProcess/SynchronousNetworkLoaderClient.cpp: Removed.
        * NetworkProcess/SynchronousNetworkLoaderClient.h: Removed.
        * WebKit2.xcodeproj/project.pbxproj:

2014-08-29  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviwed, remove empty directories.

        * PluginProcess/qt: Removed.
        * Shared/API/c/qt: Removed.
        * Shared/Downloads/qt: Removed.
        * Shared/FileAPI: Removed.
        * Shared/qt: Removed.
        * UIProcess/API/C/qt: Removed.
        * UIProcess/API/cpp/qt: Removed.
        * UIProcess/API/qt: Removed.
        * UIProcess/API/qt/raw: Removed.
        * UIProcess/API/qt/tests: Removed.
        * UIProcess/API/qt/tests/html: Removed.
        * UIProcess/API/qt/tests/html/resources: Removed.
        * UIProcess/API/qt/tests/inspectorserver: Removed.
        * UIProcess/API/qt/tests/publicapi: Removed.
        * UIProcess/API/qt/tests/qmltests: Removed.
        * UIProcess/API/qt/tests/qmltests/DesktopBehavior: Removed.
        * UIProcess/API/qt/tests/qmltests/WebView: Removed.
        * UIProcess/API/qt/tests/qmltests/common: Removed.
        * UIProcess/API/qt/tests/qquickwebview: Removed.
        * UIProcess/API/qt/tests/qrawwebview: Removed.
        * UIProcess/InspectorServer/qt: Removed.
        * UIProcess/Launcher/qt: Removed.
        * UIProcess/Plugins/qt: Removed.
        * UIProcess/SharedWorkers: Removed.
        * UIProcess/qt: Removed.
        * WebProcess/Cookies/qt: Removed.
        * WebProcess/Downloads: Removed.
        * WebProcess/IndexedDB: Removed.
        * WebProcess/InjectedBundle/qt: Removed.
        * WebProcess/NetworkInfo: Removed.
        * WebProcess/Plugins/Netscape/qt: Removed.
        * WebProcess/WebCoreSupport/qt: Removed.
        * WebProcess/WebPage/qt: Removed.
        * WebProcess/qt: Removed.
        * qt: Removed.

2014-08-28  Tim Horton  <timothy_horton@apple.com>

        _setDidMoveSwipeSnapshotCallback's block should only be called if the snapshot is going to move
        https://bugs.webkit.org/show_bug.cgi?id=136354
        <rdar://problem/18167791>

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKViewPrivate.h:
        Update the comment to note the new behavior.

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        Don't call the block until the snapshot is actually moving (if the snapshot
        never moves because it's behind the live view, don't call the block at all).

2014-08-28  Tim Horton  <timothy_horton@apple.com>

        Occasional thread-safety-related crashes on the ServicesController queue
        https://bugs.webkit.org/show_bug.cgi?id=136356
        <rdar://problem/18045685>

        Reviewed by Dan Bernstein.

        * UIProcess/mac/ServicesController.mm:
        (WebKit::hasCompatibleServicesForItems):
        Added. Check directly with NSSharingService if we have any services for the given items.
        We should eventually check Viewer and Editor services separately so the Web process can
        be smarter about when it shows the overlay, but for now this maintains the existing behavior.

        (WebKit::ServicesController::refreshExistingServices):
        Make use of hasCompatibleServicesForItems instead of having NSSharingServicePicker construct NSMenus.

2014-08-28  Tim Horton  <timothy_horton@apple.com>

        WebKit2 doesn't support viewer services that accept image attachments
        https://bugs.webkit.org/show_bug.cgi?id=136349
        <rdar://problem/18164606>

        Reviewed by Brady Eidson.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        Encode the already-existing parameter.

2014-08-28  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Remove unused pixel snapping functions.
        https://bugs.webkit.org/show_bug.cgi?id=136341

        Reviewed by Simon Fraser.

        Let's not encourage integral snapping by having these functions around.
        
        No change in functionality.

        * Shared/WebRenderObject.cpp:
        (WebKit::WebRenderObject::WebRenderObject):

2014-08-27  Enrica Casucci  <enrica@apple.com>

        textStylingAtPosition returns incorrect values after executing toggleBold, toggleItalic and toggleUnderline.
        https://bugs.webkit.org/show_bug.cgi?id=136323
        rdar://problem/18141964

        Reviewed by Antti Koivisto.

        For underline style we need to check typingStyle first and use that information to populate
        the dictionary. If there is no typing style we can use the render style.
        We also need to update the editor state for the toggle commands to reflect the state in the UIProcess
        even for commands that don't change the selection.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::editorState):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::executeEditCommandWithCallback):

2014-08-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add webkit_uri_response_get_http_headers to WebKit2 GTK+ API
        https://bugs.webkit.org/show_bug.cgi?id=136248

        Reviewed by Gustavo Noronha Silva.

        Add webkit_uri_response_get_http_headers() that returns the HTTP
        headers as a SoupMessageHeaders* like webkit_uri_request_get_http_headers().

        * UIProcess/API/gtk/WebKitURIResponse.cpp:
        (webkitURIResponseGetProperty): Add http-headers property getter.
        (webkit_uri_response_class_init): Add http-headers property.
        (webkit_uri_response_get_http_headers): Return the HTTP headers as
        a SoupMessageHeaders* or NULL for non HTTP responses.
        * UIProcess/API/gtk/WebKitURIResponse.h:
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.

2014-08-27  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Rename LayoutRect's device pixel snapping functions.
        https://bugs.webkit.org/show_bug.cgi?id=136319

        Reviewed by Simon Fraser.

        From pixelSnappedForPainting() to snapRectToDevicePixels() and 
        pixelSnappedIntRect*() to snappedIntRect*().

        No change in functionality.

        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::InjectedBundleNodeHandle::renderedImage):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::snapshotNode):
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::buildSelectionHighlight):

2014-08-27  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Rename FloatPoint/FloatRect device pixel snapping functions.
        https://bugs.webkit.org/show_bug.cgi?id=136314

        Reviewed by Simon Fraser.

        From *edToDevicePixels() to *PointToDevicePixels() (* = floor/round/ceil)

        EnclosedIntRect -> enclosingIntRect() changes functionality for InspectorOverlay painting,
        but currently untestable.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _updateTapHighlight]):

2014-08-27  Tim Horton  <timothy_horton@apple.com>

        WebKit2 swipe gesture should report the position of the snapshot to the client
        https://bugs.webkit.org/show_bug.cgi?id=136308
        rdar://problem/18105827

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKViewPrivate.h:
        * UIProcess/API/mac/WKView.mm:
        (-[WKView _setDidMoveSwipeSnapshotCallback:]):
        Add _setDidMoveSwipeSnapshotCallback, and plumb it to ViewGestureController.
        Callers provide a block which is called whenever ViewGestureController moves the
        swipe *snapshot* layer around.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::boundsOfLayerInLayerBackedWindowCoordinates):
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::boundsOfLayerInLayerBackedWindowCoordinates):
        Expose a Mac-only way to get the bounds of a given CALayer in window coordinates,
        respecting transforms. This only works for layer-backed windows because
        it uses CA in order to do the mapping respecting transforms.

        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::~ViewGestureController):
        (WebKit::ViewGestureController::setDidMoveSwipeSnapshotCallback):
        Do the Block_copy and Block_release dance to keep our copy of the callback block.

        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::handleSwipeGesture):
        (WebKit::ViewGestureController::didMoveSwipeSnapshotLayer):
        When the swipe snapshot layer moves around, call the block.

2014-08-27  Tim Horton  <timothy_horton@apple.com>

        Occasional crashes in commitTransientZoom's transaction completion block
        https://bugs.webkit.org/show_bug.cgi?id=136309
        <rdar://problem/17215064>

        Reviewed by Dan Bernstein.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
        Hold a reference to zoomLayer and the WebPage. It's possible that either
        of these things could have gone away by the time the transaction is committed.

2014-08-27  Benjamin Poulain  <bpoulain@apple.com>

        [iOS WK2] Provide a delegate callback to skip Geolocation authorization per page for WebApp
        https://bugs.webkit.org/show_bug.cgi?id=136243

        Reviewed by Sam Weinig.

        Just ask the UI if the authorization dialog needs to be skipped.

        * UIProcess/API/Cocoa/WKUIDelegate.h:
        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest):

        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]): Deleted.
        The code in WKContentView only exists due to legacy. Instead, the PageClient dispatch the request
        to the GeolocationProvider directly.

        * UIProcess/ios/WKGeolocationProviderIOS.h:
        * UIProcess/ios/WKGeolocationProviderIOS.mm:
        (-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:request:view:]):
        (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
        (-[WKGeolocationProviderIOS positionChanged:]):
        (-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:request:window:]): Deleted.

2014-08-27  Beth Dakin  <bdakin@apple.com>

        overflow:scroll elements should not latch to the body if the body is 
        overflow:hidden
        https://bugs.webkit.org/show_bug.cgi?id=136273

        Reviewed by Darin Adler.

        New ScrollabeArea virtual function.
        * WebProcess/Plugins/PDF/PDFPlugin.h:

2014-08-26  Matt Lilek  <mrl@apple.com>

        Add WebKit SPI to control the navigator.standalone property
        https://bugs.webkit.org/show_bug.cgi?id=136189

        Reviewed by Andy Estes.

        Add a property to WKPreferences that allows toggling this setting.

        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences _isStandalone]):
        (-[WKPreferences _setStandalone:]):
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:

2014-08-26  Joseph Pecoraro  <pecoraro@apple.com>

        FileReader cannot read files selected with <input type="file"> in iOS 8
        https://bugs.webkit.org/show_bug.cgi?id=136117

        Reviewed by Alexey Proskuryakov.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
        Correct an overzealous deny that was accidentally denying all
        com.apple.app-sandbox.read extensions instead of just the ones
        in Application bundles it was trying to deny.

2014-08-26  Tim Horton  <timothy_horton@apple.com>

        Crashes in ViewGestureController::beginSwipeGesture when swiping in rapid succession
        https://bugs.webkit.org/show_bug.cgi?id=136271
        <rdar://problem/17923694>

        Reviewed by Simon Fraser.

        It was possible to get into trackSwipeGesture while another swipe was still
        occurring, because the guard against this happening depended on m_pendingSwipeReason
        never being set while a swipe was occurring. However, if the very first scroll event
        had sufficient magnitude, we would still set m_pendingSwipeReason to InsufficientMagnitude,
        and then *never clear it*, leading to a path around the guard against multiple live swipes.
        This in turn allowed stale layers in m_liveSwipeLayers, which lead to the crash.

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::handleScrollWheelEvent):
        Don't unset m_pendingSwipeReason before calling trackSwipeGesture;
        trackSwipeGesture will do it itself.

        Don't set m_pendingSwipeReason to InsufficientMagnitude
        if the event actually *has* sufficient magnitude to start a swipe.

        (WebKit::ViewGestureController::trackSwipeGesture):
        Assert that we don't have an active gesture while starting a swipe.

        Reset m_pendingSwipeReason, because the swipe is no longer pending!

2014-08-26  Andy Estes  <aestes@apple.com>

        [Cocoa] Some projects are incorrectly installed to $BUILT_PRODUCTS_DIR
        https://bugs.webkit.org/show_bug.cgi?id=136267

        Reviewed by Dan Bernstein.

        INSTALL_PATH was set to $BUILT_PRODUCTS_DIR for engineering configurations in r20225 as part of a build fix.
        Not only is this no longer necessary to build, but it causes built products to be incorrectly installed in
        engineering configurations.

        Remove the setting of INSTALL_PATH from the pbxproj file so that the value specified in the xcconfig files is
        used instead.

        * WebKit2.xcodeproj/project.pbxproj:

2014-08-25  Maciej Stachowiak  <mjs@apple.com>

        Replace use of WKCopyCFLocalizationPreferredName with NSLocale public API
        https://bugs.webkit.org/show_bug.cgi?id=136082

        Reviewed by Alexey Proskuryakov.

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService): Remove accidental leftover retrieval
        of the localization.
        (WebKit::createProcess): Get current localization name from
        CFBundle API instead of using SPI.
        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface): Remove mention of WKCopyCFLocalizationPreferredName
        * mac/WebKit2.order: ditto

2014-08-26  Dana Burkart  <dburkart@apple.com>

        The UNUSED_PARAM macros in ServicesOverlayController.mm are causing ASan build failures.
        https://bugs.webkit.org/show_bug.cgi?id=136262

        Reviewed by David Kilzer.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::selectionRectsDidChange):
        (WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):

2014-08-26  Csaba Osztrogonác  <ossy@webkit.org>

        [EFL] URTBF after r172966.

        * UIProcess/efl/WebViewEfl.h:

2014-08-26  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        REGRESSION(r172966) [GTK] Build broken.

        Unreviewed build fix after r172966.

        * UIProcess/API/gtk/PageClientImpl.cpp:
        (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):
        * UIProcess/API/gtk/PageClientImpl.h:

2014-08-26  Simon Fraser  <simon.fraser@apple.com>

        Crashes in hit testing under WebPage::determinePrimarySnapshottedPlugIn()
        https://bugs.webkit.org/show_bug.cgi?id=136240
        rdar://problem/17231462

        Reviewed by Darin Adler.
        
        determinePrimarySnapshottedPlugIn() does render tree hit testing, so needs
        to ensure that layout is up-to-date.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::determinePrimarySnapshottedPlugIn):

2014-08-26  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r172771): Amazon product page becomes unresponsive after swiping back to it
        https://bugs.webkit.org/show_bug.cgi?id=136260
        <rdar://problem/18107826>

        Reviewed by Dan Bernstein.

        Previously, when a swipe ended up performing a same-document navigation,
        we would never get didFinishLoadForMainFrame nor didFirstVisuallyNonEmptyLayoutForMainFrame
        nor would we even get didHitRenderTreeSizeThreshold in all cases, so we would never
        remove the swipe snapshot. Previous implementations removed the snapshot on
        didSameDocumentNavigation for the main frame if the navigation type was Replace or Pop,
        so we will match that behavior.

        Also, reinstate the watchdog that starts at swipe-end which would have prevented
        this bug from forever breaking the view it was associated with.

        Also, defend against removing the snapshot before the swipe has finished (before
        we have even caused the navigation that we're watching for the effects of).

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _didSameDocumentNavigationForMainFrame:]):
        * UIProcess/API/mac/WKViewInternal.h:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):
        Plumb main-frame same-document navigation notification from WebPageProxy
        to ViewGestureControllerMac via PageClient and WKView.

        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::endSwipeGesture):
        Keep track of whether a swipe is currently occurring. We can't use
        activeGestureType for this because the swipe currently remains the "active"
        gesture until the snapshot is removed.

        Reintroduce the old swipeWatchdogTimer (and rename the shorter timer that starts
        when we get a visually non-empty layout) so that we will always remove the
        snapshot after 5 seconds, even if we haven't committed the load.
        This could lead to flashing back to the old content if we fail to get a single
        byte for 5 seconds, but that is a rare case and should eventually get additional
        special treatment (dropping the tiles until we do get content, or some such).

        (WebKit::ViewGestureController::didHitRenderTreeSizeThreshold):
        If a swipe is still in progress, we haven't done our navigation and thus
        don't care about render tree size changes.

        (WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame):
        If a swipe is still in progress, we haven't done our navigation and thus
        don't care about layouts.

        Stop the 5 second overall watchdog if we start the 3 second after-visuallyNonEmptyLayout
        watchdog. This means that the snapshot could stay up for a maximum of 8 seconds
        for a very, very slow load.

        (WebKit::ViewGestureController::didFinishLoadForMainFrame):
        If a swipe is still in progress, we haven't done our navigation and thus
        don't care about loads that complete.

        (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame):
        Remove the swipe snapshot after painting if we do replaceState or popState.

        (WebKit::ViewGestureController::removeSwipeSnapshotAfterRepaint):
        If a swipe is still in progress, we shouldn't remove the snapshot yet.

2014-08-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Translations are not initialized in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=136249

        Reviewed by Philippe Normand.

        This is breaking things like webkitContextMenuActionGetForContextMenuItem()
        for non English locales in the cases where we use the action title to guess the
        action, because the action title we get from the web process is translated while
        the one in the UI process is in English.

        * UIProcess/API/gtk/WebKitWebContext.cpp:
        (createDefaultWebContext): Initialize gettext right before
        creating the default web context.

2014-08-26  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Remove dead code in WebPageEfl.cpp
        https://bugs.webkit.org/show_bug.cgi?id=136246

        Reviewed by Gyuyoung Kim.

        * WebProcess/WebPage/efl/WebPageEfl.cpp:
        (WebKit::scroll): Deleted.

2014-08-26  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Build break using clang
        https://bugs.webkit.org/show_bug.cgi?id=136245

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: defines GTEST_HAS_RTTI=0

2014-08-25  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: remove roundedLayoutPoint/roundedLayoutSize functions.
        https://bugs.webkit.org/show_bug.cgi?id=136236

        Reviewed by Simon Fraser.

        These functions simply call LayoutPoint/LayoutSize c'tors. They don't round the input value at all.

        Non change in functionality.

        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::computeCustomFixedPositionRect):

2014-08-25  Antti Koivisto  <antti@apple.com>

        Don't pass priority as parameter to ResourceLoadScheduler
        https://bugs.webkit.org/show_bug.cgi?id=136232

        Reviewed by Sam Weinig.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::NetworkResourceLoader):
        * NetworkProcess/NetworkResourceLoader.h:
        (WebKit::NetworkResourceLoader::priority): Deleted.
        * Shared/Network/NetworkResourceLoadParameters.cpp:
        (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
        (WebKit::NetworkResourceLoadParameters::encode):
        (WebKit::NetworkResourceLoadParameters::decode):
        * Shared/Network/NetworkResourceLoadParameters.h:
        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad):
        (WebKit::WebResourceLoadScheduler::schedulePluginStreamLoad):
        (WebKit::WebResourceLoadScheduler::scheduleLoad):
        * WebProcess/Network/WebResourceLoadScheduler.h:
        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        (WebKit::WebPlatformStrategies::loadResourceSynchronously):

2014-08-25  Brady Eidson  <beidson@apple.com>

        Don't crash when the DataDetectors framework is unavailable.
        <rdar://problem/18106066> and https://bugs.webkit.org/show_bug.cgi?id=136234

        Reviewed by Tim Horton.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::buildPhoneNumberHighlights): Bail if DD.framework didn’t soft link.
        (WebKit::ServicesOverlayController::buildSelectionHighlight): Ditto.

2014-08-25  Antti Koivisto  <antti@apple.com>

        Remove load scheduling code from network process
        https://bugs.webkit.org/show_bug.cgi?id=136199

        Reviewed by Darin Adler.

        Most platforms just flush resource loads directly to the networking layer by
        making the parallel load count large. Also we always pass ResourceLoadPriorityHighest
        to the scheduler so no actual scheduling happens. This is effectively dead code.

        Keep basic support for serializing loads. This is only used for testing.

        * NetworkProcess/HostRecord.cpp: Removed.
        * NetworkProcess/HostRecord.h: Removed.
        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::servePendingRequests):
        * NetworkProcess/NetworkProcess.cpp:
        (WebKit::NetworkProcess::getNetworkProcessStatistics):
        * NetworkProcess/NetworkResourceLoadScheduler.cpp:
        (WebKit::NetworkResourceLoadScheduler::NetworkResourceLoadScheduler):
        (WebKit::NetworkResourceLoadScheduler::scheduleLoader):
        (WebKit::NetworkResourceLoadScheduler::removeLoader):
        (WebKit::NetworkResourceLoadScheduler::loadsPendingCount):
        (WebKit::NetworkResourceLoadScheduler::loadsActiveCount):
        (WebKit::NetworkResourceLoadScheduler::scheduleServePendingRequests): Deleted.
        (WebKit::NetworkResourceLoadScheduler::requestTimerFired): Deleted.
        (WebKit::NetworkResourceLoadScheduler::hostForURL): Deleted.
        (WebKit::NetworkResourceLoadScheduler::receivedRedirect): Deleted.
        (WebKit::NetworkResourceLoadScheduler::servePendingRequests): Deleted.
        (WebKit::NetworkResourceLoadScheduler::removeScheduledLoaders): Deleted.
        (WebKit::NetworkResourceLoadScheduler::scheduleRemoveLoader): Deleted.
        (WebKit::NetworkResourceLoadScheduler::hostsPendingCount): Deleted.
        (WebKit::NetworkResourceLoadScheduler::hostsActiveCount): Deleted.
        * NetworkProcess/NetworkResourceLoadScheduler.h:
        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::~NetworkResourceLoader):
        (WebKit::NetworkResourceLoader::cleanup):
        (WebKit::NetworkResourceLoader::continueWillSendRequest):
        * NetworkProcess/NetworkResourceLoader.h:
        (WebKit::NetworkResourceLoader::isLoadingMainResource):
        (WebKit::NetworkResourceLoader::setHostRecord): Deleted.
        (WebKit::NetworkResourceLoader::hostRecord): Deleted.
        * NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:
        (WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
        (WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost): Deleted.
        * NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp:
        (WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
        (WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost): Deleted.
        * WebKit2.xcodeproj/project.pbxproj:

2014-08-25  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Older versions of WebKit should use the plugins cache in read only mode
        https://bugs.webkit.org/show_bug.cgi?id=136215

        Reviewed by Philippe Normand.

        Now that WebKitGTK+ 2.4 and 2.5 are parallel installable, since
        they use different versions of the plugins cache, apps using 2.4
        might override the plugins cache file. We should prevent this from
        happening by making older versions use the plugin cache, but not
        downgrade it.

        * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
        (WebKit::PluginInfoCache::PluginInfoCache):
        (WebKit::PluginInfoCache::updatePluginInfo):
        * UIProcess/Plugins/gtk/PluginInfoCache.h:

2014-08-25  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Should check if a plugin mixes GTK+ symbols earlier
        https://bugs.webkit.org/show_bug.cgi?id=136214

        Reviewed by Philippe Normand.

        We are currently checking if the plugin module and the plugin
        process mix GTK symbols after the plugin has been loaded and
        initialized. This is too late in many cases, since plugins can use
        GTK methods in the NP_Initialize implementation. This is causing
        the apps using WebKitGTK+ 2.4 to freeze when the plugin process
        scans the plugins and there's a plugin using GTK+3 installed. We
        should move the check earlier, once the module is loaded but
        before calling NP_Initialize.

        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
        (WebKit::moduleMixesGtkSymbols):
        (WebKit::NetscapePluginModule::tryLoad):
        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
        (WebKit::NetscapePlugin::platformPostInitialize):

2014-08-25  Zan Dobersek  <zdobersek@igalia.com>

        Improve virtual method declarations in LayerTreeHostGtk
        https://bugs.webkit.org/show_bug.cgi?id=136210

        Reviewed by Carlos Garcia Campos.

        Mark the LayerTreeHostGtk class as final in the virtual inheritance hierarchy.

        Order the public and private virtual method overrides from the LayerTreeHost
        and GraphicsLayerClient interfaces. Explicitly mark them as overriding the
        base class methods.

        Remove the overriding notifyAnimationStarted() and notifyFlushRequired()
        methods since they are identical to the methods in the base class.

        De-virtualize flushPendingLayerChanges(). It's not inherited and is not
        overriden by anything (and nothing can inherit from LayerTreeHostGtk from
        now on due to the final specifier).

        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
        (WebKit::LayerTreeHostGtk::notifyAnimationStarted): Deleted.
        (WebKit::LayerTreeHostGtk::notifyFlushRequired): Deleted.
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
        (WebKit::LayerTreeHostGtk::didCommitChangesForLayer): Deleted.

2014-08-24  Brian J. Burg  <burg@cs.washington.edu>

        Remove unused method declarations replaced by WebPage::setViewState
        https://bugs.webkit.org/show_bug.cgi?id=136180

        Reviewed by Darin Adler.

        * WebProcess/WebPage/WebPage.h:
        Remove setFocused, setActive, setViewIsVisible. No longer used.

2014-08-23  Byungseon Shin  <sun.shin@lge.com>
 
        Unify GraphicsLayer::setContentsToMedia and setContentsToCanvas
        https://bugs.webkit.org/show_bug.cgi?id=109658
 
        Reviewed by Martin Robinson.
 
        Based on patch originally written by Tim Horton.
        Merge setContentsToMedia and setContentsToCanvas into setContentsToPlatformLayer.
 
        * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
        (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::encode):
        (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::decode):
        Rename canvas -> platformLayer.

2014-08-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172866.
        https://bugs.webkit.org/show_bug.cgi?id=136177

        Broke iOS build (Requested by othermaciej on #webkit).

        Reverted changeset:

        "Replace use of WKCopyCFLocalizationPreferredName with
        NSLocale public API"
        https://bugs.webkit.org/show_bug.cgi?id=136082
        http://trac.webkit.org/changeset/172866

2014-08-19  Maciej Stachowiak  <mjs@apple.com>

        Replace use of WKCopyCFLocalizationPreferredName with NSLocale public API
        https://bugs.webkit.org/show_bug.cgi?id=136082

        Reviewed by Alexey Proskuryakov.

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService): Remove accidental leftover retrieval
        of the localization.
        (WebKit::createProcess): Get current localization name from
        CFBundle API instead of using SPI.
        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface): Remove mention of WKCopyCFLocalizationPreferredName
        * mac/WebKit2.order: ditto

2014-08-22  Daniel Bates  <dabates@apple.com>

        [iOS] Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, and temporarily disable ENABLE_TOUCH_EVENTS
        and ENABLE_XSLT when building with the iOS public SDK
        https://bugs.webkit.org/show_bug.cgi?id=135945

        Reviewed by Andy Estes.

        * Configurations/FeatureDefines.xcconfig: Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, ENABLE_TOUCH_EVENTS
        and ENABLE_XSLT when building with the public SDK.
        * Shared/WebEventConversion.h: Write preprocessor logic in terms of ENABLE(IOS_TOUCH_EVENTS).
        * WebProcess/WebPage/WebPage.h: Ditto.

2014-08-22  Simon Fraser  <simon.fraser@apple.com>

        Implement paint flashing via GraphicsLayers in the WK2 inspector overlay
        https://bugs.webkit.org/show_bug.cgi?id=136136

        Reviewed by Sam Weinig, Joseph Pecoraro.
        
        Allow InspectorClient to have a custom implementation of showPaintRect(). For
        WebKit2's WebInspectorClient, implement this by creating a set of GraphicsLayers
        which are parented in a document overlay, with 0.25s fade-out animations.
        
        Also change InspectorInstrumentation::didPaintImpl() to no longer take a GraphicsContext;
        it makes no sense to paint the paint rects directly into the context of the web page.
        Now that the paint rects are painted into an overlay, the rectangles need to be converted
        to root document coordinates, which is done in InspectorInstrumentation::didPaintImpl().
        
        Remove the generic InspectorOverlay::drawOutline()-based indicators; they will
        be reimplemented in a later patch.

        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
        (WebKit::RepaintIndicatorLayerClient::RepaintIndicatorLayerClient):
        (WebKit::RepaintIndicatorLayerClient::~RepaintIndicatorLayerClient):
        (WebKit::RepaintIndicatorLayerClient::notifyAnimationEnded):
        (WebKit::WebInspectorClient::WebInspectorClient):
        (WebKit::WebInspectorClient::~WebInspectorClient):
        (WebKit::WebInspectorClient::showPaintRect):
        (WebKit::WebInspectorClient::animationEndedForLayer):
        * WebProcess/WebCoreSupport/WebInspectorClient.h:
        (WebKit::WebInspectorClient::WebInspectorClient): Deleted.

2014-08-22  Jon Lee  <jonlee@apple.com>

        Fix iOS build due to r172832 and move RUBBER_BANDING out of FeatureDefines.h
        https://bugs.webkit.org/show_bug.cgi?id=136157

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig: Add ENABLE(RUBBER_BANDING).

2014-08-21  Joseph Pecoraro  <pecoraro@apple.com>

        Possible RetainPtr misuse in WKScriptMessage.mm - could leak
        https://bugs.webkit.org/show_bug.cgi?id=136140

        Reviewed by Darin Adler.

        Adopt a copy into a RetainPtr to avoid leaking.

        * UIProcess/API/Cocoa/WKScriptMessage.mm:
        (-[WKScriptMessage _initWithBody:webView:frameInfo:name:]):

2014-08-21  Simon Fraser  <simon.fraser@apple.com>

        Add animationDidEnd callbacks on GraphicsLayer
        https://bugs.webkit.org/show_bug.cgi?id=136084

        Reviewed by Tim Horton.

        Hook up GraphicsLayerClient::notifyAnimationEnded() so that code using GraphicsLayers directly
        can add animations, and know when they finish.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidEnd):
        * UIProcess/mac/RemoteLayerTreeHost.h:
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::animationDidEnd):
        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::acceleratedAnimationDidEnd):
        * WebProcess/WebPage/DrawingArea.messages.in:
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
        (-[WKAnimationDelegate animationDidStop:finished:]):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::animationStarted):
        (WebKit::PlatformCALayerRemote::animationEnded):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):
        (WebKit::RemoteLayerTreeContext::willStartAnimationOnLayer):
        (WebKit::RemoteLayerTreeContext::animationDidStart):
        (WebKit::RemoteLayerTreeContext::animationDidEnd):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidEnd):

2014-08-21  Zalan Bujtas  <zalan@apple.com>

        Enable SATURATED_LAYOUT_ARITHMETIC.
        https://bugs.webkit.org/show_bug.cgi?id=136106

        Reviewed by Simon Fraser.

        SATURATED_LAYOUT_ARITHMETIC protects LayoutUnit against arithmetic overflow.
        (No measurable performance regression on Mac.)

        * Configurations/FeatureDefines.xcconfig:

2014-08-21  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>

        [GTK] WebkitWebProcess crashing navigating away from ogg video element
        https://bugs.webkit.org/show_bug.cgi?id=135348

        Reviewed by Philippe Normand.

        When a page is cached, by default doesn't recreate the backing store
        (an optimization added in r89316).

        Not all the ports uses that optimization. For example IOS port doesn't
        use it (r161185).

        In the case of the GTK port, the MediaPlayerPrivateGStreamer, not only
        processes video buffers, also display them, because it is a
        TextureMapperPlatformLayer too.

        Nevertheless, in r153937, when a page is cached, the player is
        destroyed. But our player has a backing store and the render tree
        doesn't know that the player has gone. Hence, when the page is redraw,
        the TextureMapper tree visits the video element, which doesn't exist
        anymore, a segmentation fault occurs.

        So, as our media player renders, and as we cannot trust that the
        player exists when a page is painted, we cannot rely in the r89316
        optimization.

        Disabling the backing stores optimization fixes the problem.

        Covered by existing tests.

        * WebProcess/soup/WebProcessSoup.cpp:
        (WebKit::WebProcess::platformSetCacheModel): Enable the backing store
        clearing when page caching for GTK.

2014-08-20  Alex Christensen  <achristensen@webkit.org>

        Introducing WEBCORE_EXPORT macro.
        https://bugs.webkit.org/show_bug.cgi?id=136108

        Reviewed by Antti Koivisto.

        * config.h:
        Added stub definition of WEBCORE_EXPORT defined to nothing to be able to compile with WebCore headers.

2014-08-20  Pratik Solanki  <psolanki@apple.com>

        Move DiskCacheMonitor to WebCore so that WebKit1 clients can use it as well
        https://bugs.webkit.org/show_bug.cgi?id=135896

        Reviewed by Andreas Kling.

        * NetworkProcess/mac/NetworkDiskCacheMonitor.h:
            Inherit from WebCore::DiskCacheMonitor which has the bulk of the functionality now.
        (WebKit::NetworkDiskCacheMonitor::~NetworkDiskCacheMonitor):
        * NetworkProcess/mac/NetworkDiskCacheMonitor.mm:
        (WebKit::NetworkDiskCacheMonitor::monitorFileBackingStoreCreation):
        (WebKit::NetworkDiskCacheMonitor::NetworkDiskCacheMonitor):
        (WebKit::NetworkDiskCacheMonitor::resourceBecameFileBacked):
            Override virtual method and send the data to the WebContent process as before.

2014-08-19  Pratik Solanki  <psolanki@apple.com>

        Remove PurgeableBuffer since it is not very useful any more
        https://bugs.webkit.org/show_bug.cgi?id=135939

        Reviewed by Andreas Kling.

        * WebProcess/WebProcess.cpp:
        (WebKit::getWebCoreMemoryCacheStatistics):

2014-08-19  Peyton Randolph  <prandolph@apple.com>

        Expose injected bundle SPI to get a node's URL element, get the visible selection range of that
        element, and snapshot that range
        https://bugs.webkit.org/show_bug.cgi?id=136076

        Reviewed by Tim Horton.

        * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
        (WKBundleHitTestResultCopyURLElementHandle): Added.
        * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
        (WKBundleNodeHandleCopyVisibleRange): Added.
        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
        * WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:
        (WKBundleRangeHandleGetBoundingRectInWindowCoordinates): Added.
        (WKBundleRangeHandleCopySnapshotWithOptions): Added.
        * WebProcess/InjectedBundle/API/c/WKBundleRangeHandlePrivate.h:
        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::InjectedBundleNodeHandle::visibleRange): Added.
        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
        * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
        (WebKit::InjectedBundleRangeHandle::boundingRectInWindowCoordinates): Added.
        (WebKit::InjectedBundleRangeHandle::renderedImage): Added.
        * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:
        * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
        (WebKit::InjectedBundleHitTestResult::urlElementHandle): Added.
        * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:

2014-08-19  Zalan Bujtas  <zalan@apple.com>

        Remove ENABLE(SUBPIXEL_LAYOUT).
        https://bugs.webkit.org/show_bug.cgi?id=136077

        Reviewed by Simon Fraser.

        Remove compile time flag SUBPIXEL_LAYOUT. All ports have it enabled for a while now.

        * Configurations/FeatureDefines.xcconfig:

2014-08-19  Peyton Randolph  <prandolph@apple.com>

        Extend injected bundle node snapshotting to support forced white and black text
        https://bugs.webkit.org/show_bug.cgi?id=136061

        Reviewed by Beth Dakin.

        * Shared/API/c/WKImage.h:
        Add -ForceBlackText and -ForceWhiteText snapshotting options.
        * Shared/API/c/WKSharedAPICast.h:
        (WebKit::toSnapshotOptions):
        Support aforementioned text snapshotting options.
        * Shared/ImageOptions.h:
        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::imageForRect):
        Respect text color snapshotting options by setting appropriate paint behaviors.

2014-08-18  Maciej Stachowiak  <mjs@apple.com>

        Use NSURLFileTypeMappings directly instead of depending on WebKitSystemInterface wrappers for it
        https://bugs.webkit.org/show_bug.cgi?id=136035

        Reviewed by Dan Bernstein.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface): Don't initialize the no-longer-used WKGetExtensionsForMIMEType,
        WKGetPreferredExtensionForMIMEType, or WKGetMIMETypeForExtension
        * mac/WebKit2.order: Remove exports related to above.

2014-08-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172736.
        https://bugs.webkit.org/show_bug.cgi?id=136060

        Caused 14% PLT regressions (Requested by rniwa on #webkit).

        Reverted changeset:

        "Remove PurgeableBuffer since it is not very useful any more"
        https://bugs.webkit.org/show_bug.cgi?id=135939
        http://trac.webkit.org/changeset/172736

2014-08-18  Simon Fraser  <simon.fraser@apple.com>

        Provide default implementations of all GraphicsLayerClient methods
        https://bugs.webkit.org/show_bug.cgi?id=136054

        Reviewed by Tim Horton.
        
        Remove overrides which are no longer required.

        * WebProcess/WebPage/PageOverlayController.h:
        * WebProcess/WebPage/ServicesOverlayController.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:

2014-08-18  Pratik Solanki  <psolanki@apple.com>

        Remove PurgeableBuffer since it is not very useful any more
        https://bugs.webkit.org/show_bug.cgi?id=135939

        Reviewed by Geoffrey Garen.

        * WebProcess/WebProcess.cpp:
        (WebKit::getWebCoreMemoryCacheStatistics):

2014-08-18  Peyton Randolph  <prandolph@apple.com>

        Expose long mouse press WebKit API. Part of 135257 - Add long mouse press gesture
        https://bugs.webkit.org/show_bug.cgi?id=136048

        Reviewed by Dan Bernstein.

        This patch exposes long mouse press API callbacks in both the injected bundle and on the UI process
        through their respective page UI clients. The callbacks are modeled off of the mouseDidMoveOverElement
        callback. Like the mouseDidMoveOverElement callback, these callbacks allow the bundle to pass 
        information to the UI process via a userData out parameter.

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::didBeginTrackingPotentialLongMousePress): Added.
        (API::UIClient::didRecognizeLongMousePress): Added.
        (API::UIClient::didCancelTrackingPotentialLongMousePress): Added.
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageUIClient):
        * UIProcess/API/C/WKPageUIClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didBeginTrackingPotentialLongMousePress): Added.
        (WebKit::WebPageProxy::didRecognizeLongMousePress): Added.
        (WebKit::WebPageProxy::didCancelTrackingPotentialLongMousePress): Added.
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
        (API::InjectedBundle::PageUIClient::didBeginTrackingPotentialLongMousePress): Added.
        (API::InjectedBundle::PageUIClient::didRecognizeLongMousePress): Added.
        (API::InjectedBundle::PageUIClient::didCancelTrackingPotentialLongMousePress): Added.
        * WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:
        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Added.
        (WebKit::InjectedBundlePageUIClient::didBeginTrackingPotentialLongMousePress): Added.
        (WebKit::InjectedBundlePageUIClient::didRecognizeLongMousePress): Added.
        (WebKit::InjectedBundlePageUIClient::didCancelTrackingPotentialLongMousePress): Added.
        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::didBeginTrackingPotentialLongMousePress): Added.
        (WebKit::WebChromeClient::didRecognizeLongMousePress): Added.
        (WebKit::WebChromeClient::didCancelTrackingPotentialLongMousePress): Added.
        * WebProcess/WebCoreSupport/WebChromeClient.h:

2014-08-18  Przemyslaw Kuczynski  <p.kuczynski@samsung.com>

        Fix unintentional integer overflow before widen
        https://bugs.webkit.org/show_bug.cgi?id=135463

        Reviewed by Oliver Hunt.

        Overflowing expression is evaluated using operands arithmetic but then is used in
        context which expects an wider integer type. To avoid overflow at least one operand
        has to be representative of the wider type.

        * WebProcess/soup/WebProcessSoup.cpp:
        (WebKit::getMemorySize): Added long long literal.

2014-08-18  Przemyslaw Kuczynski  <p.kuczynski@samsung.com>

        Fix resource leak in unclosed file descriptor handles
        https://bugs.webkit.org/show_bug.cgi?id=135458

        Reviewed by Oliver Hunt.

        Leaving descriptor unclosed will cause the resources associated with the open
        file description never be freed (they are freed on closing the last descriptor
        refering to the underlying file).

        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
        (WebKit::StdoutDevNullRedirector::StdoutDevNullRedirector): Closed newStdout descriptor.
        (WebKit::StdoutDevNullRedirector::~StdoutDevNullRedirector): Closed m_savedStdout descriptor.

2014-08-18  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL] ewk_init() is sufficient to initialize EFL components
        https://bugs.webkit.org/show_bug.cgi?id=136036

        Reviewed by Gyuyoung Kim.

        Developers do not have to initialize EFL components as ewk_init()
        already does it.

        * UIProcess/API/efl/ewk_intro.h:

2014-08-16  Pratik Solanki  <psolanki@apple.com>

        Rename DiskCacheMonitor to NetworkDiskCacheMonitor
        https://bugs.webkit.org/show_bug.cgi?id=135897

        Reviewed by Andreas Kling.

        In preparation for moving DiskCacheMonitor code to WebCore in bug 135896, rename the WebKit2
        class to NetworkDiskCacheMonitor.

        * NetworkProcess/mac/NetworkDiskCacheMonitor.h: Renamed from Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h.
        (WebKit::NetworkDiskCacheMonitor::resourceRequest):
        * NetworkProcess/mac/NetworkDiskCacheMonitor.mm: Renamed from Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.mm.
        (WebKit::NetworkDiskCacheMonitor::monitorFileBackingStoreCreation):
        (WebKit::NetworkDiskCacheMonitor::NetworkDiskCacheMonitor):
        (WebKit::NetworkDiskCacheMonitor::messageSenderConnection):
        (WebKit::NetworkDiskCacheMonitor::messageSenderDestinationID):
        * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
        (WebKit::NetworkResourceLoader::willCacheResponseAsync):
        * WebKit2.xcodeproj/project.pbxproj:

2014-08-16  Byungseon Shin  <sun.shin@lge.com>

        [GTK] build fails with error: cannot allocate an object of abstract type 'WebKit::PageClientImpl'
        https://bugs.webkit.org/show_bug.cgi?id=136017 

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/gtk/PageClientImpl.cpp:
        (WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
        (WebKit::PageClientImpl::didFinishLoadForMainFrame):
        * UIProcess/API/gtk/PageClientImpl.h:

2014-08-15  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Add ewk_intro.h to describe main page of doxygen
        https://bugs.webkit.org/show_bug.cgi?id=136013

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake:
        * UIProcess/API/efl/EWebKit2.h.in:
        * UIProcess/API/efl/ewk_intro.h: Added.

2014-08-15  Zalan Bujtas  <zalan@apple.com>

        Do not use FloatRect::infiniteRect() to flag full repaints.
        https://bugs.webkit.org/show_bug.cgi?id=135900

        Reviewed by Simon Fraser.

        Converting FloatRect::infiniteRect() to IntRect leads to value overflow
        and we end up with invalid repaint rectangle. Use a boolean flag to indicate
        full repaint request.

        Covered by existing tests.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::setNeedsDisplayInRect):
        (WebKit::PlatformCALayerRemote::setNeedsDisplay):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
        (WebKit::PlatformCALayerRemoteCustom::setNeedsDisplayInRect):
        (WebKit::PlatformCALayerRemoteCustom::setNeedsDisplay):
        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
        (WebKit::PlatformCALayerRemoteTiledBacking::setNeedsDisplayInRect):
        (WebKit::PlatformCALayerRemoteTiledBacking::setNeedsDisplay):
        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:

2014-08-15  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r172660): WebKit2.TerminateTwice asserts
        https://bugs.webkit.org/show_bug.cgi?id=136012

        * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::terminateProcess):
        Added bug number to a fixme.

2014-08-15  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed build fix on the EFL port since r172635

        * UIProcess/WebPageProxy.cpp: Guard removeNavigationGestureSnapshot with PLATFORM(MAC) macro.
        * UIProcess/WebPageProxy.h: Ditto.
        * UIProcess/efl/WebViewEfl.h: Added didFirstVisuallyNonEmptyLayoutForMainFrame and didFinishLoadForMainFrame as dummy.

2014-08-15  Alexey Proskuryakov  <ap@apple.com>

        Improve page to process relationship tracking
        https://bugs.webkit.org/show_bug.cgi?id=135996
        <rdar://problem/16991213>

        Reviewed by Sam Weinig.

        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::removeAll):
        (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
        (WebKit::VisitedLinkProvider::sendTable):
        Added assertions for m_processes only having valid entries.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::reattachToWebProcess): When attaching to a new process,
        tell the old process that the page is not longer associated with it, avoiding
        a potential stale pointer.
        If re-attached to an existing process, make sure that we perform all the same
        registrations as after having launched a new process. This substantially improves
        the behavior when the number of open tabs is over process limit.
        (WebKit::WebPageProxy::reattachToWebProcessWithItem): Added ASSERT(!isValid())
        to avoid confusion. All other calls to reattachToWebProcess() have this as a
        runtime check, but reattachToWebProcessWithItem() is only called for valid pages.
        (WebKit::WebPageProxy::terminateProcess): Added an assertion with a FIXME for
        something that will need to be fixed another day.

        * UIProcess/WebPageProxy.h: Removed an unimplemented function.

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::addExistingWebPage): Added assertions for page map sanity.
        (WebKit::WebProcessProxy::removeWebPage): Added a check for page state being Terminated
        already. This avoids an assertion failure that happened under the new call to
        removeWebPage() in reattachToWebProcess(), as we are now calling it for terminated
        processes that are not in WebContext::m_processes any more.
        (WebKit::WebProcessProxy::didFinishLaunching): Added an assertion that page agrees
        about using this process.

2014-08-15  Gavin Barraclough  <barraclough@apple.com>

        Fix plugin visibility check.
        https://bugs.webkit.org/show_bug.cgi?id=135991

        D'oh, more unreviewed typo fix. :-(

        * PluginProcess/PluginControllerProxy.cpp:
        (WebKit::PluginControllerProxy::visibilityDidChange):
        (WebKit::PluginControllerProxy::windowVisibilityChanged):
        (WebKit::PluginControllerProxy::updateVisibilityActivity):
        (WebKit::PluginControllerProxy::updateVisiblityActivity): Deleted.
        * PluginProcess/PluginControllerProxy.h:

2014-08-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        Implement snapping behavior for iOS
        https://bugs.webkit.org/show_bug.cgi?id=135769

        Reviewed by Brent Fulgham.

        Added support for snap points on iOS.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (ArgumentCoder<ScrollingStateScrollingNode>::encode): Added snap offset encoding.
        (ArgumentCoder<ScrollingStateScrollingNode>::decode): Added snap offset decoding.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): For mainframe scrolling, retargets the scroll destination to the appropriate snap point.
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h: Added methods to extract relevant information for WKWebView from snap offsets in mainframe scrolling.
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (-[WKOverflowScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): For overflow scrolling, retargets the scroll destination to the appropriate snap point.
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren): Sets the deceleration factor to FAST if snap points are active.
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::adjustTargetContentOffsetForSnapping): Used by WKWebView for mainframe scrolling to retarget the scroll destination, if necessary.
        (WebKit::RemoteScrollingCoordinatorProxy::shouldSetScrollViewDecelerationRateFast): Used by WKWebView for mainframe scrolling to determine whether to set deceleration rate to the fast value.
        (WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling): Helper method.
        (WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling): Helper method.

2014-08-15  Gavin Barraclough  <barraclough@apple.com>

        Fix plugin visibility check.
        https://bugs.webkit.org/show_bug.cgi?id=135991

        Unreviewed typo fix.

        * PluginProcess/PluginControllerProxy.cpp:
        (WebKit::PluginControllerProxy::PluginControllerProxy):
        (WebKit::PluginControllerProxy::visibilityDidChange):
        (WebKit::PluginControllerProxy::windowVisibilityChanged):
        (WebKit::PluginControllerProxy::updateVisibilityActivity):
        * PluginProcess/PluginControllerProxy.h:

2014-08-15  Gavin Barraclough  <barraclough@apple.com>

        Fix plugin visibility check.
        https://bugs.webkit.org/show_bug.cgi?id=135991

        Reviewed by Andreas Kling.

        We should only take a UserActivity if the plugin is in a visible window,
        and also is itself visible.

        * PluginProcess/PluginControllerProxy.cpp:
        (WebKit::PluginControllerProxy::PluginControllerProxy):
            - initialize member state.
        (WebKit::PluginControllerProxy::visibilityDidChange):
        (WebKit::PluginControllerProxy::windowVisibilityChanged):
            - update member state & call updateVisibilityActivity.
        (WebKit::PluginControllerProxy::updateVisibilityActivity):
            - enable the UserActivity only if both visibilities are true.
        * PluginProcess/PluginControllerProxy.h:
            - added m_isVisible, m_isWindowVisible, updateVisibilityActivity.

2014-08-15  Enrica Casucci  <enrica@apple.com>

        [Services with UI] Selections are incorrect when selecting three lines.
        https://bugs.webkit.org/show_bug.cgi?id=135989
        <rdar://problem/18032571>

        Reviewed by Tim Horton.

        The stitching algorithm did not handle correctly the case of selections
        over three lines if the middle line is composed of only one rectangle.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::stitchRects):

2014-08-15  Tim Horton  <timothy_horton@apple.com>

        Service overlays stay fixed when <iframe> scrolls
        https://bugs.webkit.org/show_bug.cgi?id=135959
        <rdar://problem/17957716>

        Reviewed by Enrica Casucci.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::highlightsAreEquivalent):
        Tiny correctness fix; highlights can only be equivalent if their
        types are equivalent as well.

2014-08-15  Gavin Barraclough  <barraclough@apple.com>

        de-PLATFORM(COCOA) a couple of methods in plugin code
        https://bugs.webkit.org/show_bug.cgi?id=135987

        Reviewed by Sam Weinig.

        Pass through the visibility & focus on all platforms, to simplify & avoid
        any weird inconsistencies between platforms.

        * PluginProcess/PluginControllerProxy.cpp:
        (WebKit::PluginControllerProxy::windowFocusChanged):
        (WebKit::PluginControllerProxy::windowVisibilityChanged):
        * PluginProcess/PluginControllerProxy.h:
        * PluginProcess/PluginControllerProxy.messages.in:
        * PluginProcess/mac/PluginControllerProxyMac.mm:
        (WebKit::PluginControllerProxy::windowFocusChanged): Deleted.
        (WebKit::PluginControllerProxy::windowVisibilityChanged): Deleted.
        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
        (WebKit::NetscapePlugin::windowFocusChanged):
        (WebKit::NetscapePlugin::windowVisibilityChanged):
        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
        * WebProcess/Plugins/Plugin.h:
        * WebProcess/Plugins/PluginProxy.cpp:
        (WebKit::PluginProxy::windowAndViewFramesChanged):
        * WebProcess/Plugins/PluginProxy.h:
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::viewStateDidChange):
        (WebKit::PluginView::platformViewStateDidChange): Deleted.
        * WebProcess/Plugins/PluginView.h:

2014-08-15  Tim Horton  <timothy_horton@apple.com>

        Service overlays stay fixed when <iframe> scrolls
        https://bugs.webkit.org/show_bug.cgi?id=135959
        <rdar://problem/17957716>

        Reviewed by Enrica Casucci.

        * WebProcess/WebPage/PageOverlay.cpp:
        (WebKit::PageOverlay::didScrollFrame):
        * WebProcess/WebPage/PageOverlay.h:
        (WebKit::PageOverlay::Client::didScrollFrame):
        * WebProcess/WebPage/PageOverlayController.cpp:
        (WebKit::PageOverlayController::didScrollFrame):
        Push didScrollFrame down to the overlays.

        * WebProcess/WebPage/ServicesOverlayController.h:
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::Highlight::createForSelection):
        Hold on to the selection's Range so we can use it to compare Highlights later.

        (WebKit::ServicesOverlayController::Highlight::Highlight):
        (WebKit::ServicesOverlayController::Highlight::setDDHighlight):
        Factor the code to set up and paint the highlight out, so that we can
        set a new DDHighlightRef on a Highlight and the layer moves/reshapes/repaints.

        (WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
        (WebKit::ServicesOverlayController::buildSelectionHighlight):
        (WebKit::ServicesOverlayController::replaceHighlightsOfTypePreservingEquivalentHighlights):
        Factor replaceHighlightsOfTypePreservingEquivalentHighlights out
        so that we can use it for buildSelectionHighlight as well.

        Steal the DDHighlightRef from the new Highlight when re-using an old one
        so that the newly computed rects are used instead of the old ones.

        (WebKit::ServicesOverlayController::highlightsAreEquivalent):
        We will always have a Range now, so we can always check equivalence using it.

        (WebKit::ServicesOverlayController::didScrollFrame):
        Rebuild all highlights upon subframe scroll, as they might have moved.
        We could optimize this in the future, but for now it's cheap enough
        and rare enough that it doesn't matter.

2014-08-15  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (WebKit2 Gestures): White flash when swiping back to cnn.com's homepage from an article
        https://bugs.webkit.org/show_bug.cgi?id=135951
        <rdar://problem/18006149>

        Reviewed by Simon Fraser.

        Wait for (the first visually non-empty layout AND the render tree size threshold to be hit),
        OR didFinishLoadForFrame, whichever comes first. Once we've done the first visually non-empty layout,
        we'll start the watchdog and tear down the snapshot in three seconds no matter what.
        Also, force a repaint so we can asynchronously wait for the Web Process to paint and return to us
        before removing the snapshot, which improves our chances that something is actually on the screen.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _didFirstVisuallyNonEmptyLayoutForMainFrame]):
        (-[WKView _didFinishLoadForMainFrame]):
        (-[WKView _removeNavigationGestureSnapshot]):
        * UIProcess/API/mac/WKViewInternal.h:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didFinishLoadForFrame):
        (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
        (WebKit::WebPageProxy::removeNavigationGestureSnapshot):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
        (WebKit::PageClientImpl::didFinishLoadForMainFrame):
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
        (WebKit::PageClientImpl::didFinishLoadForMainFrame):
        (WebKit::PageClientImpl::removeNavigationGestureSnapshot):
        Plumb didFirstVisuallyNonEmptyLayoutForMainFrame and didFinishLoadForMainFrame
        through to ViewGestureController from WebPageProxy via the PageClient, etc.

        Ditto for removeNavigationGestureSnapshot, though it is called from a
        VoidCallback in ViewGestureController instead of from WebFrameLoaderClient and friends.

        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::endSwipeGesture):
        When finishing a swipe, we want to wait for both the first visually non-empty layout
        and the render tree size threshold being hit.

        (WebKit::ViewGestureController::didHitRenderTreeSizeThreshold):
        (WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame):
        When both of these things have happened, remove the swipe snapshot (after forcing a repaint).
        For didFirstVisuallyNonEmptyLayoutForMainFrame, we will also start a watchdog
        ensuring that we remove the snapshot in three seconds.

        (WebKit::ViewGestureController::didFinishLoadForMainFrame):
        When didFinishLoadForMainFrame happens, remove the swipe snapshot (after forcing a repaint).

        (WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
        If the watchdog timer fires, remove the swipe snapshot (after forcing a repaint).

        (WebKit::ViewGestureController::removeSwipeSnapshotAfterRepaint):
        Force a repaint and wait for the async callback before removing the snapshot.
        It is safe to hold on to the WebPageProxy here because it will always
        call all of its callbacks before it is destroyed.
        Avoid enqueuing multiple force-repaints.

        (WebKit::ViewGestureController::removeSwipeSnapshot):

2014-08-15  Gavin Barraclough  <barraclough@apple.com>

        Fix plugin visibility initialization
        https://bugs.webkit.org/show_bug.cgi?id=135985

        Reviewed by Geoffrey Garen.

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::didInitializePlugin):
            - We're not currently initializing the plugin visibility state,
              and we're passing the wrong value for window visibility.

2014-08-15  Gavin Barraclough  <barraclough@apple.com>

        Simplify visibility activity accounting for plugins
        https://bugs.webkit.org/show_bug.cgi?id=135981

        Reviewed by Dan Bernstein.

        Just take one per connection, rather than implementing a counting mechanism.

        * PluginProcess/PluginControllerProxy.cpp:
        (WebKit::PluginControllerProxy::PluginControllerProxy):
        * PluginProcess/PluginControllerProxy.h:
            - added m_visiblityActivity.
        * PluginProcess/PluginProcess.cpp:
        (WebKit::PluginProcess::PluginProcess):
        (WebKit::PluginProcess::pluginsForWebProcessDidBecomeVisible): Deleted.
        (WebKit::PluginProcess::pluginsForWebProcessDidBecomeHidden): Deleted.
        * PluginProcess/PluginProcess.h:
            - removed pluginsForWebProcessDidBecomeVisible/Hidden.
        * PluginProcess/WebProcessConnection.cpp:
        (WebKit::WebProcessConnection::removePluginControllerProxy):
        (WebKit::WebProcessConnection::pluginDidBecomeVisible): Deleted.
        (WebKit::WebProcessConnection::pluginDidBecomeHidden): Deleted.
        * PluginProcess/WebProcessConnection.h:
            - removed pluginDidBecomeVisible/Hidden.
        * PluginProcess/mac/PluginControllerProxyMac.mm:
        (WebKit::PluginControllerProxy::windowVisibilityChanged):
            - windowVisibilityChanged uses m_visiblityActivity, rather than calling to PluginControllerProxy.

2014-08-15  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Update OptionsGTK.cmake and NEWS for 2.5.3 release.

        * gtk/NEWS: Add release notes for 2.5.3.

2014-08-14  Enrica Casucci  <enrica@apple.com>

        [Services with UI] Selection services don't work inside <iframes>.
        https://bugs.webkit.org/show_bug.cgi?id=135941
        <rdar://problem/17957690>

        Reviewed by Tim Horton.

        Need to map the selection rectangles using the correct FrameView.
        When handling the click, we must use the selection from the focused frame.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::buildSelectionHighlight):
        (WebKit::ServicesOverlayController::handleClick):

2014-08-13  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/135909> Move helper applications out of the root of the framework.

        As described in <https://developer.apple.com/library/mac/technotes/tn2206/>, for bundles containing
        a Versions directory there may be no other content at the top level of the bundle other than symlinks.
        Upcoming changes to code signing will prevent bundles that violate this rule from being signed.

        Reviewed by Sam Weinig.

        * Configurations/Base.xcconfig: Define a configuration setting that points to the content directory
        of the framework. On OS X this is Versions/A. On iOS, where frameworks are shallow, this is the top level.
        * Configurations/BaseLegacyProcess.xcconfig: Install the legacy processes in the content directory
        of the framework.
        * WebKit2.xcodeproj/project.pbxproj: Copy the legacy processes into the content directory of the
        framework during engineering builds. Generate symlinks for the legacy processes to their locations
        in Versions/Current. This is necessary because -[NSBundle pathForAuxiliaryExecutable:] only looks
        at the top level of the framework wrapper.

2014-08-14  Michael Catanzaro  <mcatanzaro@igalia.com>

        WebKit2GTK - WebKitWebProcess assertion fails when dragging and dropping a file into the view
        https://bugs.webkit.org/show_bug.cgi?id=127576

        Reviewed by Carlos Garcia Campos.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::performDragControllerAction): Assume read access
        to any file that has been dragged into the web view when compiling for
        GTK, since we don't support sandbox extensions.

2014-08-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        Enable CSS_SCROLL_SNAP for iOS
        https://bugs.webkit.org/show_bug.cgi?id=135915

        Turn on CSS_SCROLL_SNAP for iOS and the iOS simulator.

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2014-08-13  Enrica Casucci  <enrica@apple.com>

        [Services with UI] Use a longer delay duration for editable content.
        https://bugs.webkit.org/show_bug.cgi?id=135918
        <rdar://problem/17998929>

        Reviewed by Tim Horton.

        Use a 1 second delay for selections in editable content.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):

2014-08-13  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/135911> WebKit should build on Yosemite with the public SDK.

        Reviewed by Darin Adler.

        * Platform/IPC/mac/ImportanceAssertion.h: Forward-declare the new assertion functions we use.
        * UIProcess/mac/WebContextMenuProxyMac.mm: Forward-declare some details related to NSSharingServicePicker.

2014-08-13  Alexey Proskuryakov  <ap@apple.com>

        iOS build fix.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::ensureNetworkProcess):
        (WebKit::WebContext::createNewWebProcess):

2014-08-13  Joseph Pecoraro  <pecoraro@apple.com>

        Opening Web Inspector causes a large amount of sandbox violations
        https://bugs.webkit.org/show_bug.cgi?id=135908

        Reviewed by Timothy Hatcher.

        * WebProcess/com.apple.WebProcess.sb.in:
        Permit the WebContent process to create file read extensions for the
        system WebInspectorUI.framework which the Network process can already
        read anyways.

2014-08-13  Tim Horton  <timothy_horton@apple.com>

        Avoid making new active service overlay highlights while the mouse is down
        https://bugs.webkit.org/show_bug.cgi?id=135872
        <rdar://problem/17982341>

        Reviewed by Enrica Casucci.

        * WebProcess/WebPage/ServicesOverlayController.h:
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
        (WebKit::ServicesOverlayController::mouseEvent):
        If the mouse is pressed or it's been less than 200ms since the mouse went up,
        don't allow the highlight to change. We apply the mouse-is-pressed rule to telephone
        number highlights as well, unlike the rest of the hysteresis logic.

2014-08-13  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: Workaround a NSWindow change to the title bar.
        https://bugs.webkit.org/show_bug.cgi?id=135880

        Reviewed by Joseph Pecoraro.

        * UIProcess/mac/WebInspectorProxyMac.mm:
        (WebKit::WebInspectorProxy::createInspectorWindow): Set titlebarAppearsTransparent on 10.10.
        Only call border thickness APIs on 10.9 and earlier.
        (WebKit::WebInspectorProxy::platformCreateInspectorPage): Only call setDrawsBackground: on 10.9 and earlier.
        (WebKit::WebInspectorProxy::platformSetToolbarHeight): Only call setContentBorderThickness: on 10.9 and earlier.

2014-08-13  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Add API to set application name for the user agent
        https://bugs.webkit.org/show_bug.cgi?id=135640

        Reviewed by Gyuyoung Kim.

        Add ewk_application_name_for_user_agent_set to make default user agent string
        with application name which application passes.
        It's useful for application to set only application information without knowledge
        of legacy user agent components.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::EwkView):
        (EwkView::setApplicationNameForUserAgent):
        * UIProcess/API/efl/EwkView.h:
        (EwkView::applicationNameForUserAgent):
        * UIProcess/API/efl/ewk_view.cpp:
        (ewk_view_application_name_for_user_agent_set):
        (ewk_view_application_name_for_user_agent_get):
        * UIProcess/API/efl/ewk_view.h:
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F):
        * UIProcess/efl/WebPageProxyEfl.cpp:
        (WebKit::WebPageProxy::standardUserAgent):

2014-08-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [CMAKE] WebProcess shouldn't need to explicitly link to JavaScriptCore and WebCore
        https://bugs.webkit.org/show_bug.cgi?id=135832

        Reviewed by Gyuyoung Kim.

        Linking to WebKit2 should be enough, like Network and Plugin processes.

        * CMakeLists.txt:

2014-08-12  Tim Horton  <timothy_horton@apple.com>

        Document-relative page overlays drop some mouse events with non-zero top content inset
        https://bugs.webkit.org/show_bug.cgi?id=135871
        <rdar://problem/17982275>

        Reviewed by Beth Dakin.

        * WebProcess/WebPage/PageOverlay.cpp:
        (WebKit::PageOverlay::mouseEvent):
        Convert the mouse position into document-relative coordinates; the bounds()
        already are! This way, we can actually compare them without being wrong sometimes.

2014-08-12  Peyton Randolph  <prandolph@apple.com>

        Runtime switch for long mouse press gesture. Part of 135257 - Add long mouse press gesture
        https://bugs.webkit.org/show_bug.cgi?id=135682

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig: Remove LONG_MOUSE_PRESS feature flag.
        * Shared/WebPreferencesDefinitions.h:
        Add LongMousePressEnabled preference, initially false.
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetLongMousePressEnabled): Added.
        (WKPreferencesGetLongMousePressEnabled): Added.
        * UIProcess/API/C/WKPreferencesRefPrivate.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):
        Reflect the WebKit long mouse press setting in WebCore.

2014-08-12  Pratik Solanki  <psolanki@apple.com>

        Cached file backed resources don't make it to the Web Process when NETWORK_CFDATA_ARRAY_CALLBACK is enabled
        https://bugs.webkit.org/show_bug.cgi?id=135727
        <rdar://problem/17947880>

        Reviewed by Darin Adler.

        tryGetShareableHandleFromSharedBuffer() assumed that we have a file backed resource only if
        we had a CFDataRef (platformData()) in SharedBuffer. This is wrong when we use the data
        array callbacks since the file backed buffer could be in the data array. Instead of relying
        on hasPlatformData(), explicitly ask the SharedBuffer to give us a CFDataRef if it has one
        so that SharedBuffer can take care of the data array case.

        * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
        (WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer):

2014-08-12  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION: WebContent process has a sandbox extension for the entirety of user's temp directory
        https://bugs.webkit.org/show_bug.cgi?id=135853
        <rdar://problem/17986556>

        Reviewed by Oliver hunt.

        Move extensions recently added for iOS benefit under PLATFORM(IOS). Removed some
        dead code while at it (child processes don't need actual paths, they only need
        sandbox extensions in most cases).

        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
        (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
        * Shared/Network/NetworkProcessCreationParameters.cpp:
        (WebKit::NetworkProcessCreationParameters::encode):
        (WebKit::NetworkProcessCreationParameters::decode):
        * Shared/Network/NetworkProcessCreationParameters.h:
        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::ensureNetworkProcess):
        (WebKit::WebContext::createNewWebProcess):
        (WebKit::WebContext::openGLCacheDirectory): Deleted.
        (WebKit::WebContext::networkingHSTSDatabasePath): Deleted.
        * UIProcess/WebContext.h:
        * UIProcess/efl/WebContextEfl.cpp:
        (WebKit::WebContext::containerTemporaryDirectory): Deleted.
        (WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath): Deleted.
        * UIProcess/gtk/WebContextGtk.cpp:
        (WebKit::WebContext::containerTemporaryDirectory): Deleted.
        (WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath): Deleted.
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::openGLCacheDirectory):
        (WebKit::WebContext::parentBundleDirectory):
        (WebKit::WebContext::networkingHSTSDatabasePath):
        (WebKit::WebContext::platformDefaultOpenGLCacheDirectory): Deleted.
        (WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath): Deleted.
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-08-12  Tim Horton  <timothy_horton@apple.com>

        Small region (~1px tall) where you get the selection button instead of the phone number overlay
        https://bugs.webkit.org/show_bug.cgi?id=135852
        <rdar://problem/17992795>

        Reviewed by Enrica Casucci.

        * WebProcess/WebPage/ServicesOverlayController.h:
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight):
        (WebKit::ServicesOverlayController::determineActiveHighlight):
        If our new active highlight is a selection highlight that is completely contained
        by one of the phone number highlights, we'll make the phone number highlight active
        even if it's not hovered. This fixes the case where the selection highlight
        (a subset of a telephone number) is slightly taller than the telephone number
        highlight, and can be hovered without hovering the phone number highlight.

2014-08-12  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r172424): Extra menu header in combined telephone number menu when no phone paired
        https://bugs.webkit.org/show_bug.cgi?id=135854
        <rdar://problem/17996339>

        Reviewed by Enrica Casucci.

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::setupServicesMenu):
        Get all the menu items ahead of time, and only add the shared header
        if there are any telephone number menu items.

2014-08-12  Enrica Casucci  <enrica@apple.com>

        Crash at com.apple.WebKit.WebContent at com.apple.WebKit: WebKit::expandForGap
        https://bugs.webkit.org/show_bug.cgi?id=135859
        <rdar://problem/17994679>

        Reviewed by Tim Horton.

        expandForGap made the assumption that the selection rects were always three.
        This was not true even before http://trac.webkit.org/changeset/172395 but
        was more likely to happen after that change.
        
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::expandForGap):

2014-08-12  Tim Horton  <timothy_horton@apple.com>

        Don't show the combined menu if there are no services available
        https://bugs.webkit.org/show_bug.cgi?id=135846
        <rdar://problem/17582099>

        Reviewed by Enrica Casucci.

        * WebProcess/WebPage/ServicesOverlayController.h:
        Add a FIXME.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::determineActiveHighlight):
        Don't allow a selection Highlight to become active if there is no
        service available to handle it. Previously we showed the combined menu
        with just phone numbers in it if any were detected.

2014-08-12  Tim Horton  <timothy_horton@apple.com>

        Add a fade transition to services highlights
        https://bugs.webkit.org/show_bug.cgi?id=135829
        <rdar://problem/17935736>

        Reviewed by Enrica Casucci.

        Add a smooth fade to highlight installation and uninstallation.
        To do so, we make each highlight paint into its own small layer.

        * WebProcess/WebPage/PageOverlay.cpp:
        (WebKit::PageOverlay::layer):
        * WebProcess/WebPage/PageOverlay.h:
        * WebProcess/WebPage/PageOverlayController.cpp:
        (WebKit::PageOverlayController::layerForOverlay):
        * WebProcess/WebPage/PageOverlayController.h:
        Expose the GraphicsLayer on PageOverlay.

        * WebProcess/WebPage/ServicesOverlayController.h:
        (WebKit::ServicesOverlayController::Highlight::layer):
        (WebKit::ServicesOverlayController::activeHighlight):
        (WebKit::ServicesOverlayController::webPage):
        (WebKit::ServicesOverlayController::Highlight::Highlight): Deleted.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::Highlight::createForSelection):
        (WebKit::ServicesOverlayController::Highlight::createForTelephoneNumber):
        (WebKit::ServicesOverlayController::Highlight::Highlight):
        Highlights now own a GraphicsLayer, which are later installed
        as sublayers of the ServicesOverlayController's PageOverlay layer.
        These layers are sized and positioned according to the DDHighlight's bounds.

        (WebKit::ServicesOverlayController::Highlight::~Highlight):
        (WebKit::ServicesOverlayController::Highlight::invalidate):
        ServicesOverlayController will invalidate any remaining highlights
        when it is torn down, so they can clear their backpointers.

        (WebKit::ServicesOverlayController::Highlight::notifyFlushRequired):
        Forward flush notifications to the DrawingArea.

        (WebKit::ServicesOverlayController::Highlight::paintContents):
        Paint the DDHighlight into the layer. Translation is done by the layer position,
        so we zero the bounds origin when painting.

        (WebKit::ServicesOverlayController::Highlight::deviceScaleFactor):
        Forward the deviceScaleFactor so that things are painted at the right scale.

        (WebKit::ServicesOverlayController::Highlight::fadeIn):
        (WebKit::ServicesOverlayController::Highlight::fadeOut):
        Apply a fade animation to the layer.

        (WebKit::ServicesOverlayController::Highlight::didFinishFadeOutAnimation):
        When the fade completes, unparent the layer, unless it has become active again.

        (WebKit::ServicesOverlayController::ServicesOverlayController):
        (WebKit::ServicesOverlayController::~ServicesOverlayController):
        Invalidate all highlights, so they can clear their backpointers.

        (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
        Make remainingTimeUntilHighlightShouldBeShown act upon a particular highlight
        instead of always the active highlight.

        (WebKit::ServicesOverlayController::determineActiveHighlightTimerFired): Rename.

        (WebKit::ServicesOverlayController::drawRect):
        drawRect is no longer called and will no longer do anything; all of the
        painting is done in sublayers.

        (WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
        Ensure that phone number Highlights stay stable even while the selection
        changes, by comparing the underlying Ranges and keeping around old Highlights
        that match the new ones. This enables us to e.g. fade in while changing
        the selection within a phone number.

        (WebKit::ServicesOverlayController::buildSelectionHighlight):
        (WebKit::ServicesOverlayController::didRebuildPotentialHighlights):
        (WebKit::ServicesOverlayController::createOverlayIfNeeded):
        Don't call setNeedsDisplay; the overlay doesn't have backing store.
        Instead, call determineActiveHighlight, which will install/uninstall
        highlights as necessary.

        (WebKit::ServicesOverlayController::determineActiveHighlight):
        Apply fade in/fade out to the overlays.
        Keep track of which highlight we're going to activate, until the hysteresis
        delay is up, then actually make it active/parent it/fade it in.
        We now will have no active highlight between the fade out of the previous one
        and the fade in of the new one (during the hysteresis delay).

        (WebKit::ServicesOverlayController::mouseEvent):
        The overlay now will not become active until the delay is up, so we don't
        need to check it again here.

        (WebKit::ServicesOverlayController::handleClick):
        (WebKit::ServicesOverlayController::didCreateHighlight):
        (WebKit::ServicesOverlayController::willDestroyHighlight):
        (WebKit::ServicesOverlayController::repaintHighlightTimerFired): Deleted.
        (WebKit::ServicesOverlayController::drawHighlight): Deleted.

2014-08-11  Andy Estes  <aestes@apple.com>

        [iOS] Get rid of iOS.xcconfig
        https://bugs.webkit.org/show_bug.cgi?id=135809

        Reviewed by Joseph Pecoraro.

        All iOS.xcconfig did was include AspenFamily.xcconfig, so there's no need for the indirection.

        * Configurations/Base.xcconfig:
        * Configurations/iOS.xcconfig: Removed.
        * WebKit2.xcodeproj/project.pbxproj:

2014-08-12  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL] Rename ewk_private.h to EwkDebug.h
        https://bugs.webkit.org/show_bug.cgi?id=135797

        Reviewed by Gyuyoung Kim.

        ewk_private.h contains only debug macros alllowing
        logging.

        * UIProcess/API/efl/EwkView.cpp:
        * UIProcess/API/efl/ewk_main.cpp:
        * UIProcess/efl/EwkDebug.h: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_private.h.
        * UIProcess/efl/ViewClientEfl.cpp:

2014-08-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] The plugins metadata cache doesn't work if the user cache directory doesn't exist
        https://bugs.webkit.org/show_bug.cgi?id=135834

        Reviewed by Philippe Normand.

        Make sure the user cache directory exists. If creating the
        directory fails for whatever reason, do not try to save the cache
        to disk.

        * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
        (WebKit::PluginInfoCache::PluginInfoCache):
        (WebKit::PluginInfoCache::updatePluginInfo):

2014-08-12  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Allow reading CoreGraphics debugging preferences
        https://bugs.webkit.org/show_bug.cgi?id=135821
        <rdar://problem/11219259>

        Reviewed by Darin Adler.

        * WebProcess/com.apple.WebProcess.sb.in:

2014-08-11  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL] Prevent the client from creating ewk_view when EWebkit is not initialized
        https://bugs.webkit.org/show_bug.cgi?id=135606

        Reviewed by Gyuyoung Kim.

        Similarly to EFL modules (eina, evas etc.), application using EWebKit
        has to initialize it using ewk_init().

        Do not allow the client to create ewk_view if ewk_init has not been called.
        Add an appropriate logs warning the client about wrong APIs usage.

        * UIProcess/API/efl/ewk_main.cpp: Add EwkMain class to control ewk lifetime.
        (WebKit::EwkMain::EwkMain):
        (WebKit::EwkMain::shared):
        (WebKit::EwkMain::~EwkMain): Add logs when the client forgot to destroy EWebkit.
        (WebKit::EwkMain::initialize):
        (WebKit::EwkMain::finalize):
        (WebKit::EwkMain::shutdownInitializedEFLModules):
        (ewk_init):
        (ewk_shutdown):
        * UIProcess/API/efl/ewk_main_private.h: Added.
        (WebKit::EwkMain::isInitialized):
        (WebKit::EwkMain::logDomainId):
        * UIProcess/API/efl/ewk_private.h:
        * UIProcess/API/efl/ewk_view.cpp:
        (EWKViewCreate):
        Prevent the client from creating ewk_view when ewk_init() has not been called.

2014-08-11  Enrica Casucci  <enrica@apple.com>

        Improve look and feel of combined service menu..
        https://bugs.webkit.org/show_bug.cgi?id=135824
        <rdar://problem/17936880>

        Reviewed by Tim Horton.
        
        When showing the combined menu, list the phone numbers first,
        grouped under a common header, followed by the entries relative
        to the services.

        * Platform/mac/MenuUtilities.h:
        * Platform/mac/MenuUtilities.mm:
        (WebKit::menuItemTitleForTelephoneNumberGroup):
        (WebKit::menuItemForTelephoneNumber):
        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::setupServicesMenu):

2014-08-11  Joseph Pecoraro  <pecoraro@apple.com>

        Add Private WKPreferences API for developer extras (show inspector)
        https://bugs.webkit.org/show_bug.cgi?id=135811

        Reviewed by Timothy Hatcher.

        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences _developerExtrasEnabled]):
        (-[WKPreferences _setDeveloperExtrasEnabled:]):
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:

2014-08-08  Enrica Casucci  <enrica@apple.com>

        [Services with UI] Action menu arrow hit testing is sometimes wrong.
        https://bugs.webkit.org/show_bug.cgi?id=135776
        <rdar://problem/17837670>

        Reviewed by Brady Eidson.

        There was a problem in the algorithm that stitches together the selection rectangles
        to be given to Data Detectors API.
        This change adds a new function that stiches together all the rects contributing to the
        first line, all the rects contributing to the last line and all the ones in the middle.
        This way we can have a maximum of 3 non overlapping rectangles.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::stitchRects):
        (WebKit::compactRectsWithGapRects):

2014-08-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed, EFL build fix since r172385.

        * PlatformEfl.cmake:

2014-08-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Update OptionsGTK.cmake and NEWS for 2.5.2 release.

        * gtk/NEWS: Add release notes for 2.5.2.

2014-08-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] No IPC messages are sent when building WebKitGTK+ with VERSION_SCRIPT
        https://bugs.webkit.org/show_bug.cgi?id=135760

        Reviewed by Philippe Normand.

        The problem is that the threading initialization is failing
        because there are two copies of WTF, one in libjavascriptcoregtk
        and the other in libwebkit2gtk. When WebKit2 is initialized in the
        UI process, JSC::initializeThreading() is called first and then
        WTF::initializeMainThread(). The former is calling
        ThreadIdentifierData::initializeOnce() initializing the
        ThreadIdentifierData::m_key symbol in libjavascriptcoregtk, while
        the latter is using the ThreadIdentifierData API from libwebkit2gtk
        that hasn't been initialized.

        * CMakeLists.txt: Do not add WTF to the list of WebKit2 libraries,
        WebKit2 already depends on JavaScriptCore that already links to WTF.

2014-08-10  Tim Horton  <timothy_horton@apple.com>

        Yelp phone number highlights often disappear
        https://bugs.webkit.org/show_bug.cgi?id=135789
        <rdar://problem/17971057>

        Reviewed by Brady Eidson.

        Since selectedTelephoneNumberRangesChanged doesn't provide an associated
        Frame, an incoming selectedTelephoneNumberRangesChanged from a subframe
        would overwrite ServicesOverlayController's cached (and potentially active)
        telephone number highlights.

        This happens a lot on Yelp, because they have many subframes which are
        doing layout on a regular basis.

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::selectedTelephoneNumberRangesChanged):
        * WebProcess/WebCoreSupport/WebEditorClient.h:
        Adjust to the new (lack of) arguments.

        * WebProcess/WebPage/ServicesOverlayController.h:
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
        Adjust logging; we can revisit it later.

        (WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
        When building phone number highlights, walk the Frame tree and retrieve
        them from all of the Editors.

        (WebKit::ServicesOverlayController::didRebuildPotentialHighlights):
        (WebKit::ServicesOverlayController::telephoneNumberRangesForFocusedFrame):
        (WebKit::ServicesOverlayController::determineActiveHighlight):
        (WebKit::ServicesOverlayController::handleClick):
        Retrieve the detected telephone number ranges from the focused frame
        when combining telephone numbers with selection services.
        This ensures that we don't show combined phone number highlights from other frames.

2014-08-10  Tim Horton  <timothy_horton@apple.com>

        Refactor ServiceOverlayController in preparation for fading between highlights
        https://bugs.webkit.org/show_bug.cgi?id=135787
        <rdar://problem/17935736>

        Reviewed by Brady Eidson.

        Rework ServicesOverlayController so that we always keep a set of generic
        "potential highlights", which are refcounted Highlight objects and
        wrap a DDHighlightRef, as well as a type (Selection or TelephoneNumber),
        Range (only used in the case of TelephoneNumber), and potentially more
        things in the future (like, say, fade state!).

        We eagerly update the list of potential highlights when the selection or set
        of detected telephone numbers changes, and use this information to install
        or uninstall the page overlay as needed.

        When we need to recompute the "active" highlight from this set (for example,
        we need to handle a mouse event or paint the highlight), we look through
        the set of potential highlights and decide. This moves the "active" highlight
        decision logic into one small and confined place.

        * WebProcess/WebPage/ServicesOverlayController.h:
        (WebKit::ServicesOverlayController::Highlight):
        Add the new aforementioned refcounted Highlight class.
        Rename m_lastHoveredHighlightChangeTime to m_lastActiveHighlightChangeTime.
        Make m_webPage a reference.
        The rest is just added/removed/adjusted functions for the refactoring.

        (WebKit::TelephoneNumberData::TelephoneNumberData): Deleted.
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::Highlight::createForSelection):
        (WebKit::ServicesOverlayController::Highlight::createForTelephoneNumber):
        Create Highlights for the two different highlight types.

        (WebKit::ServicesOverlayController::ServicesOverlayController):
        (WebKit::ServicesOverlayController::willMoveToWebPage):
        Our WebPage pointer is always valid because it owns us; don't clear it.
        We need to keep it around so that we can uninstall the overlay and
        install it again later, anyway.

        (WebKit::ServicesOverlayController::selectionRectsDidChange):
        (WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
        When selection rects or detected telephone numbers change, rebuild potential highlights.
        This will have the side-effect of installing the overlay if needed.

        (WebKit::ServicesOverlayController::mouseIsOverHighlight):
        Make this function take a Highlight instead of a DDHighlightRef.

        (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
        Make this function take a Highlight instead of a DDHighlightRef.

        (WebKit::ServicesOverlayController::drawHighlight):
        Make this function take a Highlight instead of a DDHighlightRef.
        There's no reason to do the translation separately from the layer blit,
        also allowing us to avoid the StateSaver.

        (WebKit::ServicesOverlayController::drawRect):
        drawRect now always paints the active highlight, instead of duplicating
        logic about which highlight should be active.
        Also, it will update the active highlight before painting.
        We no longer need to re-determine whether the active highlight's phone
        number range is still a valid phone number range, because we rebuild
        the potential highlights whenever the set of phone number ranges changes.

        (WebKit::ServicesOverlayController::clearActiveHighlight):
        Mostly an adoption of new names.

        (WebKit::ServicesOverlayController::removeAllPotentialHighlightsOfType):
        Run through the list of potential highlights and remove any of the given type.
        The two highlight building functions use this helper to clear the old ones before building.

        (WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
        (WebKit::ServicesOverlayController::buildSelectionHighlight):
        Rebuild the list of potential highlights, replacing all highlights of
        the given type with new ones.

        (WebKit::ServicesOverlayController::hasRelevantSelectionServices):
        Factor out the code that decides whether our current selection is
        viable for servicing based on whether we have plain-text and/or rich-text services.

        (WebKit::ServicesOverlayController::didRebuildPotentialHighlights):
        When rebuilding potential highlights, if we have no potential highlights at all,
        uninstall the page overlay; we don't need mouse tracking and don't need to
        paint anything. This improves memory use and compositing performance significantly,
        where previously we were leaving the overlay up forever after creating it.

        If we have either detected telephone numbers or relevant selection services,
        create and install the overlay if it doesn't already exist.

        (WebKit::ServicesOverlayController::createOverlayIfNeeded):
        This just moved from elsehwere, except that it now uses FadeMode::DoNotFade.
        It doesn't make sense to fade on install/uninstall (which happens even before hover)
        but not on changing the active highlight; fading will be re-addressed in the next patch.

        (WebKit::ServicesOverlayController::highlightsAreEquivalent):
        Determine whether two highlights are equivalent. While we may have
        created a new Highlight at rebuild time, if two telephone number
        highlights have equivalent ranges, there's no need to 'transition' to the new one.

        (WebKit::ServicesOverlayController::determineActiveHighlight):
        Run through the list of services, and try to find one that is hovered.
        We prefer telephone number highlights to selection highlights, and
        we will never make a selection highlight active if it is both
        not serviceable and there are no telephone numbers to show in the combined menu.
        This is the centralized location for determination of which highlight
        should be considered active. If the active highlight changed, update
        the time since last change and cancel the mouse-down tracking.

        (WebKit::ServicesOverlayController::mouseEvent):
        Adjust some comments to be more explanatory.
        A bunch of code moved out of here and into determineActiveHighlight.

        (WebKit::ServicesOverlayController::handleClick):
        Adjust to take a reference and use Highlight instead of DDHighlightRef.

2014-08-10  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: new glyphs are visible on OS X 10.9 builds
        https://bugs.webkit.org/show_bug.cgi?id=135743

        Reviewed by Joseph Pecoraro.

        * UIProcess/mac/WebInspectorProxyMac.mm:
        (WebKit::WebInspectorProxy::createInspectorWindow): Use 10100 instead of 1090 for the version.

2014-08-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] REGRESSION(r166239): The ld version script is not being used
        https://bugs.webkit.org/show_bug.cgi?id=135694

        Reviewed by Martin Robinson.

        * CMakeLists.txt: Add VERSION_SCRIPT to WebKit2 link flags if present.

2014-08-09  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r172301): Combined phone number highlight doesn't appear if rich content is selected and we have no rich content services
        https://bugs.webkit.org/show_bug.cgi?id=135785
        <rdar://problem/17969843>

        Reviewed by Brady Eidson.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::drawSelectionHighlight):
        We can't early return in the rich-content-but-no-rich-services case
        if we have telephone numbers in the selection, because we want to offer
        them up in the combined menu.

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        If we end up with no menu, because there were no services available,
        make a fresh one that we can fill with combined telephone number items.

2014-08-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL] Do not initialize g_type in WebProcessMain::platformInitialize()
        https://bugs.webkit.org/show_bug.cgi?id=135700

        Reviewed by Gyuyoung Kim.

        Inspired by r171788.
        Glib since 2.36 itself initializes g_type_init.

        * WebProcess/efl/WebProcessMainEfl.cpp:

2014-08-08  Tim Horton  <timothy_horton@apple.com>

        Build fix for 32-bit.

        * UIProcess/mac/ServicesController.mm:
        (WebKit::ServicesController::ServicesController):
        Don't dynamically refresh services in 32-bit apps. It's not possible
        to write a 32-bit app with the Modern API, so this doesn't matter.

2014-08-08  Tim Horton  <timothy_horton@apple.com>

        [mac] Dynamically update serviceability when the set of services changes
        https://bugs.webkit.org/show_bug.cgi?id=135738
        <rdar://problem/17533459>

        Reviewed by Brady Eidson.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess):
        Adopt the new universal refreshExistingServices.

        (WebKit::WebContext::refreshExistingServices): Deleted.
        * UIProcess/WebContext.h:
        Remove WebContext::refreshExistingServices; there's no need for it.

        * UIProcess/mac/ServicesController.h:
        * UIProcess/mac/ServicesController.mm:
        Fix the build with only public headers by including NSSharingService.h itself.
        Place the NSSharingServicePicker (Details) category outside the #ifdef.
        Forward-declare and possibly import NSExtension SPI.

        (WebKit::ServicesController::ServicesController):
        Register a callback to be notified whenever the set of services changes.
        When this occurs, call refreshExistingServices. We let refreshExistingServices
        coalesce updates because these notifications can come in small batches.

        (WebKit::ServicesController::refreshExistingServices):
        Dispatch changes in service availability to all processes in all contexts.

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::setupServicesMenu):
        Adjust the referenced rdar:// and call ServicesController::refreshExistingServices
        instead of the now-removed WebContext:: variant. We can't remove this
        yet because our services state can still be stale because NSServiceSharingPicker
        can still sometimes lie about the current service state immediately after a change occurs;
        once that is fixed, we should get rid of this as well as the refresh in Web Process creation.

2014-08-08  Timothy Horton  <timothy_horton@apple.com>

        Clients that request the selection services menu after WebKit2 will get one with different metrics than otherwise
        https://bugs.webkit.org/show_bug.cgi?id=135765
        <rdar://problem/17962180>

        Reviewed by Brady Eidson.

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::setupServicesMenu):
        The menu is cached between clients, but we make adjustments to it.
        We should copy it before adjusting.

2014-08-08  Timothy Horton  <timothy_horton@apple.com>

        Services overlay dropdown is often in the wrong place with zoomed pages or horizontal scrolling
        https://bugs.webkit.org/show_bug.cgi?id=135755
        <rdar://problem/17907752>

        Reviewed by Brady Eidson.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight):
        (WebKit::ServicesOverlayController::maybeCreateSelectionHighlight):
        DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection adjusts the
        location of the button based on the visible rect, trying to keep the button visible.

        We're handing it the wrong visible rect, though, not taking scrolling into account.

        This leads to pages that scroll horizontally showing the button on the left
        even if there's space for it on the right, or sometimes not showing it at all.

        Instead, provide the actual main FrameView visible rect; the same coordinate
        space that the highlight rects are provided in.

2014-08-08  Timothy Horton  <timothy_horton@apple.com>

        Additional items added to selection services menus are misaligned
        https://bugs.webkit.org/show_bug.cgi?id=135747
        <rdar://problem/17933167>

        Reviewed by Brady Eidson.

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::setupServicesMenu):
        Use NSSharingServicePickerStyleRollover for the rollover image services menu;
        use NSSharingServicePickerStyleTextSelection for the selection services menu.

        Set NSMenu's showsStateColumn to YES for selection services menus, so that
        other items added to the menu line up correctly.

        Remove an unncessary .get()

2014-08-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL] Remove unnecessary ewk_private.h includes
        https://bugs.webkit.org/show_bug.cgi?id=135753

        Reviewed by Gyuyoung Kim.

        Neither the below file uses the functionality from ewk_private.h.

        * UIProcess/API/efl/ewk_context.cpp:
        * UIProcess/API/efl/ewk_context_menu_item.cpp:
        * UIProcess/API/efl/ewk_cookie_manager.cpp:
        * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
        * UIProcess/API/efl/ewk_popup_menu_item.cpp:
        * UIProcess/API/efl/ewk_view.cpp:

2014-08-08  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Do not use GtkWindow:resize-grip-visible with recent GTK+ versions
        https://bugs.webkit.org/show_bug.cgi?id=135699

        Reviewed by Philippe Normand.

        Resize grips support have been removed from GTK+ since 3.13.4, the
        API has been deprecated and does nothing.

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseSetToplevelOnScreenWindow):
        (resizeWebKitWebViewBaseFromAllocation):

2014-08-07  Tim Horton  <timothy_horton@apple.com>

        [Services with UI] Action menu does not appear if selection includes both text and an image
        https://bugs.webkit.org/show_bug.cgi?id=135731
        <rdar://problem/17837491>

        Reviewed by Dean Jackson.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess):
        Initialize hasRichContentServices with the cached value.

2014-08-07  Benjamin Poulain  <bpoulain@apple.com>

        Get rid of SCRIPTED_SPEECH
        https://bugs.webkit.org/show_bug.cgi?id=135729

        Reviewed by Brent Fulgham.

        * Configurations/FeatureDefines.xcconfig:

2014-08-07  Timothy Horton  <timothy_horton@apple.com>

        setCustomSwipeViews inside didChangeBackForwardList client callback is ignored
        https://bugs.webkit.org/show_bug.cgi?id=135633
        <rdar://problem/17926507>

        Reviewed by Sam Weinig.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didChangeBackForwardList):
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::clearCustomSwipeViews): Deleted.
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::clearCustomSwipeViews): Deleted.
        WebKit clears the set of custom swipe views at the end of WebPageProxy::didChangeBackForwardList,
        *after* calling into the client. This means that if the client wants to setCustomSwipeViews in
        didChangeBackForwardList, it won't be respected.

        Since there's only one client of this SPI, let's just stop clearing the list of custom swipe
        views in WebKit and leave that totally up to the client.

2014-08-07  Enrica Casucci  <enrica@apple.com>

        [Services with UI] Action menu does not appear if selection includes both text and an image.
        https://bugs.webkit.org/show_bug.cgi?id=135731
        <rdar://problem/17837491>

        Reviewed by Brady Eidson.

        Adding a new setting to ServicesController to communicate to the WebProcess if
        there are services installed that can handle a combination of text and images.
        This way ServicesOverlayController can decide if it appropriate to show the hightlight
        based on the type of selection (text only or non text only). This information is retrieved
        when the selection rects are collected by SelectionGatherer and used by
        SelectionGatherer::Notifier to communicate the selection change.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/mac/ServicesController.h:
        (WebKit::ServicesController::hasRichContentServices):
        * UIProcess/mac/ServicesController.mm:
        (WebKit::ServicesController::ServicesController):
        (WebKit::ServicesController::refreshExistingServices):
        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::selectionRectsDidChange):
        * WebProcess/WebCoreSupport/WebEditorClient.h:
        * WebProcess/WebPage/ServicesOverlayController.h:
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::ServicesOverlayController):
        (WebKit::ServicesOverlayController::selectionRectsDidChange):
        (WebKit::ServicesOverlayController::drawSelectionHighlight):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::WebProcess):
        (WebKit::WebProcess::initializeWebProcess):
        (WebKit::WebProcess::setEnabledServices):
        * WebProcess/WebProcess.h:
        (WebKit::WebProcess::hasRichContentServices):
        * WebProcess/WebProcess.messages.in:

2014-08-07  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Fix several warnings of doxygen
        https://bugs.webkit.org/show_bug.cgi?id=135643

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/efl/ewk_context_menu_item.h: Removed /info which is not doxygen keyword and unnecessary to the user.
        * UIProcess/API/efl/ewk_cookie_manager.h: Fixed parameter name.
        * UIProcess/API/efl/ewk_form_submission_request.h: Removed # from Eina_List because doxygen may not know the EFL structures.
        * UIProcess/API/efl/ewk_page_group.h: Fixed to match with parameter name.
        * UIProcess/API/efl/ewk_settings.h: Fixed wrong keyword and parameter name.
        * UIProcess/API/efl/ewk_text_checker.h: Ditto.
        * UIProcess/API/efl/ewk_view.h:
        - Used escape string for the tag.
        - Used @code, @endcode for media query example.

2014-08-07  Benjamin Poulain  <bpoulain@apple.com>

        Get rid of INPUT_SPEECH
        https://bugs.webkit.org/show_bug.cgi?id=135672

        Reviewed by Andreas Kling.

        * Configurations/FeatureDefines.xcconfig:
        * PlatformGTK.cmake:

2014-08-07  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: Update glyphs to be more like Xcode 6
        https://bugs.webkit.org/show_bug.cgi?id=135705

        Reviewed by Joseph Pecoraro.

        * Resources/DockBottom.pdf: Added.
        * Resources/DockBottomLegacy.pdf: Copied from Source/WebKit/mac/Resources/Dock.pdf.
        * Resources/DockRight.pdf: Added.
        * Resources/DockRightLegacy.pdf: Copied from Source/WebKit2/Resources/DockRight.pdf.
        * UIProcess/mac/WebInspectorProxyMac.mm:
        (WebKit::WebInspectorProxy::createInspectorWindow): Use new images.
        * WebKit2.xcodeproj/project.pbxproj: Added new images.

2014-08-07  Oliver Hunt  <oliver@apple.com>

        WebContent needs access to HSTS database due to some networking still being performed in process
        https://bugs.webkit.org/show_bug.cgi?id=135711
        <rdar://17940220>

        Reviewed by Alexey Proskuryakov.

        Simple patch in the same theme as the equivalent network process
        extension.  Provide an extension that covers the WebContent specific
        HSTS file and consume it on launch.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess):
        * UIProcess/WebContext.h:
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::webContentHSTSDatabasePath):
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-08-07  Gordon Sheridan  <gordon_sheridan@apple.com>

        Clear the m_previousItem member of HistoryControllers when it matches the HistoryItem being removed.
        https://bugs.webkit.org/show_bug.cgi?id=135634
        <rdar://problem/17388461>

        Reviewed by Brady Eidson.

        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
        (WebKit::WebBackForwardListProxy::removeItem):
        Call WebCore::Page::clearPreviousItemFromAllPages() for each item removed from
        the back/forward list to ensure the page URL is released from IconDatabase.

2014-08-07  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use WebKitNavigationAction also for WebKitNavigationPolicyDecision
        https://bugs.webkit.org/show_bug.cgi?id=135695

        Reviewed by Gustavo Noronha Silva.

        WebKitNavigationAction was introduced to extend WebKitWebView::create signal
        and its API is mostly duplicated in WebKitNavigationPolicyDecision.
        Use WebKitNavigationAction insternally in WebKitNavigationPolicyDecision and
        deprecated all the duplicated API in favor of a single property navigation-action.

        * UIProcess/API/gtk/WebKitDefines.h: Remove unused macro
        WEBKIT_OBSOLETE and add WEBKIT_DEPRECATED and WEBKIT_DEPRECATED_FOR.
        * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp:
        (_WebKitNavigationPolicyDecisionPrivate::~_WebKitNavigationPolicyDecisionPrivate):
        Free the WebKitNavigationAction.
        (webkitNavigationPolicyDecisionGetProperty): Add getter for
        navigation-action and use WebKitNavigationAction in all other getters.
        (webkit_navigation_policy_decision_class_init): Add navigation-action
        property and deprecated all others except frame-name.
        (webkit_navigation_policy_decision_get_navigation_action): Return the WebKitNavigationAction.
        (webkit_navigation_policy_decision_get_navigation_type): Use WebKitNavigationAction.
        (webkit_navigation_policy_decision_get_mouse_button): Ditto.
        (webkit_navigation_policy_decision_get_modifiers): Ditto.
        (webkit_navigation_policy_decision_get_request): Ditto.
        (webkitNavigationPolicyDecisionCreate):
        (webkitNewWindowPolicyDecisionCreate):
        * UIProcess/API/gtk/WebKitNavigationPolicyDecision.h:
        * UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h:
        * UIProcess/API/gtk/WebKitPolicyClient.cpp: Use a custom
        PolicyClient class so that we receive a NavigationActionData in
        the callbacks.
        (attachPolicyClientToView):
        (toWebKitNavigationType): Deleted.
        (decidePolicyForNavigationAction): Deleted.
        (decidePolicyForNewWindowAction): Deleted.
        (decidePolicyForResponse): Deleted.
        * UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
        (webkitResponsePolicyDecisionCreate):
        * UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h:
        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
        deprecated symbols.
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.

2014-08-06  Antti Koivisto  <antti@apple.com>

        Move Soup specific code out of WebCoreArgumentCoders.cpp
        https://bugs.webkit.org/show_bug.cgi?id=135665

        Reviewed by Anders Carlsson.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<ResourceRequest>::encode):
        (IPC::ArgumentCoder<ResourceRequest>::decode):
        (IPC::ArgumentCoder<ResourceError>::encode):
        (IPC::ArgumentCoder<ResourceError>::decode):
        * Shared/WebCoreArgumentCoders.h:
        
            Soup is the only client for this code. Move it to *Soup.cpp

        * Shared/soup/WebCoreArgumentCodersSoup.cpp:
        (IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
        (IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
        (IPC::ArgumentCoder<ResourceError>::encodePlatformData):
        (IPC::ArgumentCoder<ResourceError>::decodePlatformData):

2014-08-06  Tim Horton  <timothy_horton@apple.com>

        Services overlay flashes a lot; should have some hysteresis before showing overlay
        https://bugs.webkit.org/show_bug.cgi?id=135683
        <rdar://problem/16878039>

        Reviewed by Simon Fraser.

        Don't show the highlight until it's been 200ms since the last change
        in selection or change in which highlight is hovered, whichever was more recent.

        * WebProcess/WebPage/ServicesOverlayController.h:
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::ServicesOverlayController):
        (WebKit::ServicesOverlayController::selectionRectsDidChange):
        Keep track of when the selection last changed.

        (WebKit::ServicesOverlayController::drawTelephoneNumberHighlightIfVisible):
        Make establishHoveredTelephoneHighlight take a bool instead of Boolean.

        (WebKit::ServicesOverlayController::mouseIsOverHighlight):
        Factor mouseIsOverHighlight out of establishHoveredTelephoneHighlight and drawHighlight.

        (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
        Return the amount of time until the highlight should be shown; this is
        the maximum of (the difference between the last selection change and the timeout)
        and (the difference between the last change in which highlight is hovered and the timeout).

        Telephone number highlights are shown immediately, because they are already stable
        by virtue of being expanded to include the entire telephone number.

        (WebKit::ServicesOverlayController::repaintHighlightTimerFired):
        (WebKit::ServicesOverlayController::drawHighlight):
        If the highlight shouldn't be shown yet (because we haven't hit the two timeouts),
        schedule a timer to repaint us around when we will hit the timeouts.

        (WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight):
        (WebKit::ServicesOverlayController::mouseEvent):
        Don't allow mouseUp to trigger the menu if we shouldn't be showing the overlay yet.

2014-08-06  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] www.france24.com doesn't always load the page, sections stay white
        https://bugs.webkit.org/show_bug.cgi?id=135684
        <rdar://problem/17931712>

        Reviewed by Tim Horton.
        
        It's possible for a UIScrollView for overflow to move between one scrolling tree node
        and another. When this happens, we need to avoid unconditionally clearing the delegate
        on the node that's being destroyed, because the new node will already have set the
        UIScrollView delegate to its own delegate.

        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):

2014-08-06  Dean Jackson  <dino@apple.com>

        ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED is not used anywhere. Remove it.
        https://bugs.webkit.org/show_bug.cgi?id=135675

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2014-08-06  Brady Eidson and Jeffrey Pfau <beidson@apple.com>

        IDB transactions never reset if the Web Process ends before cleaning up
        https://bugs.webkit.org/show_bug.cgi?id=135218

        Reviewed by Darin Adler and David Kilzer.

        * DatabaseProcess/DatabaseToWebProcessConnection.cpp:
        (WebKit::DatabaseToWebProcessConnection::didReceiveMessage):
        (WebKit::DatabaseToWebProcessConnection::didReceiveSyncMessage): Added.
        (WebKit::DatabaseToWebProcessConnection::didClose):
        * DatabaseProcess/DatabaseToWebProcessConnection.h:

        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
        (WebKit::DatabaseProcessIDBConnection::resetTransactionSync): Added
            Wait until the reset is complete before sending the sync reply.
        (WebKit::DatabaseProcessIDBConnection::rollbackTransactionSync): Added.
            Ditto.
        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:

        Keep track of all in progress transactions and make sure they’re cleaned up
        whenever a connection to a WebProcess is broken:
        * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
        (WebKit::UniqueIDBDatabase::unregisterConnection):
        (WebKit::UniqueIDBDatabase::didCompleteTransactionOperation):
        (WebKit::UniqueIDBDatabase::openBackingStoreTransaction):
        (WebKit::UniqueIDBDatabase::resetBackingStoreTransaction):
        (WebKit::UniqueIDBDatabase::didEstablishTransaction):
        (WebKit::UniqueIDBDatabase::didResetTransaction):
        (WebKit::UniqueIDBDatabase::resetAllTransactions):
        (WebKit::UniqueIDBDatabase::finalizeRollback):
        * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:

        * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
        (WebKit::UniqueIDBDatabaseBackingStoreSQLite::rollbackTransaction):

        Add sync versions of reset/rollback:
        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
        (WebKit::WebIDBServerConnection::resetTransactionSync):
        (WebKit::WebIDBServerConnection::rollbackTransactionSync):
        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:

2014-08-06  Wenson Hsieh  <wenson_hsieh@apple.com>

        Implement parsing for CSS scroll snap points
        https://bugs.webkit.org/show_bug.cgi?id=134301

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig: Added ENABLE_CSS_SCROLL_SNAP

2014-08-06  Andy Estes  <aestes@apple.com>

        [iOS] Subresources referenced in converted QuickLook documents sometimes fail to load
        https://bugs.webkit.org/show_bug.cgi?id=135676

        Reviewed by David Kilzer.

        QuickLookHandle needs to stay alive in order for its NSURLProtocol to service subresource loads originating
        from the converted HTML document. Some of these loads happen dynamically after the main resource finishes
        loading, so we cannot tie the lifetime of the QuickLookHandle to that of the main resource's ResourceLoader.
        Instead, give ownership of the QuickLookHandle to DocumentLoader.

        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): Stored the created QuickLookHandle in DocumentLoader.
        (WebKit::WebResourceLoader::didReceiveData): Accessed DocumentLoader's QuickLookHandle.
        (WebKit::WebResourceLoader::didFinishResourceLoad): Ditto.
        (WebKit::WebResourceLoader::didFailResourceLoad): Ditto.
        (WebKit::WebResourceLoader::didReceiveResource): Ditto.
        * WebProcess/Network/WebResourceLoader.h: Removed m_quickLookHandle.

2014-08-06  Filip Pizlo  <fpizlo@apple.com>

        Merge r171389, r171495, r171508, r171510, r171605, r171606, r171611, r171614, r171763 from ftlopt.

    2014-08-06  Mark Hahnenberg  <mhahnenberg@apple.com>
    
            Refactor our current implementation of for-in
            https://bugs.webkit.org/show_bug.cgi?id=134142
    
            Reviewed by Filip Pizlo.
    
            * WebProcess/Plugins/Netscape/JSNPObject.cpp:
            (WebKit::JSNPObject::invalidate): Fixed an invalid ASSERT that was crashing in debug builds.
    
2014-08-06  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (WebKit2): iOS Safari default encoding doesn't follow system language
        https://bugs.webkit.org/show_bug.cgi?id=135667
        <rdar://problem/17862892>

        Reviewed by Anders Carlsson.

        * Shared/WebPreferencesDefinitions.h: Compute the actual proper default, don't
        hardcode it to ISO-8859-1 hoping that someone else will correct it later.

        * Shared/WebPreferencesStore.cpp: Added an include for WebPreferencesDefinitions.h
        macro expansion to compile.

        * UIProcess/WebPreferences.cpp: (WebKit::WebPreferences::createWithLegacyDefaults):
        Added a FIXME.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface):
        We now use WKGetWebDefaultCFStringEncoding in WebCore, so it needs to be initialized.

2014-08-06  Adrian Perez de Castro  <aperez@igalia.com>

        [GTK] Add support for user scripts to WebKitUserContentManager
        https://bugs.webkit.org/show_bug.cgi?id=134738

        Reviewed by Carlos Garcia Campos.

        Add support for user scripts, to complement the user style sheet
        support already present in WebKitUserContentManager. Most of the
        moving parts are already present, so this just adds a boxed type
        for user scripts (WebKitUserScript) and the corresponding methods
        to add and remove scripts from the WebKitUserContentManager.

        * UIProcess/API/gtk/WebKitUserContent.cpp: Add a WebKitUserScript
        boxed type and its corresponding methods and enums.
        (toUserScriptInjectionTime): Needed to convert
        WebKitUserScriptInjectionTime values into its WebCore counterparts.
        (_WebKitUserScript::_WebKitUserScript): Added.
        (_WebKitUserScript::referenceCount): Ditto.
        (webkit_user_script_ref):
        (webkit_user_script_unref):
        (webkit_user_script_new):
        (webkitUserScriptGetUserScript): Internal method to obtain the
        boxed WebCore::UserScript value.
        * UIProcess/API/gtk/WebKitUserContent.h: Add the new public API
        methods.
        * UIProcess/API/gtk/WebKitUserContentManager.cpp: Implement the
        methods for adding and removing user scripts.
        (webkit_user_content_manager_add_script):
        (webkit_user_content_manager_remove_all_scripts):
        * UIProcess/API/gtk/WebKitUserContentManager.h: Add the new public
        API methods.
        * UIProcess/API/gtk/WebKitUserContentPrivate.h: Add the definition
        for the new private function.
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Include the
        new public methods in the API documentation.

2014-08-06  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Be able to disable gtk2 dependency
        https://bugs.webkit.org/show_bug.cgi?id=135505

        Reviewed by Gustavo Noronha Silva.

        * PlatformGTK.cmake: Only build WebKitPluginProcess2 when
        ENABLE_PLUGIN_PROCESS_GTK2 is ON.
        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
        (WebKit::ProcessLauncher::launchProcess): Do not try to launch
        WebKitPluginProcess2 executable when ENABLE_PLUGIN_PROCESS_GTK2 is OFF.

2014-08-05  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r164337): Pages are sometimes cut off/oriented incorrectly after using WKThumbnailView
        https://bugs.webkit.org/show_bug.cgi?id=135622
        <rdar://problem/17202556>

        Reviewed by Dan Bernstein.

        In some cases (when the page changed scroll offset while thumbnailed),
        when transitioning back to thumbnail scale = 1, we would get the math
        wrong and end up with a non-identity sublayerTransform on the DrawingArea.

        Luckily, none of this code is necessary anymore, as the only client
        of WKThumbnailView only uses its snapshotting mode.

        * Shared/ImageOptions.h:
        Remove SnapshotOptionsRespectDrawingAreaTransform; DrawingArea no longer
        has a rootLayerTransform().

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::setThumbnailScale): Deleted.
        * UIProcess/WebPageProxy.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::scaledSnapshotWithOptions):
        (WebKit::WebPage::snapshotAtSize):
        
        (WebKit::WebPage::setThumbnailScale): Deleted.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        Remove setThumbnailScale and SnapshotOptionsRespectDrawingAreaTransform.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::didCommitLoad):
        Revert this to its state before r164337, as we no longer have "thumbnail scale".

        * UIProcess/API/Cocoa/_WKThumbnailView.h:
        * UIProcess/API/Cocoa/_WKThumbnailView.mm:
        (-[_WKThumbnailView initWithFrame:fromWKView:]):
        (-[_WKThumbnailView _viewWasUnparented]):
        (-[_WKThumbnailView _viewWasParented]):
        (-[_WKThumbnailView _requestSnapshotIfNeeded]):
        (-[_WKThumbnailView setScale:]):
        Clean up code assuming _shouldApplyThumbnailScale = NO, _usesSnapshot = YES.

        (-[_WKThumbnailView setUsesSnapshot:]):
        (-[_WKThumbnailView usesSnapshot]):
        Always return YES from usesSnapshot; we only support snapshotting WKThumbnailViews.
        Ignore setUsesSnapshot.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _setThumbnailView:]):
        (-[WKView _updateThumbnailViewLayer]):
        Stop checking usesSnapshot; it's always true.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::setRootLayerTransform): Deleted.
        * WebProcess/WebPage/DrawingArea.cpp:
        (WebKit::DrawingArea::rootLayerTransform): Deleted.
        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::setRootLayerTransform): Deleted.
        Remove rootLayerTransform() and setRootLayerTransform().

2014-08-05  Peyton Randolph  <prandolph@apple.com>

        Rename MAC_LONG_PRESS feature flag to LONG_MOUSE_PRESS.
        https://bugs.webkit.org/show_bug.cgi?id=135276

        Reviewed by Beth Dakin.

        * Configurations/FeatureDefines.xcconfig:

2014-08-04  Andy Estes  <aestes@apple.com>

        [iOS] The raw bytes of an iWork document's PDF preview are displayed rather than the PDF itself
        https://bugs.webkit.org/show_bug.cgi?id=135596

        Reviewed by David Kilzer.

        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): If the response will be handled by
        QuickLook, do not call ResourceLoader::didReceiveResponse. It will be called later by
        WebResourceLoaderQuickLookDelegate once converted data is received.

2014-08-05  Alexey Proskuryakov  <ap@apple.com>

        Build fix.

        * UIProcess/WebContext.h:

2014-08-05  Oliver Hunt  <oliver@apple.com>

        SSO expects to be able to walk parent application's bundle
        https://bugs.webkit.org/show_bug.cgi?id=135581
        <rdar://problem/17864079>

        Reviewed by Alexey Proskuryakov.

        SSO expects to be able to walk the parent application's
        bundle looking for Info plists. To allow this to actually
        work we provide an extension from the ui process that
        covers the bundle directory, and then in the profile
        restrict access to the ability to read directories and
        files named Info.plist.

        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
        (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
        * Shared/Network/NetworkProcessCreationParameters.cpp:
        (WebKit::NetworkProcessCreationParameters::encode):
        (WebKit::NetworkProcessCreationParameters::decode):
        * Shared/Network/NetworkProcessCreationParameters.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::ensureNetworkProcess):
        (WebKit::WebContext::parentBundleDirectory):
        * UIProcess/WebContext.h:
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::parentBundleDirectory):

2014-08-04  Benjamin Poulain  <benjamin@webkit.org>

        Add a flag for the CSS Selectors level 4 implementation
        https://bugs.webkit.org/show_bug.cgi?id=135535

        Reviewed by Andreas Kling.

        * Configurations/FeatureDefines.xcconfig:

2014-08-04  Benjamin Poulain  <bpoulain@apple.com>

        Check for null frame when processing geolocation authorization request
        https://bugs.webkit.org/show_bug.cgi?id=135577
        <rdar://problem/17896295>

        Reviewed by Geoffrey Garen.

        I could have put the null check in GeolocationController instead of the WebKit layer,
        but that would be a little weird as GeolocationController knows nothing about how
        the WebKit layer decides what to do with requests.

        * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
        (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):

2014-08-02  Jeremy Jones  <jeremyj@apple.com>

        Support both window and view based video fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=135525

        Reviewed by Simon Fraser.

        Parenting in the view instead of the window gives the fullscreen implementation more latitude 
        in how it implements the animation.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Use view instead of window.
        * WebProcess/ios/WebVideoFullscreenManager.mm:
        (WebKit::clientRectForNode): Use client rect instead of screen rect.
        (WebKit::WebVideoFullscreenManager::enterFullscreenForNode): ditto
        (WebKit::WebVideoFullscreenManager::exitFullscreenForNode): ditto
        (WebKit::screenRectForNode): Deleted.

2014-08-01  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17891752> [iOS] WebKit links against libraries it doesn’t use
        https://bugs.webkit.org/show_bug.cgi?id=135536

        Reviewed by Tim Horton.

        * Configurations/WebKit.xcconfig: Removed -lassertion_extension and -framework MobileAsset
        from FRAMEWORK_AND_LIBRARY_LDFLAGS_iphonesimulator.

2014-08-01  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS WK2] Add extension read permission to network sandbox profile
        <rdar://problem/17671574>

        Reviewed by Alexey Proskuryakov and Oliver Hunt.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

2014-08-01  Oliver Hunt  <oliver@apple.com>

        Various frameworks may want to use the container temp directory, so our current restrictions are too tight
        https://bugs.webkit.org/show_bug.cgi?id=135518
        <rdar://17869279>

        Reviewed by Anders Carlsson.

        We don't (and can't) have complete knowledge of what different frameworks
        will want to use the container temporary directory for, and so our
        current attempt to heavily restrict access is simply too tight.

        This patch recognises this by simply giving read-write access to the
        entire NSTemporary() directory (e.g. $container/tmp in the general case),
        rather than the single sub directory we wishfully thought that we would
        be able to get away with.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess):
        (WebKit::WebContext::mediaCacheDirectory): Deleted.
        * UIProcess/WebContext.h:
        * UIProcess/efl/WebContextEfl.cpp:
        (WebKit::WebContext::containerTemporaryDirectory):
        (WebKit::WebContext::platformMediaCacheDirectory): Deleted.
        * UIProcess/gtk/WebContextGtk.cpp:
        (WebKit::WebContext::containerTemporaryDirectory):
        (WebKit::WebContext::platformMediaCacheDirectory): Deleted.
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::containerTemporaryDirectory):
        (WebKit::WebContext::platformMediaCacheDirectory): Deleted.
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-08-01  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17862013> REGRESSION (r169357): Disabling "allow plug-ins" doesn't stick on quit/relaunch
        https://bugs.webkit.org/show_bug.cgi?id=135511

        Reviewed by Alexey Proskuryakov.

        Since the values map in the preferences store doesn’t include values that are equal to the
        defaults, we need to update it when a new default is registered.

        * UIProcess/WebPreferences.cpp:
        (WebKit::WebPreferences::createWithLegacyDefaults): Changed to use new member functions
        for registering defaults.
        (WebKit::WebPreferences::registerDefaultBoolValueForKey): Added. Sets an override default
        in the store, and sets the user default, if there is one, on top of it.
        (WebKit::WebPreferences::registerDefaultUInt32ValueForKey): Ditto.
        * UIProcess/WebPreferences.h: Declared new member functions for getting the user default
        value for a key.

        * UIProcess/efl/WebPreferencesEfl.cpp:
        (WebKit::WebPreferences::platformGetStringUserValueForKey): Added an implementation that
        returns false, because the EFL port doesn’t support persistent user defaults.
        (WebKit::WebPreferences::platformGetBoolUserValueForKey): Ditto.
        (WebKit::WebPreferences::platformGetUInt32UserValueForKey): Ditto.
        (WebKit::WebPreferences::platformGetDoubleUserValueForKey): Ditto.

        * UIProcess/gtk/WebPreferencesGtk.cpp:
        (WebKit::WebPreferences::platformGetStringUserValueForKey): Ditto for the GTK port.
        (WebKit::WebPreferences::platformGetBoolUserValueForKey): Ditto.
        (WebKit::WebPreferences::platformGetUInt32UserValueForKey): Ditto.
        (WebKit::WebPreferences::platformGetDoubleUserValueForKey): Ditto.

        * UIProcess/mac/WebPreferencesMac.mm:
        (WebKit::WebPreferences::platformGetStringUserValueForKey): Added. Replaces
        setStringValueIfInUserDefaults, on which it is based.
        (WebKit::WebPreferences::platformGetBoolUserValueForKey): Similarly for booleans.
        (WebKit::WebPreferences::platformGetUInt32UserValueForKey): Similarly for integers.
        (WebKit::WebPreferences::platformGetDoubleUserValueForKey): Similarly for doubles.
        (WebKit::WebPreferences::platformInitializeStore): Changed to use the above functions.

2014-08-01  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Fullscreen mode for some applications shows only a black screen.
        https://bugs.webkit.org/show_bug.cgi?id=135493
        <rdar://problem/17628212>

        Reviewed by Jer Noble.

        In some applications, the window hosting the WKView is an InProcess layer hosting mode.
        The fullscreen window created by the WKFullScreenWindowController defaults to an
        OutOfProcess mode.

        When this kind of mismatch is encountered, the WK2 layer in the UI process is supposed
        to send a message back to the WebProcess indicating that the layer hosting mode of the
        containing window is different, so that the WebProcess can adjust its logic accordingly.
        Unfortunately, the notification that this had happened was not getting sent to the
        WebProcess due to an optimization in window state change logic (see Bug 135509 for
        details).

        The fix is to check layer hosting mode state when a WKView is added to a window, and
        notify the WebProcess when it needs to change state to match.
        

        * UIProcess/API/mac/WKView.mm:
        (-[WKView viewDidMoveToWindow]): When moving to a new window, always call
        'layerHostingModeDidChange' to pick up any changes in the layer hosting mode.

2014-08-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        [CMake] GTK and EFL are using PROJECT_VERSION_PATCH to define the micro version
        https://bugs.webkit.org/show_bug.cgi?id=135501

        Reviewed by Gyuyoung Kim.

        Use PROJECT_VERSION_MICRO instead.

        * UIProcess/API/efl/EWebKit2.h.in:
        * UIProcess/API/gtk/WebKitVersion.h.in:

2014-08-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Add missing sections to documentation.

        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add
        WebKitUserContent and WebKitUserContentManager sections to the
        documentation.

2014-08-01  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Unable to do make install since r171901
        https://bugs.webkit.org/show_bug.cgi?id=135497

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Removed ewk_defins.h from the installation list.

2014-07-31  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] MiniBrower comes to crash when combo box is pressed
        https://bugs.webkit.org/show_bug.cgi?id=135378

        Reviewed by Gyuyoung Kim.

        Added doxygen comment of popup_menu_show/popup_menu_hide not to confuse the usage.

        * UIProcess/API/efl/ewk_view.h:

2014-07-31  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] remove ewk_defines.h
        https://bugs.webkit.org/show_bug.cgi?id=135456

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/efl/ewk_context_menu.h:
        * UIProcess/API/efl/ewk_context_menu_item.h: Moved the declaration from ewk_defines.h
        * UIProcess/API/efl/ewk_defines.h: Removed.

2014-07-31  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed typo correction.
        https://bugs.webkit.org/show_bug.cgi?id=135482

        Rename '_fullScreenIsEnabled' -> '_fullScreenEnabled'

        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences _fullScreenEnabled]): Added
        (-[WKPreferences _fullScreenIsEnabled]): Deleted.
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:

2014-07-31  Brent Fulgham  <bfulgham@apple.com>

        MiniBrowser Should Support Fullscreen Videos in WebKit2 Mode
        https://bugs.webkit.org/show_bug.cgi?id=135482

        Reviewed by Simon Fraser.
        
        Add accessors for the missing Fullscreen API so that MiniBrowser
        can use them.

        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences _fullScreenIsEnabled]): Added.
        (-[WKPreferences _setFullScreenEnabled:]): Added.
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h: Add accessor for
        Fullscreen mode.

2014-07-31  Beth Dakin  <bdakin@apple.com>

        Hit-testing broken in WebKit 1 views with AppKit's contentInsets
        https://bugs.webkit.org/show_bug.cgi?id=135434
        -and corresponding-
        <rdar://problem/17850323>

        Reviewed by Benjamin Poulain.

        Re-named functions.
        * WebProcess/Plugins/PDF/PDFPlugin.mm:
        (WebKit::PDFPlugin::convertFromScrollbarToContainingView):
        (WebKit::PDFPlugin::convertFromContainingViewToScrollbar):

2014-07-31  Oliver Hunt  <oliver@apple.com>

        Various SSO services need the networking process to be able to spoof its bundle id
        https://bugs.webkit.org/show_bug.cgi?id=135468
        <rdar://problem/17864139>

        Reviewed by Alexey Proskuryakov.

        Just add the entitlement required to allow the sandbox to let this happen.

        * Configurations/Network-iOS.entitlements:

2014-07-31  Przemyslaw Kuczynski  <p.kuczynski@samsung.com>

        Fix uninitialized scalar variable
        https://bugs.webkit.org/show_bug.cgi?id=135461

        Reviewed by Alexey Proskuryakov.

        If fopen fails, returned ApplicationMemoryStats structure will be uninitialized

        * Shared/linux/WebMemorySamplerLinux.cpp:
        (WebKit::sampleMemoryAllocatedForApplication): Initialized applicationStats.

2014-07-31  Rohit Kumar  <kumar.rohit@samsung.com>

        Clean up the WebKit build from unused parameter warning in Webkit2/WebProcess module
        https://bugs.webkit.org/show_bug.cgi?id=135413

        Reviewed by Darin Adler.

        * WebProcess/OriginData/WebOriginDataManager.cpp:
        (WebKit::WebOriginDataManager::getOrigins):
        (WebKit::WebOriginDataManager::deleteEntriesForOrigin):
        (WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates):
        (WebKit::WebOriginDataManager::deleteAllEntries):

2014-07-31  Chris Fleizach  <cfleizach@apple.com>

        AX: iOS: Crash accessing m_page in WKAccessibilityPageObject
        https://bugs.webkit.org/show_bug.cgi?id=134617

        Reviewed by Darin Adler.

        Provide a way to detach a WK2 WebPage object so that it can uninitialize other pointers, like the accessibility object.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::~WebPage):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/efl/WebPageEfl.cpp:
        (WebKit::WebPage::platformDetach):
        * WebProcess/WebPage/gtk/WebPageGtk.cpp:
        (WebKit::WebPage::platformDetach):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::platformDetach):
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::platformDetach):

2014-07-31  Dan Bernstein  <mitz@apple.com>

        WebKit part of: Server trust authentication challenges aren’t sent to the navigation delegate
        https://bugs.webkit.org/show_bug.cgi?id=135327

        Reviewed by Alexey Proskuryakov.

        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
        Return true for server trust protection spaces if the delegate implements
        -webView:didReceiveAuthenticationChallenge:completionHandler:.
        (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): Removed
        an assertion that is no longer true due to the above.

2014-07-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Update OptionsGTK.cmake and NEWS for 2.5.1 release.

        * gtk/NEWS: Add release notes for 2.5.1.

2014-07-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ make distcheck.

        * Shared/InteractionInformationAtPosition.h: Only include
        WebCore/SelectionRect.h for IOS.

2014-07-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Bump binary version for 2.6
        https://bugs.webkit.org/show_bug.cgi?id=133724

        Reviewed by Philippe Normand.

        * PlatformGTK.cmake: Fix JavaScriptCore dependency on
        instrospection commands and make them depend on GTK+-3.0.

2014-07-30  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WK2 iOS): Inline editing for Chinese and Japanese keyboards does not work in Safari.
        https://bugs.webkit.org/show_bug.cgi?id=135449
        <rdar://problem/17824833>

        Reviewed by Benjamin Poulain.

        The WebProcess sends the notification that the gesture modified the phrase boundary,
        but the flag was not being converted properly, therefore we failed to notify
        the text input system that a change had occurred.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (toUIWKSelectionFlags):

2014-07-30  Andy Estes  <aestes@apple.com>

        USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING)
        https://bugs.webkit.org/show_bug.cgi?id=135439

        Reviewed by Tim Horton.

        We now support two different platform content filters, and will soon support a mock content filter (as part of
        webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party
        library. ENABLE() is the correct macro to use for such a feature.

        * Configurations/FeatureDefines.xcconfig:
        * Shared/WebCoreArgumentCoders.h:
        * UIProcess/WebFrameProxy.cpp:
        (WebKit::WebFrameProxy::didStartProvisionalLoad):
        * UIProcess/WebFrameProxy.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

2014-07-30  Andreas Kling  <akling@apple.com>

        Static hash tables no longer need to be coupled with a VM.
        <https://webkit.org/b/135421>

        Reviewed by Geoffrey Garen.

        * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
        * WebProcess/Plugins/Netscape/JSNPObject.cpp:

2014-07-30  Dan Bernstein  <mitz@apple.com>

        Get rid of the WKNSURLProtectionSpace wrapper
        https://bugs.webkit.org/show_bug.cgi?id=135425

        Reviewed by Sam Weinig.

        * Shared/Cocoa/APIObject.mm:
        (API::Object::newObject): Don’t allocate WKNSURLProtectionSpace wrappers.

        * Shared/Cocoa/WKNSURLProtectionSpace.h: Removed.
        * Shared/Cocoa/WKNSURLProtectionSpace.mm: Removed.

        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
        (canAuthenticateAgainstProtectionSpaceInFrame): Get the NSURLProtectionSpace from the
        WebCore::ProtectionSpace in the WebProtectionSpace.

        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame): Ditto.

        * WebKit2.xcodeproj/project.pbxproj: Removed references to removed files.

2014-07-30  Dan Bernstein  <mitz@apple.com>

        Updated for changes to the WebCore::Credential API.
        Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327

        Reviewed by Alexey Proskuryakov.

        * Shared/Downloads/mac/DownloadMac.mm:
        (WebKit::Download::receivedCredential):Use new Credential::nsCredential getter.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<Credential>::encode):  If encoding the credential requires encoding the
        platform data, do that.
        (IPC::ArgumentCoder<Credential>::decode): If platform data was encoded, decode it.
        * Shared/WebCoreArgumentCoders.h:

        * Shared/mac/WebCoreArgumentCodersMac.mm:
        (IPC::ArgumentCoder<Credential>::encodePlatformData): Archive the NSURLCredential.
        (IPC::ArgumentCoder<Credential>::decodePlatformData): Unarchive it.

        * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:
        (-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]): Use
        Credential constructor that takes an NSURLCredential.

        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): Ditto.


2014-07-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] REGRESSION(r171742): Test /webkit2/WebKitWebView/disallow-modal-dialogs fails
        https://bugs.webkit.org/show_bug.cgi?id=135412

        Reviewed by Philippe Normand.

        The problem is that WebPageProxy::setUIClient() calls
        setCanRunModal() with the value of m_uiClient->canRunModal() which
        is always true for us. We override that manually by calling
        setCanRunModal() depending on the WebKitSettings. In r171742,
        webkitWebViewUpdateSettings(), the method that overrides
        setCanRunModal(), was moved before attachUIClientToView(), so the
        value set by WebPageProxy::setUIClient() is the last one and takes
        precedence. We need to make sure webkitWebViewUpdateSettings() is
        always called after attachUIClientToView().

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkitWebViewConstructed): Move webkitWebViewUpdateSettings()
        call after attachUIClientToView() and add a comment to not forget
        about it again.

2014-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove WebKitCertificateInfo from WebKit2GTK+ API
        https://bugs.webkit.org/show_bug.cgi?id=134830

        Reviewed by Gustavo Noronha Silva.

        It was added to make the API more convenient but it has ended up
        making it more complicated. WebKitWebView::load-failed-with-tls-errors
        now receives a GTlsCertificate + GTlsCertificateFlags and
        webkit_web_context_allow_tls_certificate_for_host() receives a GTlsCertificate
        since the errors are not actually needed. This makes the API more
        consistent with the existing method webkit_web_view_get_tls_info().

        * PlatformGTK.cmake: Remove files from compilation.
        * UIProcess/API/gtk/WebKitCertificateInfo.cpp: Removed.
        * UIProcess/API/gtk/WebKitCertificateInfo.h: Removed.
        * UIProcess/API/gtk/WebKitCertificateInfoPrivate.h: Removed.
        * UIProcess/API/gtk/WebKitWebContext.cpp:
        (webkit_web_context_allow_tls_certificate_for_host):
        * UIProcess/API/gtk/WebKitWebContext.h:
        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkit_web_view_class_init):
        (webkitWebViewLoadFailedWithTLSErrors):
        * UIProcess/API/gtk/WebKitWebView.h:
        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
        * UIProcess/API/gtk/webkit2.h:

2014-07-29  Jinwoo Song  <jinwoo7.song@samsung.com>

        [EFL] Do not initialize g_type system explicitly in the ewk_init()
        https://bugs.webkit.org/show_bug.cgi?id=135407

        Reviewed by Gyuyoung Kim.

        EFL build requires glib version 2.38 but g_type_init() has been deprecated
        since version 2.36. As the type system is initialized automatically since
        version 2.36, we do not need to call g_type_init() in the ewk_init().

        https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#g-type-init

        * UIProcess/API/efl/ewk_main.cpp:
        (ewk_init):

2014-07-29  Enrica Casucci  <enrica@apple.com>

        REGRESSION [WebKit2 iOS]: Cannot add shortcut to user dictionary from non editable content.
        https://bugs.webkit.org/show_bug.cgi?id=135392
        <rdar://problem/17760073>

        Reviewed by Benjamin Poulain.

        Adding a shortcut to the user dictionary needs to be available in non editable content too.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _addShortcut:]):

2014-07-29  Tim Horton  <timothy_horton@apple.com>

        WKPDFView paints rotated pages squished
        https://bugs.webkit.org/show_bug.cgi?id=135401
        <rdar://problem/17173916>

        Reviewed by Simon Fraser.

        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView _computePageAndDocumentFrames]):
        [page size] returns the crop box's size, ignoring rotation.
        [page cropBoxAccountForRotation] respects rotation, but otherwise returns the same size.
        UIPDFPageView will respect rotation when painting, so we
        should make sure that it is given an aspect ratio that also
        respects rotation, so that the page isn't squished.

2014-07-29  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF for !ENABLE(DATABASE_PROCESS) platforms.

        * WebProcess/OriginData/WebOriginDataManager.cpp:
        (WebKit::WebOriginDataManager::getOrigins):
        (WebKit::WebOriginDataManager::deleteEntriesForOrigin):
        (WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates):
        (WebKit::WebOriginDataManager::deleteAllEntries):

2014-07-29  Brady Eidson  <beidson@apple.com>

        Make WKOriginDataManager actually operate on IndexedDatabases.
        https://bugs.webkit.org/show_bug.cgi?id=135346

        Reviewed by Sam Weinig (and David Kilzer and Alex Christensen)

        * DatabaseProcess/DatabaseProcess.cpp:
        (WebKit::DatabaseProcess::DatabaseProcess):
        (WebKit::DatabaseProcess::getIndexedDatabaseOrigins): 
        (WebKit::DatabaseProcess::doGetIndexedDatabaseOrigins):
        (WebKit::removeAllDatabasesForOriginPath): Utility to delete all database files for the given origin path
            that have been modified between the given dates.
        (WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigin):
        (WebKit::DatabaseProcess::doDeleteIndexedDatabaseEntriesForOrigin):
        (WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedBetweenDates):
        (WebKit::DatabaseProcess::doDeleteIndexedDatabaseEntriesModifiedBetweenDates):
        (WebKit::DatabaseProcess::deleteAllIndexedDatabaseEntries):
        (WebKit::DatabaseProcess::doDeleteAllIndexedDatabaseEntries):
        * DatabaseProcess/DatabaseProcess.h:

        * Shared/WebCrossThreadCopier.cpp:
        (WebCore::SecurityOriginData>::copy):
        * Shared/WebCrossThreadCopier.h:

        * UIProcess/WebOriginDataManagerProxy.cpp:
        (WebKit::WebOriginDataManagerProxy::getOrigins):
        (WebKit::WebOriginDataManagerProxy::didGetOrigins):
        (WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin):
        (WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates):
        (WebKit::WebOriginDataManagerProxy::deleteAllEntries):

        * WebProcess/OriginData/WebOriginDataManager.cpp:
        (WebKit::WebOriginDataManager::getOrigins): Pipe IDB requests through to the DatabaseProcess.
        (WebKit::WebOriginDataManager::deleteEntriesForOrigin): Ditto.
        (WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates): Ditto.
        (WebKit::WebOriginDataManager::deleteAllEntries): Ditto.

2014-07-29  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171704.
        https://bugs.webkit.org/show_bug.cgi?id=135389

        Broke two IndexedDB tests (Requested by ap on #webkit).

        Reverted changeset:

        "IDB transactions never reset if the Web Process ends before
        cleaning up"
        https://bugs.webkit.org/show_bug.cgi?id=135218
        http://trac.webkit.org/changeset/171704

2014-07-29  Daniel Bates  <dabates@apple.com>

        Use WTF::move() instead of std::move() to help ensure move semantics
        https://bugs.webkit.org/show_bug.cgi?id=135351

        Reviewed by Alexey Proskuryakov.

        * UIProcess/API/Cocoa/_WKSessionState.mm:
        (-[_WKSessionState _initWithSessionState:]):
        * UIProcess/API/gtk/WebKitUserContent.cpp:
        (toStringVector): Remove use of std::move(). It's unnecessary to call std::move() on an rvalue.
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::mouseEvent):

2014-07-28  Pratik Solanki  <psolanki@apple.com>

        Get SharedBuffer.h out of ResourceBuffer.h (and a few other places)
        https://bugs.webkit.org/show_bug.cgi?id=131782

        Original patch by Tim Horton.
        Reviewed by Darin Adler.

        * NetworkProcess/NetworkResourceLoader.cpp:
        * WebProcess/Network/NetworkProcessConnection.cpp:
        Include SharedBuffer.h in implementation files.

        * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
        Un-indent namespace and remove SharedBuffer forward-declaration.

2014-07-29  Adrian Perez de Castro  <aperez@igalia.com>

        [GTK] Remove WebKitWebViewGroup from WebKit2 GTK+ API
        https://bugs.webkit.org/show_bug.cgi?id=133729

        Reviewed by Carlos Garcia Campos.

        Removes WebKitWebViewGroup, effectively reverting the changes
        introduced by r149117. The motivation for WebKitWebViewGroup
        was using the user style sheet injection API, which has been
        moved into WebKitUserContentManager, rendering it unneeded.

        * PlatformGTK.cmake: Remove WebKitWebViewGroup source files
        from the build.
        * UIProcess/API/C/gtk/WKView.cpp:
        (WKViewCreate): Accomodate for changes in the signature of
        webkitWebViewBaseCreate().
        * UIProcess/API/gtk/WebKitSettings.cpp: Update API documentation.
        * UIProcess/API/gtk/WebKitWebContext.cpp: Remove the default web
        view group from WebKitWebContext.
        (webkitWebContextCreatePageForWebView): Allow passing a
        WebPreferences object at construction.
        (webkitWebContextGetDefaultWebViewGroup): Deleted.
        * UIProcess/API/gtk/WebKitWebContextPrivate.h: Ditto.
        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkitWebViewUpdateSettings): Use WebPageProxy::setPreferences()
        directly. Handle the case when webkit_web_view_set_settings()
        is called on construction by doing an early-return.
        (webkitWebViewConstructed): Call webkitWebViewUpdateSettings()
        after creating the internal WebPageProxy object.
        (webkitWebViewSetProperty): Removed "group" property, added
        "settings" property.
        (webkitWebViewGetProperty): Ditto.
        (webkitWebViewDispose): Do not disconnect signal handler for
        the (now unexistant) WebKitWebViewGroup.
        (webkit_web_view_class_init): Removed "group" property, added
        "settings" property.
        (webkitWebViewHandleAuthenticationChallenge): Access the
        WebKitWebSettings directly.
        (webkit_web_view_new_with_related_view): Make new views share
        settings with their related view.
        (webkit_web_view_new_with_settings): Added.
        (webkit_web_view_set_settings): Access the settings directly in
        the WebKitWebView.
        (webkit_web_view_get_settings): Ditto.
        (webkit_web_view_set_zoom_level): Ditto.
        (webkit_web_view_get_zoom_level): Ditto.
        (webkitWebViewSettingsChanged): Deleted.
        (webkitWebViewDisconnectSettingsChangedSignalHandler): Deleted.
        (webkit_web_view_new_with_group): Deleted.
        (webkit_web_view_get_group): Deleted.
        * UIProcess/API/gtk/WebKitWebView.h: Removed API methods related
        to WebKitWebViewGroup.
        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseCreate): Allow passing a WebPreferences object
        for constructing the WebPageProxy.
        (webkitWebViewBaseUpdatePreferences): Instead of going through
        the page group, use WebPageProxy::preferences() directly.
        (webkitWebViewBaseCreateWebPage): Allow passing a WebPreferences
        object for constructing the WebPageProxy.
        * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Update the
        prototypes of the internal functions.
        * UIProcess/API/gtk/WebKitWebViewGroup.cpp: Removed.
        * UIProcess/API/gtk/WebKitWebViewGroup.h: Removed.
        * UIProcess/API/gtk/WebKitWebViewGroupPrivate.h: Removed.
        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Change public API
        bits in the documentation.
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
        * UIProcess/API/gtk/docs/webkit2gtk.types: Ditto.
        * UIProcess/API/gtk/webkit2.h: Removed WebKitWebViewGroup.h header.
        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
        Accomodate for changes in the signature of
        webkitWebViewBaseCreate().

2014-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        Implement webkit_web_view_load_string() in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=134735

        Reviewed by Sergio Villar Senin.

        Add webkit_web_view_load_bytes() that receives a GBytes to load
        random data in the web view using the given MIME-Type, encoding
        and base URL.

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (releaseGBytes):
        (webkit_web_view_load_bytes):
        * UIProcess/API/gtk/WebKitWebView.h:
        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:

2014-07-29  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Alpha value of ewk_view_bg_color_set is not working
        https://bugs.webkit.org/show_bug.cgi?id=135333

        Reviewed by Gyuyoung Kim.

        evas_object_image_alpha_set should be called for the transparent evas object.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::handleEvasObjectColorSet):
        (EwkView::setBackgroundColor): Checked the alpha value of object and called evas_object_image_alpha_set.
        * UIProcess/API/efl/EwkView.h:
        * UIProcess/API/efl/ewk_view.cpp:
        (ewk_view_bg_color_set): Moved the logic to EwkView.

2014-07-28  Mark Rowe  <mrowe@apple.com>

        Web process crash causes UI process to die with an assertion failure in Connection::exceptionSourceEventHandler
        https://bugs.webkit.org/show_bug.cgi?id=135366

        Reviewed by Dan Bernstein.

        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::Connection::exceptionSourceEventHandler): Remove the assertion since it frequently fires during
        normal development with debug builds.

2014-07-28  Benjamin Poulain  <bpoulain@apple.com>

        [iOS WK2] WKWebView sometime tries to change the size of a null DrawingAreaProxy
        https://bugs.webkit.org/show_bug.cgi?id=135368
        <rdar://problem/16988887>

        Reviewed by Simon Fraser.

        We should never assume DrawingAreaProxy exists in the API invoked by the clients
        of WKWebView. There are at least two cases where the DrawingAreaProxy is null:
        -In some path on initialization.
        -After a crash.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        We can safely null check and skip setting the size. If the call was skipped,
        the size is set on DrawingAreaProxy initialization by querying the current
        size through the page client.

2014-07-28  Roger Fong  <roger_fong@apple.com>

        Disable tagged strings for the plugin process.
        https://bugs.webkit.org/show_bug.cgi?id=135354
        <rdar://problem/17295639>.

        Patch by Alexey Proskuryakov and Roger Fong.

        Reviewed by Anders Carlsson.

        * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToReExecService):

2014-07-25  Jeffrey Pfau  <jpfau@apple.com>

        IDB transactions never reset if the Web Process ends before cleaning up
        https://bugs.webkit.org/show_bug.cgi?id=135218

        Reviewed by Darin Adler.

        * DatabaseProcess/DatabaseToWebProcessConnection.cpp:
        (WebKit::DatabaseToWebProcessConnection::didClose):
        * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
        (WebKit::UniqueIDBDatabase::unregisterConnection):
        (WebKit::UniqueIDBDatabase::didCompleteTransactionOperation):
        (WebKit::UniqueIDBDatabase::openBackingStoreTransaction):
        (WebKit::UniqueIDBDatabase::resetBackingStoreTransaction):
        (WebKit::UniqueIDBDatabase::didEstablishTransaction):
        (WebKit::UniqueIDBDatabase::didResetTransaction):
        (WebKit::UniqueIDBDatabase::resetAllTransactions):
        (WebKit::UniqueIDBDatabase::finalizeRollback):
        (WebKit::UniqueIDBDatabase::absoluteDatabaseDirectory):
        * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
        * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
        (WebKit::UniqueIDBDatabaseBackingStoreSQLite::rollbackTransaction):

2014-07-27  Yusuke Suzuki  <utatane.tea@gmail.com>

        [GTK] Keep non-DATABASE_PROCESS build
        https://bugs.webkit.org/show_bug.cgi?id=135321

        Reviewed by Gyuyoung Kim.

        This is the patch for r171622 in non-DATABASE_PROCESS builds.
        Change sendToDatabaseProcessRelaunchingIfNecessary to support non-DATABASE_PROCESS implementation.

        * CMakeLists.txt:
        * UIProcess/WebContext.h:
        (WebKit::WebContext::sendToDatabaseProcessRelaunchingIfNecessary):

2014-07-27  Gavin Barraclough  <baraclough@apple.com>

        Don't rely on reading applicationState from within DidEnterBackground/WillEnterForeground
        https://bugs.webkit.org/show_bug.cgi?id=135329
        rdar://problem/17818308

        Reviewed by Sam Weinig.

        API may not be stable.

        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::isViewVisible):
            - changed to use -[WKContentView isBackground]
        * UIProcess/ios/ProcessAssertionIOS.mm:
        (-[WKProcessAssertionBackgroundTaskManager init]):
            - split notification handlers
        (-[WKProcessAssertionBackgroundTaskManager _applicationWillEnterForeground:]):
        (-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackground:]):
        (-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackgroundOrWillEnterForeground:]): Deleted.
            - Assume application is background is after DidEnterBackground, and not after WillEnterForeground
        * UIProcess/ios/WKContentView.h:
            - added isBackground.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:configuration:webView:]):
            - check applicationState at init.
        (-[WKContentView isBackground]):
            - accessor
        (-[WKContentView _applicationDidEnterBackground:]):
        (-[WKContentView _applicationWillEnterForeground:]):
            - update isBackground

2014-07-26  Enrica Casucci  <enrica@apple.com>

        [WebKit2 iOS]Add support for caret movement for the 3rd party keyboard protocol.
        https://bugs.webkit.org/show_bug.cgi?id=135325
        <rdar://problem/17682120>

        Reviewed by Sam Weinig.

        WKContentView now implements moveByOffset to support the
        protocol for 3rd party keyboards.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView moveByOffset:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::moveSelectionByOffset):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::moveSelectionByOffset):

2014-07-26  Timothy Horton  <timothy_horton@apple.com>

        Crash in Web Content Process under ~PDFDocument under clearTouchEventListeners at topDocument()
        https://bugs.webkit.org/show_bug.cgi?id=135319
        <rdar://problem/17315168>

        Reviewed by Darin Adler and Antti Koivisto.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::committedLoad):
        Allow data through to WebCore for frames with custom content providers;
        the only custom content provider currently implemented is main frame PDF
        on iOS, which will end up creating a PDFDocument in WebCore, which drops all
        data on the floor immediately, so this won't result in WebCore doing anything
        with the data, but makes sure that more of the normal document lifecycle is maintained.

        In the future, we might want to consider ensuring that all custom content providers
        end up creating a SinkDocument or something similarly generic to ensure that
        WebCore doesn't try to do anything with their data, but for now, the only client is covered.

2014-07-25  Jeremy Jones  <jeremyj@apple.com>

        Parent fullscreen from window instead of view
        https://bugs.webkit.org/show_bug.cgi?id=135310

        Reviewed by Jer Noble.

        Parenting in the view causes an incorrect animation to fullscreen, and can cause 
        fullscreen to only expand to the size of the view instead of the whole window.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): pass view's window.
        * WebProcess/ios/WebVideoFullscreenManager.mm: screenRect instead of clientRect
        (WebKit::screenRectForNode): was clientRectForNode
        (WebKit::WebVideoFullscreenManager::enterFullscreenForNode): use screenRectForNode
        (WebKit::WebVideoFullscreenManager::exitFullscreenForNode): ditto
        (WebKit::clientRectForNode): Deleted.

2014-07-25  Oliver Hunt  <oliver@apple.com>

        Creating incorrect sandbox extension for hsts plist due to missing /
        https://bugs.webkit.org/show_bug.cgi?id=135309

        Reviewed by Sam Weinig.

        So it turns out that you do actually need /'s in paths...
        Now we actually create the correct extension.

        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath):

2014-07-24  Anders Carlsson  <andersca@apple.com>

        WKNavigation's properties are either always nil or don't behave as documented
        https://bugs.webkit.org/show_bug.cgi?id=135267
        <rdar://problem/17730536>

        Reviewed by Andreas Kling.

        Remove the properties from WKNavigation and introduce -[WKNavigation _request] as SPI for now.

        * Shared/API/Cocoa/WebKitPrivate.h:
        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigation.mm:
        (-[WKNavigation _request]):
        (-[WKNavigation initialRequest]): Deleted.
        (-[WKNavigation request]): Deleted.
        (-[WKNavigation setRequest:]): Deleted.
        (-[WKNavigation response]): Deleted.
        (-[WKNavigation error]): Deleted.
        * UIProcess/API/Cocoa/WKNavigationInternal.h:
        * UIProcess/API/Cocoa/WKNavigationPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationInternal.h.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::createLoadRequestNavigation):
        * WebKit2.xcodeproj/project.pbxproj:

2014-07-25  Brady Eidson  <beidson@apple.com>

        Clean up WKOriginDataManager and get it messaging to the DatabaseProcess
        https://bugs.webkit.org/show_bug.cgi?id=135035

        Reviewed by Sam Weinig.

        * DatabaseProcess/DatabaseProcess.cpp:
        (WebKit::DatabaseProcess::DatabaseProcess): Instantiate the WebOriginDataManager, installing its message handler.
        (WebKit::DatabaseProcess::didReceiveMessage): Try the message receiver map, which will try the WebOriginDataManager.
        * DatabaseProcess/DatabaseProcess.h:
        * DatabaseProcess/DatabaseProcess.messages.in:

        * UIProcess/API/C/WKOriginDataManager.cpp:
        (WKOriginDataManagerDeleteEntriesForOrigin): Updated to also take a callback.
        (WKOriginDataManagerDeleteEntriesModifiedBetweenDates): Added.
        (WKOriginDataManagerDeleteAllEntries): Updated to also take a callback.
        (WKOriginDataManagerStartObservingChanges): Deleted.
        (WKOriginDataManagerStopObservingChanges): Deleted.
        (WKOriginDataManagerSetChangeClient): Deleted.
        * UIProcess/API/C/WKOriginDataManager.h:

        * UIProcess/Databases/DatabaseProcessProxy.cpp:
        (WebKit::DatabaseProcessProxy::didReceiveMessage): Send messages to the WebOriginDataManagerProxy supplement if appropriate.
        * UIProcess/Databases/DatabaseProcessProxy.h:
        * UIProcess/Databases/DatabaseProcessProxy.messages.in:

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::WebContext): Instantiate the WebOriginDataManagerProxy supplement.
        * UIProcess/WebContext.h:
        (WebKit::WebContext::sendToDatabaseProcessRelaunchingIfNecessary):

        * UIProcess/WebOriginDataManagerProxy.cpp:
        (WebKit::WebOriginDataManagerProxy::contextDestroyed):
        (WebKit::WebOriginDataManagerProxy::processDidClose):
        (WebKit::WebOriginDataManagerProxy::getOrigins):
        (WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin): Setup a callback with the message.
        (WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates): Added
        (WebKit::WebOriginDataManagerProxy::didDeleteEntries): Call the callback.
        (WebKit::WebOriginDataManagerProxy::deleteAllEntries): Setup a callback with the message.
        (WebKit::WebOriginDataManagerProxy::didDeleteAllEntries): Call the callback.
        (WebKit::WebOriginDataManagerProxy::startObservingChanges): Deleted.
        (WebKit::WebOriginDataManagerProxy::stopObservingChanges): Deleted.
        (WebKit::WebOriginDataManagerProxy::setChangeClient): Deleted.
        (WebKit::WebOriginDataManagerProxy::didChange): Deleted.
        * UIProcess/WebOriginDataManagerProxy.h:
        * UIProcess/WebOriginDataManagerProxy.messages.in:

        * UIProcess/WebOriginDataManagerProxyChangeClient.cpp: Removed.
        * UIProcess/WebOriginDataManagerProxyChangeClient.h: Removed.

        * WebKit2.xcodeproj/project.pbxproj:

        * WebProcess/OriginData/WebOriginDataManager.cpp:
        (WebKit::WebOriginDataManager::deleteEntriesForOrigin): Send the callback reply.
        (WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates): Added.
        (WebKit::WebOriginDataManager::deleteAllEntries): Send the callback reply.
        (WebKit::WebOriginDataManager::startObservingChanges): Deleted.
        (WebKit::WebOriginDataManager::stopObservingChanges): Deleted.
        * WebProcess/OriginData/WebOriginDataManager.h:
        * WebProcess/OriginData/WebOriginDataManager.messages.in:

2014-07-25  Gavin Barraclough  <baraclough@apple.com>

        Yosemite version number is 101000
        https://bugs.webkit.org/show_bug.cgi?id=135301

        Reviewed by Sam Weinig.

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):
        * WebProcess/com.apple.WebProcess.sb.in:

2014-07-24  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Do not try to hit test a null mainFrameRenderView on dynamicViewportSizeUpdate()
        https://bugs.webkit.org/show_bug.cgi?id=135277
        <rdar://problem/17804891>

        Reviewed by Tim Horton.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):
        There is no guarantee that the main frame have its root view when performing a dynamicViewportSizeUpdate(),
        we should not attempt to use the layer without null checking it first.

        The odd part for me is <rdar://problem/17804891> is a little too frequent. In the vast majority of cases,
        there is a RenderView, it seems actually pretty hard not to have one on dynamicViewportSizeUpdate().

        Skipping hit testing is safe because it is a completely optional part of this algorithm.
        When the hit test is not done, the new position is computed based on the relative position prior to
        the size change.

2014-07-24  Dan Bernstein  <mitz@apple.com>

        WebKit2 part of <rdar://problem/17593701> Assertion failure in WebPage::reload (!m_pendingNavigationID) when reloading after a same-document back navigation
        https://bugs.webkit.org/show_bug.cgi?id=135129

        Reviewed by Darin Adler.

        * Shared/WebBackForwardListItem.cpp:
        (WebKit::childItemWithDocumentSequenceNumber): New helper function based on
        WebCore::HistoryItem::childItemWithDocumentSequenceNumber.
        (WebKit::documentTreesAreEqual): New helper function based on
        WebCore::HistoryItem::hasSameDocumentTree.
        (WebKit::WebBackForwardListItem::itemIsInSameDocument): Added. Based on
        WebCore::HistoryItem::shouldDoSameDocumentNavigationTo.
        * Shared/WebBackForwardListItem.h:

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::goForward): Don’t assign a new navigation ID if the back-forward
        navigation is a same-document navigation.
        (WebKit::WebPageProxy::goBack): Ditto.
        (WebKit::WebPageProxy::goToBackForwardItem): Ditto.

2014-07-24  Tim Horton  <timothy_horton@apple.com>

        Sometimes WKWebView is blank after resuming the app, until you scroll
        https://bugs.webkit.org/show_bug.cgi?id=135275
        <rdar://problem/17803170>

        Reviewed by Benjamin Poulain.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::dispatchViewStateChange):
        If the UI process is waiting for a didUpdateViewState, we need to *always*
        get a reply from the Web Process, so dispatchViewStateChange should *always*
        send SetViewState even if nothing changed (so that we get the reply).

2014-07-24  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
        https://bugs.webkit.org/show_bug.cgi?id=135221
        <rdar://problem/17542454>

        Reviewed by Benjamin Poulain.
        
        The call to didCommitLayerTree() can cause one or two visible rect updates,
        via changes to the UIScrollView contentSize and contentOffset. As a result, we
        would notify the scrolling tree about a viewport change, but using the old
        scrolling tree rather than the new one, so we could move layers around for
        nodes which are about to be removed from the tree.
        
        However, we also have to ensure that programmatic scrolls are applied after
        didCommitLayerTree() has updated the view size, so have RemoteScrollingCoordinatorProxy
        store data about programmatic scrolls and return them to the caller, which
        can apply them after didCommitLayerTree().

        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: Store a pointer to a RequestedScrollInfo
        for the duration of the tree update, so that we can store requested scroll info in it.
        (WebKit::RemoteScrollingCoordinatorProxy::RemoteScrollingCoordinatorProxy):
        (WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree):
        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didCommitLayerTree): Give Mac a stub implementation.
        * UIProcess/WebPageProxy.h: Group some editing-related functions together.
        (WebKit::WebPageProxy::editorState):
        (WebKit::WebPageProxy::canDelete):
        (WebKit::WebPageProxy::hasSelectedRange):
        (WebKit::WebPageProxy::isContentEditable):
        (WebKit::WebPageProxy::maintainsInactiveSelection):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): Ordering change: update
        the layer tree, then call didCommitLayerTree(), then do the viewport update, followed
        by any programmatic scroll.

2014-07-24  Peyton Randolph  <prandolph@apple.com>

        Rename feature flag for long-press gesture on Mac.                                                                   
        https://bugs.webkit.org/show_bug.cgi?id=135259                                                                  

        Reviewed by Beth Dakin.

        * Configurations/FeatureDefines.xcconfig:
        Rename LINK_LONG_PRESS to MAC_LONG_PRESS.

2014-07-24  Dan Bernstein  <mitz@apple.com>

        WebKit2 part of <rdar://problem/17766348> [Cocoa] WebCore::ProtectionSpace doesn’t preserve all NSURLProtectionSpace properties, such as the distinguishedNames array
        https://bugs.webkit.org/show_bug.cgi?id=135229

        Reviewed by Alexey Proskuryakov.

        * Shared/Cocoa/WKNSURLProtectionSpace.mm: Changed to use ProtectionSpace::nsSpace.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<ProtectionSpace>::encode): If encoding the space requires encoding the
        platform data, do that.
        (IPC::ArgumentCoder<ProtectionSpace>::decode): If platform data was encoded, decode it.
        * Shared/WebCoreArgumentCoders.h:

        * Shared/mac/WebCoreArgumentCodersMac.mm:
        (IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData): Archive the NSURLProtectionSpace.
        (IPC::ArgumentCoder<ProtectionSpace>::decodePlatformData): Unarchive it.

        * Shared/soup/WebCoreArgumentCodersSoup.cpp:
        (IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData): Added.
        (IPC::ArgumentCoder<ProtectionSpace>::decodePlatformData): Added.

2014-07-24  Benjamin Poulain  <benjamin@webkit.org>

        [WK2] Fixed/Sticky layers can get mispositioned when the layer tree commit change their position or size
        https://bugs.webkit.org/show_bug.cgi?id=135227
        <rdar://problem/17279500>

        Reviewed by Simon Fraser.

        In some cases, a fixed or sticky positioned layer would end up at its position corresponding to the WebProcess
        instead of sticking the to real viewport in the UIProcess.

        The sequence of event is:
        1) A layer becomes fixed in some ScrollingTree transaction.
        2) Later, some change in the WebProcess causes a LayerTree update for that exact same layer, but no corresponding
           ScrollingTree update is made.
        3) In the UIProcess, the position of the fixed layer is changed due to the LayerTree update.
           But! There is no ScrollingTree change, updateScrollingTree() never sets fixedOrStickyLayerChanged to true,
           and the position is not corrected.
        -> The layer is now at the wrong position until the next VisibleContentRectUpdate.

        Ideally, we should have fixedOrStickyLayerChanged track if either the position or size of a fixed layer changed
        in the layer tree. This is tricky since the layer tree does not keep track of the fixed nodes of the scrolling tree.

        Since this complexity seems risky at this point, I went for something simpler but with more overhead:
        any time the scrolling tree contains either a fixed or sticky layer, viewportChangedViaDelegatedScrolling()
        is called to "fix" the position.

        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree):
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        (WebKit::RemoteScrollingCoordinatorProxy::hasFixedOrSticky):
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

2014-07-24  Oliver Hunt  <oliver@apple.com>

        Need to explicitly support location services in webcontent profile
        https://bugs.webkit.org/show_bug.cgi?id=135251
        <rdar://17798346>

        Reviewed by Dan Bernstein.

        Switching to uikit-app means that we remove the implicit support
        for location services. This makes us explicitly opt-in.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

2014-07-24  Tim Horton  <timothy_horton@apple.com>

        Crash at [WKContentView _applicationWillEnterForeground:] + 28
        <rdar://problem/17797103>

        Reviewed by Sam Weinig.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _applicationWillEnterForeground:]):
        Drawing area can be null; null check it!
        It's ok if we don't hide the content in this case, because if the drawing area is null,
        it doesn't have any layers in the tree anyway.

2014-07-23  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Some help.apple.com pages not scrollable
        https://bugs.webkit.org/show_bug.cgi?id=135228
        <rdar://problem/17790792>

        Reviewed by Benjamin Poulain.
        
        On pages which size their document to the device size, the WKContentView size
        never changes after it's created. In this situation, we never set a bounds
        on the _rootContentView, so it remains zero-sized which breaks hit testing
        on all enclosed UIScrollViews for overflow:scroll.
        
        Fix by making the _rootContentView and the _inspectorIndicationView use autosizing
        so they are always the size of their parent view, and remove the explicit setting
        of their bounds.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:configuration:webView:]):
        (-[WKContentView setShowingInspectorIndication:]):
        (-[WKContentView _didCommitLayerTree:]):

2014-07-23  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] r171124 is incorrect when the virtual keyboard is up
        https://bugs.webkit.org/show_bug.cgi?id=135187

        Reviewed by Simon Fraser.

        Unfortunately, restricting the input into the document rect does not work.
        When the keyboard is up, the keyboard bounds can overlap the WKWebView, and
        the valid range should account for that.

        Instead of playing with the keyboard rect, we can limit the scroll position
        inside the valid range of UIScrollView. The keyboard always adjusts the UIScrollView
        range as needed to give access to the content. Using that range is a bit more permissive
        because the page could scroll to reveal content in the content inset defined by the client
        of the API (this could actually be quite useful for hybrid apps).

        There was already a function to change the content offset in the valid scrollview
        range: changeContentOffsetBoundedInValidRange(), I extracted the range check
        to contentOffsetBoundedInValidRange() for the needs of -[WKWebView _scrollToContentOffset:].

        So...contentOffsetBoundedInValidRange() is cool, but it is not in the right coordinate
        system. The scroll position we get from the WebProcess is in document coordinates, while
        contentOffsetBoundedInValidRange() works with the UIScrollView coordinates.
        To fix that, we scale the input position to get to the same scale as UIScrollView, then
        apply the insets with the weirdly named [WKWebView _adjustedContentOffset:].

        * UIProcess/API/Cocoa/WKWebView.mm:
        (contentOffsetBoundedInValidRange):
        (changeContentOffsetBoundedInValidRange):
        (-[WKWebView _scrollToContentOffset:]):

2014-07-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171498.
        https://bugs.webkit.org/show_bug.cgi?id=135223

        It will regress some scroll position restoration on navigation
        (r167916). (Requested by smfr on #webkit).

        Reverted changeset:

        "[iOS WK2] Header bar on nytimes articles lands in the wrong
        place after rubberbanding"
        https://bugs.webkit.org/show_bug.cgi?id=135221
        http://trac.webkit.org/changeset/171498

2014-07-23  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
        https://bugs.webkit.org/show_bug.cgi?id=135221

        Reviewed by Tim Horton.
        
        The call to didCommitLayerTree() can cause one or two visible rect updates,
        via changes to the UIScrollView contentSize and contentOffset. As a result, we
        would notify the scrolling tree about a viewport change, but using the old
        scrolling tree rather than the new one, so we could move layers around for
        nodes which are about to be removed from the tree.
        
        Fix by m_webPageProxy->didCommitLayerTree() after the scrolling tree has been
        committed.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

2014-07-23  Oliver Hunt  <oliver@apple.com>

        Add a pseudo target to create sandbox override roots
        https://bugs.webkit.org/show_bug.cgi?id=135216
        <rdar://17785560>

        Reviewed by Alexey Proskuryakov.

        Just a duplicate of the standard ios sandbox target, targetting
        the profile overrides directory.  This means we can make roots
        that "Just Work".

        * WebKit2.xcodeproj/project.pbxproj:

2014-07-23  Oliver Hunt  <oliver@apple.com>

        Incorrect commit for sandbox profile
        https://bugs.webkit.org/show_bug.cgi?id=135214
        <rdar://17739108>

        Reviewed by Anders Carlsson.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

2014-07-23  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17782623> [iOS] Client-certificate authentication isn’t working with some certificates
        https://bugs.webkit.org/show_bug.cgi?id=135206

        Reviewed by Anders Carlsson.

        * Shared/cf/ArgumentCodersCF.cpp:
        (IPC::copyPersistentRef): Added this helper function. It differs from
        SecKeyCopyPersistentRef in that if multiple copies of the key exist in the keychain, it
        ensures that we get a reference to the copy that is in the keychain access group that the
        Networking process can use.
        (IPC::encode): Use copyPersistentRef.

2014-07-23  Bem Jones-Bey  <bjonesbe@adobe.com>

        Remove CSS_EXCLUSIONS compile flag and leftover code
        https://bugs.webkit.org/show_bug.cgi?id=135175

        Reviewed by Zoltan Horvath.

        At this point, the CSS_EXCLUSIONS flag guards nothing but some useless
        stubs. This removes the flag and the useless code.

        * Configurations/FeatureDefines.xcconfig:

2014-07-23  Timothy Horton  <timothy_horton@apple.com>

        REGRESSION (r171239): Much more time spent taking snapshots during the PLT
        https://bugs.webkit.org/show_bug.cgi?id=135177
        <rdar://problem/17764847>

        Reviewed by Dan Bernstein.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::willChangeCurrentHistoryItemForMainFrame):
        (WebKit::WebPageProxy::willChangeCurrentHistoryItem): Deleted.
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::willChangeCurrentHistoryItemForMainFrame):
        (WebKit::WebPage::willChangeCurrentHistoryItem): Deleted.
        * WebProcess/WebPage/WebPage.h:
        Rename WillChangeCurrentHistoryItem to WillChangeCurrentHistoryItemForMainFrame.
        Only send it when the current history item for the main frame changes.

2014-07-23  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] EWebKit2.h should contain version information
        https://bugs.webkit.org/show_bug.cgi?id=135189

        Reviewed by Gyuyoung Kim.

        Generate EWebKit2.h to contain the version information.

        * PlatformEfl.cmake:
        * UIProcess/API/efl/EWebKit2.h.in: Renamed from Source/WebKit2/UIProcess/API/efl/EWebKit2.h.

2014-07-23  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Do not generate forwarding header for ewk headers
        https://bugs.webkit.org/show_bug.cgi?id=135147

        Reviewed by Gyuyoung Kim.

        Only EWebKit2.h and ewk_text_checker.h are generated as forwarding header.
        This is unnecessary.

        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
        * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
        * UIProcess/API/efl/tests/test_ewk2_context_menu.cpp:
        * UIProcess/API/efl/tests/test_ewk2_window_features.cpp:
        * UIProcess/efl/TextCheckerClientEfl.h:

2014-07-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171366.
        https://bugs.webkit.org/show_bug.cgi?id=135190

        Broke three API tests (Requested by ap on #webkit).

        Reverted changeset:

        "REGRESSION (r171239): Much more time spent taking snapshots
        during the PLT"
        https://bugs.webkit.org/show_bug.cgi?id=135177
        http://trac.webkit.org/changeset/171366

2014-07-22  Oliver Hunt  <oliver@apple.com>

        Reduce the size of the root WebContent sandbox profile
        https://bugs.webkit.org/show_bug.cgi?id=135182
        <rdar://problem/17739108>

        Reviewed by Alexey Proskuryakov.

        Switch from apple-ui-app to uikit-app as the root of the webcontent
        profile.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

2014-07-22  Jinwoo Song  <jinwoo7.song@samsung.com>

        Unreviewed build fix on EFL port after r171356.

        Implement a dummy platformMediaCacheDirectory() to avoid undefined reference error.

        * UIProcess/efl/WebContextEfl.cpp:
        (WebKit::WebContext::platformMediaCacheDirectory):

2014-07-22  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): Selection inside accelerated overflow:scroll doesn't track scrolling.
        https://bugs.webkit.org/show_bug.cgi?id=135180
        <rdar://problem/16721055>

        Reviewed by Simon Fraser.

        Adds notifications to the WKContentView to know when scrolling starts and ends
        in an overflow scroll. When scrolling starts, we hide the selection and we restore
        it when scrolling ends, though not before the selection information in the editor
        state has been updated.
        It also adds a new method to the EditorClient class to force the
        selection update when scrolling is completed.
        
        * UIProcess/PageClient.h:
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::scrollingTreeNodeWillStartScroll):
        (WebKit::RemoteScrollingTree::scrollingTreeNodeDidEndScroll):
        * UIProcess/Scrolling/RemoteScrollingTree.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
        (-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
        (-[WKOverflowScrollViewDelegate scrollViewDidEndDecelerating:]):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::overflowScrollWillStart):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::overflowScrollDidEnd):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::overflowScrollWillStartScroll):
        (WebKit::PageClientImpl::overflowScrollDidEndScroll):
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartScroll):
        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidEndScroll):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _overflowScrollingWillBegin]):
        (-[WKContentView _overflowScrollingDidEnd]):
        (-[WKContentView _updateChangedSelection]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::overflowScrollWillStartScroll):
        (WebKit::WebPageProxy::overflowScrollDidEndScroll):
        * WebProcess/WebCoreSupport/WebEditorClient.h:
        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        * WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
        (WebKit::WebEditorClient::updateSelection):

2014-07-22  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] WebPageProxy should not do anything when responding to an animated resize is the page is not in a valid state
        https://bugs.webkit.org/show_bug.cgi?id=135169
        <rdar://problem/17740149>

        Reviewed by Tim Horton.

        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
        Neither m_dynamicViewportSizeUpdateWaitingForTarget nor m_dynamicViewportSizeUpdateWaitingForLayerTreeCommit should
        be modified if there is not WebProcess to respond to DynamicViewportSizeUpdate.

        (WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
        We should not attempt to synchronize anything if the page was closed before the end of the dynamic viewport
        update.

2014-07-22  Timothy Horton  <timothy_horton@apple.com>

        REGRESSION (r171239): Much more time spent taking snapshots during the PLT
        https://bugs.webkit.org/show_bug.cgi?id=135177
        <rdar://problem/17764847>

        Reviewed by Dan Bernstein.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::willChangeCurrentHistoryItemForMainFrame):
        (WebKit::WebPageProxy::willChangeCurrentHistoryItem): Deleted.
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::willChangeCurrentHistoryItemForMainFrame):
        (WebKit::WebPage::willChangeCurrentHistoryItem): Deleted.
        * WebProcess/WebPage/WebPage.h:
        Rename WillChangeCurrentHistoryItem to WillChangeCurrentHistoryItemForMainFrame.
        Only send it when the current history item for the main frame changes.

2014-07-22  Oliver Hunt  <oliver@apple.com>

        Add accountsd access to network sandbox profile
        https://bugs.webkit.org/show_bug.cgi?id=135176
        <rdar://17656487>

        Reviewed by Anders Carlsson.

        This is available to the webcontent process already, but is also
        needed for the networking process.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

2014-07-22  Oliver Hunt  <oliver@apple.com>

        Remove unused com.apple.webkit.* rules from profiles
        https://bugs.webkit.org/show_bug.cgi?id=135174
        <rdar://17755931>

        Reviewed by Anders Carlsson.

        We never send these rules so we should just remove use of them
        from the profiles.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

2014-07-22  Oliver Hunt  <oliver@apple.com>

        Provide networking process with access to its HSTS db
        https://bugs.webkit.org/show_bug.cgi?id=135121
        <rdar://17654369>

        Reviewed by Alexey Proskuryakov.

        Add an extension parameter to pass the hsts database file.
        This requires us to create the Caches/com.apple.WebKit.Networking
        directory in the UI process, as the network sandbox
        does not allow it to create the containing directory.

        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
        (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
        * Shared/Network/NetworkProcessCreationParameters.cpp:
        (WebKit::NetworkProcessCreationParameters::encode):
        (WebKit::NetworkProcessCreationParameters::decode):
        * Shared/Network/NetworkProcessCreationParameters.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::ensureNetworkProcess):
        (WebKit::WebContext::networkingHSTSDatabasePath):
        * UIProcess/WebContext.h:
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath):

2014-07-22  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] UI helpers that zoom on an element ignore the viewport's allowsUserScaling
        https://bugs.webkit.org/show_bug.cgi?id=135140
        <rdar://problem/17754921>

        Reviewed by Tim Horton.

        UIScrollView makes a difference between min/max zoom and allowUserScaling. To express that,
        everything is set up on the LayerTransaction.

        For zooming related helpers (find on page, double tap to zoom, etc), the min and max zoom
        should be the actual min/max for the current page state.

        This patch split the two explicitely.
        For layer transactions, the values are taken from the viewport configuration directly.
        For everything else, we should use minimumPageScaleFactor/maximumPageScaleFactor. Those two methods
        have been updated to take into account allowsUserScaling.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::willCommitLayerTree):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::minimumPageScaleFactor):
        (WebKit::WebPage::maximumPageScaleFactor):
        (WebKit::WebPage::getAssistedNodeInformation):

2014-07-22  Shivakumar JM  <shiva.jm@samsung.com>

        Web Inspector: Fix unused parameter build warning
        https://bugs.webkit.org/show_bug.cgi?id=135151

        Reviewed by Joseph Pecoraro.

        Fix unused parameter build warning by removing the parameter name 

        * WebProcess/WebPage/WebInspector.cpp:
        (WebKit::WebInspector::setJavaScriptProfilingEnabled):

2014-07-22  Shivakumar JM  <shiva.jm@samsung.com>

        Fix unused parameter build warning in UIProcess module
        https://bugs.webkit.org/show_bug.cgi?id=135154

        Reviewed by Alexey Proskuryakov.

        Fix unused parameter build warning in UIProcess module by using UNUSED_PARAM macro.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::viewStateDidChange):

2014-07-22  Jeremy Jones  <jeremyj@apple.com>

        Don't create new UIWindow for video fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=135038

        Reviewed by Darin Adler.

        Use root UIView to parent fullscreen interface.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): pass parent UIView
        * WebProcess/ios/WebVideoFullscreenManager.mm:
        (WebKit::screenRectForNode): Use client rect instead of screen rect.

2014-07-21  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Add Ewk prefix to enums of ewk_navigation_policy
        https://bugs.webkit.org/show_bug.cgi?id=135144

        Reviewed by Gyuyoung Kim.

        All public enums of ewebkit should start with Ewk prefix.
        This patch added Ewk prefix to Ewk_Event_Mouse_Button and Ewk_Event_Modifiers.
        In addition, added missing description and default value for Ewk_Event_Modifier.

        * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
        (toEwkEventMouseButton):
        (toEwkEventModifiers):
        (EwkNavigationPolicyDecision::mouseButton):
        (EwkNavigationPolicyDecision::modifiers):
        (ewk_navigation_policy_mouse_button_get):
        (ewk_navigation_policy_modifiers_get):
        (toEventMouseButton): Deleted.
        (toEventModifierKeys): Deleted.
        * UIProcess/API/efl/ewk_navigation_policy_decision.h:
        * UIProcess/API/efl/ewk_navigation_policy_decision_private.h:

2014-07-21  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Improve event throttling for Scroll Events
        https://bugs.webkit.org/show_bug.cgi?id=135082
        <rdar://problem/17445266>

        Reviewed by Simon Fraser.

        In the WebKit layer, we want a measure that is representative of the responsiveness.

        In this patch, I use the total delay between a VisibleContentRectUpdate being dispatched
        by the UIProcess, and the time RemoteLayerTreeDrawingArea flushes the layer tree.

        The value used for eventThrottlingDelay() is computed by averaging the new value with
        the old values with a 80/20 split, favoring the old data. Favoring historical data
        over the last timing avoid excessively throttling for a single slow frame.

        The computation of m_estimatedMainThreadLatency can be improved in the future, this is
        a first cut keeping things simple.

        With m_estimatedMainThreadLatency in our hands, we can compute our eventThrottlingDelay().
        If m_estimatedMainThreadLatency is smaller than a single frame timespan, we have a fast page
        and nothing is throttled.

        If is it more than a frame, we throttle such that we can at least render two frames
        per event dispatch based on the historical data.

        The exact values will need some tweaking, but this set ensures well written pages get
        60 events per seconds, while slow pages do not waste too much time on events.

        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
        (WebKit::WebChromeClient::eventThrottlingDelay):
        * WebProcess/WebPage/ViewUpdateDispatcher.cpp:
        (WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
        (WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
        * WebProcess/WebPage/ViewUpdateDispatcher.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::didFlushLayerTreeAtTime):
        (WebKit::WebPage::didCommitLoad):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::eventThrottlingDelay):
        (WebKit::WebPage::updateVisibleContentRects):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):

2014-07-21  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r170361): In landscape with UI hidden, fixed position elements at top of screen are too low
        https://bugs.webkit.org/show_bug.cgi?id=135141
        <rdar://problem/17627525>

        Reviewed by Benjamin Poulain.
        
        We can't use the WKWebView's UIScrollView contentInsets to determine the unobscured rect
        in MobileSafari, because contentInsets can't be changed dynamically while scrolling.
        To get around this, MobileSafari sets obscured insets instead (but also sets a fixed
        contentInset).
        
        So if the client calls _setObscuredInsets:, always use _obscuredInsets to compute the 
        content insets.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _computedContentInset]):
        (-[WKWebView _setObscuredInsets:]):

2014-07-21  Oliver Hunt  <oliver@apple.com>

        Remove global cookie workaround from sandbox profiles
        https://bugs.webkit.org/show_bug.cgi?id=135138
        <rdar://17513375>

        Reviewed by Alexey Proskuryakov.

        Remove the workaround needed for global cookie access, and silencing
        of the associated sandbox violation.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultCookieStorageDirectory):

2014-07-21  Oliver Hunt  <oliver@apple.com>

        Correct sandbox profiles to fix some excess privileges
        https://bugs.webkit.org/show_bug.cgi?id=135134
        <rdar://problem/17741886>
        <rdar://problem/17739080>

        Reviewed by Alexey Proskuryakov.

        This cleans up our sandbox profiles to fix a few issues - the profiles
        no longer allow us to issue file extension we have the ability to consume,
        and tightens some of the other file access rules.

        This means we have to addd some rules to allow us to access things
        that we previously had access to due to lax file system restrictions.

        Some of the features were fixable simply by using entitlements on the
        process rather than custom rules.

        * Configurations/WebContent-iOS.entitlements:
        * Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb:
        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

2014-07-21  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Turn off position:fixed behavior when the keyboard is up
        https://bugs.webkit.org/show_bug.cgi?id=132537

        Reviewed by Benjamin Poulain.
        
        Make interaction with form elements inside position:fixed less terrible by re-laying out
        fixed elements relative to the document while we have an assisted node. This ensures
        that all parts of a position:fixed are accessible (e.g. inputs on the right side
        of a fixed-width top bar).
        
        * Shared/AssistedNodeInformation.cpp: Add a flag for being inside postion:fixed,
        and encode/decode it.
        (WebKit::AssistedNodeInformation::encode):
        (WebKit::AssistedNodeInformation::decode):
        * Shared/AssistedNodeInformation.h:
        (WebKit::AssistedNodeInformation::AssistedNodeInformation):
        * UIProcess/PageClient.h: Add isAssistingNode().
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::isAssistingNode):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::computeCustomFixedPositionRect): If we have an assisted
        node, just use the document rect as the custom fixed position rect.
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getAssistedNodeInformation): Get the selection rect first,
        since we have to fix it up for position:fixed. If the element is inside fixed
        position in the main frame, re-set the fixed position rect to the document rect
        (which forces a layout), re-fetch elementRect, then set it back. This ensures
        that the UI process gets an elementRect which it can zoom to correctly.

2014-07-21  Timothy Horton  <timothy_horton@apple.com>

        Random crashes on the Web Thread due to Timers firing on the wrong thread in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=135132
        <rdar://problem/17719832>

        Reviewed by Simon Fraser.

        * UIProcess/ProcessThrottler.cpp:
        (WebKit::ProcessThrottler::ProcessThrottler):
        (WebKit::ProcessThrottler::suspendTimerFired):
        * UIProcess/ProcessThrottler.h:
        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
        We can't use WebCore timers in the UI process because of coexistence concerns
        (they fire on the Web Thread if there is one!), so use RunLoop::Timer instead.

2014-07-21  Andy Estes  <aestes@apple.com>

        [iOS] Handle QuickLook ResourceLoaders in the web process
        https://bugs.webkit.org/show_bug.cgi?id=135113

        Reviewed by David Kilzer.

        The QuickLook framework registers a NSURLProtocol to handle loading subresources of the HTML documents it
        generates. In order for these loads to succeed, we need to start them in the same process in which QuickLook
        generated the main resource.

        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::WebResourceLoadScheduler::scheduleLoad):

2014-07-21  Brady Eidson  <beidson@apple.com>

        DatabaseProcess doesn't relaunch after crashing.
        <rdar://problem/17717343> and https://bugs.webkit.org/show_bug.cgi?id=135117

        Reviewed by Alexey Proskuryakov.

        * UIProcess/Databases/DatabaseProcessProxy.cpp:
        (WebKit::DatabaseProcessProxy::didClose): Tell the WebContext.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::databaseProcessCrashed): Notify supplements, then clear the DatabaseProcessProxy pointer.
        * UIProcess/WebContext.h:

        * UIProcess/WebContextSupplement.h:
        (WebKit::WebContextSupplement::processDidClose): Added. No users right now, but the patch in bug 135035 will need this.

2014-07-20  KwangHyuk Kim  <hyuki.kim@samsung.com>

        Fix warnings caused by unused parameter.
        https://bugs.webkit.org/show_bug.cgi?id=134975

        Reviewed by Gyuyoung Kim.

        Fix warnings on EwkView.cpp and LegacySessionStateCodingNone.cpp that are caused by unused parameter data.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkViewEventHandler<EVAS_CALLBACK_MOUSE_IN>::handleEvent):
        * UIProcess/LegacySessionStateCodingNone.cpp:
        (WebKit::decodeLegacySessionState):

2014-07-20  Jeremy Jones  <jeremyj@apple.com>

        Disable ff/rw based on canPlayFastForward and canPlayFastRewind.
        https://bugs.webkit.org/show_bug.cgi?id=134894

        Reviewed by Darin Adler.

        Add setCanPlayFastReverse

        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: ditto
        * WebProcess/ios/WebVideoFullscreenManager.h: ditto
        * WebProcess/ios/WebVideoFullscreenManager.mm: ditto
        (WebKit::WebVideoFullscreenManager::setCanPlayFastReverse): ditto

2014-07-20  Jeremy Jones  <jeremyj@apple.com>

        Decrease flicker when enter and exit fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=134919

        Reviewed by Simon Fraser.

        Change the sequence of tear down and use transparency to prevent flicker when entering and exiting fullscreen.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: wait to remove layerHost until didCleanupFullscreen
        (WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen): removed from here
        (WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): added here
        * WebProcess/ios/WebVideoFullscreenManager.mm:
        (WebKit::WebVideoFullscreenManager::didSetupFullscreen): use transparent background during transition

2014-07-20  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17739526> REGRESSION (r171057): Crash in WebPage::getPositionInformation()
        https://bugs.webkit.org/show_bug.cgi?id=135099

        Reviewed by David Kilzer.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getPositionInformation): Added a null check.

2014-07-19  Zan Dobersek  <zdobersek@igalia.com>

        Consistently use uint64_t as the handle parameter type for the SetAcceleratedCompositingWindowId message
        https://bugs.webkit.org/show_bug.cgi?id=135047

        Reviewed by Darin Adler.

        UIProcess' WebPageProxy is handling this parameter as an uint64_t, it should be handled as such
        in WebProcess as well.

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in: Also changed the parameter name to match other places.
        * WebProcess/WebPage/gtk/WebPageGtk.cpp:
        (WebKit::WebPage::setAcceleratedCompositingWindowId):

2014-07-18  Oliver Hunt  <oliver@apple.com>

        We don't provide an extension to the temp file used for uploads
        https://bugs.webkit.org/show_bug.cgi?id=135079

        Reviewed by Sam Weinig.

        Make sure didChooseFilesForOpenPanelWithDisplayStringAndIcon vends
        extensions for the files passed to the content process.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):

2014-07-18  Tim Horton  <timothy_horton@apple.com>

        ASSERTion failures in ViewGestureController indicating that we're copying WebBackForwardList
        https://bugs.webkit.org/show_bug.cgi?id=135080
        <rdar://problem/17734714>

        Reviewed by Sam Weinig.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::canSwipeInDirection):

2014-07-18  Yongjun Zhang  <yongjun_zhang@apple.com>

        _WKActivatedElementInfo.title should fallback to innerText if the link doesn't have title attribute.
        https://bugs.webkit.org/show_bug.cgi?id=135077

        When populate InteractionInformationAtPosition's title value, use a link element's innerText if it
        doesn't have title attribute.

        Reviewed by Dan Bernstein.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getPositionInformation):

2014-07-18  Andy Estes  <aestes@apple.com>

        [iOS] Tapping "Allow Website" on a restricted page does not bring up the keypad
        https://bugs.webkit.org/show_bug.cgi?id=135072
        <rdar://problem/17528188>

        Reviewed by David Kilzer.

        * Shared/WebCoreArgumentCoders.h: Declared an ArgumentCoder for WebCore::ContentFilter.
        * Shared/mac/WebCoreArgumentCodersMac.mm:
        (IPC::ArgumentCoder<ContentFilter>::encode): Encoded the ContentFilter using a NSKeyedArchiver.
        (IPC::ArgumentCoder<ContentFilter>::decode): Decoded the ContentFilter using a NSKeyedUnarchiver.
        * UIProcess/Cocoa/WebPageProxyCocoa.mm:
        (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): Called WebFrameProxy::setContentFilterForBlockedLoad().
        * UIProcess/WebFrameProxy.cpp:
        (WebKit::WebFrameProxy::didStartProvisionalLoad): Reset m_contentFilterForBlockedLoad to nullptr.
        (WebKit::WebFrameProxy::contentFilterDidHandleNavigationAction): Called ContentFilter::handleUnblockRequestAndDispatchIfSuccessful().
        If the unblock is successful, reload the WebPageProxy.
        * UIProcess/WebFrameProxy.h:
        (WebKit::WebFrameProxy::setContentFilterForBlockedLoad):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::decidePolicyForNavigationAction): Check if this is navigation represents an unblock
        request and ignore if so.
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in: Defined ContentFilterDidBlockLoadForFrame.
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad): Sent ContentFilterDidBlockLoadForFrame to the WebPageProxy.
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

2014-07-18  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] position:fixed in iframes with programmatic scroll could end up in the wrong place
        https://bugs.webkit.org/show_bug.cgi?id=135078
        <rdar://problem/17401823>

        Reviewed by Tim Horton.
        
        Fix the logging of requested scroll position and frame scale factor.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (WebKit::RemoteScrollingTreeTextStream::dump):

2014-07-18  Joseph Pecoraro  <pecoraro@apple.com>

        [Cocoa] Use RetainPtr in _WKRemoteObjectInterface
        https://bugs.webkit.org/show_bug.cgi?id=135062

        Reviewed by Anders Carlsson.

        Switch to RetainPtr instead of manual memory management of ivars.

        * Shared/API/Cocoa/_WKRemoteObjectInterface.h:
        * Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
        (-[_WKRemoteObjectInterface initWithProtocol:identifier:]):
        (-[_WKRemoteObjectInterface identifier]):
        (-[_WKRemoteObjectInterface description]):
        (-[_WKRemoteObjectInterface dealloc]): Deleted.

2014-07-18  Tim Horton  <timothy_horton@apple.com>

        Take navigation snapshots whenever the current back-forward item is going to change
        https://bugs.webkit.org/show_bug.cgi?id=135058
        <rdar://problem/17464515>

        Reviewed by Dan Bernstein.

        Instead of trying to have the UI process figure out when to take navigation snapshots by itself,
        snapshot whenever the Web process says that the current back-forward item is going to change.
        This fixes snapshotting timing with pushState, and lets us bottleneck snapshotting down to
        just two places instead of 5.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::goForward):
        (WebKit::WebPageProxy::goBack):
        (WebKit::WebPageProxy::goToBackForwardItem):
        (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
        We no longer need to special-case taking navigation snapshots
        when the UI process changes the back forward item or upon
        didStartProvisionalLoadForFrame, because we'll always snapshot
        in willChangeCurrentHistoryItem in all of these cases.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::willChangeCurrentHistoryItem):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        Add willChangeCurrentHistoryItem message, which comes from the Web process.
        When it arrives, take a navigation snapshot.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        Take the pre-swipe navigation snapshot before telling WebPageProxy that we're doing a swipe,
        so that it doesn't bail from taking the snapshot because we have a snapshot up.

        (WebKit::ViewGestureController::endSwipeGesture):
        We no longer need to explicitly disable snapshotting while navigating, because
        we will avoid taking the snapshot if there's a snapshot being displayed.

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::~ViewGestureController):
        Remove the snapshot if it's still up when ViewGestureController is destroyed.
        The Mac version of ViewGestureController is destroyed on Web process crashes
        because it is a message receiver, so it is not guaranteed to have the same
        lifetime as the WebPageProxy and friends.

        (WebKit::ViewGestureController::trackSwipeGesture):
        Make use of recordNavigationSnapshot.

        (WebKit::ViewGestureController::endSwipeGesture):
        Ditto from the Mac version.

        * UIProcess/mac/ViewSnapshotStore.h:
        (WebKit::ViewSnapshotStore::disableSnapshotting): Deleted.
        (WebKit::ViewSnapshotStore::enableSnapshotting): Deleted.
        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::ViewSnapshotStore):
        (WebKit::ViewSnapshotStore::recordSnapshot):
        Remove the snapshot disabling mechanism and bail from snapshotting if we're
        showing a snapshot, as mentioned above.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem):
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::willChangeCurrentHistoryItem):
        * WebProcess/WebPage/WebPage.h:
        Proxy willChangeCurrentHistoryItem from HistoryController to the UI process.

2014-07-18  Jon Honeycutt  <jhoneycutt@apple.com>

        REGRESSION: Crash when typing into text field that clears itself on iOS

        <https://bugs.webkit.org/show_bug.cgi?id=135044>
        <rdar://problem/17640443>

        Reviewed by Darin Adler.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::requestAutocorrectionData):
        wordRangeFromPosition() returns null in some cases; null check range
        before dereferencing it. Moved some variable declarations around to
        better match our style.

2014-07-18  Tim Horton  <timothy_horton@apple.com>

        [WK2] Provide a mechanism to grab the back-forward list for gesture navigation purposes from another WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=134999
        <rdar://problem/17238025>

        Reviewed by Sam Weinig.

        In some cases, clients may need to throw a WKWebView with no back-forward list over
        another WKWebView, and want to participate in gesture swipe as if they were actually
        the page being overlaid.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView setAllowsBackForwardNavigationGestures:]):
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration copyWithZone:]):
        (-[WKWebViewConfiguration _alternateWebViewForNavigationGestures]):
        (-[WKWebViewConfiguration _setAlternateWebViewForNavigationGestures:]):
        * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
        Keep an "alternate" WKWebView "for navigation gestures", which ViewGestureController
        will use as the real source of back-forward items, and the destination of the swipe navigation.
        All swipe delegate callbacks will also fire from the alternate view, because it owns the items
        and will be doing the navigation.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::setAlternateBackForwardListSourceView):
        (WebKit::ViewGestureController::beginSwipeGesture):
        Send navigationGestureDidBegin via the alternate view's WebPageProxy if it exists.
        Record a new snapshot on the current page, but copy it to the alternate view if necessary,
        so that when swiping forward from the alternate view, it will have the "right" snapshot.
        Get the target back forward item from the alternate view.
        Send navigationGestureWillEnd via the alternate view's WebPageProxy if it exists.

        (WebKit::ViewGestureController::canSwipeInDirection):
        Determine if we can swipe in a direction by looking at the alternate view's back-forward list if necessary.

        (WebKit::ViewGestureController::endSwipeGesture):
        Send navigationGestureDidEnd via the alternate view's WebPageProxy if it exists.
        Perform the navigation on the alternate view if necessary.

        (WebKit::ViewGestureController::removeSwipeSnapshot):
        Send navigationGestureSnapshotWasRemoved via the alternate view's WebPageProxy if it exists.

        * UIProcess/mac/ViewGestureController.h:

2014-07-17  David Kilzer  <ddkilzer@apple.com>

        SECTORDER_FLAGS should be defined in target's xcconfig file, not Base.xcconfig
        <http://webkit.org/b/135006>

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
        WebKit.xcconfig.
        * Configurations/DebugRelease.xcconfig: Remove empty
        SECTORDER_FLAGS definition.
        * Configurations/WebKit.xcconfig: Use $(CONFIGURATION) so
        SECTORDER_FLAGS is only set on Production builds.

2014-07-17  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r171167): LoaderClient processDidCrash call is made after load state changes
        https://bugs.webkit.org/show_bug.cgi?id=135032
        <rdar://problem/17716602>

        Reviewed by Dan Bernstein.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::processDidCrash): Create a transaction, so that the nested
        transaction in resetStateAfterProcessExited() wouldn't be committed.
        (WebKit::WebPageProxy::resetStateAfterProcessExited): Don't use auto - it was hiding
        the most important fact that this is a stack object that can't be simply moved to
        a different function.

2014-07-17  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix the updateVisibleContentRects synchronization for load after r171154
        https://bugs.webkit.org/show_bug.cgi?id=135036

        Reviewed by Dan Bernstein.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):
        I forgot to update one of the condition after changing from lastTransaction to next transaction
        in r171154.

2014-07-17  Enrica Casucci  <enrica@apple.com>

        [REGRESSION WK2]The menu bar does not show up when tapping on the caret.
        https://bugs.webkit.org/show_bug.cgi?id=135023
        <rdar://problem/17617282>

        Reviewed by Benjamin Poulain and Ryosuke Niwa.

        WKContentView needs to implement hasContent to correctly show
        the appropriate menu bar content. The patch adds this information
        to the EditorState.

        * Shared/EditorState.cpp:
        (WebKit::EditorState::encode):
        (WebKit::EditorState::decode):
        * Shared/EditorState.h:
        (WebKit::EditorState::EditorState):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView hasContent]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::editorState):

2014-07-17  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Add SPI to do a dynamic viewport update without showing any content
        https://bugs.webkit.org/show_bug.cgi?id=135010

        Reviewed by Darin Adler.

        This patch add a new SPI, [WKWebView _resizeWhileHidingContentWithUpdates:] to perform all the work
        of a dynamic viewport size update, but instead of animating the old content, it is hidden.

        The patch is built on top of the animated resize mechanism. Instead of having an animation driving
        the beginning and end, we let the content do that. The dynamic resize begins, it runs for as long as
        the WebProcess needs, and it ends when first layer tree commit with the new content is processed.

        The attribute "_isAnimatingResize" is generalized to support two modes of resizing: animated and
        hiding content.

        The attribute "_hasCommittedLoadForMainFrame" is rather silly. It is only needed because
        [WKWebView _resizeWhileHidingContentWithUpdates:] is intended to be called a lot before the page
        is initialized, and doing an animated resize would trash the WebProcess state.
        I wish I had a better solution, this is not great.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _processDidExit]):
        (-[WKWebView _didCommitLoadForMainFrame]):
        (-[WKWebView _didCommitLayerTree:]):
        This is the key to make this work properly. We want _resizeWhileHidingContentWithUpdates: to behave
        exactly like an animated resize to avoid bugs. So we went to the whole update mechanism using
        _resizeAnimationTransformAdjustments to accumulate the adjustments, now we need to restore a correct
        view state.

        Calling [WKWebView _endAnimatedResize] will do exactly that, but we need to make sure we do not hit
        the synchronization path or we would be blocked there for a while, which is what we are trying to avoid.

        After r171154, WebPageProxy keeps track of what stage of dynamic viewport update we are in. Since we are
        executing the layer tree update stage, with the right transaction ID, WebPageProxy already knows we have
        everything we need and does not use any synchronous messages.

        (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]):
        (-[WKWebView _restorePageStateToExposedRect:scale:]):
        (-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):
        (-[WKWebView _scrollToContentOffset:]):
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _updateVisibleContentRects]):
        (-[WKWebView _setMinimumLayoutSizeOverride:]):
        (-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
        (-[WKWebView _setInterfaceOrientationOverride:]):
        (-[WKWebView _setMaximumUnobscuredSizeOverride:]):
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        (-[WKWebView _endAnimatedResize]):
        (-[WKWebView _resizeWhileHidingContentWithUpdates:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-07-17  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Full screen video not always animating in the correct Space
        https://bugs.webkit.org/show_bug.cgi?id=135020
        <rdar://problem/17542310>

        Reviewed by Dean Jackson.

       The fullscreen window can "remember" the Space it was part of the first time you enter fullscreen
       mode. Subsequent fullscreen transitions will always start from this Space, even if you move
       the WebKit-hosted application to a different Space.

       We can help the display system know when we've moved to a new Space by calling NSWindow's
       'orderBack' method on the fullscreen window prior to starting the transition to fullscreen mode.
       This method call hooks the window into the current Space so everything works properly.

        * UIProcess/mac/WKFullScreenWindowController.mm:
        (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): Add the
        new fullscreen window to the current Space before starting transition to fullscreen.

2014-07-17  Timothy Hatcher  <timothy@apple.com>

        Make console.profile record to the Timeline.

        https://bugs.webkit.org/show_bug.cgi?id=134643

        Reviewed by Joseph Pecoraro.

        * WebProcess/WebPage/WebInspector.cpp:
        (WebKit::WebInspector::setJavaScriptProfilingEnabled):
        (WebKit::WebInspector::startJavaScriptProfiling):
        (WebKit::WebInspector::stopJavaScriptProfiling):

2014-07-17  Brady Eidson  <beidson@apple.com>

        Crash in ServicesOverlayController::~ServicesOverlayController.
        <rdar://problem/17622172> and https://bugs.webkit.org/show_bug.cgi?id=135022

        Reviewed by Tim Horton.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::~ServicesOverlayController): Don’t need to uninstall the
            PageOverlay as it has already been destroyed by this point in WebPage::~WebPage.

2014-07-17  Tim Horton  <timothy_horton@apple.com>

        Sometimes purgeable (or empty!) tiles are shown on screen when resuming the app
        https://bugs.webkit.org/show_bug.cgi?id=135018
        <rdar://problem/17615038>

        Reviewed by Simon Fraser.

        * UIProcess/DrawingAreaProxy.h:
        (WebKit::DrawingAreaProxy::hideContentUntilNextUpdate):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilNextUpdate):
        * UIProcess/mac/RemoteLayerTreeHost.h:
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::detachRootLayer):
        Add a mechanism to "hide" drawing area content until the next commit,
        by detaching the root layer. RemoteLayerTreeHost will automatically reattach
        it at the next commit.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::viewStateDidChange):
        * UIProcess/WebPageProxy.h:
        Add a parameter to viewStateDidChange specifying whether dispatching the change
        to the Web process is deferrable or not. We will also automatically use "Immediate" if
        the view is coming in-window, like we did before.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _applicationWillEnterForeground:]):
        Make use of the aforementioned new mechanisms to ensure that we immediately dispatch
        view state changes when coming into the foreground, and will have removed the root layer
        if a commit didn't come in while waitForDidUpdateViewState blocks.
        
2014-07-17  Sanghyup Lee  <sh53.lee@samsung.com>

        [EFL][WK2] Add a "focus,notfound" signal.
        https://bugs.webkit.org/show_bug.cgi?id=134674

        Reviewed by Gyuyoung Kim.

        Add a "focus,notfound" signal to handover focus control to application
        because there are no elements of webview to focus on the given direction.

        Application can decide to move the focus to next widget of ewk_view or something else
        by using this signal.

        * UIProcess/API/efl/EwkViewCallbacks.h:
        * UIProcess/API/efl/ewk_view.h:
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Added keyDown and keyUp function.
        (EWK2UnitTest::EWK2UnitTestBase::waitUntilDirectionChanged):
        (EWK2UnitTest::EWK2UnitTestBase::keyDown):
        (EWK2UnitTest::EWK2UnitTestBase::keyUp):
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (EWK2ViewTest::FocusNotFoundCallback):
        (TEST_F):
        * UIProcess/efl/PageUIClientEfl.cpp: Removed unnecessary calls to evas_object_focus_set().
        (WebKit::PageUIClientEfl::takeFocus):

2014-07-16  Brady Eidson  <beidson@apple.com>

        Reintroduce the SPI _websiteDataURLForContainerWithURL: that was removed in r171160
        https://bugs.webkit.org/show_bug.cgi?id=134984

        Reviewed by David Kilzer.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (+[WKProcessPool _websiteDataURLForContainerWithURL:]):
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

2014-07-16  Alexey Proskuryakov  <ap@apple.com>

        A test that hangs at cleanup stage confuses webkitpy hugely
        https://bugs.webkit.org/show_bug.cgi?id=122475
        <rdar://problem/17184354>

        Reviewed by Anders Carlsson.

        Reset m_pageLoadState when the process exits cleanly - otherwise messages from a
        new process for the same WebPageProxy would hit assertions.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::processDidCrash):
        (WebKit::WebPageProxy::resetStateAfterProcessExited):

2014-07-16  David Kilzer  <ddkilzer@apple.com>

        [iOS] Update order file paths for WebKit and WebKit2
        <http://webkit.org/b/134993>
        <rdar://problem/17557776>

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig: Add order file for iOS
        named WebKit.order.

2014-07-16  Brady Eidson  <beidson@apple.com>

        Add WebSecurityOrigin "webSecurityOriginFromDatabaseIdentifier" SPI and change _websiteDataURLForContainerWithURL: SPI
        <rdar://problem/17454712> and https://bugs.webkit.org/show_bug.cgi?id=134984

        Reviewed by Dan Bernstein.

        Change _websiteDataURLForContainerWithURL: SPI to include an optional bundle identifier argument:
        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (+[WKProcessPool _websiteDataURLForContainerWithURL:bundleIdentifierIfNotInContainer:]):
        (+[WKProcessPool _websiteDataURLForContainerWithURL:]): Deleted.
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

        Add a big shiny comment in a few key places:
        * DatabaseProcess/DatabaseProcess.cpp:
        (WebKit::DatabaseProcess::initializeDatabaseProcess):
        * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
        (WebKit::UniqueIDBDatabase::UniqueIDBDatabase):
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
        (WebKit::WebContext::ensureDatabaseProcess):

2014-07-16  Enrica Casucci  <enrica@apple.com>

        REGRESSION (iOS WebKit2): Cannot scroll while dragging a selection.
        https://bugs.webkit.org/show_bug.cgi?id=134992
        <rdar://problem/17528020>

        Reviewed by Benjamin Poulain.

        This patch exposes the scroller and the visible content rect so that
        UIKit can implement autoscroll when dragging the selections.
        It also changes that way we do hit testing to allow hit test outside
        the clipping region and fixes the way we compute the selection rectangle
        for the block selection, ensuring that we consider also non text elements
        like images.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView scroller]):
        (-[WKContentView visibleRect]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::selectionBoxForRange):
        (WebKit::WebPage::rangeForWebSelectionAtPosition):
        (WebKit::WebPage::rangeForBlockAtPoint):
        (WebKit::WebPage::expandedRangeFromHandle):
        (WebKit::WebPage::contractedRangeFromHandle):
        (WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):
        (WebKit::WebPage::changeBlockSelection):

2014-07-16  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/17669097> REGRESSION (r170155): Sandbox violations using a wrong
        CFNetwork cache path in WebContent process

        Rubber-stamped by Sam Weinig.

        Before r170155, we incorrectly checked usesNetworkProcess(), which always returns
        false at this point in initialization sequence. But we did the right thing, as we
        always need to set the cache path, even when network process is used for most loading.

        * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

2014-07-16  Timothy Horton  <timothy_horton@apple.com>

        Dispatch top content inset changes immediately if synchronously waiting for view state changes
        ​https://bugs.webkit.org/show_bug.cgi?id=134942
        <rdar://problem/17666800>

        Reviewed by Simon Fraser.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _dispatchSetTopContentInset]):
        (-[WKView _setTopContentInset:]):
        Move the check from _setTopContentInset: to _dispatchSetTopContentInset
        that ensures that we only send the message if the top content inset changed.

2014-07-16  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Synchronize the dynamic viewport updates with their layer tree commit
        https://bugs.webkit.org/show_bug.cgi?id=134965
        Related to <rdar://problem/17082607>

        Reviewed by Tim Horton.

        Dynamic viewport update relies on the _resizeAnimationTransformAdjustments being applied
        to the page at the new size during the transition.

        Because of the races between the LayerTree Commit and DynamicViewportSizeUpdate, the transform
        can be applied to the wrong set of tiles.
        This is mostly a problem for unresponsive WebProcess or when the synchronization is done
        immediately.

        There is at least one more case that is not handled: if synchronizeDynamicViewportUpdate()
        completely fails to get the new page, the UIProcess is in a somewhat messy state.
        I will look into that separately than the layer tree synchronization.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:]):
        (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]):
        (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::resetState):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::dynamicViewportUpdateChangedTarget):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
        (WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
        (WebKit::WebPageProxy::didCommitLayerTree):
        (WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::didCommitLoad):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::synchronizeDynamicViewportUpdate):
        (WebKit::WebPage::updateVisibleContentRects):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        (WebKit::RemoteLayerTreeDrawingArea::nextTransactionID):
        (WebKit::RemoteLayerTreeDrawingArea::currentTransactionID): Deleted.

2014-07-16  Dan Bernstein  <mitz@apple.com>

        REGRESSION (r170653): Web Content service’s Info.plist has wrong format
        https://bugs.webkit.org/show_bug.cgi?id=134973

        Reviewed by Alexey Proskuryakov.

        * WebKit2.xcodeproj/project.pbxproj: Updated the Add CFBundle Localization Info.plist Key
        script build phases to convert Info.plist back to binary format if the
        PLIST_FILE_OUTPUT_FORMAT build setting requires it.

2014-07-15  Benjamin Poulain  <bpoulain@apple.com>

        Fix r171124

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _scrollToContentOffset:]):
        On landing, I changed the min/max branches to shrunkTo/expandedTo, but the return value
        of those was ignored.

2014-07-15  Dan Bernstein  <mitz@apple.com>

        WKWebView’s FormClient::willSubmitForm should use CompletionHandlerCallChecker
        https://bugs.webkit.org/show_bug.cgi?id=134951

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _setFormDelegate:]):

2014-07-15  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Scrolling request from the scrolling tree must be limited to offsets in the document
        https://bugs.webkit.org/show_bug.cgi?id=134952
        <rdar://problem/17647116>

        Reviewed by Enrica Casucci.

        When we received a scroll request, we were taking that offset directly to set the UIScrollView
        scroll position. This is a problem if a page request scrolling to an invalid position, we were
        still doing it.

        This patch limits the position to be inside the document.

        -- Why not limit the scroll offset in the WebProcess when we receive the scroll request? --

        Some pages rely on the page scale factor changing instantly, because that is how it worked
        on WebKit1.

        On WebKit2, the WebProcess cannot know the valid range because the obscured insets are changing
        dynamically, and the page scale factor can change in response to WebProcess events (the focus
        changing for example). To make the page works, the WebProcess does not restrict the scroll position.

        In that architecture, the UIProcess has to sanitize the input, which was not done before this patch.

        -- Why not use changeContentOffsetBoundedInValidRange()?

        The scroll offset as seen by the page is relative to the unobscured rect. While the position used
        for history item is a visual position. All we need in this case is a position in the view.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _scrollToContentOffset:]):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::resendLastVisibleContentRects):

2014-07-15  Timothy Horton  <timothy_horton@apple.com>

        Dispatch top content inset changes immediately if synchronously waiting for view state changes
        https://bugs.webkit.org/show_bug.cgi?id=134942
        <rdar://problem/17666800>

        Reviewed by Simon Fraser.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView endDeferringViewInWindowChanges]):
        (-[WKView endDeferringViewInWindowChangesSync]):
        (-[WKView _dispatchSetTopContentInset]):
        (-[WKView _setTopContentInset:]):
        Send top content inset changes immediately before sync-waiting for new tiles from the Web Process.
        This will ensure that the incoming contents have the right top content inset, and we don't
        flash between the wrong inset and the right one.

2014-07-15  Enrica Casucci  <enrica@apple.com>

        REGRESSION(WK2 iOS): Safari hangs when switching focus from a field using the Tab key.
        https://bugs.webkit.org/show_bug.cgi?id=134934
        <rdar://problem/17224638>

        Reviewed by Tim Horton.

        * UIProcess/ios/WKContentViewInteraction.mm:
        
        Tab and back tab should be handled as special keys that have
        a command associated. The command specifies for each key the relevant
        action. This patch implements the commands property to create the association
        between key and command and the relevant actions that will execute the same
        code executed when the used taps on the < > buttons in the accessory bar.
        
        (-[WKContentView keyCommands]):
        (-[WKContentView _nextAccessoryTab:]):
        (-[WKContentView _prevAccessoryTab:]):

2014-07-15  Oliver Hunt  <oliver@apple.com>

        More tidying of the webcontent sandbox profile
        https://bugs.webkit.org/show_bug.cgi?id=134938

        Reviewed by Alexey Proskuryakov.

        Remove some excessive abilities from the profile and make
        the required ones explicit.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

2014-07-14  Andreas Kling  <akling@apple.com>

        [iOS] Don't progressively re-render tiles while pinch-zooming under memory pressure.
        <https://webkit.org/b/134915>

        When we're under memory pressure, the last thing we want to be doing is
        creating gratuitous new IOSurfaces. Just wait for the gesture to end before
        rendering at the new scale.

        Reviewed by Tim Horton.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):

2014-07-14  Joseph Pecoraro  <pecoraro@apple.com>

        [Cocoa] _WKRemoteObjectInterface leaks NSString ivar
        https://bugs.webkit.org/show_bug.cgi?id=134914

        Reviewed by Simon Fraser.

        Release our copied NSString in dealloc.

        * Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
        (-[_WKRemoteObjectInterface dealloc]):

2014-07-14  Dean Jackson  <dino@apple.com>

        [PlugIns] Check for a non-null snapshot image before trying to decode it
        https://bugs.webkit.org/show_bug.cgi?id=134913
        <rdar://problem/17606033>

        Reviewed by Tim Horton.

        Changeset r169820 introduced a bug where we could examine the pixels of
        an image (looking for solid colors) before checking if the image actually
        existed.

        I added a null check, and moved the code around a bit to avoid checking
        for existence three times.

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::pluginSnapshotTimerFired): Check that snapshotImage exists
        before trying to look at it.

2014-07-14  Anders Carlsson  <andersca@apple.com>

        Fix 32-bit build.

        * UIProcess/Cocoa/SessionStateCoding.mm:
        (WebKit::encodeSessionState):

2014-07-14  Anders Carlsson  <andersca@apple.com>

        Use the legacy session coder for encoding/decoding session state
        https://bugs.webkit.org/show_bug.cgi?id=134910

        Reviewed by Beth Dakin.

        * UIProcess/Cocoa/SessionStateCoding.mm:
        (WebKit::encodeSessionState):
        (WebKit::decodeSessionState):

2014-07-14  Oliver Hunt  <oliver@apple.com>

        Restrict network process to remote connections
        https://bugs.webkit.org/show_bug.cgi?id=134908

        Reviewed by Geoffrey Garen.

        Further restrict network client

        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

2014-07-14  Tim Horton  <timothy_horton@apple.com>

        ASSERT(isMainThread()) under OneShotDisplayLinkHandler
        https://bugs.webkit.org/show_bug.cgi?id=134900

        Reviewed by Simon Fraser.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (-[OneShotDisplayLinkHandler displayLinkFired:]):
        isMainThread means the Web thread sometimes.

2014-07-14  Tim Horton  <timothy_horton@apple.com>

        Fix the build.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView _frameOrBoundsChanged]):

2014-07-14  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [UNIX] Log error description when failing to create shared memory file.
        https://bugs.webkit.org/show_bug.cgi?id=134892

        Reviewed by Darin Adler.

        * Platform/unix/SharedMemoryUnix.cpp:
        (WebKit::SharedMemory::create): Print the string describing the error number (errno).

2014-07-14  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] On rotation, RemoteLayerTreeDrawingArea renders one extra frame at the wrong orientation
        https://bugs.webkit.org/show_bug.cgi?id=134875

        Reviewed by Tim Horton.

        On animated resize, the size of the DrawingAreaProxy was changed before the layout parameters were
        changed. This in turn caused the WebProcess's DrawingArea to flush the layer tree while still
        at the wrong orientation.

        This patch fixes the issue by making a special case for animated resize:
        -While starting animated resize, _frameOrBoundsChanged can be called several times in response to
         the API's client changing the WKWebView. In that case, we do not update the drawing area.
        -After the "updateBlock" is executed and the size have been changed, the dynamic viewport update
         is computed, the dynamicViewportSizeUpdate is sent to the WebProcess, followed by the message
         DrawingArea::updateGeometry(). Since both messages are asynchronous, they are received in that
         order, and the updateGeometry() is always done after the viewport configuration has been updated.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView setMinimumSize:]): Deleted.

2014-07-14  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix withinEpsilon()
        https://bugs.webkit.org/show_bug.cgi?id=134798

        Reviewed by Darin Adler.

        Move the function back to WKWebView, it is no longer needed in WKContentView.

        Use the real types as input to properly verify that the two inputs are within
        a small value of the 32bit floating point.

        The epsilon we use is always on 32 bits float because we want to avoid doing work for changes
        that would not make any difference on float.

        The source of those small changes comes from the fact UIProcess does a lot of processing
        on CGFloat, which are double on 64bits architecture, while the WebProcess use 32bits floating point
        for scale. When we are getting updates from the WebProcess, we should ignore any small differences
        caused by the computations done with less precision.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (withinEpsilon):
        * UIProcess/ios/WKContentViewInteraction.h:
        (withinEpsilon): Deleted.

2014-07-14  Bear Travis  <betravis@adobe.com>

        [Feature Queries] Enable Feature Queries on Mac
        https://bugs.webkit.org/show_bug.cgi?id=134404

        Reviewed by Antti Koivisto.

        Enable Feature Queries on Mac and resume running the
        feature tests.

        * Configurations/FeatureDefines.xcconfig: Turn on
        ENABLE_CSS3_CONDITIONAL_RULES.

2014-07-14  Anders Carlsson  <andersca@apple.com>

        Make shouldKeepCurrentBackForwardListItemInList part of WKPageLoaderClientV5 to avoid breaking ABI
        https://bugs.webkit.org/show_bug.cgi?id=134889

        Reviewed by Beth Dakin.

        * UIProcess/API/C/WKPage.cpp:
        * UIProcess/API/C/WKPageLoaderClient.h:

2014-07-14  Dan Bernstein  <mitz@apple.com>

        REGRESSION (r171045): Reproducible crash on navigation in PageClientImpl::willRecordNavigationSnapshot
        https://bugs.webkit.org/show_bug.cgi?id=134887

        Reviewed by Tim Horton.

        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::navigationGestureDidBegin): nil-check m_webView. It can be nil when
        the client is using WKView directly.
        (WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
        (WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.
        (WebKit::PageClientImpl::willRecordNavigationSnapshot): Ditto.

2014-07-14  Eric Carlson  <eric.carlson@apple.com>

        [Mac] don't enable low power audio mode on external output devices
        https://bugs.webkit.org/show_bug.cgi?id=134877

        Reviewed by Sam Weinig.

        * PluginProcess/PluginProcess.h: Add an empty implementation of 
            AudioHardwareListener::audioOutputDeviceChanged.

2014-07-14  Tim Horton  <timothy_horton@apple.com>

        [iOS] Throttle painting using a UI-process-side CADisplayLink
        https://bugs.webkit.org/show_bug.cgi?id=134879
        <rdar://problem/17641699>

        Reviewed by Simon Fraser.

        Just waiting for CA to commit is insufficient to actually throttle to 60fps,
        because nothing will block the main runloop from spinning.

        Instead, listen to a CADisplayLink, and send didUpdate to the WebProcess
        the first time it fires after we commit. This is not a guarantee that
        our content is on the screen, but we don't have any way to make that guarantee yet.

        This will throttle painting, rAF, etc. to the display refresh rate.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (-[OneShotDisplayLinkHandler initWithDrawingAreaProxy:]):
        (-[OneShotDisplayLinkHandler dealloc]):
        (-[OneShotDisplayLinkHandler displayLinkFired:]):
        (-[OneShotDisplayLinkHandler invalidate]):
        (-[OneShotDisplayLinkHandler schedule]):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers): Deleted.

2014-07-14  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17657391> [iOS] Networking process writes persistent credentials to the keychain
        https://bugs.webkit.org/show_bug.cgi?id=134878

        Reviewed by Sam Weinig.

        Route CFNetwork’s calls to Security API through to the UI process.

        * NetworkProcess/ios/NetworkProcessIOS.mm:
        (WebKit::NetworkProcess::platformInitializeNetworkProcess): Initialize SecItemShim.

        * Shared/mac/SecItemShim.cpp:
        (WebKit::SecItemShim::initialize): On iOS, rather than using a shim library, supply
        CFNetwork with alternate functions to call.

        * Shared/mac/SecItemShim.messages.in: Removed #if !PLATFORM(IOS).
        * UIProcess/mac/SecItemShimProxy.messages.in: Ditto.

        * config.h: Define ENABLE_SEC_ITEM_SHIM to 1 on iOS as well.

2014-07-14  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17398060> NetworkProcess sometimes hangs under copyDefaultCredentialForProtectionSpace
        https://bugs.webkit.org/show_bug.cgi?id=134666

        Reviewed by Tim Horton.

        A SecItem may have an attribute whose value is a SecAccessControlRef, which is not supported
        by ArgumentCodersCF. In debug builds, trying to encode a CFDictionary containing a value of
        unsupprted type causes an assertion to fail, but in release builds encoding succeeds, and
        only decoding fails, in this case silently, simply not delivering the
        SecItemShim::secItemResponse message.

        The fix is to teach ArgumentCodersCF about SecAccessControlRef.

        * Shared/cf/ArgumentCodersCF.cpp:
        (IPC::typeFromCFTypeRef): Check for the SecAccessControlRef type.
        (IPC::encode): Encode the SecAccessControl serialized into CFData.
        (IPC::decode): Deserialize a SecAccessControl from the decoded CFData.
        * Shared/cf/ArgumentCodersCF.h:
        * config.h: Defined HAVE_SEC_ACCESS_CONTROL.

2014-07-13  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17295636> [Cocoa] Include element snapshot in _WKActivatedElementInfo
        https://bugs.webkit.org/show_bug.cgi?id=134872

        Reviewed by Sam Weinig.

        * Shared/InteractionInformationAtPosition.cpp:
        (WebKit::InteractionInformationAtPosition::encode): Encode the image if there is one.
        (WebKit::InteractionInformationAtPosition::decode): Decode the image if there is one.
        * Shared/InteractionInformationAtPosition.h: Added an image member to the struct.

        * UIProcess/API/Cocoa/_WKActivatedElementInfo.h: Exposed the boundingRect property and added
        an image property.
        * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
        (-[_WKActivatedElementInfo _initWithType:URL:location:title:rect:image:]): Added an image
        parameter, which is stored in a new ivar.
        (-[_WKActivatedElementInfo image]): Added this getter, which converts the ShareableBitmap
        into a cached Cocoa image and returns it.
        * UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: Added image parameter to the
        initializer, removed _boundingRect property declaration from here.

        * UIProcess/ios/WKActionSheetAssistant.mm:
        (-[WKActionSheetAssistant showImageSheet]): Pass the image from the position information
        into the _WKActivatedElementInfo initializer.
        (-[WKActionSheetAssistant showLinkSheet]): Ditto.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::snapshotNode): Added.
        * WebProcess/WebPage/WebPage.h:

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getPositionInformation): If the element is a link or an image, store a
        snapshot of it in the image member of the InteractionInformationAtPosition.

2014-07-13  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Clean up session state API a little
        https://bugs.webkit.org/show_bug.cgi?id=134871

        Reviewed by Darin Adler.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _sessionState]):
        (-[WKWebView _restoreFromSessionState:]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-07-13  Javier Fernandez  <jfernandez@igalia.com>

        REGRESSION(r171045) [GTK] Build broken.
        https://bugs.webkit.org/show_bug.cgi?id=134867

        Unreviewed GTK build fix after r171045.

        * UIProcess/API/gtk/PageClientImpl.cpp:
        (WebKit::PageClientImpl::willRecordNavigationSnapshot):
        * UIProcess/API/gtk/PageClientImpl.h:

2014-07-13  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed, EFL build fix since r171045.

        * UIProcess/CoordinatedGraphics/WebView.h:

2014-07-12  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Notify the client when a navigation snapshot is taken
        https://bugs.webkit.org/show_bug.cgi?id=134865

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.

        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate): Initialize new flag in
        m_navigationDelegateMethods.
        (WebKit::NavigationState::willRecordNavigationSnapshot): Added. Calls the new
        WKNavigationDelegate method.

        * UIProcess/PageClient.h: Declared new client function.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::willRecordNavigationSnapshot): Added. Calls the new client function.
        * UIProcess/WebPageProxy.h:

        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::willRecordNavigationSnapshot): Override that calls
        NavigationState::willRecordNavigationSnapshot.

        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::willRecordNavigationSnapshot): Ditto.

        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::recordSnapshot): Added a call to
        WebPageProxy::willRecordNavigationSnapshot.

2014-07-12  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed, fix EFL build break since r171034.

        * UIProcess/CoordinatedGraphics/WebView.h:
        * UIProcess/efl/WebContextEfl.cpp:
        (WebKit::WebContext::platformMediaCacheDirectory):

2014-07-12  Darin Adler  <darin@apple.com>

        Try to fix 32-bit Mac build.

        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::navigationGestureDidBegin): Added WK_API_ENABLED conditional.
        (WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
        (WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.

2014-07-12  Javier Fernandez  <jfernandez@igalia.com>

        REGRESSION(r171034) [GTK] Build broken.
        https://bugs.webkit.org/show_bug.cgi?id=134861

        Unreviewed GTK build fix.

        * UIProcess/API/gtk/PageClientImpl.cpp:
        (WebKit::PageClientImpl::navigationGestureDidBegin):
        (WebKit::PageClientImpl::navigationGestureWillEnd):
        (WebKit::PageClientImpl::navigationGestureDidEnd):
        * UIProcess/API/gtk/PageClientImpl.h:

2014-07-12  Javier Fernandez  <jfernandez@igalia.com>

        REGRESSION(r171024) [GTK] Build broken.
        https://bugs.webkit.org/show_bug.cgi?id=134859

        Unreviewed GTK build fix.

        * UIProcess/gtk/WebContextGtk.cpp:
        (WebKit::WebContext::platformMediaCacheDirectory):

2014-07-12  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16020380> [Cocoa] Inform the client when back-forward navigation gestures begin and end
        https://bugs.webkit.org/show_bug.cgi?id=134853

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new WKNavigationDelegate
        methods.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _isShowingNavigationGestureSnapshot]): Added this getter.

        * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared new property
        _isShowingNavigationGestureSnapshot.

        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate): Initialize new flags in
        m_navigationDelegateMethods.
        (WebKit::NavigationState::navigationGestureDidBegin): Added. Calls the new
        WKNavigationDelegate method.
        (WebKit::NavigationState::navigationGestureWillEnd): Ditto.
        (WebKit::NavigationState::navigationGestureDidEnd): Ditto.

        * UIProcess/PageClient.h: Declared new client functions.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy): Initialize new member variable.
        (WebKit::WebPageProxy::navigationGestureDidBegin): Set m_isShowingNavigationGestureSnapshot
        and call the new client function.
        (WebKit::WebPageProxy::navigationGestureWillEnd): Call the new client function.
        (WebKit::WebPageProxy::navigationGestureDidEnd): Ditto.
        (WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved): Clear
        m_isShowingNavigationGestureSnapshot.
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::isShowingNavigationGestureSnapshot): Added this getter.

        * UIProcess/ios/PageClientImplIOS.h: Declared overrides of new client functions.
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::navigationGestureDidBegin): Override that calls the new
        NavigationState function.
        (WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
        (WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture): Added calls to
        WebPageProxy::navigationGestureDidBegin and WebPageProxy::navigationGestureWillEnd.
        (WebKit::ViewGestureController::endSwipeGesture): Added calls to
        WebPageProxy::navigationGestureDidEnd.
        (WebKit::ViewGestureController::removeSwipeSnapshot): Added call to
        WebPageProxy::navigationGestureSnapshotWasRemoved.

        * UIProcess/mac/PageClientImpl.h: Declared overrides of new client functions.
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::navigationGestureDidBegin): Override that calls the new
        NavigationState function.
        (WebKit::PageClientImpl::navigationGestureWillEnd): Ditto.
        (WebKit::PageClientImpl::navigationGestureDidEnd): Ditto.

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::beginSwipeGesture): Added call to
        WebPageProxy::navigationGestureDidBegin.
        (WebKit::ViewGestureController::endSwipeGesture): Added calls to
        WebPageProxy::navigationGestureDidEnd.
        (WebKit::ViewGestureController::removeSwipeSnapshot): Added call to
        WebPageProxy::navigationGestureSnapshotWasRemoved.

2014-07-12  Oliver Hunt  <oliver@apple.com>

        Fix typo in prior patch
        https://bugs.webkit.org/show_bug.cgi?id=134858

        Reviewed by Sam Weinig.

        Fix typo

        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultCookieStorageDirectory):

2014-07-12  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Client is not notified of same-document navigations
        https://bugs.webkit.org/show_bug.cgi?id=134855

        Reviewed by Sam Weinig.

        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::didSameDocumentNavigationForFrame): Added navigationID parameter.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageLoaderClient): Ditto.

        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Added new enum and delegate method.

        * UIProcess/Cocoa/NavigationState.h: Declare override of
        API::LoaderClient::didSameDocumentNavigationForFrame. Added flag in
        m_navigationDelegateMethods struct.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate): Initialize new m_navigationDelegateMethods
        flag.
        (WebKit::toWKSameDocumentNavigationType): Added this helper to convert from internal to API
        values.
        (WebKit::NavigationState::LoaderClient::didSameDocumentNavigationForFrame): Override to call
        the delegate method, if implemented.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): Added navigationID parameter,
        which is forwarded to the client.
        * UIProcess/WebPageProxy.h: Added navigationID parameter.
        * UIProcess/WebPageProxy.messages.in: Ditto.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage): Send the navigation ID.
        (WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage): Ditto.
        (WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage): Ditto.
        (WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage): Ditto.

2014-07-12  Oliver Hunt  <oliver@apple.com>

        Extend WebContent sandbox to allow some extra access for frameworks
        https://bugs.webkit.org/show_bug.cgi?id=134844

        Reviewed by Sam Weinig.

        Open up the webcontent sandbox a bit so that some external frameworks
        can work correctly.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess):
        (WebKit::WebContext::mediaCacheDirectory):
        * UIProcess/WebContext.h:
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformMediaCacheDirectory):
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-07-12  Oliver Hunt  <oliver@apple.com>

        Temporary work around for <rdar://<rdar://problem/17513375>
        https://bugs.webkit.org/show_bug.cgi?id=134848

        Reviewed by Sam Weinig.

        Temporarily work around <rdar://<rdar://problem/17513375> by
        dropping the explicit cookie storage if it points out of the
        container.

        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultCookieStorageDirectory):

2014-07-11  Enrica Casucci  <enrica@apple.com>

        Implement textStylingAtPosition in WK2.
        https://bugs.webkit.org/show_bug.cgi?id=134843
        <rdar://problem/17614981>

        Reviewed by Benjamin Poulain.

        Adding information about typing attributes to EditorState so
        that we can implement textStylingAtPosition.

        * Shared/EditorState.cpp:
        (WebKit::EditorState::encode):
        (WebKit::EditorState::decode):
        * Shared/EditorState.h:
        (WebKit::EditorState::EditorState):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView textStylingAtPosition:inDirection:]):
        (-[WKContentView canPerformAction:withSender:]):
        (-[WKContentView toggleBoldface:]):
        (-[WKContentView toggleItalics:]):
        (-[WKContentView toggleUnderline:]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::editorState):

2014-07-11  Oliver Hunt  <oliver@apple.com>

        Tighten WebContent sandbox
        https://bugs.webkit.org/show_bug.cgi?id=134834

        Reviewed by Sam Weinig.

        Define a much tighter sandbox profile for the WebContent process

        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

2014-07-11  Antti Koivisto  <antti@apple.com>

        REGRESSION (r170163?): Web content shifts revealing space equivalent to the find bar when clicking a link while a phrase is targeted via Cmd+F
        https://bugs.webkit.org/show_bug.cgi?id=134833
        <rdar://problem/17580021>

        Reviewed by Zalan Bujtas.
        
        Some versions of OS X Safari can't handle the new unfreeze timing. Revert back to DidFirstLayout on Mac.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDidLayout):

2014-07-11  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: return integral results for offset*, client*, scroll* by default.
        https://bugs.webkit.org/show_bug.cgi?id=134651

        Reviewed by Simon Fraser.

        Revert to returning integral values for Element.offset* client* scroll* by default.
        Fractional values break number of sites(tight design) and JS frameworks(fail to handle fractional values).

        Since snapped dimension depends on both the original point and the width/height of the box,
        we need to call RenderBoxModelObject::pixelSnapped*() helpers, instead of round().

        Covered by existing tests

        * Shared/WebPreferencesDefinitions.h:
        * UIProcess/API/C/WKPreferencesRefPrivate.h:

2014-07-10  Jinwoo Song  <jinwoo7.song@samsung.com>

        Unreviewed EFL build fix after r170970.

        * UIProcess/efl/WebContextEfl.cpp:
        (WebKit::WebContext::platformDefaultOpenGLCacheDirectory):

2014-07-10  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        REGRESSION(r170970) REGRESSION(r170974): [GTK] Build broken.
        https://bugs.webkit.org/show_bug.cgi?id=134825

        Unreviewed GTK build fix.

        * Shared/SessionState.h: Put ifdefs for ViewSnapshot on Mac port.
        * Shared/WebBackForwardListItem.h: Idem.
        * UIProcess/gtk/WebContextGtk.cpp:
        (WebKit::WebContext::platformDefaultOpenGLCacheDirectory): Implement skeleton.

2014-07-10  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] It should be safe to call WKContentViewInteraction's cleanupInteraction multiple times
        https://bugs.webkit.org/show_bug.cgi?id=134820

        Reviewed by Andreas Kling.

        If a view is destroyed just after a crash, "cleanupInteraction" is called twice: once on crash,
        once on dealloc.

        The code handling _interactionViewsContainerView is using KVO to monitor transform changes. It is not safe
        to remove the observer if we are not already observing on that view.

        To solve the problem, this patch makes the cleanup actually remove the view so that setup and cleanup
        are completely symmetrical. If cleanup is called twice, the second time would not enter the branch because
        the view is already nil.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView setupInteraction]):
        (-[WKContentView cleanupInteraction]):

2014-07-10  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Move WKInspectorHighlightView to its own file
        https://bugs.webkit.org/show_bug.cgi?id=134819

        Reviewed by Joseph Pecoraro.
        
        WKInspectorHighlightView brought a lot of path/quad-related code into WKContentView.mm,
        so move it into its own file.

        * UIProcess/WKInspectorHighlightView.h: Added.
        * UIProcess/WKInspectorHighlightView.mm: Added.
        (-[WKInspectorHighlightView dealloc]):
        (-[WKInspectorHighlightView _removeAllLayers]):
        (-[WKInspectorHighlightView _createLayers:]):
        (findIntersectionOnLineBetweenPoints):
        (quadIntersection):
        (layerPathWithHole):
        (layerPath):
        (-[WKInspectorHighlightView _layoutForNodeHighlight:]):
        (-[WKInspectorHighlightView _layoutForRectsHighlight:]):
        (-[WKInspectorHighlightView update:]):
        * UIProcess/ios/WKContentView.mm:
        (-[WKInspectorHighlightView initWithFrame:]): Deleted.
        (-[WKInspectorHighlightView dealloc]): Deleted.
        (-[WKInspectorHighlightView _removeAllLayers]): Deleted.
        (-[WKInspectorHighlightView _createLayers:]): Deleted.
        (findIntersectionOnLineBetweenPoints): Deleted.
        (quadIntersection): Deleted.
        (layerPathWithHole): Deleted.
        (layerPath): Deleted.
        (-[WKInspectorHighlightView _layoutForNodeHighlight:]): Deleted.
        (-[WKInspectorHighlightView _layoutForRectsHighlight:]): Deleted.
        (-[WKInspectorHighlightView update:]): Deleted.
        * WebKit2.xcodeproj/project.pbxproj:

2014-07-10  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r170935): WKWebView is always transparent until the first layer tree commit
        https://bugs.webkit.org/show_bug.cgi?id=134818
        <rdar://problem/17632468>

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (scrollViewBackgroundColor):
        r170935 made it so that we would initialize the scroll view background color to an
        invalid color until the first layer tree commit. We should go with white instead.

2014-07-10  Enrica Casucci  <enrica@apple.com>

        Add a mechanism to notify the UIProcess when an editing command is done executing.
        https://bugs.webkit.org/show_bug.cgi?id=134807

        Reviewed by Tim Horton.

        Some editing commands have an effect on some parts of the system that
        run inside the UIProcess. A good example are the cursor movement commands
        that require an update of the autocorrection/autosuggestion machinery.
        This patch adds a way to reliably know when the command has been executed
        in the WebProcess. A previous attempt at solving this problem was added in
        r170858 and was partially reverted in r170948.
        The change also removes the selectionWillChange notification added in r170858.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::editorStateChanged):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::selectionWillChange): Deleted.
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView executeEditCommandWithCallback:]):
        (-[WKContentView _moveUp:withHistory:]):
        (-[WKContentView _moveDown:withHistory:]):
        (-[WKContentView _moveLeft:withHistory:]):
        (-[WKContentView _moveRight:withHistory:]):
        (-[WKContentView _moveToStartOfWord:withHistory:]):
        (-[WKContentView _moveToStartOfParagraph:withHistory:]):
        (-[WKContentView _moveToStartOfLine:withHistory:]):
        (-[WKContentView _moveToStartOfDocument:withHistory:]):
        (-[WKContentView _moveToEndOfWord:withHistory:]):
        (-[WKContentView _moveToEndOfParagraph:withHistory:]):
        (-[WKContentView _moveToEndOfLine:withHistory:]):
        (-[WKContentView _moveToEndOfDocument:withHistory:]):
        (-[WKContentView _selectionWillChange]): Deleted.
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::executeEditCommand):
        (WebKit::WebPageProxy::notifySelectionWillChange): Deleted.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::executeEditCommandWithCallback):

2014-07-10  Joseph Pecoraro  <pecoraro@apple.com>

        [Mac] NSWindow warning: adding an unknown subview opening detached Inspector
        https://bugs.webkit.org/show_bug.cgi?id=134813

        Reviewed by Timothy Hatcher.

        * UIProcess/mac/WebInspectorProxyMac.mm:
        (WebKit::WebInspectorProxy::createInspectorWindow):
        Use a selector that will avoid the warning message.

2014-07-10  Oliver Hunt  <oliver@apple.com>

        Remove use of container relative restrictions in the network process sandbox
        https://bugs.webkit.org/show_bug.cgi?id=134816

        Reviewed by Anders Carlsson.

        As i'm tidying up the various sandboxes and that's meaning we
        need to reduce some file restrictions in the network process.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

2014-07-10  Pratik Solanki  <psolanki@apple.com>

        Unreviewed iOS build fix after r170974. Define id if building a non ObjC file.

        * UIProcess/mac/ViewSnapshotStore.h:

2014-07-10  Tim Horton  <timothy_horton@apple.com>

        Store ViewSnapshots directly on the WebBackForwardListItem
        https://bugs.webkit.org/show_bug.cgi?id=134667
        <rdar://problem/17082639>

        Reviewed by Dan Bernstein.

        Make ViewSnapshot a refcounted class. Store it directly on the back-forward item
        instead of in a side map referenced by UUID. Switch to a very simple LRU eviction model for now.
        This fixes a ton of snapshot management bugs; for example, we would start throwing out snapshots
        in the page that was actively being interacted with *first* when evicting snapshots, instead of
        preferring older snapshots. Additionally, we would not throw away snapshots when back forward items
        became unreachable.

        There is definitely room for improvement of the eviction mechanism, but this is closer to a time-tested implementation.

        * Shared/SessionState.h:
        Keep a ViewSnapshot instead of a UUID on the BackForwardListItemState.

        * Shared/WebBackForwardListItem.h:
        Fix some indented namespace contents.

        (WebKit::WebBackForwardListItem::snapshot):
        (WebKit::WebBackForwardListItem::setSnapshot):
        (WebKit::WebBackForwardListItem::setSnapshotUUID): Deleted.
        (WebKit::WebBackForwardListItem::snapshotUUID): Deleted.
        Switch the snapshot getter/setter to operate on ViewSnapshots instead of UUIDs.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _takeViewSnapshot]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/mac/WKView.mm:
        (-[WKView _takeViewSnapshot]):
        * UIProcess/API/mac/WKViewInternal.h:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::takeViewSnapshot):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::takeViewSnapshot):
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::takeViewSnapshot):
        Adopt ViewSnapshot::create, return a PassRefPtr, and class-ify ViewSnapshot.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::endSwipeGesture):
        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::shouldUseSnapshotForSize):
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::endSwipeGesture):
        Grab the ViewSnapshot directly from the WebBackForwardListItem, and adopt the new functions.

        * UIProcess/ios/WebMemoryPressureHandlerIOS.mm:
        (WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler):
        Rename discardSnapshots to discardSnapshotImages, because we're really only discarding
        the images; the render tree size/background color "snapshot" remains and is useful.

        * UIProcess/mac/ViewSnapshotStore.h:
        (WebKit::ViewSnapshot::setRenderTreeSize):
        (WebKit::ViewSnapshot::renderTreeSize):
        (WebKit::ViewSnapshot::setBackgroundColor):
        (WebKit::ViewSnapshot::backgroundColor):
        (WebKit::ViewSnapshot::setDeviceScaleFactor):
        (WebKit::ViewSnapshot::deviceScaleFactor):
        (WebKit::ViewSnapshot::imageSizeInBytes):
        (WebKit::ViewSnapshot::surface):
        (WebKit::ViewSnapshot::size):
        (WebKit::ViewSnapshot::creationTime):
        Make ViewSnapshot a refcounted class.
        Add create functions which take an image (or slot ID), and relevant sizes.
        It is expected that a ViewSnapshot is created with an image, and it is only possible
        to remove that image, never to replace it. A new ViewSnapshot is required in that case.
        Add setters for things that ViewSnapshotStore sets on the snapshot after the PageClient
        retrieves it from the view. Add getters for things that the ViewGestureControllers need.

        Remove removeSnapshotImage, getSnapshot, and the snapshot map.

        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::~ViewSnapshotStore):
        (WebKit::ViewSnapshotStore::didAddImageToSnapshot):
        (WebKit::ViewSnapshotStore::willRemoveImageFromSnapshot):
        Manage m_snapshotCacheSize and m_snapshotsWithImages via didAddImageToSnapshot and willRemoveImageFromSnapshot.
        willRemoveImageFromSnapshot will -always- be called before the ViewSnapshot is destroyed.

        (WebKit::ViewSnapshotStore::pruneSnapshots):
        Switch to a simple LRU eviction model. As previously mentioned, it's possible to do better, but
        this is much less broken than the previous implementation.

        (WebKit::ViewSnapshotStore::recordSnapshot):
        (WebKit::ViewSnapshotStore::discardSnapshotImages):
        (WebKit::ViewSnapshot::create):
        (WebKit::ViewSnapshot::ViewSnapshot):
        (WebKit::ViewSnapshot::~ViewSnapshot):
        (WebKit::ViewSnapshot::hasImage):
        (WebKit::ViewSnapshot::clearImage):
        (WebKit::ViewSnapshot::asLayerContents):
        If a surface is Empty when it comes back from being volatile, throw away the surface
        and notify the Store to remove it from m_snapshotCacheSize (via clearImage()).

        (WebKit::ViewSnapshotStore::removeSnapshotImage): Deleted.
        (WebKit::ViewSnapshotStore::getSnapshot): Deleted.
        (WebKit::ViewSnapshotStore::discardSnapshots): Deleted.

2014-07-10  Beth Dakin  <bdakin@apple.com>

        Need Setting/WKPreference that allows clients to prevent scrollbars from drawing 
        on a secondary thread
        https://bugs.webkit.org/show_bug.cgi?id=134778
        -and corresponding-
        <rdar://problem/17595333>

        Reviewed by Tim Horton.

        This is a requirement for some types of performance tests.

        New pref.
        * Shared/WebPreferencesDefinitions.h:

        PDFPlugin has to implement this new ScrollableArea virtual function to indicate 
        the Setting’s value.
        * WebProcess/Plugins/PDF/PDFPlugin.h:
        * WebProcess/Plugins/PDF/PDFPlugin.mm:
        (WebKit::PDFPlugin::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):

        New pref.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-07-10  Tim Horton  <timothy_horton@apple.com>

        [iOS] Frequent assertion failures when swiping back

        Reviewed by Dan Bernstein.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing):
        Don't create an unused VoidCallback. It will assert when destroyed without being called.

2014-07-10  Oliver Hunt  <oliver@apple.com>

        Pass sandbox extension for GL cache over to webprocess
        https://bugs.webkit.org/show_bug.cgi?id=134806

        Reviewed by Anders Carlsson.

        Add additional WebProcess parameters to pass an extension
        that allows access to the opengl cache directory in the
        host application's container.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess):
        (WebKit::WebContext::openGLCacheDirectory):
        * UIProcess/WebContext.h:
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultOpenGLCacheDirectory):
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-07-10  Dan Bernstein  <mitz@apple.com>

        iOS build fix.

        * WebProcess/WebPage/ServicesOverlayController.h:

2014-07-09  Brady Eidson  <beidson@apple.com>

        Phone number highlights should always be visible if the mouse hovers over.
        <rdar://problem/17527476> and https://bugs.webkit.org/show_bug.cgi?id=134784

        Reviewed by Tim Horton.

        This is a fairly extensive rewrite of ServicesOverlayController.
        It allows one selection highlight for the entire selection, and as many telephone number highlights as there are numbers.
        If a telephone number highlight is hovered over, it wins and is painted.
        If no telephone number highlight is hovered but the selection highlight is, then it is painted.
       
        The purposes of each method are self evident by their name, and the concepts are mostly the same as they used to be.

        The exception is establishHoveredTelephoneHighlight which gets a more detailed explanation below.
        
        * Platform/Logging.h: Add a Services logging channel.

        * WebProcess/WebPage/ServicesOverlayController.h:
        (WebKit::TelephoneNumberData::TelephoneNumberData):

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::ServicesOverlayController):
        (WebKit::ServicesOverlayController::selectionRectsDidChange):
        (WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
        (WebKit::ServicesOverlayController::clearHighlightState):
        (WebKit::ServicesOverlayController::drawRect):
        (WebKit::ServicesOverlayController::drawSelectionHighlight):
        (WebKit::ServicesOverlayController::maybeDrawTelephoneNumberHighlight):
        (WebKit::ServicesOverlayController::drawHighlight):
        (WebKit::ServicesOverlayController::clearSelectionHighlight):
        (WebKit::ServicesOverlayController::clearHoveredTelephoneNumberHighlight):
        (WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight): Starts walking the telephone number ranges and
            creating a highlight for each one that doesn’t already have a highlight. If that highlight is also being hovered by
            the mouse, then it is set as the hovered telephone number highlight and the method stops creating new highlights.
        (WebKit::ServicesOverlayController::maybeCreateSelectionHighlight):
        (WebKit::ServicesOverlayController::mouseEvent):
        (WebKit::ServicesOverlayController::handleClick):
        (WebKit::ServicesOverlayController::drawTelephoneNumberHighlight): Deleted.
        (WebKit::ServicesOverlayController::drawCurrentHighlight): Deleted.

2014-07-10  Timothy Horton  <timothy_horton@apple.com>

        Assertions or crashes under _takeViewSnapshot when restoring windows
        https://bugs.webkit.org/show_bug.cgi?id=134792

        Reviewed by Simon Fraser.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _takeViewSnapshot]):
        Taking a window-server snapshot of a non-visible window tends to not succeed.

2014-07-09  Pratik Solanki  <psolanki@apple.com>

        Buffer CSS and JS resources in network process before sending over to web process
        https://bugs.webkit.org/show_bug.cgi?id=134560
        <rdar://problem/16737186>

        Reviewed by Antti Koivisto.

        For CSS and JS resources, ask the network process to buffer the entire resource instead of
        sending it to web process in chunks since the web process can't do anything with a partial
        css or js file.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::NetworkResourceLoader):
        * Shared/Network/NetworkResourceLoadParameters.cpp:
        (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
        (WebKit::NetworkResourceLoadParameters::encode):
        (WebKit::NetworkResourceLoadParameters::decode):
        * Shared/Network/NetworkResourceLoadParameters.h:
        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::WebResourceLoadScheduler::scheduleLoad):

2014-07-09  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Disable text quantization while actively changing the page's scale factor
        https://bugs.webkit.org/show_bug.cgi?id=134781

        Reviewed by Tim Horton and Myles C. Maxfield.

        While zooming a page, text quantization causes glyphs to "move" in order to get to the closest
        boundary for the current scale factor.

        We do not want this to happen while dynamically changing the scale factor because the effect
        is visible. To avoid this, we disable text quantization if the page's scale factor changes
        in response to a non-stable contentRect update.

        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
        (WebKit::WebChromeClient::hasStablePageScaleFactor):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::hasStablePageScaleFactor):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):

2014-07-09  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] Use UIAlertController API in WKFileUploadPanel instead of SPI
        https://bugs.webkit.org/show_bug.cgi?id=134777

        Reviewed by Sam Weinig.

        * UIProcess/ios/forms/WKFileUploadPanel.mm:
        (-[WKFileUploadPanel _showMediaSourceSelectionSheet]):

2014-07-09  Shivakumar JM  <shiva.jm@samsung.com>

        [EFL][WK2] Add new Public API in ewk_download_job.h to get size of the data already downloaded.
        https://bugs.webkit.org/show_bug.cgi?id=134759

        Reviewed by Gyuyoung Kim.

        Add new API in ewk_download_job.h to get size of the data already downloaded.

        * UIProcess/API/efl/ewk_download_job.cpp:
        (ewk_download_job_received_data_length_get):
        (EwkDownloadJob::receivedData):
        * UIProcess/API/efl/ewk_download_job.h:
        * UIProcess/API/efl/ewk_download_job_private.h:
        * UIProcess/API/efl/tests/test_ewk2_download_job.cpp:
        (EWK2DownloadJobTest::on_download_requested):
        (EWK2DownloadJobTest::on_download_finished):

2014-07-09  Enrica Casucci  <enrica@apple.com>

        REGRESSION(r170858): Safari freezes upon making a search on a website (yelp.com).
        https://bugs.webkit.org/show_bug.cgi?id=134791
        <rdar://problem/17616971>

        Reviewed by Benjamin Poulain.

        After r170858 we notify the keyboard too often about
        the changed selection. This patch removes the notification
        until we find a better way to do it that doesn't cause
        deadlocks.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _selectionWillChange]):
        (-[WKContentView _selectionChanged]):

2014-07-09  Anders Carlsson  <andersca@apple.com>

        Safari showing blank pages
        https://bugs.webkit.org/show_bug.cgi?id=134790
        <rdar://problem/17617166>

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        Make sure to add the content view to the scroll view.

2014-07-09  Anders Carlsson  <andersca@apple.com>

        Closed web views should never create new web processes
        https://bugs.webkit.org/show_bug.cgi?id=134787
        <rdar://problem/16892526>

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView loadHTMLString:baseURL:]):
        (-[WKWebView reload]):
        (-[WKWebView reloadFromOrigin]):
        Return nil if the returned navigation ID is 0.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::reattachToWebProcess):
        Assert that the page is not closed.

        (WebKit::WebPageProxy::reattachToWebProcessWithItem):
        (WebKit::WebPageProxy::loadRequest):
        (WebKit::WebPageProxy::loadFile):
        (WebKit::WebPageProxy::loadData):
        (WebKit::WebPageProxy::loadHTMLString):
        (WebKit::WebPageProxy::loadAlternateHTMLString):
        (WebKit::WebPageProxy::loadPlainTextString):
        (WebKit::WebPageProxy::loadWebArchiveData):
        Add early returns if the page is closed.

        * UIProcess/WebPageProxy.h:

2014-07-09  Anders Carlsson  <andersca@apple.com>

        Support transparent WKWebViews
        https://bugs.webkit.org/show_bug.cgi?id=134779
        <rdar://problem/17351058>

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        Call _updateScrollViewBackground instead of setting the background color.

        (contentZoomScale):
        Use dot notation.

        (scrollViewBackgroundColor):
        Helper function that returns the scroll view background color. 
        If the web view isn't opaque, we want the scroll view to be transparent.

        (-[WKWebView _updateScrollViewBackground]):
        Call scrollViewBackgroundColor.

        (-[WKWebView setOpaque:]):
        Call WebPageProxy::setDrawsBackground and update the scroll view background.

        (-[WKWebView setBackgroundColor:]):
        Call setBackgroundColor on the content view.

2014-07-09  Andy Estes  <aestes@apple.com>

        [iOS] WebKit can crash under QuickLookDocumentData::encode() when viewing a QuickLook preview
        https://bugs.webkit.org/show_bug.cgi?id=134780

        Reviewed by Tim Horton.

        Don't use CFDataCreateWithBytesNoCopy() when we can't guarantee the lifetime of the copied-from DataReference
        will match or exceed that of the CFDataRef. Copy the data instead.

        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::didReceiveData):

2014-07-09  Pratik Solanki  <psolanki@apple.com>

        Move resource buffering from SynchronousNetworkLoaderClient to NetworkResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=134732

        Reviewed by Darin Adler.

        Buffer the resource in NetworkResourceLoader instead of SynchronousNetworkLoaderClient. This
        is in preparation for bug 134560 where we will be supporting JS and CSS resource buffering
        that uses AsynchronousNetworkLoaderClient.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::NetworkResourceLoader):
        (WebKit::NetworkResourceLoader::didReceiveBuffer):
        (WebKit::NetworkResourceLoader::didFinishLoading):
        * NetworkProcess/NetworkResourceLoader.h:
        (WebKit::NetworkResourceLoader::bufferedData):
        * NetworkProcess/SynchronousNetworkLoaderClient.cpp:
        (WebKit::SynchronousNetworkLoaderClient::didReceiveBuffer):
        (WebKit::SynchronousNetworkLoaderClient::didFinishLoading):
        (WebKit::SynchronousNetworkLoaderClient::didFail):
        (WebKit::SynchronousNetworkLoaderClient::sendDelayedReply):
        * NetworkProcess/SynchronousNetworkLoaderClient.h:

2014-07-09  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] subviews of the unscaled view drift out during CA animations
        https://bugs.webkit.org/show_bug.cgi?id=134751

        Reviewed by Enrica Casucci.

        It is not possible to animate the WKContentView and the inverse view in such a way
        that the combined matrix remain the identity for every frame of the animation.

        This patch solves the issue by moving the unscaled view as a sibling of WKContentView
        instead of a child so that we do not need to update two scales simultaneously.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView _processDidExit]):
        (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]):
        Set the z scale to 1 or no coordinate transform will work with this view.

        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        (-[WKWebView _endAnimatedResize]):
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView setupInteraction]):
        Since we need to observe changes inside the animation block, the code now use KVO to observe changes of scale.

        (-[WKContentView cleanupInteraction]):
        (-[WKContentView unscaledView]):
        (-[WKContentView inverseScale]):
        (-[WKContentView observeValueForKeyPath:ofObject:change:context:]):
        We update the utility views as usual. The extra bits here are to deal with views coming in during an animation.

        If a new utility view comes in during a scaling animation, we do not want to start a new animation with the same curve
        to end up at the right place. To avoid any issue, we just hide the view until the animation is finished.

        (-[WKContentView hitTest:withEvent:]):
        (-[WKContentView _showTapHighlight]):
        (-[WKContentView _updateUnscaledView]): Deleted.

2014-07-09  Tim Horton  <timothy_horton@apple.com>

        Use IOSurface ViewSnapshots everywhere on Mac, remove JPEG encoding path
        https://bugs.webkit.org/show_bug.cgi?id=134773

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _takeViewSnapshot]):
        * UIProcess/mac/ViewSnapshotStore.h:
        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::ViewSnapshotStore):
        (WebKit::ViewSnapshotStore::~ViewSnapshotStore):
        (WebKit::ViewSnapshotStore::recordSnapshot):
        (WebKit::ViewSnapshot::clearImage):
        (WebKit::ViewSnapshot::asLayerContents):
        (WebKit::createIOSurfaceFromImage): Deleted.
        (WebKit::compressImageAsJPEG): Deleted.
        (WebKit::ViewSnapshotStore::reduceSnapshotMemoryCost): Deleted.
        (WebKit::ViewSnapshotStore::didCompressSnapshot): Deleted.
        Remove all ViewSnapshot(Store) code related to JPEG-encoded snapshots.
        Remove the "image" member on ViewSnapshot; Mac will always start out with an IOSurface instead.
        Adopt WebCore::IOSurface::createFromImage to make that happen.
        Add a comment noting that if a snapshot comes back empty, we should throw it away completely.

2014-07-09  Anders Carlsson  <andersca@apple.com>

        RemoteLayerBackingStore::ensureBackingStore should ensure that the entire backing store gets redrawn
        https://bugs.webkit.org/show_bug.cgi?id=134772

        Reviewed by Tim Horton.

        * Shared/mac/RemoteLayerBackingStore.h:
        (WebKit::RemoteLayerBackingStore::Buffer::operator bool):
        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::ensureBackingStore):

2014-07-09  KwangHyuk Kim  <hyuki.kim@samsung.com>

        [EFL] Fix crash caused by invalid cursor image.
        https://bugs.webkit.org/show_bug.cgi?id=134663

        Reviewed by Gyuyoung Kim.

        Remove calling of updateCursor since the custom cursor image is invalid once a mouse is out of the webview.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkViewEventHandler<EVAS_CALLBACK_MOUSE_IN>::handleEvent):

2014-07-08  Tim Horton  <timothy_horton@apple.com>

        Remove WebBackForwardListItems when their owning page goes away
        https://bugs.webkit.org/show_bug.cgi?id=134709
        <rdar://problem/17584645>

        Reviewed by Dan Bernstein.

        * Shared/WebBackForwardListItem.cpp:
        (WebKit::WebBackForwardListItem::create):
        (WebKit::WebBackForwardListItem::WebBackForwardListItem):
        * Shared/WebBackForwardListItem.h:
        (WebKit::WebBackForwardListItem::pageID):
        Add the associated PageID to the WebBackForwardListItem.

        * UIProcess/WebBackForwardList.cpp:
        (WebKit::WebBackForwardList::restoreFromState):
        Push the current PageID onto the WebBackForwardListItem.

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::removeWebPage):
        Remove all of the WebBackForwardListItems from m_backForwardListItemMap when
        the page they are associated with is removed.

        (WebKit::WebProcessProxy::addBackForwardItem):
        Push the PageID from the WebProcess onto the WebBackForwardListItem.

        * UIProcess/WebProcessProxy.h:
        * UIProcess/WebProcessProxy.messages.in:
        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
        (WebKit::idToHistoryItemMap):
        (WebKit::historyItemToIDMap):
        (WebKit::updateBackForwardItem):
        (WebKit::WebBackForwardListProxy::addItemFromUIProcess):
        (WebKit::WK2NotifyHistoryItemChanged):
        (WebKit::WebBackForwardListProxy::idForItem):
        (WebKit::WebBackForwardListProxy::addItem):
        (WebKit::WebBackForwardListProxy::goToItem):
        (WebKit::WebBackForwardListProxy::close):
        * WebProcess/WebPage/WebBackForwardListProxy.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::restoreSession):
        Keep track of the PageID that back-forward items were created by.
        Pass the PageID along when registering WebBackForwardListItems.

2014-07-08  Tim Horton  <timothy_horton@apple.com>

        [WK2] Expose a few drawing/compositing settings on WKPreferences(Private)
        https://bugs.webkit.org/show_bug.cgi?id=134645

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences _compositingBordersVisible]):
        (-[WKPreferences _setCompositingBordersVisible:]):
        (-[WKPreferences _compositingRepaintCountersVisible]):
        (-[WKPreferences _setCompositingRepaintCountersVisible:]):
        (-[WKPreferences _tiledScrollingIndicatorVisible]):
        (-[WKPreferences _setTiledScrollingIndicatorVisible:]):
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
        Expose layer borders, repaint counters, and the tiled scrolling indicator on WKPreferences, as SPI.

2014-07-08  Tim Horton  <timothy_horton@apple.com>

        WKProcessPoolConfigurationPrivate's maximumProcessCount property has no effect
        https://bugs.webkit.org/show_bug.cgi?id=134711

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _initWithConfiguration:]):
        Respect the maximumProcessCount.
        Currently the default limit is UINT_MAX; if maximumProcessCount = 0 (the default), we'll use that limit.

2014-07-08  Adrian Perez de Castro  <aperez@igalia.com>

        [GTK] Move user style sheet API out of WebKitWebViewGroup
        https://bugs.webkit.org/show_bug.cgi?id=134551

        Reviewed by Carlos Garcia Campos.

        * PlatformGTK.cmake: Include the new source files in the build.
        * UIProcess/API/C/gtk/WKView.cpp:
        (WKViewCreate):
        Adapt to the additional webkitWebViewBaseCreateWebPage() parameter.
        * UIProcess/API/gtk/WebKitUserContent.cpp: Added.
        (toUserContentInjectedFrames):
        (toUserStyleLevel):
        (toStringVector):
        (_WebKitUserStyleSheet::_WebKitUserStyleSheet):
        (webkit_user_style_sheet_ref):
        (webkit_user_style_sheet_unref):
        (webkit_user_style_sheet_new):
        (webkitWebKitUserStyleSheetToUserStyleSheet):
        * UIProcess/API/gtk/WebKitUserContent.h: Added.
        * UIProcess/API/gtk/WebKitUserContentManager.cpp: Added.
        (_WebKitUserContentManagerPrivate::_WebKitUserContentManagerPrivate):
        (webkit_user_content_manager_class_init):
        (webkit_user_content_manager_new):
        (webkit_user_content_manager_add_style_sheet):
        (webkit_user_content_manager_remove_all_style_sheets):
        (webkitUserContentManagerGetUserContentControllerProxy):
        * UIProcess/API/gtk/WebKitUserContentManager.h: Added.
        * UIProcess/API/gtk/WebKitUserContentManagerPrivate.h: Added.
        * UIProcess/API/gtk/WebKitUserContentPrivate.h: Added.
        * UIProcess/API/gtk/WebKitWebContext.cpp:
        (webkitWebContextCreatePageForWebView): Add a new parameter to allow
        passing the WebKitUserContentManager that the web view will use.
        * UIProcess/API/gtk/WebKitWebContextPrivate.h: Ditto.
        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkitWebViewConstructed): Added handling of the
        "user-content-manager" property on construction.
        (webkitWebViewSetProperty): Added support for the
        "user-content-manager" property.
        (webkitWebViewGetProperty): Added support for the
        "user-content-manager" property.
        (webkit_web_view_class_init): Added the "user-content-manager"
        property definition to the WebKitWebView class.
        (webkit_web_view_new_with_related_view): Made related views share
        the same WebKitUserContentManager used by the view they are
        related to.
        (webkit_web_view_new_with_user_content_manager): Added.
        (webkit_web_view_get_user_content_manager): Added.
        * UIProcess/API/gtk/WebKitWebView.h: Add new API methods.
        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseCreate): Added a parameter to pass the user
        content manager.
        (webkitWebViewBaseCreateWebPage): Added a parameter to pass the user
        content manager.
        * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Ditto.
        * UIProcess/API/gtk/WebKitWebViewGroup.cpp: Removed the bits related
        to user style sheet support from WebKitWebViewGroup.
        (webkit_web_view_group_set_settings):
        (toAPIArray): Deleted.
        (webkit_web_view_group_add_user_style_sheet): Deleted.
        (webkit_web_view_group_remove_all_user_style_sheets): Deleted.
        * UIProcess/API/gtk/WebKitWebViewGroup.h: Deleted the API methods
        for user style sheet handling.
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added the new API
        functions and types, and removed the methods which are no longer
        available in WebKitWebViewGroup.
        * UIProcess/API/gtk/webkit2.h: Add the new headers.
        * UIProcess/UserContent/WebUserContentControllerProxy.cpp: Added
        methods to add and remove user style sheets, alike those used for
        user scripts.
        (WebKit::WebUserContentControllerProxy::addProcess):
        (WebKit::WebUserContentControllerProxy::addUserStyleSheet):
        (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets):
        * UIProcess/UserContent/WebUserContentControllerProxy.h: Ditto.
        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
        Adapt to the additional webkitWebViewBaseCreateWebPage() parameter.
        * WebProcess/UserContent/WebUserContentController.cpp: Added methods
        to add and remove user style sheets, alike those used for user scripts.
        (WebKit::WebUserContentController::addUserStyleSheets):
        (WebKit::WebUserContentController::removeAllUserStyleSheets):
        * WebProcess/UserContent/WebUserContentController.h: Ditto.
        * WebProcess/UserContent/WebUserContentController.messages.in:
        Ditto.

2014-07-08  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Guard uses of RedirectedXCompositeWindow in WebKitWebViewBase with PLATFORM(X11)
        https://bugs.webkit.org/show_bug.cgi?id=133871

        Reviewed by Martin Robinson.

        Guard uses of the RedirectedXCompositeWindow object in WebKitWebViewBase with the
        PLATFORM(X11) build guard. This is required to properly support building the GTK
        port only for the Wayland target.

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseConstructed):
        (webkitWebViewRenderAcceleratedCompositingResults):
        (resizeWebKitWebViewBaseFromAllocation):
        (webkitWebViewBaseUpdatePreferences):
        (webkitWebViewBaseCreateWebPage):

2014-07-07  Tim Horton  <timothy_horton@apple.com>

        Turn on accelerated drawing for WebKit2 by default
        https://bugs.webkit.org/show_bug.cgi?id=134708
        <rdar://problem/17584642>

        Reviewed by Simon Fraser.

        * Shared/WebPreferencesDefinitions.h:
        Make Mac match iOS, in that accelerated drawing is on by default.

2014-07-07  Timothy Horton  <timothy_horton@apple.com>

        Don't leak _WKRemoteObjectRegistry in WKBrowsingContextController
        https://bugs.webkit.org/show_bug.cgi?id=134703

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
        (-[WKBrowsingContextController _remoteObjectRegistry]):
        Adoption is important!!

2014-07-07  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Support reflections on custom layers like video
        https://bugs.webkit.org/show_bug.cgi?id=134701

        Reviewed by Tim Horton.
        
        For video reflections, we have to support cloning of PlatformCALayerRemoteCustom
        in the web process. Do so by implementing PlatformCALayerRemoteCustom::clone(),
        which does the right gyrations to get AVPlayerLayers cloned, then makes a
        new PlatformCALayerRemoteCustom to wrap the new layer. This ends up getting
        its own context hosting ID, allowing the clone to show in the UI process.
        
        Attempt to do the same for WebGL, but turn it off because it breaks.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::drawInContext):
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode): Unconditionally encode/decode
        the hostingContextID. It will be 0 for most layers.
        (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
        (WebKit::RemoteLayerTreeTransaction::description):
        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (WebKit::RemoteLayerTreeHost::createLayer):
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::createLayer):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::create): Creation with a custom PlatformLayer* always
        creates a PlatformCALayerRemoteCustom.
        (WebKit::PlatformCALayerRemote::clone): Factor some code.
        (WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
        (WebKit::PlatformCALayerRemoteCustom::create):
        (WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
        (WebKit::PlatformCALayerRemoteCustom::clone): Clone by making an instance of the 
        correct type of platform layer when possible, then wrapping a PlatformCALayerRemoteCustom
        around it.
        (WebKit::PlatformCALayerRemoteCustom::contents):
        (WebKit::PlatformCALayerRemoteCustom::setContents):
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::layerWasCreated):
        (WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):

2014-07-07  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Crash when starting a filter transition on a reflected layer
        https://bugs.webkit.org/show_bug.cgi?id=134694

        Reviewed by Tim Horton.
        
        When cloned layers had animations, we would fire two animationDidStart callbacks,
        but the second would pass an empty animationKey string to the web process, resulting
        in a crash.
        
        Fix by not blindly copying all layer properties when cloning PlatformCALayerRemotes,
        since the clone would include addedAnimations, and then get the same animations
        added on top by the caller.
        
        Also protect against an empty animation key in the animationDidStart callback.

        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::animationDidStart):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::PlatformCALayerRemote):
        (WebKit::PlatformCALayerRemote::clone): Don't copy all the properties; copy
        them manually as PlatformCALayerMac does. Only copy the big things if they don't
        have their default values.
        (WebKit::PlatformCALayerRemote::copyFiltersFrom): Need an implementation of this
        for clone() to call.

2014-07-07  Tim Horton  <timothy_horton@apple.com>

        Nearly everything in the UIProcess "leaks" when WKWebView is torn down
        https://bugs.webkit.org/show_bug.cgi?id=134699
        <rdar://problem/17581777>

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        Adoption is important!

2014-07-07  Enrica Casucci  <enrica@apple.com>

        REGRESSION(iOS WK2): arrow keys movements don't work.
        https://bugs.webkit.org/show_bug.cgi?id=134561
        <rdar://problem/16827629>

        Reviewed by Benjamin Poulain.

        This change add the implementations for cursor movement selectors.
        It also provides a mechanism to ensure that every selection
        change in WebKit is reflected in UIKit so that it can update the 
        autocorrection data. This way we ensure that the autocorraction state
        is consistent even when selection changes are originated by JavaScript.
        WebPageProxy::editorStateChanged now notifies the page client when the
        selection is about to change as well as when it actually changed.
        
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::editorStateChanged):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::selectionWillChange):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView cut:]): Removed incorrect calls to textWillChange and
        textDidChange.
        (-[WKContentView paste:]):
        (-[WKContentView _moveUp:withHistory:]):
        (-[WKContentView _moveDown:withHistory:]):
        (-[WKContentView _moveLeft:withHistory:]):
        (-[WKContentView _moveRight:withHistory:]):
        (-[WKContentView _moveToStartOfWord:withHistory:]):
        (-[WKContentView _moveToStartOfParagraph:withHistory:]):
        (-[WKContentView _moveToStartOfLine:withHistory:]):
        (-[WKContentView _moveToStartOfDocument:withHistory:]):
        (-[WKContentView _moveToEndOfWord:withHistory:]):
        (-[WKContentView _moveToEndOfParagraph:withHistory:]):
        (-[WKContentView _moveToEndOfLine:withHistory:]):
        (-[WKContentView _moveToEndOfDocument:withHistory:]):
        (-[WKContentView _selectionWillChange]):
        (-[WKContentView _selectionChanged]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::notifySelectionWillChange):

2014-07-07  Anders Carlsson  <andersca@apple.com>

        Add SPI for saving and restoring a WKWebView's _WKSessionState
        https://bugs.webkit.org/show_bug.cgi?id=134693

        Reviewed by Dan Bernstein.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageRestoreFromSessionState):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _sessionState]):
        (-[WKWebView _restoreFromSessionStateData:]):
        (-[WKWebView _restoreFromSessionState:]):
        (-[WKWebView _restoreSessionState:andNavigate:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/API/Cocoa/_WKSessionState.mm:
        (-[_WKSessionState _initWithSessionState:]):
        * UIProcess/API/Cocoa/_WKSessionStateInternal.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::restoreFromSessionState):
        * UIProcess/WebPageProxy.h:

2014-07-07  Anders Carlsson  <andersca@apple.com>

        Add a stubbed out _WKSessionState class
        https://bugs.webkit.org/show_bug.cgi?id=134690

        Reviewed by Geoffrey Garen.

        * UIProcess/API/Cocoa/_WKSessionState.h: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.
        * UIProcess/API/Cocoa/_WKSessionState.mm: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.
        (-[_WKSessionState initWithData:]):
        (-[_WKSessionState data]):
        * UIProcess/API/Cocoa/_WKSessionStateInternal.h: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.
        * UIProcess/Cocoa/SessionStateCoding.h: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.
        * UIProcess/Cocoa/SessionStateCoding.mm: Copied from Source/WebKit2/UIProcess/LegacySessionStateCoding.h.
        (WebKit::encodeSessionState):
        (WebKit::decodeSessionState):
        * UIProcess/LegacySessionStateCoding.h:
        * WebKit2.xcodeproj/project.pbxproj:

2014-07-07  Anders Carlsson  <andersca@apple.com>

        Some of the WKPreferences (API) property getters read like questions
        https://bugs.webkit.org/show_bug.cgi?id=134678
        <rdar://problem/17576847>

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences javaScriptIsEnabled]):
        (-[WKPreferences javaIsEnabled]):
        (-[WKPreferences plugInsAreEnabled]):
        (-[WKPreferences isJavaScriptEnabled]): Deleted.
        (-[WKPreferences isJavaEnabled]): Deleted.
        (-[WKPreferences arePlugInsEnabled]): Deleted.

2014-07-07  Brady Eidson  <beidson@apple.com>

        ServicesOverlayController menus show up in the wrong place.
        <rdar://problem/17130576> and https://bugs.webkit.org/show_bug.cgi?id=134684

        Reviewed by Tim Horton.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged): Handle cases where
          the telephone number is in a subframe.
        (WebKit::ServicesOverlayController::handleClick): The click point is always in main frame document
          coordinates, so convert it to window coordinates using the main frame’s FrameView.

2014-07-07  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Assertion failure in NavigationState::LoaderClient::didStartProvisionalLoadForFrame (navigationID) when navigating through the page cache
        https://bugs.webkit.org/show_bug.cgi?id=134682

        Reviewed by Tim Horton.

        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::LoaderClient::didStartProvisionalLoadForFrame): Replaced the
        assertion with a FIXME.
        (WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
        Ditto.
        (WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame): Ditto.
        (WebKit::NavigationState::LoaderClient::didCommitLoadForFrame): Ditto.
        (WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame): Ditto.
        (WebKit::NavigationState::LoaderClient::didFinishLoadForFrame): Ditto.
        (WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame): Ditto.

2014-07-07  KwangHyuk Kim  <hyuki.kim@samsung.com>

        [EFL] Fix cursor artifacts on naver map site.
        https://bugs.webkit.org/show_bug.cgi?id=134649

        Reviewed by Gyuyoung Kim.

        Old evas cursor and ecore x cursor are reset before new cursor is applied.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::updateCursor):

2014-07-06  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] The tap highlight ID is not invalidated when a long press ends
        https://bugs.webkit.org/show_bug.cgi?id=134660

        Reviewed by Darin Adler.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _cancelInteraction]):
        (-[WKContentView _finishInteraction]):
        (cancelPotentialTapIfNecessary):
        I messed that up in r170600. I only accounted for the web process being too fast.

        If the web process is too slow, _cancelInteraction or _finishInteraction happen before
        _didGetTapHighlightForRequest:, and we also need to nuke the tap highlight.

2014-07-06  Tim Horton  <timothy_horton@apple.com>

        [WK2] Don't support dynamically enabling the RemoteLayerTree debug indicator
        https://bugs.webkit.org/show_bug.cgi?id=134644

        Reviewed by Darin Adler.

        * UIProcess/DrawingAreaProxy.h:
        (WebKit::DrawingAreaProxy::setShouldShowDebugIndicator): Deleted.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::preferencesDidChange):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::initializeDebugIndicator):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::setShouldShowDebugIndicator): Deleted.
        The indicator depends on the live layer tree commits coming in, including layer creation,
        so it can't be turned on after the root layer is created. Even a refresh is insufficient
        to get it working; the debug indicator really needs to exist from the first commit.
        So, don't even attempt to dynamically enable the indicator; create it at
        RemoteLayerTreeDrawingAreaProxy construction time if the pref is enabled.

2014-07-06  Yoav Weiss  <yoav@yoav.ws>

        Turn on img@sizes compile flag
        https://bugs.webkit.org/show_bug.cgi?id=134634

        Reviewed by Benjamin Poulain.

        * Configurations/FeatureDefines.xcconfig: Moved compile flag to alphabetical order.

2014-07-06  Brady Eidson  <beidson@apple.com>

        Speculative fix for: NetworkProcess sometimes hangs under copyDefaultCredentialForProtectionSpace
        https://bugs.webkit.org/show_bug.cgi?id=134666

        Reviewed by Tim Horton.

        * Shared/mac/SecItemRequestData.cpp:
        (WebKit::SecItemRequestData::encode): Encode whether or not the query dictionary exists.
        (WebKit::SecItemRequestData::decode): Only fail when query dictionary fails to decode if we expect one. 

        * UIProcess/mac/SecItemShimProxy.cpp:
        (WebKit::SecItemShimProxy::secItemRequest): If the request is of type Invalid, log an error message asking 
          for a bug, and respond with an "invalid parameter" error.

2014-07-06  Antti Koivisto  <antti@apple.com>

        Don't throttle layer flushes when the main resource is a GIF
        https://bugs.webkit.org/show_bug.cgi?id=134650

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::adjustLayerFlushThrottling):

2014-07-04  Rohit Kumar  <kumar.rohit@samsung.com>

        [EFL][WK2]Fix build break in EFL WK2
        https://bugs.webkit.org/show_bug.cgi?id=134629

        Unreviewed build fix.

        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
        (WebKit::CoordinatedDrawingArea::scheduleCompositingLayerFlushImmediately):
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:

2014-07-04  Dan Bernstein  <mitz@apple.com>

        [Cocoa] -[WKWebView _reload] is unused
        https://bugs.webkit.org/show_bug.cgi?id=134638

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _reload]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-07-04  Tim Horton  <timothy_horton@apple.com>

        [WK2] Take TopContentInset into account when sending dictionary lookup point to PluginView
        https://bugs.webkit.org/show_bug.cgi?id=134624
        <rdar://problem/17222041>

        Reviewed by Sam Weinig.

        * WebProcess/Plugins/PDF/PDFPlugin.mm:
        (WebKit::PDFPlugin::performDictionaryLookupAtLocation):
        Perform the same coordinate conversion we use for mouse events, which happens
        to take the top content inset into account.

2014-07-04  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, GTK WK2 build fix after r170787.

        * WebProcess/WebPage/DrawingAreaImpl.cpp:
        (WebKit::DrawingAreaImpl::scheduleCompositingLayerFlushImmediately):
        * WebProcess/WebPage/DrawingAreaImpl.h:

2014-07-04  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Reverting the bad changes introduced in r170795.

        * Platform/IPC/ArgumentDecoder.cpp:
        (IPC::ArgumentDecoder::decode): Deleted.
        * Platform/IPC/ArgumentDecoder.h:
        * Platform/IPC/ArgumentEncoder.cpp:
        (IPC::ArgumentEncoder::encode): Deleted.
        * Platform/IPC/ArgumentEncoder.h:

2014-07-04  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Fixing the build for ports on 64-bit Linux.

        Add IPC encoding and decoding overloads for the long long type, needed
        after r170755 started encoding and decoding long long variables in
        FormDataElement.

        * Platform/IPC/ArgumentDecoder.cpp:
        (IPC::ArgumentDecoder::decode):
        * Platform/IPC/ArgumentDecoder.h:
        * Platform/IPC/ArgumentEncoder.cpp:
        (IPC::ArgumentEncoder::encode):
        * Platform/IPC/ArgumentEncoder.h:

2014-07-04  Timothy Horton  <timothy_horton@apple.com>

        [iOS][WK2] Black web view after un-suspending process
        https://bugs.webkit.org/show_bug.cgi?id=134623
        <rdar://problem/17513223>

        Reviewed by Simon Fraser.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::viewStateDidChange):
        Add an argument to viewStateDidChange that allows callers (-[WKContentView _applicationWillEnterForeground:])
        to force us to wait for a synchronous reply from the Web process after performing a view state change.

        (WebKit::WebPageProxy::dispatchViewStateChange):
        Move the has-been-in-window-and-now-is-newly-in-window check into dispatchViewStateChange.
        Adjust the logic surrounding going into/out of window by factoring out the IsInWindow-did-change check, for clarity.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _applicationWillEnterForeground:]):
        As previously mentioned, wait for a reply when foregrounding.

        * WebProcess/WebPage/DrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlushImmediately):
        (WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlush):
        (WebKit::RemoteLayerTreeDrawingArea::viewStateDidChange):
        Make sure to schedule a commit immediately if the UI process is waiting for a reply.
        Previously we assumed that a commit would be scheduled anyway because we would have to reparent the
        layer tree, but that doesn't happen in the suspension-without-unparenting case. Also, we want to skip
        all throttling in this case.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::scheduleCompositingLayerFlushImmediately):

2014-07-03  Gavin Barraclough  <baraclough@apple.com>

        Should not take background task assertion for NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=134622

        Reviewed by Tim Horton.

        When the WebContent wants to complete a task in the background we take a process assertion on the child process, and also need to prevent the UI process from suspending.
        However for the NetworkProcess we always just hold a process assertion, and don't want this to interfere with UIApp suspension.

        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
            - ProcessAssertion -> ProcessAndUIAssertion
        * UIProcess/ProcessAssertion.cpp:
        (WebKit::ProcessAssertion::ProcessAssertion):
            - assignment -> initializer list.
        (WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion):
        (WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion):
        (WebKit::ProcessAndUIAssertion::setState):
            - added no-op implementation.
        (WebKit::ProcessAssertion::~ProcessAssertion): Deleted.
        * UIProcess/ProcessAssertion.h:
            - removed ~ProcessAssertion, added ProcessAndUIAssertion class.
        * UIProcess/ProcessThrottler.cpp:
        (WebKit::ProcessThrottler::didConnnectToProcess):
            - ProcessAssertion -> ProcessAndUIAssertion
        * UIProcess/ProcessThrottler.h:
            - ProcessAssertion -> ProcessAndUIAssertion
        * UIProcess/ios/ProcessAssertionIOS.mm:
        (WebKit::ProcessAssertion::ProcessAssertion):
            - assignment -> initializer list.
            - moved code to manage WKProcessAssertionBackgroundTaskManager
        (WebKit::ProcessAssertion::setState):
            - moved code to manage WKProcessAssertionBackgroundTaskManager
        (WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion):
        (WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion):
        (WebKit::ProcessAndUIAssertion::setState):
            - moved code to manage WKProcessAssertionBackgroundTaskManager from ProcessAssertion.
        (WebKit::ProcessAssertion::~ProcessAssertion): Deleted.
            - delete - moved code to manage WKProcessAssertionBackgroundTaskManager

2014-07-03  Simon Fraser  <simon.fraser@apple.com>

        Clean up Brady's mess on iOS.

        * Platform/mac/StringUtilities.h:
        * Platform/mac/StringUtilities.mm:

2014-07-03  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Compositing layers draw outside page bounds
        https://bugs.webkit.org/show_bug.cgi?id=134619
        <rdar://problem/16953222>

        Reviewed by Benjamin Poulain.
        
        With the new rubber-banding behavior, we no longer have the root content layer clipping all
        the web layers, but this resulted in web layers which were moved outside the viewport by CSS
        transforms not being clipped.
        
        Fix by adding a clipping layer inside the scroll view, above _rootContentView. This layer
        normally has the same bounds as the content, but when rubber-banding or pinching,
        it takes the union of the content bounds and the rect used for fixed positioning.
        To make scrolling work as expected in this scenario, when it has non-zero offset, it
        has to compensate by setting its bounds origin.

        The bounds of the clipping layer are updated on scrolling/zooming, and when the
        layer commit tells us that the content size changed.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _updateScrollViewBackground]):
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:configuration:webView:]):
        (-[WKContentView updateFixedClippingView:]):
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
        (-[WKContentView _didCommitLayerTree:]):

2014-07-03  Brady Eidson  <beidson@apple.com>

        When showing the selection menu, include menu options for all selected phone numbers.
        <rdar://problem/16983434>, <rdar://problem/16874568>, and https://bugs.webkit.org/show_bug.cgi?id=134613

        Reviewed by Tim Horton.

        Move some telephone number menu logic from WebKitSystemInterface here.
        Also provide utility to get just the one menu item relevant to a telephone number.
        * Platform/mac/MenuUtilities.h:
        * Platform/mac/MenuUtilities.mm: Added.
        (WebKit::menuItemForTelephoneNumber):
        (WebKit::menuItemsForTelephoneNumber):

        * Platform/mac/StringUtilities.h:
        * Platform/mac/StringUtilities.mm:
        (WebKit::formattedPhoneNumberString): Return a localized formatted phone number.

        Add a member to track the selected phone numbers:
        * Shared/ContextMenuContextData.h:
        (WebKit::ContextMenuContextData::ContextMenuContextData):
        (WebKit::ContextMenuContextData::selectedTelephoneNumbers):

        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::setupServicesMenu): Also add menu items for each phone number that is
          in the selection.

        Switch away from a WKSI method, and remove a lot of unneeded forward declarations and soft linking:
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::showTelephoneNumberMenu):
        (WebKit::WebPageProxy::showSelectionServiceMenu):

        * WebKit2.xcodeproj/project.pbxproj:

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::drawSelectionHighlight):
        (WebKit::ServicesOverlayController::handleClick): Pass the phone numbers along.

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::handleSelectionServiceClick): Pass the phone numbers along.

2014-07-03  Gavin Barraclough  <baraclough@apple.com>

        WKProcessAssertionBackgroundTaskManager should clear member if task expires
        https://bugs.webkit.org/show_bug.cgi?id=134618

        Reviewed by Anders Carlson.

        Failure to do so results in a warning, and could result in us erroneously completing a background task too soon.

        * UIProcess/ios/ProcessAssertionIOS.mm:
        (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
            - remove local variable, _backgroundTask = UIBackgroundTaskInvalid;

2014-07-03  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed iOS build fix for r170774.

        Remove some unnecessary WTF::moves on iOS:
        error: static_assert failed "T is not an lvalue reference; move() is unnecessary."

        * WebProcess/WebPage/EventDispatcher.cpp:
        (WebKit::EventDispatcher::getQueuedTouchEventsForPage):
        (WebKit::EventDispatcher::touchEvent):

2014-07-03  Anders Carlsson  <andersca@apple.com>

        Try to fix the iOS build.

        Add WebPageProxyCocoa.mm for code shared between iOS and OS X. Put the recent searches save/restore code there.

        * UIProcess/Cocoa/WebPageProxyCocoa.mm: Added.
        (WebKit::autosaveKey):
        (WebKit::WebPageProxy::saveRecentSearches):
        (WebKit::WebPageProxy::loadRecentSearches):
        * UIProcess/mac/WebPageProxyMac.mm:
        * WebKit2.xcodeproj/project.pbxproj:

2014-07-03  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16337741> The UI process needs to track the number of HTTP subresource loads in progress (or at least whether there are any)
        https://bugs.webkit.org/show_bug.cgi?id=134615

        Reviewed by Anders Carlsson.

        Added a _networkRequestsInProgress boolean property to WKWebView.

        * UIProcess/API/Cocoa/WKBrowsingContextController.mm: Added no-op overrides of new
        PageLoadStateObserver member functions.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _networkRequestsInProgress]): New getter that gets this state from the
        PageLoadState.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared new property.

        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::willChangeNetworkRequestsInProgress):: Override this new
        PageLoadState::Observer member function by sending the appropriate KVO change message to the
        WKWebView.
        (WebKit::NavigationState::didChangeNetworkRequestsInProgress): Ditto.

        * UIProcess/PageLoadState.cpp:
        (WebKit::PageLoadState::commitChanges): Check for changes to networkRequestsInProgress
        and call the observers if needed.
        (WebKit::PageLoadState::reset): Reset networkRequestsInProgress in the uncommitted state.
        (WebKit::PageLoadState::setNetworkRequestsInProgress): Set networkRequestsInProgress in the
        uncommitted state.
        * UIProcess/PageLoadState.h:
        (WebKit::PageLoadState::networkRequestsInProgress): Added this getter.
        (WebKit::PageLoadState::Data::Data): Initialize new networkRequestsInProgress member.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::setNetworkRequestsInProgress): Added. Updates the PageLoadState.
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in: Added SetNetworkRequestsInProgress message.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest): Call
        WebPage::addResourceRequest.
        (WebKit::WebFrameLoaderClient::dispatchDidFinishLoading): Call
        WebPage::removeResourceRequest.
        (WebKit::WebFrameLoaderClient::dispatchDidFailLoading): Ditto.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::addResourceRequest): Added. If the new request is for an HTTP-family URL,
        add its identifier to the set of network resourece request identifiers. If the set was
        previously empty, send the WebPageProxy a message.
        (WebKit::WebPage::removeResourceRequest): Added. Remove the identifier from the set. If it
        becomes empty, send the WebPageProxy a message.
        * WebProcess/WebPage/WebPage.h:

2014-07-03  Anders Carlsson  <andersca@apple.com>

        Remove two unused functions
        https://bugs.webkit.org/show_bug.cgi?id=134614

        Reviewed by Andreas Kling.

        * UIProcess/LegacySessionStateCoding.h:
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::encodeLegacySessionHistoryEntryData): Deleted.
        (WebKit::decodeLegacySessionHistoryEntryData): Deleted.

2014-07-03  Daniel Bates  <dabates@apple.com>

        Add WTF::move()
        https://bugs.webkit.org/show_bug.cgi?id=134500

        Rubber-stamped by Anders Carlsson.

        Substitute WTF::move() for std::move().

        * DatabaseProcess/DatabaseProcess.cpp:
        * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
        * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
        * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        * Platform/IPC/ArgumentCoders.h:
        * Platform/IPC/ArgumentDecoder.cpp:
        * Platform/IPC/Connection.cpp:
        * Platform/IPC/Connection.h:
        [...]

2014-07-03  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix small bugs of dynamicViewportSizeUpdate that were causing inaccuracies in the computed target
        https://bugs.webkit.org/show_bug.cgi?id=134582

        Reviewed by Tim Horton.

        This patch fixes two small bugs that were causing "jumpiness" on animated resize:
        1) The new scale was less accurate than the target scale, making the WebProcess force a worse scale on the content.
        2) The code putting back the rects in view was ignoring the obscured insets, constraining the scroll position more
           than it should be.

        The first problem was cause by a series of rounding issues accumulating to the fact that "scale != targetScale"
        was almost never true.

        The first issue is that the unobscured content size was stored in integer coordinates. Because of that, it was
        impossible to determine accurately how much content is in the view.
        The outcome was that visibleHorizontalFraction was very inaccurate compared to what the UIProcess computed.

        Another issue affecting the scale is that scaleAfterViewportWidthChange was computing the widthToKeepInView
        on floating point. Since ARM64 does all those computations on doubles in the UIProcess, the value would be quite
        different from the received targetScale.

        Finally, the code uses withinEpsilon() instead of a strict equality to reduce the effect of rounding errors.

        For the second issue, the problem was that I was bounding the exposed rect to the page bounds. It is completely
        valid to have an exposed rect outside the page bounds, that area is just under the obscured insets.

        On the other hand, the unobscured rect needs to be within the bounds as we do not want to rotate to a rubberbanding
        position. The fix is simply to put the right rect into bounds, and the horizontal/vertical adjustement applies on
        both rects.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::scaleAfterViewportWidthChange):
        (WebKit::WebPage::dynamicViewportSizeUpdate):
        (WebKit::WebPage::updateVisibleContentRects):

2014-07-03  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * UIProcess/mac/WebPageProxyMac.mm:

2014-07-03  Anders Carlsson  <andersca@apple.com>

        Get rid of WebPageProxyCF.cpp
        https://bugs.webkit.org/show_bug.cgi?id=134609

        Reviewed by Dan Bernstein.

        * UIProcess/cf/WebPageProxyCF.cpp: Removed.
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::autosaveKey):
        (WebKit::WebPageProxy::saveRecentSearches):
        (WebKit::WebPageProxy::loadRecentSearches):
        * WebKit2.xcodeproj/project.pbxproj:

2014-07-03  Tim Horton  <timothy_horton@apple.com>

        [WK2] Revise the flat find indicator secondary highlight shadows
        https://bugs.webkit.org/show_bug.cgi?id=134607
        <rdar://problem/17554828>

        Reviewed by Brady Eidson.

        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::drawRect):
        Bring back the secondary highlight shadow, with new constants.

2014-07-03  Tim Horton  <timothy_horton@apple.com>

        [iOS][WK2] Sometimes the swipe snapshot stays up too long
        https://bugs.webkit.org/show_bug.cgi?id=134506
        <rdar://problem/17496803>

        Reviewed by Simon Fraser.

        Implement a transaction callback mechanism.
        The UI process can register a callback at any point, generally immediately after sending a message to the Web process.
        It will then send another message (in-order) with the callback ID to the Web process, which will put it into the next transaction
        (scheduling a new one if needed). When the transaction comes back to the UI process, the callbacks are performed.
        This ensures that the callback fires alongside a commit that includes the results of whatever messages were sent before it was registered.
        For now, all callbacks are fired just before committing layer changes, but it's possible future patches will want post-commit callbacks.
        
        Make use of this to remove the ViewGestureControllerIOS snapshots at the right time.

        * Shared/mac/RemoteLayerTreeTransaction.h:
        (WebKit::RemoteLayerTreeTransaction::callbackIDs):
        (WebKit::RemoteLayerTreeTransaction::setCallbackIDs):
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::encode):
        (WebKit::RemoteLayerTreeTransaction::decode):
        Add a vector of callback IDs to the transaction; encode and decode as appropriate.

        * UIProcess/DrawingAreaProxy.h:
        (WebKit::DrawingAreaProxy::dispatchAfterEnsuringDrawing):
        (WebKit::DrawingAreaProxy::lastVisibleTransactionID): Deleted.
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing):
        Add dispatchAfterEnsuringDrawing, which takes a function.
        When a callback is added, we send the callback ID to the Web process via the AddTransactionCallbackID message.
        Perform callbacks listed in the incoming transaction's vector of callback IDs.

        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::addTransactionCallbackID):
        * WebProcess/WebPage/DrawingArea.messages.in:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        (WebKit::RemoteLayerTreeDrawingArea::addTransactionCallbackID):
        Keep track of the pending callback IDs on the drawing area, and move them into the transaction.
        We schedule a flush when installing a transaction callback on the premise that
        sometimes the action (goToBackForwardListItem in the swipe case) might have already occurred
        and been committed by the time the Web process receives AddTransactionCallbackID, so we need
        to cause another commit to send the callbacks across. If said commit is still pending, this is a no-op.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (allViewGestureControllers):
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::~ViewGestureController):
        (WebKit::ViewGestureController::endSwipeGesture):
        (WebKit::ViewGestureController::willCommitPostSwipeTransitionLayerTree):
        (WebKit::ViewGestureController::setRenderTreeSize):
        * UIProcess/mac/ViewGestureController.h:
        Keep a side-map of page IDs to ViewGestureControllers, so that we can safely get back to
        our ViewGestureController from the callback.

        When the callback fires, if it succeeded, set m_shouldRemoveSnapshotWhenTargetRenderTreeSizeHit,
        so that the commit (which is about to occur immediately after the callback returns) which calls
        setRenderTreeSize will (perhaps) remove the snapshot.

        If it failed, we remove the snapshot immediately, as this usually happens if the Web process crashed.

2014-07-03  Brady Eidson  <beidson@apple.com>

        Followup to "rects sent to ServicesOverlayController are wrong"
        https://bugs.webkit.org/show_bug.cgi?id=134568

        Rubberstamped by Tim Horton.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::drawSelectionHighlight): Don’t check to see if the
          proposed rect intersects the dirty rect. We always need to include all rects that form
          the selection when creating the DDHighlight.

2014-07-03  Tim Horton  <timothy_horton@apple.com>

        [WK2] RemoteLayerTreeDrawingAreaProxy re-checks a preference every commit for no reason
        https://bugs.webkit.org/show_bug.cgi?id=134586

        Reviewed by Benjamin Poulain.

        * UIProcess/DrawingAreaProxy.h:
        (WebKit::DrawingAreaProxy::setShouldShowDebugIndicator):
        (WebKit::DrawingAreaProxy::showDebugIndicator): Deleted.
        (WebKit::DrawingAreaProxy::isShowingDebugIndicator): Remove this, nobody is using it.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::preferencesDidChange):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::setShouldShowDebugIndicator):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator): Deleted.
        Check the debug indicator pref at construction time, and update the state when it changes.
        Checking it every commit was surprisingly expensive.

2014-07-03  Antti Koivisto  <antti@apple.com>

        Ensure frame creation messages get through to UI process
        https://bugs.webkit.org/show_bug.cgi?id=134591
        <rdar://problem/16918218>

        Reviewed by Anders Carlsson.

        If we are middle of handling a synchronous message from UI process a frame creation message back gets delayed.
        The subsequent synchronous DecidePolicyForNavigationAction message expects that the frame creation
        message has arrived first and fails.

        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::createWithCoreMainFrame):
        (WebKit::WebFrame::createSubframe):
        
            Send messages with DispatchMessageEvenWhenWaitingForSyncReply so they always go through in order.

2014-07-03  Anders Carlsson  <andersca@apple.com>

        Get rid of DecoderAdapter and EncoderAdapter
        https://bugs.webkit.org/show_bug.cgi?id=134598

        Reviewed by Andreas Kling.

        * CMakeLists.txt:
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/DecoderAdapter.cpp: Removed.
        * WebProcess/WebPage/DecoderAdapter.h: Removed.
        * WebProcess/WebPage/EncoderAdapter.cpp: Removed.
        * WebProcess/WebPage/EncoderAdapter.h: Removed.
        * WebProcess/WebPage/WebPage.cpp:

2014-07-02  Anders Carlsson  <andersca@apple.com>

        Stop using EncoderAdapter/DecoderAdapter for FormData
        https://bugs.webkit.org/show_bug.cgi?id=134571

        Reviewed by Andreas Kling.

        * Shared/Network/NetworkResourceLoadParameters.cpp:
        (WebKit::NetworkResourceLoadParameters::encode):
        (WebKit::NetworkResourceLoadParameters::decode):

2014-07-03  Brady Eidson  <beidson@apple.com>

        Selection rects sent to ServicesOverlayController are wrong.
        <rdar://problem/16727796> and https://bugs.webkit.org/show_bug.cgi?id=134568

        Reviewed by Darin Adler (and Tim Horton and Ryosuke Niwa).

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::selectionRectsDidChange): Also pass the GapRects to the ServicesOverlayController.
        * WebProcess/WebCoreSupport/WebEditorClient.h:

        * WebProcess/WebPage/ServicesOverlayController.h:
        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::expandForGap):
        (WebKit::compactRectsWithGapRects): Combine 3+ rects down to exactly 3 rects, then expand them based on GapRects.
        (WebKit::ServicesOverlayController::selectionRectsDidChange): Call compactRectsWithGapRects, then reverse the list.
        (WebKit::ServicesOverlayController::drawSelectionHighlight): Tell data detectors to flip this.
        (WebKit::ServicesOverlayController::drawTelephoneNumberHighlight): Tell data detectors to flip this.
        (WebKit::ServicesOverlayController::drawCurrentHighlight): No need to flip this anymore.

2014-07-03  Brady Eidson  <beidson@apple.com>

        Possible crash in IconDatabase in WebCore::IconDatabase::dispatchDidRemoveAllIconsOnMainThread
        <rdar://problem/17437687> and https://bugs.webkit.org/show_bug.cgi?id=134517

        Reviewed by Eric Carlson.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::~WebContext): Instead of directly deref’ing the WebIconDatabase, ask it to
          deref itself when appropriate.

        * UIProcess/WebIconDatabase.cpp:
        (WebKit::WebIconDatabase::WebIconDatabase):
        (WebKit::WebIconDatabase::didClose): If this WebIconDatabase is supposed to deref itself when
          appropriate, do so now.
        (WebKit::WebIconDatabase::derefWhenAppropriate): If the WebCore::IconDatabase is still open then
          defer this deref.
        * UIProcess/WebIconDatabase.h:

2014-07-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r170676): [GTK] UI process crashes when the Web Process crashes
        https://bugs.webkit.org/show_bug.cgi?id=134541

        Reviewed by Gyuyoung Kim.

        It happens when attaching a new web process, because it tries to
        encode a null SessionState.

        * UIProcess/LegacySessionStateCodingNone.cpp:
        (WebKit::encodeLegacySessionState): Return an empty API::Data
        object instead of nullptr.
        (WebKit::encodeLegacySessionHistoryEntryData): Ditto.

2014-07-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r170743): [GTK] [EFL] Build broken.
        https://bugs.webkit.org/show_bug.cgi?id=134585

        Reviewed by Philippe Normand.

        Add ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC) guards where needed.

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::initializePlugin):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::createPlugin):

2014-07-02  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Make is safe/fast to use the animated resize API without resizing anything
        https://bugs.webkit.org/show_bug.cgi?id=134570

        Reviewed by Enrica Casucci.

        Today, if someone calls _beginAnimatedResizeWithUpdates-_endAnimatedResize, it is always a very heavy process
        forcing a relayout and can cause synchronous operations.

        We should not force the caller of the API to maintain their own state tracking, we should do that for them.

        With this patch, we track everything we need for a resize and only do the heavy lifting if anything has actually changed.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (activeMinimumLayoutSize):
        (activeMinimumLayoutSizeForMinimalUI):
        (activeMaximumUnobscuredSize):
        (activeOrientation):
        This code is used in both _didRelaunchProcess and _beginAnimatedResizeWithUpdates. It is moved to static functions
        to avoid having it in two places.

        (-[WKWebView _didRelaunchProcess]):

        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        The updates now goes like this:
        1) Set _isAnimatingResize to prevent the undesired side effects updateBlock() if we really need to resize.
        2) Get all the original values before calling the update block.
        3) Call the update block.
        4a) If nothing useful for resize has changed, reset _isAnimatingResize to false.
            We also need to update the visible content rect because the update block may have changed something unrelated
            to the view size (scale, scroll position, etc).
        4b) If we really need to resize, proceed as usual.

        (-[WKWebView _endAnimatedResize]):
        With the changes in _beginAnimatedResizeWithUpdates:, _isAnimatingResize is only set for real cases of animated resize,
        bail out early if that flag isn't set.

        The remaining code is unchanged, it is just not indented due to the removal of the if() branch.

2014-07-02  Roger Fong  <roger_fong@apple.com>

        Improve handling of primary offscreen plugins.
        https://bugs.webkit.org/show_bug.cgi?id=134528.
        <rdar://problem/17471864>

        Reviewed by Dean Jackson.

        * WebProcess/Plugins/PluginView.cpp: 
        Determine whether or not the plugin starts offscreen when the plugin is initialized.
        (WebKit::PluginView::initializePlugin):
        (WebKit::PluginView::pluginSnapshotTimerFired):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::createPlugin):
        Use the PluginProcessTypeNormal for offscreen plugins that are potentially primary plugins.

2014-07-02  Enrica Casucci  <enrica@apple.com>

        REGRESSION(WK2): Undo does not work in text fields in Safari.
        https://bugs.webkit.org/show_bug.cgi?id=134572
        <rdar://problem/17542238>

        Reviewed by Benjamin Poulain.
        
        This patch adds for iOS the same implementation we have already for OS X.

        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (-[WKEditCommandObjC initWithWebEditCommandProxy:]):
        (-[WKEditCommandObjC command]):
        (-[WKEditorUndoTargetObjC undoEditing:]):
        (-[WKEditorUndoTargetObjC redoEditing:]):
        (WebKit::PageClientImpl::PageClientImpl):
        (WebKit::PageClientImpl::registerEditCommand):
        (WebKit::PageClientImpl::clearAllEditCommands):
        (WebKit::PageClientImpl::canUndoRedo):
        (WebKit::PageClientImpl::executeUndoRedo):

2014-07-02  Gavin Barraclough  <baraclough@apple.com>

        ProcessAssertion should also prevent UIApp suspension
        https://bugs.webkit.org/show_bug.cgi?id=134563

        Reviewed by Dan Bernstein.

        If the application suspends then the child processes will, too.
        Use beginBackgroundTaskWithName:expirationHandler: to request that the application remain runnable
        while waiting for background tasks to complete.

        * UIProcess/ProcessAssertion.cpp:
        (WebKit::ProcessAssertion::~ProcessAssertion):
            - Added destructor.
        * UIProcess/ProcessAssertion.h:
            - Added destructor.
        * UIProcess/ios/ProcessAssertionIOS.mm:
        (+[WKProcessAssertionBackgroundTaskManager shared]):
            - singleton WKProcessAssertionBackgroundTaskManager.
        (-[WKProcessAssertionBackgroundTaskManager init]):
        (-[WKProcessAssertionBackgroundTaskManager dealloc]):
            - register/remove notification handlers.
        (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
            - if we need to be runnable make sure we're holding a BackgroundTask, if not release it.
        (-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackgroundOrWillEnterForeground:]):
            - detect when the app enters/leaves foreground; calls to _updateBackgroundTask.
        (-[WKProcessAssertionBackgroundTaskManager incrementNeedsToRunInBackgroundCount]):
        (-[WKProcessAssertionBackgroundTaskManager decrementNeedsToRunInBackgroundCount]):
            - interface to update the count; calls to _updateBackgroundTask.
        (WebKit::ProcessAssertion::ProcessAssertion):
        (WebKit::ProcessAssertion::~ProcessAssertion):
            - count ProcessAssertions in and out of existance.
        (WebKit::ProcessAssertion::setState):
            - count when the state changes.

2014-07-01  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/134522> Remove duplication in code that prepares the user agent string on Mac and iOS

        Reviewed by Simon Fraser.

        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::webKitBundleVersionString): Return the entire CFBundleVersion now that WebCore handles formatting it.
        (WebKit::WebPageProxy::standardUserAgent):
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::webKitBundleVersionString): Ditto.
        (WebKit::WebPageProxy::standardUserAgent):

2014-06-28  Oliver Hunt  <oliver@apple.com>

       Restrict network process sandbox
       https://bugs.webkit.org/show_bug.cgi?id=134360

       Reviewed by Sam Weinig.

       Add more restrictions to the network process sandbox.

       * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
       (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
         Always use the cache directory provided in the initialization parameters,
         and make sure we consume the cookie directory extension.
       * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
         Make the sandbox profile much more restrictive.
       * Shared/Network/NetworkProcessCreationParameters.cpp:
       (WebKit::NetworkProcessCreationParameters::encode):
       (WebKit::NetworkProcessCreationParameters::decode):
       * Shared/Network/NetworkProcessCreationParameters.h:
         The network process now requires an extension to access
         its cookie storage.
       * Shared/mac/SandboxUtilities.cpp:
       (WebKit::pathForProcessContainer):
       * Shared/mac/SandboxUtilities.h:
         We need to be able to get hold of our container so
         that we can get the correct cookie storage directory.
       * UIProcess/WebContext.cpp:
       (WebKit::WebContext::ensureNetworkProcess):
         We have to pass in the an extension for the cookie storage directory when
       initalising the network process
       * UIProcess/mac/WebContextMac.mm:
       (WebKit::WebContext::platformDefaultCookieStorageDirectory):
         Make sure we provide the correct location on IOS
       * WebProcess/cocoa/WebProcessCocoa.mm:
       (WebKit::WebProcess::platformInitializeWebProcess):
         Consume the cookie storage extension

2014-07-02  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r170725.

        * CMakeLists.txt: Removed Shared/LegacySessionState.cpp.

2014-07-02  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r170719 for !CF platforms.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::sessionStateData): Deleted.
        (WebKit::WebPageProxy::restoreFromSessionStateData): Deleted.

2014-07-02  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/134521> iOS should use shared code to determine the system marketing version

        Reviewed by Simon Fraser.

        * Shared/ios/ChildProcessIOS.mm: Update #import.
        * Shared/mac/ChildProcessMac.mm: Ditto.

2014-07-02  Anders Carlsson  <andersca@apple.com>

        Rip out more dead code
        https://bugs.webkit.org/show_bug.cgi?id=134562

        Reviewed by Andreas Kling.

        * Shared/LegacySessionState.cpp: Removed.
        * Shared/LegacySessionState.h: Removed.
        * Shared/WebBackForwardListItem.cpp:
        (WebKit::WebBackForwardListItem::WebBackForwardListItem): Deleted.
        (WebKit::WebBackForwardListItem::backForwardData): Deleted.
        (WebKit::WebBackForwardListItem::setBackForwardData): Deleted.
        (WebKit::WebBackForwardListItem::encode): Deleted.
        (WebKit::WebBackForwardListItem::decode): Deleted.
        * Shared/WebBackForwardListItem.h:
        (WebKit::WebBackForwardListItem::create): Deleted.
        (WebKit::WebBackForwardListItem::setOriginalURL): Deleted.
        (WebKit::WebBackForwardListItem::setURL): Deleted.
        (WebKit::WebBackForwardListItem::setTitle): Deleted.
        * UIProcess/WebPageProxy.cpp:
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.cpp:

2014-07-02  Anders Carlsson  <andersca@apple.com>

        RestoreSession should take a vector of BackForwardListItemStates
        https://bugs.webkit.org/show_bug.cgi?id=134558

        Reviewed by Tim Horton.

        * Scripts/webkit2/messages.py:
        (struct_or_class):
        (headers_for_type):
        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        * Shared/WebPageCreationParameters.h:
        * UIProcess/WebBackForwardList.cpp:
        (WebKit::WebBackForwardList::itemStates):
        * UIProcess/WebBackForwardList.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::restoreFromSessionState):
        (WebKit::WebPageProxy::creationParameters):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::restoreSession):
        (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem): Deleted.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-07-02  Anders Carlsson  <andersca@apple.com>

        Store the back forward list item id inside BackForwardListItemState
        https://bugs.webkit.org/show_bug.cgi?id=134557

        Reviewed by Tim Horton.

        * Shared/SessionState.cpp:
        (WebKit::BackForwardListItemState::encode):
        (WebKit::BackForwardListItemState::decode):
        * Shared/SessionState.h:
        * Shared/WebBackForwardListItem.cpp:
        (WebKit::WebBackForwardListItem::create):
        (WebKit::WebBackForwardListItem::WebBackForwardListItem):
        (WebKit::WebBackForwardListItem::encode):
        * Shared/WebBackForwardListItem.h:
        (WebKit::WebBackForwardListItem::itemID):
        * UIProcess/WebBackForwardList.cpp:
        (WebKit::WebBackForwardList::restoreFromState):
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::addBackForwardItem):

2014-07-02  Manuel Rego Casasnovas  <rego@igalia.com>

        Unreviewed. EFL and GTK build fix after r170716.

        * UIProcess/LegacySessionStateCodingNone.cpp:
        (WebKit::decodeLegacySessionState): Update method signature.

2014-07-02  Anders Carlsson  <andersca@apple.com>

        Begin ripping out the old session state code
        https://bugs.webkit.org/show_bug.cgi?id=134556

        Reviewed by Andreas Kling.

        * UIProcess/WebBackForwardList.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/cf/WebBackForwardListCF.cpp: Removed.
        * UIProcess/cf/WebPageProxyCF.cpp:
        (WebKit::WebPageProxy::sessionStateData): Deleted.
        (WebKit::WebPageProxy::restoreFromSessionStateData): Deleted.
        * WebKit2.xcodeproj/project.pbxproj:

2014-07-02  Anders Carlsson  <andersca@apple.com>

        Use legacy state coding directly in WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=134553

        Reviewed by Dan Bernstein.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageRestoreFromSessionState):
        * UIProcess/API/C/WKSessionStateRef.cpp:
        (WKSessionStateCreateFromData):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _sessionStateData]):
        (-[WKWebView _sessionState]):
        (-[WKWebView _restoreFromSessionStateData:]):
        (-[WKWebView _restoreFromSessionState:]):
        (releaseNSData): Deleted.
        * UIProcess/LegacySessionStateCoding.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::restoreFromSessionState):
        (WebKit::WebPageProxy::restoreFromState): Deleted.
        * UIProcess/WebPageProxy.h:
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::decodeLegacySessionState):

2014-07-02  Anders Carlsson  <andersca@apple.com>

        Add -[WKWebView _sessionStateData] and -[WKWebView _restoreFromSessionStateData:]
        https://bugs.webkit.org/show_bug.cgi?id=134549

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _sessionState]):
        (-[WKWebView _sessionStateData]):
        (-[WKWebView _restoreFromSessionState:]):
        (-[WKWebView _restoreFromSessionStateData:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-07-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] WebKitVersion.h should be shared between UI and Web Process APIs
        https://bugs.webkit.org/show_bug.cgi?id=134538

        Reviewed by Martin Robinson.

        To be able to check current version from web extensions too.

        * UIProcess/API/gtk/WebKitVersion.h.in: Allow to include WebKitVersion.h also from webkit-web-extension.h.
        * WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h: Include WebKitVersion.h.

2014-07-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] WebKitWebView::create should receive information about the navigation action
        https://bugs.webkit.org/show_bug.cgi?id=133680

        Reviewed by Martin Robinson.

        Add WebKitNavigationAction boxed type representing a navigation
        action to be passed as parameter of WebKitWebView::create
        signal. In the future it could be also for the
        WebKitNavigationPolicyDecision class. The class contains
        information about a navigation action like the navigation type,
        the request, the mouse button and key modifiers and whether it was
        started by a user gesture. This information is needed to be able
        to implement a proper popup blocker. Since all that information is
        not provided by the C API, we have switched the UI client to use a
        custom client derived from API::UIClient. This also avoids a lot
        of toAPI -> toImpl unneeded conversions.

        * PlatformGTK.cmake: Add new files to compilation.
        * UIProcess/API/gtk/WebKitHitTestResult.cpp:
        (webkitHitTestResultCreate): Use a WebHitTestResult::Data const
        reference instead of a pointer to a WebHitTestResult.
        (webkitHitTestResultCompare): Ditto.
        * UIProcess/API/gtk/WebKitHitTestResultPrivate.h:
        * UIProcess/API/gtk/WebKitNavigationAction.cpp: Added.
        (webkitNavigationActionCreate): Create a WebKitNavigationAction
        for the given ResourceRequest and NavigationActionData.
        (webkit_navigation_action_copy):
        (webkit_navigation_action_free):
        (webkit_navigation_action_get_navigation_type):
        (webkit_navigation_action_get_mouse_button):
        (webkit_navigation_action_get_modifiers):
        (webkit_navigation_action_get_request):
        (webkit_navigation_action_is_user_gesture):
        * UIProcess/API/gtk/WebKitNavigationAction.h: Added.
        * UIProcess/API/gtk/WebKitNavigationActionPrivate.h: Added.
        * UIProcess/API/gtk/WebKitNavigationPolicyDecision.h:
        * UIProcess/API/gtk/WebKitPrivate.cpp:
        (toGdkModifiers):
        (toWebKitNavigationType):
        (toWebKitMouseButton):
        * UIProcess/API/gtk/WebKitPrivate.h:
        * UIProcess/API/gtk/WebKitUIClient.cpp:
        (UIClient::UIClient): Implement the UIClient using a custom class.
        (attachUIClientToView): Set the UIClient directly to the WebPageProxy.
        (createNewPage): Deleted.
        (showPage): Deleted.
        (closePage): Deleted.
        (runJavaScriptAlert): Deleted.
        (runJavaScriptConfirm): Deleted.
        (runJavaScriptPrompt): Deleted.
        (toolbarsAreVisible): Deleted.
        (setToolbarsAreVisible): Deleted.
        (menuBarIsVisible): Deleted.
        (setMenuBarIsVisible): Deleted.
        (statusBarIsVisible): Deleted.
        (setStatusBarIsVisible): Deleted.
        (isResizable): Deleted.
        (setIsResizable): Deleted.
        (getWindowFrame): Deleted.
        (setWindowFrame): Deleted.
        (mouseDidMoveOverElement): Deleted.
        (printFrame): Deleted.
        (runOpenPanel): Deleted.
        (decidePolicyForGeolocationPermissionRequest): Deleted.
        (runModal): Deleted.
        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkitWebViewCreate): Add WebKitNavigationAction parameter.
        (webkit_web_view_class_init): Add WebKitNavigationAction paramter
        to CREATE signal.
        (webkitWebViewCreateNewPage): Add WebKitNavigationAction parameter
        and pass it to the signal callbacks.
        (webkitWebViewMouseTargetChanged): Use a WebHitTestResult::Data
        const reference.
        (webkitWebViewPopulateContextMenu): Ditto.
        * UIProcess/API/gtk/WebKitWebView.h:
        * UIProcess/API/gtk/WebKitWebViewPrivate.h:
        * UIProcess/API/gtk/WebKitWindowProperties.cpp:
        (webkitWindowPropertiesUpdateFromWebWindowFeatures): Use a
        WebCore::WindowFeatures const reference.
        * UIProcess/API/gtk/WebKitWindowPropertiesPrivate.h:
        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section.
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
        * UIProcess/API/gtk/webkit2.h: Include WebKitNavigationAction.h.

2014-07-01  KwangHyuk Kim  <hyuki.kim@samsung.com>

        [EFL] Fix occurrence of two cursors on WK2 EFL.
        https://bugs.webkit.org/show_bug.cgi?id=134436

        Reviewed by Anders Carlsson.

        ecore_x_window_cursor is released when ecore_evas_object_cursor should be shown in order to avoid occurrence of two cursors.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::updateCursor):

2014-07-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Fix build break on EFL and GTK ports since r170683
        https://bugs.webkit.org/show_bug.cgi?id=134536

        Unreviewed, build fix.

        * CMakeLists.txt:

2014-07-01  Dean Jackson  <dino@apple.com>

        Make LogsPageMessagesToSystemConsoleEnabled a global debug preference
        https://bugs.webkit.org/show_bug.cgi?id=134534

        Reviewed by Joseph Pecoraro.

        * Shared/WebPreferencesDefinitions.h:

2014-07-01  Tim Horton  <timothy_horton@apple.com>

        Handle invalid data more gracefully.

        Reviewed by Anders Carlsson.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::decodeFormData):
        (WebKit::decodeBackForwardTreeNode):

2014-07-01  Mark Rowe  <mrowe@apple.com>

        Add a missing return statement in WKPageCopySessionState.

        Reviewed by Anders Carlsson.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageCopySessionState):

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Don't encode/decode the snapshot UUID
        https://bugs.webkit.org/show_bug.cgi?id=134532

        Reviewed by Sam Weinig.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::encodeSessionHistory):
        (WebKit::decodeSessionHistoryEntry):

2014-07-01  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170608.
        https://bugs.webkit.org/show_bug.cgi?id=134533

        Safari keeps crashing on device due to sandbox violation.
        (Requested by enrica on #webkit).

        Reverted changeset:

        "Restrict network process sandbox"
        https://bugs.webkit.org/show_bug.cgi?id=134360
        http://trac.webkit.org/changeset/170608

2014-07-01  Pratik Solanki  <psolanki@apple.com>

        Encode/decode CFURLRequestRefs when USE(CFNETWORK) is enabled
        https://bugs.webkit.org/show_bug.cgi?id=134454
        <rdar://problem/17510980>

        Reviewed by Andreas Kling.

        Use new helper methods to serialize/deserialize CFURLRequestRef directly so we can avoid
        creating NSURLRequest.

        * Shared/mac/WebCoreArgumentCodersMac.mm:
        (IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
        (IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):

2014-07-01  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Fix a race between the short tap and long tap highlight
        https://bugs.webkit.org/show_bug.cgi?id=134530

        Reviewed by Enrica Casucci.

        There was a potential race of event that can theoretically cause WKContentViewInteraction
        to call [WKContentView _showTapHighlight] after all interactions have been cancelled.

        The race would be like this:
        1) On a short tap, _singleTapRecognized: is called, a tap highlight ID is defined and
           _potentialTapInProgress is set to YES.
        2) For some reason, the gesture is cancelled. The method _singleTapDidReset is called, 
           setting _potentialTapInProgress but leaving the tap highlight ID as valid.
        3) The UIProcess receives the tap highlight information from the WebProcess, _didGetTapHighlightForRequest:
           has a valid ID, _potentialTapInProgress is false -> the highlight is shown right away as if a long tap
           was in progress.

        The missing piece that causes this is _singleTapDidReset: must also invalidate the tap highlight ID. This is done
        in the new static function cancelPotentialTapIfNecessary().

        Just invalidating the ID would create another race:
        1) Short tap gesture recognizer starts.
        2) The long press recognizer starts before (1) is commited.
        3) The long press recognizers sets up its own tap highlight ID.
        4) The short tap gesture recognizer resets, erasing the tap highlight ID defined in (3).

        To avoid this, the long press gesture recognizers immediately cancels any potential tap in progress.
        If _singleTapDidReset: is called before (3), this does nothing. If the reset is called after (3),
        _singleTapDidReset does nothing.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _highlightLongPressRecognized:]):
        (cancelPotentialTapIfNecessary):
        (-[WKContentView _singleTapDidReset:]):

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Add ABI hacks to allow WKPageRef to use WKSessionStateRef
        https://bugs.webkit.org/show_bug.cgi?id=134529

        Reviewed by Sam Weinig.

        * UIProcess/API/APISessionState.h:
        Add a sessionState() getter.
        
        * UIProcess/API/C/WKPage.cpp:
        (WKPageCopySessionState):
        Add a hack where we return a WKSessionStateRef if the least significant bit of the context pointer
        is 1, and a WKDataRef otherwise.

        (WKPageRestoreFromSessionState):
        Handle both WKDataRef and WKSessionStateref.

        * UIProcess/API/C/WKPage.h:
        Use WKTypeRefs for state saving and restoration.

        * UIProcess/API/C/WKSessionStateRef.cpp:
        (WKSessionStateCopyData):
        Add helper function.

2014-07-01  Anders Carlsson  <andersca@apple.com>

        WKPageRestoreFromSessionState should use the new session state restore code path
        https://bugs.webkit.org/show_bug.cgi?id=134526

        Reviewed by Tim Horton.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageRestoreFromSessionState):
        Use the new code path.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::restoreFromState):
        Only restore the back-forward state if we have a back-forward list.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::encodeSessionHistory):
        Save the original URL string as well.

        (WebKit::decodeV1SessionHistory):
        If we don't have a current index, set it to Nullopt instead of 0.

2014-07-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed. EFL and GTK build fix since r170654.

        * UIProcess/LegacySessionStateCodingNone.cpp: Add a dummy encodeLegacySessionState(const SessionState&).
        (WebKit::encodeLegacySessionState):

2014-07-01  Dan Bernstein  <mitz@apple.com>

        Crash in WebDocumentLoader::setNavigationID
        https://bugs.webkit.org/show_bug.cgi?id=134520

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::didReceivePolicyDecision): Null-check the policy document loader.

2014-07-01  Dan Bernstein  <mitz@apple.com>

        Build fix.

        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::didDestroyNavigation):

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Use the new legacy session state coding in WKPageCopySessionState
        https://bugs.webkit.org/show_bug.cgi?id=134516

        Reviewed by Tim Horton.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageCopySessionState):
        Call encodeLegacySessionState.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::encodeSessionHistoryEntryData):
        Use leakPtr() so we won't attempt to double-free the buffer.

        (WebKit::createDictionary):
        Fix a typo.

        (WebKit::encodeLegacySessionState):
        Don't encode the provisional URL if it's empty.

2014-07-01  Chris Fleizach  <cfleizach@apple.com>

        AX: [iOS WebKit2] Support for Speak selection
        https://bugs.webkit.org/show_bug.cgi?id=134512

        Reviewed by Darin Adler.

        Implement a method that Speak Selection can use to retrieve the selected content.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView accessibilityRetrieveSpeakSelectionContent]):

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Update the highest back-forward list item ID in the other WebBackForwardListItem constructor
        https://bugs.webkit.org/show_bug.cgi?id=134515

        Reviewed by Tim Horton.

        * Shared/WebBackForwardListItem.cpp:
        (WebKit::WebBackForwardListItem::WebBackForwardListItem):

2014-07-01  Brady Eidson  <beidson@apple.com>

        Fix ServicesOverlayController teardown
        <rdar://problem/17523998> and https://bugs.webkit.org/show_bug.cgi?id=134510

        Reviewed by Mark Rowe.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm:
        (WebKit::ServicesOverlayController::~ServicesOverlayController): Flipped logic on null-checking the overlay.

2014-07-01  Sam Weinig  <sam@webkit.org>

        [Cocoa][Mac] WKWebView should automatically set topContentInset when beneath a toolbar
        <rdar://problem/17523159>
        https://bugs.webkit.org/show_bug.cgi?id=134496

        Reviewed by Beth Dakin.

        - Adds _automaticallyAdjustsContentInsets SPI to both WKView and WKWebView.
        - Defaults _automaticallyAdjustsContentInsets to NO for WKView to keep legacy clients working.
        - Defaults _automaticallyAdjustsContentInsets to YES for WKWebView.

        * UIProcess/API/Cocoa/WKViewPrivate.h:
        Add _automaticallyAdjustsContentInsets SPI.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        Default _automaticallyAdjustsContentInsets to YES for WKWebView.

        (-[WKWebView _setTopContentInset:]):
        (-[WKWebView _topContentInset]):
        Change to forward to the WKView, since we now do coalescing and caching there.

        (-[WKWebView _setAutomaticallyAdjustsContentInsets:]):
        (-[WKWebView _automaticallyAdjustsContentInsets]):
        Forward to the WKView.

        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        Add _automaticallyAdjustsContentInsets SPI.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView renewGState]):
        Ensure the contentInset is updated when the view changes, as its relative location to the toolbar may have changed.

        (-[WKView addWindowObserversForWindow:]):
        (-[WKView removeWindowObservers]):
        (-[WKView observeValueForKeyPath:ofObject:change:context:]):
        Add observers for the contentLayoutRect and titlebarAppearsTransparent properties on the window. If either of them
        change, we need to recalculate the content inset.

        (-[WKView _updateContentInsetsIfAutomatic]):
        If _automaticallyAdjustsContentInsets is YES, follow the same rules as AppKit in setting the top content inset. Like
        AppKit this is only done when:
            - The window's style mask has the NSFullSizeContentViewWindowMask bit.
            - The window does not have titlebarAppearsTransparent set.
            - And we are not in an enclosing NSScrollView.

        (-[WKView _setTopContentInset:]):
        (-[WKView _topContentInset]):
        Coalesce setting the topContentInset to avoid a visual lag when resizing the window that was caused by us sending
        multiple topContentInsets to the WebContentProcess per runloop cycle. The reason for the lag was that at the time
        we observe the contentLayoutRect changing, our view may not yet be in its final position yet, so the inset will be
        temporarily wrong. When the view is finally positioned correctly, we will get a renewGState, at which point we will
        again calculate the inset, which now will be correct. Since these both happen in the same runloop iteration, we can
        just defer sending the inset to the WebContentProcess.

        (-[WKView _setAutomaticallyAdjustsContentInsets:]):
        (-[WKView _automaticallyAdjustsContentInsets]):
        Add the new SPI.

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Add a function for restoring page state given a SessionState object
        https://bugs.webkit.org/show_bug.cgi?id=134509

        Reviewed by Tim Horton.

        * Shared/WebBackForwardListItem.h:
        (WebKit::WebBackForwardListItem::itemState):
        * UIProcess/WebBackForwardList.cpp:
        (WebKit::WebBackForwardList::saveState):
        * UIProcess/WebBackForwardList.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::saveState):
        * UIProcess/WebPageProxy.h:

2014-07-01  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Navigation parameter in navigation delegate messages is nil for navigations started by the Web Content process
        https://bugs.webkit.org/show_bug.cgi?id=134482

        Reviewed by Tim Horton.

        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::didDestroyNavigation): New client function, called when a navigation ID
        is not going to be used anymore.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _restoreFromSessionState:]): If restoring triggered a navigation, create a
        WKNavigation for its ID.

        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::createLoadRequestNavigation): Removed FIXME, because we now remove
        navigations from the map in LoaderClient::didDestroyNavigation.
        (WebKit::NavigationState::createBackForwardNavigation): Ditto.
        (WebKit::NavigationState::createReloadNavigation): Ditto.
        (WebKit::NavigationState::createLoadDataNavigation): Ditto.
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction): If we are only
        getting a navigation ID now, create a WKNavigation for it. Also changed to create the
        NSURLRequest lazily.
        (WebKit::NavigationState::LoaderClient::didStartProvisionalLoadForFrame): Assert that
        navigationID is not zero and that it maps to an existing WKNavigation.
        (WebKit::NavigationState::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
        Ditto.
        (WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame): Ditto.
        (WebKit::NavigationState::LoaderClient::didCommitLoadForFrame): Ditto.
        (WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame): Ditto.
        (WebKit::NavigationState::LoaderClient::didFinishLoadForFrame): Ditto.
        (WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame): Ditto.
        (WebKit::NavigationState::LoaderClient::didDestroyNavigation): Override the new client
        function to remove the navigation from the map.
        (WebKit::NavigationState::LoaderClient::processDidCrash): Clear the navigations map.

        * UIProcess/WebFrameListenerProxy.cpp:
        (WebKit::WebFrameListenerProxy::WebFrameListenerProxy): Initialize new m_navigationID
        member variable.
        (WebKit::WebFrameListenerProxy::receivedPolicyDecision): Pass the navigation ID to
        WebFrame::receivedPolicyDecision.
        * UIProcess/WebFrameListenerProxy.h:
        (WebKit::WebFrameListenerProxy::navigationID): Added this accessor.
        (WebKit::WebFrameListenerProxy::setNavigationID): Ditto.

        * UIProcess/WebFrameProxy.cpp:
        (WebKit::WebFrameProxy::receivedPolicyDecision): Added navigationID parameter, which is
        passed along to the WebPageProxy.
        * UIProcess/WebFrameProxy.h:

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::receivedPolicyDecision): Added navigationID parameter, which is
        passed along in the message to the Web Content process.
        (WebKit::WebPageProxy::restoreFromSessionStateData): Changed to return a navigation ID of 0.
        (WebKit::WebPageProxy::restoreFromState): Changed to return a navigation ID if one was
        started.
        (WebKit::WebPageProxy::didDestroyNavigation): Added. Calls the new client function.
        (WebKit::WebPageProxy::decidePolicyForNavigationAction): Added navigationID and
        newNavigationID parameters. If a main-frame navigation doesn’t already have an ID, assign it
        a new ID and return it in the newNavigationID parmeter as well as setting it on the listener
        for the asynchronous case.
        * UIProcess/WebPageProxy.h:

        * UIProcess/WebPageProxy.messages.in: Added navigationID and newNavigationID parameters.

        * UIProcess/cf/WebPageProxyCF.cpp:
        (WebKit::WebPageProxy::restoreFromSessionStateData): Changed to return a navigation ID if
        one was started.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): Updated for additional
        parameter.
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Send the navigation
        ID to the UI process, get the new navigation ID from the reply, and set it on the document
        loader.

        * WebProcess/WebPage/WebDocumentLoader.cpp:
        (WebKit::WebDocumentLoader::detachFromFrame): Override to let the UI process know that the
        navigation ID will not be used anymore.
        * WebProcess/WebPage/WebDocumentLoader.h:

        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::didReceivePolicyDecision): Added navigationID parameter, set it on the
        document loader.
        (WebKit::WebFrame::documentLoaderDetached): Pass the message along to the UI process.
        * WebProcess/WebPage/WebFrame.h:

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::didReceivePolicyDecision): Pass new navigationID parameter along.
        * WebProcess/WebPage/WebPage.h:

        * WebProcess/WebPage/WebPage.messages.in: Added navigationID parameter.

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * WebKit2.xcodeproj/project.pbxproj:

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Temporarily encode and decode the snapshot UUID
        https://bugs.webkit.org/show_bug.cgi?id=134507

        Reviewed by Tim Horton.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::encodeSessionHistory):
        (WebKit::decodeSessionHistoryEntry):
        (WebKit::decodeSessionHistoryEntries):

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Implement encodeSessionHistoryEntryData
        https://bugs.webkit.org/show_bug.cgi?id=134505

        Reviewed by Tim Horton.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageCopySessionState):
        Add back a missing null check for the filter pointer.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::encodeSessionHistoryEntryData):

2014-07-01  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Bad spinner on news.google.com: animations need to be ordered
        https://bugs.webkit.org/show_bug.cgi?id=134504
        <rdar://problem/17507892>

        Reviewed by Tim Horton.
        
        The layer's addedAnimations property needs to maintain order, since the order
        in which transforms are applied is important.

        * Shared/mac/RemoteLayerTreeTransaction.h: Use a Vector<pair<>> for addedAnimations.
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::dumpChangedLayers):
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
        (WebKit::PlatformCAAnimationRemote::updateLayerAnimations):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::addAnimationForKey): If this is a new entry, we
        can just append to addedAnimations, otherwise we have to find the existing one
        and update its properties.
        (WebKit::PlatformCALayerRemote::removeAnimationForKey): Do linear search to
        find the animation to remove (this list will normally be short).

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Add a encodeLegacySessionState function
        https://bugs.webkit.org/show_bug.cgi?id=134502

        Reviewed by Tim Horton.

        * UIProcess/LegacySessionStateCoding.h:
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::encodeSessionHistoryEntryData):
        (WebKit::encodeLegacySessionHistoryEntryData):
        (WebKit::createDictionary):
        (WebKit::encodeSessionHistory):
        (WebKit::encodeLegacySessionState):

2014-07-01  Alexey Proskuryakov  <ap@apple.com>

        [Cocoa] WebProcess doesn't follow localization of UI process when run as a service
        https://bugs.webkit.org/show_bug.cgi?id=133126
        <rdar://problem/13396515>

        Patch by Alexey Proskuryakov.
        Reviewed by Tim Horton.

        * Configurations/WebContentService.Development.xcconfig:
        * Configurations/WebContentService.xcconfig:
        Figure out which of the two keys to use. CFBundleAllowMixedLocalizations was
        a workaround before we got CFBundleFollowParentLocalization, and these cannot be
        used together.

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::connectToService): Set up
        XPC bootstrap for CFBundle to use.

        * WebKit2.xcodeproj/project.pbxproj: Added a script that applies the key to Info.plist.

        * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-OSX.plist:
        * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-iOS.plist:
        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:
        Removed CFBundleAllowMixedLocalizations, we now add it programmatically.

2014-07-01  Alex Christensen  <achristensen@webkit.org>

        [iOS] Unreviewed build fix after r170640.

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::selectedTelephoneNumberRangesChanged):
        (WebKit::WebEditorClient::selectionRectsDidChange):
        * WebProcess/WebCoreSupport/WebEditorClient.h:
        * WebProcess/WebPage/WebPage.h:
        Add ifdefs to make everything compile and link.

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Add WKSessionStateGetTypeID
        https://bugs.webkit.org/show_bug.cgi?id=134499

        Reviewed by Tim Horton.

        * UIProcess/API/C/WKSessionStateRef.cpp:
        (WKSessionStateGetTypeID):
        * UIProcess/API/C/WKSessionStateRef.h:

2014-07-01  Daniel Bates  <dabates@apple.com>

        Remove unnecessary calls to std::move()
        https://bugs.webkit.org/show_bug.cgi?id=134493

        Reviewed by Anders Carlsson.

        * Shared/ShareableResource.cpp:
        (WebKit::ShareableResource::Handle::tryWrapInCFData):
        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::certificateInfo): Return a WebCore::CertificateInfo instead
        of const WebCore::CertificateInfo& to avoid returning a dangling reference to
        a local variable. Also, remove the unnecessary calls to std::move() as the compiler
        will invoke the move constructor for WebCore::CertificateInfo on return from the
        function.
        * WebProcess/WebPage/WebFrame.h:

2014-07-01  Anders Carlsson  <andersca@apple.com>

        Add a BackForwardListItemState struct and put the snapshot UUID there
        https://bugs.webkit.org/show_bug.cgi?id=134497

        Reviewed by Sam Weinig.

        * Shared/SessionState.cpp:
        (WebKit::PageState::encode):
        (WebKit::PageState::decode):
        (WebKit::BackForwardListItemState::encode):
        (WebKit::BackForwardListItemState::decode):
        * Shared/SessionState.h:
        * Shared/WebBackForwardListItem.cpp:
        (WebKit::WebBackForwardListItem::create):
        (WebKit::WebBackForwardListItem::WebBackForwardListItem):
        (WebKit::WebBackForwardListItem::backForwardData):
        (WebKit::WebBackForwardListItem::setBackForwardData):
        (WebKit::WebBackForwardListItem::encode):
        * Shared/WebBackForwardListItem.h:
        (WebKit::WebBackForwardListItem::setPageState):
        (WebKit::WebBackForwardListItem::setOriginalURL):
        (WebKit::WebBackForwardListItem::originalURL):
        (WebKit::WebBackForwardListItem::setURL):
        (WebKit::WebBackForwardListItem::url):
        (WebKit::WebBackForwardListItem::setTitle):
        (WebKit::WebBackForwardListItem::title):
        (WebKit::WebBackForwardListItem::setSnapshotUUID):
        (WebKit::WebBackForwardListItem::snapshotUUID):
        * UIProcess/WebBackForwardList.cpp:
        (WebKit::WebBackForwardList::restoreFromState):
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::addBackForwardItem):
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::decodeSessionHistoryEntries):

2014-07-01  Yongjun Zhang  <yongjun_zhang@apple.com>

        Add encodeInteger and decodeInteger for remote object encoder and decoder.
        https://bugs.webkit.org/show_bug.cgi?id=134453

        In 64bit system, encodeInteger/decodeInteger is by default mapped into encodeInt64/decodeInt64.  For
        32bit system, they are mapped to encodeInt32/decodeInt32.  However, since we don't have encodeInt32/decodeInt32
        implementation in WKRemoteObjectCoder, we could hit crash in 32bit systems.

        Reviewed by Sam Weinig.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectEncoder encodeInteger:forKey:]): Instead of creating a new number type UInt32, use encodeInt64 for
            encoding NSInteger.
        (-[WKRemoteObjectDecoder decodeIntegerForKey:]):

2014-06-30  Anders Carlsson  <andersca@apple.com>

        Use an std::function for filtering session state data
        https://bugs.webkit.org/show_bug.cgi?id=134481

        Reviewed by Sam Weinig.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageCopySessionState):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _sessionState]):
        * UIProcess/WebBackForwardList.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::sessionStateData):
        * UIProcess/WebPageProxy.h:
        * UIProcess/cf/WebBackForwardListCF.cpp:
        (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
        * UIProcess/cf/WebPageProxyCF.cpp:
        (WebKit::WebPageProxy::sessionStateData):

2014-07-01  Rohit Kumar  <kumar.rohit@samsung.com>

        Clean up the WebKit build from unused parameter warning in Webkit2/UIProcess module
        https://bugs.webkit.org/show_bug.cgi?id=134294

        Reviewed by Darin Adler.

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::reachedApplicationCacheOriginQuota):

2014-07-01  Brady Eidson  <beidson@apple.com>

        Followup for: Combine the Telephone and Selection overlay controllers, updating UI behavior.
        https://bugs.webkit.org/show_bug.cgi?id=134461

        Rubberstamped by Tim Horton.

        * WebProcess/WebPage/mac/ServicesOverlayController.mm: Include the correct constant.

2014-07-01  Brady Eidson  <beidson@apple.com>

        Build fix.

        Forgot to commit locally before pushing.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::servicesOverlayController): s/this/*this/

2014-07-01  Brady Eidson  <beidson@apple.com>

        Combine the Telephone and Selection overlay controllers, updating UI behavior.
        https://bugs.webkit.org/show_bug.cgi?id=134461

        Reviewed by Tim Horton.

        * WebKit2.xcodeproj/project.pbxproj:

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::selectedTelephoneNumberRangesChanged):
        (WebKit::WebEditorClient::selectionRectsDidChange):

        Remove the separate Selection overlay controller:
        * WebProcess/WebPage/SelectionOverlayController.cpp: Removed.
        * WebProcess/WebPage/ServicesOverlayController.h: Renamed from Source/WebKit2/WebProcess/WebPage/SelectionOverlayController.h.
        (WebKit::ServicesOverlayController::create):
        * WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm: Removed.

        Remove the separate TelephoneNumber overlay controller:
        * WebProcess/WebPage/TelephoneNumberOverlayController.cpp: Removed.
        * WebProcess/WebPage/TelephoneNumberOverlayController.h: Removed.
        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm: Removed.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::servicesOverlayController):
        (WebKit::WebPage::telephoneNumberOverlayController): Deleted.
        (WebKit::WebPage::selectionOverlayController): Deleted.
        (WebKit::WebPage::didChangeScrollOffsetForFrame): Deleted.
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::serviceControlsEnabled): Deleted.

        ServicesOverlayController is a combination of the old TelephoneNumber and Selection overlay controllers.
        A lot of code duplication is resolved, and things are generally easier to follow.
        It enforces displaying a telephone number highlight if precisely one telephone number is selected, or
        the selection highlight if the selection contains more than a single phone number
        * WebProcess/WebPage/mac/ServicesOverlayController.mm: Added.
        (WebKit::textQuadsToBoundingRectForRange):
        (WebKit::ServicesOverlayController::ServicesOverlayController):
        (WebKit::ServicesOverlayController::destroyOverlay):
        (WebKit::ServicesOverlayController::pageOverlayDestroyed):
        (WebKit::ServicesOverlayController::willMoveToWebPage):
        (WebKit::ServicesOverlayController::didMoveToWebPage):
        (WebKit::ServicesOverlayController::createOverlayIfNeeded):
        (WebKit::ServicesOverlayController::selectionRectsDidChange):
        (WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
        (WebKit::ServicesOverlayController::clearHighlightState):
        (WebKit::ServicesOverlayController::drawRect):
        (WebKit::ServicesOverlayController::drawSelectionHighlight):
        (WebKit::ServicesOverlayController::drawTelephoneNumberHighlight):
        (WebKit::ServicesOverlayController::drawCurrentHighlight):
        (WebKit::ServicesOverlayController::mouseEvent):
        (WebKit::ServicesOverlayController::handleClick):

2014-07-01  Zan Dobersek  <zdobersek@igalia.com>

        [WK2] IPC messages' arguments() method returns const std::tuple<> copies
        https://bugs.webkit.org/show_bug.cgi?id=131975

        Reviewed by Darin Adler.

        The arguments() method of the different IPC message objects should return a const reference
        to the std::tuple<> containing the arguments, instead of a const value. This avoids copying
        the std::tuple<> every time the arguments are encoded, and works best with the
        ArgumentEncoder::encode<std::tuple<...>>(const std::tuple<...>&) template instantiation.

        The unit test baselines are updated accordingly.

        * Scripts/webkit2/LegacyMessages-expected.h:
        (Messages::WebPage::LoadURL::arguments):
        (Messages::WebPage::LoadSomething::arguments):
        (Messages::WebPage::TouchEvent::arguments):
        (Messages::WebPage::AddEvent::arguments):
        (Messages::WebPage::LoadSomethingElse::arguments):
        (Messages::WebPage::DidReceivePolicyDecision::arguments):
        (Messages::WebPage::Close::arguments):
        (Messages::WebPage::PreferencesDidChange::arguments):
        (Messages::WebPage::SendDoubleAndFloat::arguments):
        (Messages::WebPage::SendInts::arguments):
        (Messages::WebPage::CreatePlugin::arguments):
        (Messages::WebPage::RunJavaScriptAlert::arguments):
        (Messages::WebPage::GetPlugins::arguments):
        (Messages::WebPage::GetPluginProcessConnection::arguments):
        (Messages::WebPage::TestMultipleAttributes::arguments):
        (Messages::WebPage::TestParameterAttributes::arguments):
        (Messages::WebPage::TemplateTest::arguments):
        (Messages::WebPage::SetVideoLayerID::arguments):
        (Messages::WebPage::DidCreateWebProcessConnection::arguments):
        (Messages::WebPage::InterpretKeyEvent::arguments):
        (Messages::WebPage::DeprecatedOperation::arguments):
        (Messages::WebPage::ExperimentalOperation::arguments):
        * Scripts/webkit2/Messages-expected.h:
        (Messages::WebPage::LoadURL::arguments):
        (Messages::WebPage::LoadSomething::arguments):
        (Messages::WebPage::TouchEvent::arguments):
        (Messages::WebPage::AddEvent::arguments):
        (Messages::WebPage::LoadSomethingElse::arguments):
        (Messages::WebPage::DidReceivePolicyDecision::arguments):
        (Messages::WebPage::Close::arguments):
        (Messages::WebPage::PreferencesDidChange::arguments):
        (Messages::WebPage::SendDoubleAndFloat::arguments):
        (Messages::WebPage::SendInts::arguments):
        (Messages::WebPage::CreatePlugin::arguments):
        (Messages::WebPage::RunJavaScriptAlert::arguments):
        (Messages::WebPage::GetPlugins::arguments):
        (Messages::WebPage::GetPluginProcessConnection::arguments):
        (Messages::WebPage::TestMultipleAttributes::arguments):
        (Messages::WebPage::TestParameterAttributes::arguments):
        (Messages::WebPage::TemplateTest::arguments):
        (Messages::WebPage::SetVideoLayerID::arguments):
        (Messages::WebPage::DidCreateWebProcessConnection::arguments):
        (Messages::WebPage::InterpretKeyEvent::arguments):
        (Messages::WebPage::DeprecatedOperation::arguments):
        (Messages::WebPage::ExperimentalOperation::arguments):
        * Scripts/webkit2/MessagesSuperclass-expected.h:
        (Messages::WebPage::LoadURL::arguments):
        * Scripts/webkit2/messages.py:
        (message_to_struct_declaration):

2014-07-01  Evan Nemerson  <evan@nemerson.com>

        [GTK] Annotations for WebResource.get_data produce wrong signature in Vala binding
        https://bugs.webkit.org/show_bug.cgi?id=134476

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitWebResource.cpp: Add array length and
        element-type annotations to return value of webkit_web_resource_get_data_finish().

2014-07-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [WK2] Can not convert ‘sessionState.WebKit::SessionState::provisionalURL’ from ‘WebCore::URL’ to ‘bool’
        https://bugs.webkit.org/show_bug.cgi?id=134487

        Rubber-stamped by Carlos Garcia Campos.

        * UIProcess/WebPageProxy.cpp: Use isNull().
        (WebKit::WebPageProxy::restoreFromState):

2014-07-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Fix build break on EFL and GTK ports since r170611 and r170614
        https://bugs.webkit.org/show_bug.cgi?id=134479

        Reviewed by Carlos Garcia Campos.

        Add LegacySessionStateCodingNone.cpp in order to fix build break on EFL and GTK ports. Additionally
        SessionStateConversion.cpp is added to CMakeLists.txt as well.

        * CMakeLists.txt:
        * UIProcess/LegacySessionStateCoding.h: Copied from Source/WebKit2/UIProcess/mac/LegacySessionStateCoding.h.
        * UIProcess/LegacySessionStateCodingNone.cpp: Renamed from Source/WebKit2/UIProcess/mac/LegacySessionStateCoding.h.
        (WebKit::encodeLegacySessionHistoryEntryData):
        (WebKit::decodeLegacySessionState):
        (WebKit::decodeLegacySessionHistoryEntryData):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::loadFile):
        (WebKit::WebPageProxy::restoreFromState):
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-30  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] The long press gesture recognizers should not block the pinch gesture
        https://bugs.webkit.org/show_bug.cgi?id=134477
        <rdar://problem/17514936>

        Reviewed by Tim Horton.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]):

2014-06-30  Anders Carlsson  <andersca@apple.com>

        Add WebPageProxy::restoreFromState
        https://bugs.webkit.org/show_bug.cgi?id=134480

        Reviewed by Tim Horton.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::restoreFromState):
        * UIProcess/WebPageProxy.h:

2014-06-30  Anders Carlsson  <andersca@apple.com>

        Add a function to restore a WebBackForwardList object from a BackForwardListState object
        https://bugs.webkit.org/show_bug.cgi?id=134478

        Reviewed by Tim Horton.

        * UIProcess/WebBackForwardList.cpp:
        (WebKit::generateWebBackForwardItemID):
        (WebKit::WebBackForwardList::restoreFromState):
        * UIProcess/WebBackForwardList.h:
        * UIProcess/cf/WebBackForwardListCF.cpp:
        (WebKit::generateWebBackForwardItemID): Deleted.

2014-06-30  Anders Carlsson  <andersca@apple.com>

        Change the AddBackForwardItem message to take a page state object
        https://bugs.webkit.org/show_bug.cgi?id=134475

        Reviewed by Andreas Kling.

        * Scripts/webkit2/messages.py:
        (struct_or_class):
        (headers_for_type):
        * Shared/WebBackForwardListItem.cpp:
        (WebKit::WebBackForwardListItem::create):
        (WebKit::WebBackForwardListItem::WebBackForwardListItem):
        * Shared/WebBackForwardListItem.h:
        (WebKit::WebBackForwardListItem::setPageState):
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::addBackForwardItem):
        * UIProcess/WebProcessProxy.h:
        * UIProcess/WebProcessProxy.messages.in:
        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
        (WebKit::updateBackForwardItem):

2014-06-30  Tim Horton  <timothy_horton@apple.com>

        [WK2] Add a flatter find-in-page current match indicator style
        https://bugs.webkit.org/show_bug.cgi?id=134434
        <rdar://problem/16225673>

        Reviewed by Simon Fraser.

        * UIProcess/FindIndicator.cpp:
        (WebKit::findIndicatorsForTextRectsOverlap):
        (WebKit::FindIndicator::frameRect):
        (WebKit::flatHighlightColor):
        (WebKit::flatRimShadowColor):
        (WebKit::flatDropShadowColor):
        (WebKit::FindIndicator::draw):
        Add a flatter find indicator, with a bigger shadow.

        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::updateFindUIAfterPageScroll):
        (WebKit::FindController::getFindIndicatorBitmapAndRect):
        (WebKit::FindController::hideFindIndicator):
        (WebKit::FindController::drawRect):
        Don't paint a shadow behind the secondary matches if we're using the new style.

2014-06-30  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Improve double-tap-to-scroll on image documents
        https://bugs.webkit.org/show_bug.cgi?id=134474
        <rdar://problem/17496778>

        Reviewed by Enrica Casucci.

        On image document, we were always rendering the center of the image as the origin, which broke
        double tap to scroll.

        This patch improves on this in two ways:
        1) If the hit testing already got the image, only change the type to replaced (to get the right
           scaling behavior for images since the type is block on iOS's image document).
        2) If the hit testing is outside the image, only center the axis that is not in the image.
           This way, we "fix" the component that is not valid, and keep the vali component.
           This works great for viewing comics on iPad.

        * WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
        (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):

2014-06-30  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WK2): Weird selection behavior on autos.yahoo.com, en.wikipedia.org.
        https://bugs.webkit.org/show_bug.cgi?id=134466
        <rdar://problem/16817263>

        Reviewed by Benjamin Poulain.

        Avoid selecting blocks across frame boundaries and skip non-selectable
        blocks. If the only block we find is almost the same height as the
        visible area, we should not select at all.
        This patch also fixes the logic to compute the next block when
        shrinking the selection. When calculating the new range after shrinking,
        we should not include the block that corresponds to the current handle position.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::rangeForWebSelectionAtPosition):
        (WebKit::WebPage::expandedRangeFromHandle):
        (WebKit::WebPage::contractedRangeFromHandle):
        (WebKit::WebPage::updateSelectionWithTouches):

2014-06-30  Anders Carlsson  <andersca@apple.com>

        WebBackForwardListItem should not store back-forward data
        https://bugs.webkit.org/show_bug.cgi?id=134469

        Reviewed by Darin Adler.

        Change WebBackForwardListItem::backForwardData to encode the main frame state lazily,
        and change WebBackForwardListItem::setBackForwardData to decode it into the main frame state.

        * Shared/WebBackForwardListItem.cpp:
        (WebKit::WebBackForwardListItem::backForwardData):
        (WebKit::WebBackForwardListItem::setBackForwardData):
        (WebKit::WebBackForwardListItem::encode):
        * Shared/WebBackForwardListItem.h:
        (WebKit::WebBackForwardListItem::backForwardData): Deleted.
        * UIProcess/cf/WebBackForwardListCF.cpp:
        (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::restoreSession):

2014-06-30  Anders Carlsson  <andersca@apple.com>

        WebBackForwardListItems should hold on to PageState objects
        https://bugs.webkit.org/show_bug.cgi?id=134467

        Reviewed by Darin Adler.

        * Shared/WebBackForwardListItem.cpp:
        (WebKit::WebBackForwardListItem::WebBackForwardListItem):
        (WebKit::WebBackForwardListItem::encode):
        * Shared/WebBackForwardListItem.h:
        (WebKit::WebBackForwardListItem::setOriginalURL):
        (WebKit::WebBackForwardListItem::originalURL):
        (WebKit::WebBackForwardListItem::setURL):
        (WebKit::WebBackForwardListItem::url):
        (WebKit::WebBackForwardListItem::setTitle):
        (WebKit::WebBackForwardListItem::title):

2014-06-30  Benjamin Poulain  <benjamin@webkit.org>

        Add a missing semicolon in WKContentViewInteraction

        * UIProcess/ios/WKContentViewInteraction.mm:
        (nsSizeForTapHighlightBorderRadius):
        I messed up this when fixing the patch on landing.

2014-06-30  Anders Carlsson  <andersca@apple.com>

        Adopt the legacy session decoding inside WebPage::restoreSession for now
        https://bugs.webkit.org/show_bug.cgi?id=134465

        Reviewed by Sam Weinig.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::decodeLegacySessionHistoryEntryData):
        * UIProcess/mac/LegacySessionStateCoding.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::restoreSession):

2014-06-30  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Don't crash on status bar tap with overflow scroll views
        https://bugs.webkit.org/show_bug.cgi?id=134459

        Reviewed by Tim Horton.
        
        The tiled scrolling indicator parents UIViews under CALayers, but that causes
        those views to miss -willMoveToWindow:nil notifications on teardown. This can leave
        deleted UIScrollViews in UIKit's "scroll to top" list.
        
        Fix by not making UIScrollViews in the debug layer tree host.

        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (WebKit::RemoteLayerTreeHost::createLayer):

2014-06-28  Oliver Hunt  <oliver@apple.com>

       Restrict network process sandbox
       https://bugs.webkit.org/show_bug.cgi?id=134360

       Reviewed by Sam Weinig.

       Add more restrictions to the network process sandbox.

       * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
       (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
         Always use the cache directory provided in the initialization parameters,
         and make sure we consume the cookie directory extension.
       * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
         Make the sandbox profile much more restrictive.
       * Shared/Network/NetworkProcessCreationParameters.cpp:
       (WebKit::NetworkProcessCreationParameters::encode):
       (WebKit::NetworkProcessCreationParameters::decode):
       * Shared/Network/NetworkProcessCreationParameters.h:
         The network process now requires an extension to access
         its cookie storage.
       * Shared/mac/SandboxUtilities.cpp:
       (WebKit::pathForProcessContainer):
       * Shared/mac/SandboxUtilities.h:
         We need to be able to get hold of our container so
         that we can get the correct cookie storage directory.
       * UIProcess/WebContext.cpp:
       (WebKit::WebContext::ensureNetworkProcess):
         We have to pass in the an extension for the cookie storage directory when
       initalising the network process
       * UIProcess/mac/WebContextMac.mm:
       (WebKit::WebContext::platformDefaultCookieStorageDirectory):
         Make sure we provide the correct location on IOS
       * WebProcess/cocoa/WebProcessCocoa.mm:
       (WebKit::WebProcess::platformInitializeWebProcess):
         Consume the cookie storage extension

2014-06-30  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Turn off scrollsToTop on overflow UIScrollViews
        https://bugs.webkit.org/show_bug.cgi?id=134456

        Reviewed by Tim Horton.
        
        Set scrollsToTop to NO on our UIScrollViews created for overflow scrolling, since
        we don't have a good strategy for when to allow it, and doing so would also require
        some smarts in the main UIScrollView.

        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):

2014-06-30  Enrica Casucci  <enrica@apple.com>

        REGRESSION (Okemo): The contextual menu on tap and hold does not cancel the other gestures.
        https://bugs.webkit.org/show_bug.cgi?id=134463
        <rdar://problem/17388907>

        Reviewed by Benjamin Poulain.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _longPressRecognized:]):

2014-06-30  Anders Carlsson  <andersca@apple.com>

        Implement the last pieces of encodeFrameStateNode
        https://bugs.webkit.org/show_bug.cgi?id=134460

        Reviewed by Andreas Kling.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::HistoryEntryDataEncoder::operator<<):
        (WebKit::isValidEnum):
        (WebKit::encodeFormDataElement):
        (WebKit::encodeFormData):
        (WebKit::encodeFrameStateNode):

2014-06-30  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Move tap highlight to the inverseScaleRootView
        https://bugs.webkit.org/show_bug.cgi?id=134424
        <rdar://problem/17480880>

        Reviewed by Tim Horton.

        Enrica introduced the inverseScaleRootView that is a dynamic version of _highlightRootView.

        This patch moves the tap highlight from its own inverse root to inverseScaleRootView. This provides better handling
        of scale, better behavior on crash, and remove one extra view from the hierarchy.

        The code is pretty much the same, just moved around. Some of the changes:

        Now the code needs to handle repainting live when the view scale. To do that, _showTapHighlightXXX was split in two:
        -_showTapHighlight to setup the view.
        -_updateTapHighlight to update the view based on the current scale.

        Since the view updates live on scaling, we need to recompute the coordinates for each update. To do that, the _potentialTapHighlightInformation
        was generalized to handle all cases of highlight.

        Since we can no longer test for the nullity of _potentialTapHighlightInformation,
        a new attribute is introduced for that: _hasTapHighlightForPotentialTap.

        The last bit of change concern reentering the tap highlight. This becomes quite simple:
        1) _isTapHighlightIDValid is updated before the animation starts
           so that it can be set again during an animation.
        2) The animation checks the "finished" flags before removing the view from its superview
           to avoid breaking the new animation.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (withinEpsilon): Deleted.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
        Make _updateUnscaledView conditional to scale changes, that thing isn't cheap!

        * UIProcess/ios/WKContentViewInteraction.h:
        (withinEpsilon):
        Move withinEpsilon() from WKContentView to use it from both classes.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView cleanupInteraction]):
        (-[WKContentView _updateUnscaledView]):
        (-[WKContentView _updateTapHighlight]):
        (-[WKContentView _showTapHighlight]):
        (-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:]):
        (-[WKContentView _cancelInteraction]):
        (-[WKContentView _finishInteraction]):
        (-[WKContentView _singleTapDidReset:]):
        (-[WKContentView _singleTapCommited:]):
        (-[WKContentView _showTapHighlightWithColor:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:]): Deleted.

2014-06-30  Anders Carlsson  <andersca@apple.com>

        Add code for encoding legacy session history entries
        https://bugs.webkit.org/show_bug.cgi?id=134452

        Reviewed by Andreas Kling.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::HistoryEntryDataEncoder::HistoryEntryDataEncoder):
        (WebKit::HistoryEntryDataEncoder::operator<<):
        (WebKit::HistoryEntryDataEncoder::finishEncoding):
        (WebKit::HistoryEntryDataEncoder::encodeArithmeticType):
        (WebKit::HistoryEntryDataEncoder::encodeFixedLengthData):
        (WebKit::HistoryEntryDataEncoder::grow):
        (WebKit::HistoryEntryDataEncoder::growCapacity):
        (WebKit::encodeFrameStateNode):
        (WebKit::encodeLegacySessionHistoryEntryData):
        (WebKit::decodeSessionHistoryEntryData):
        (WebKit::decodeLegacySessionHistoryEntryData):
        * UIProcess/mac/LegacySessionStateCoding.h:

2014-06-29  Yoav Weiss  <yoav@yoav.ws>

        Add support for HTMLImageElement's sizes attribute
        https://bugs.webkit.org/show_bug.cgi?id=133620

        Reviewed by Dean Jackson.

        Added an ENABLE_PICTURE_SIZES compile flag.

        * Configurations/FeatureDefines.xcconfig:

2014-06-28  Tim Horton  <timothy_horton@apple.com>

        [iOS][WK2] PDFs never load inline again after the Web process crashes
        https://bugs.webkit.org/show_bug.cgi?id=134432
        <rdar://problem/17484205>

        Reviewed by Dan Bernstein.

        After a crash, the WebPage never gets mimeTypesWithCustomContentProviders filled back in.

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        * Shared/WebPageCreationParameters.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::creationParameters):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        Add mimeTypesWithCustomContentProviders to WebPageCreationParameters.

        * UIProcess/Cocoa/WKWebViewContentProviderRegistry.h:
        * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
        (-[WKWebViewContentProviderRegistry addPage:]):
        We don't need to send the MIME types across when a page is added, because it already got them in its creation parameters.

        (-[WKWebViewContentProviderRegistry removePage:]):
        (-[WKWebViewContentProviderRegistry _mimeTypesWithCustomContentProviders]):
        Return a vector of all registered MIME types.

        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::mimeTypesWithCustomContentProviders):
        * UIProcess/PageClient.h:
        Add (iOS only for now) mimeTypesWithCustomContentProviders to PageClient.

2014-06-28  Dan Bernstein  <mitz@apple.com>

        REGRESSION: WebPageProxy::attributedSubstringForCharacterRangeAsync never calls its callback function
        https://bugs.webkit.org/show_bug.cgi?id=134429

        Reviewed by Tim Horton.

        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):

2014-06-27  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] position:fixed inside accelerated overflow:scroll is jumpy
        https://bugs.webkit.org/show_bug.cgi?id=134426
        <rdar://problem/17474523>

        Reviewed by Tim Horton.

        After committing a new layer tree (with possibly stale position:fixed layer
        positions), we need the scrolling tree to update those positions based on
        the current scroll offset.
        
        To achieve that, implement ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterAncestorChange()
        and have it add to the cumulative delta the difference between the last committed scroll
        position and the current scroll position.
        
        Also make sure that ScrollingTreeOverflowScrollingNodeIOS doesn't call back to scrollViewDidScroll()
        when we're updating its scroll position inside a scrolling tree commit.

        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterAncestorChange):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollViewDidScroll):

2014-06-27  Antti Koivisto  <antti@apple.com>

        Flush throttling with remote layers
        https://bugs.webkit.org/show_bug.cgi?id=134398

        Reviewed by Darin Adler.

        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::adjustLayerFlushThrottling):
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::adjustLayerFlushThrottling):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
        (WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
        (WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlush):

            Delay layer flushes during page loading.
            If use interacts with the page the next flush in unthrottled even if loading is in progress.

        (WebKit::RemoteLayerTreeDrawingArea::adjustLayerFlushThrottling):
        
            Compute the new delay. The first visual flush uses a shorter delay.
            Flush immediately when we are no longer throttling.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):

2014-06-27  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS][WK2] <select> tapping "next" does not save new picker value
        https://bugs.webkit.org/show_bug.cgi?id=134409

        Reviewed by Enrica Casucci.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView accessoryTab:]):
        We know the assisted node will change, so call endEditing
        before the assisted node changes in the WebProcess.

        (-[WKContentView _stopAssistingNode]):
        Ensure we call endEditing to trigger controlEndEditing.

        * UIProcess/ios/forms/WKFormSelectPicker.mm:
        (-[WKMultipleSelectPicker initWithView:]):
        (-[WKMultipleSelectPicker pickerView:row:column:checked:]):
        (-[WKSelectSinglePicker dealloc]):
        Style fixes.

2014-06-27  Peyton Randolph  <prandolph@apple.com>

         Add feature flag for link long-press gesture.                                                                   
         https://bugs.webkit.org/show_bug.cgi?id=134262                                                                  
                                                                                                                         
         Reviewed by Enrica Casucci.                                                                                     
                                                                                                                         
         * Configurations/FeatureDefines.xcconfig:                                                                       
         Add ENABLE_LINK_LONG_PRESS. 

2014-06-26  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fix touch-scrollable elements with overflow:scroll on just one axis, and RTL scrolling
        https://bugs.webkit.org/show_bug.cgi?id=134377
        <rdar://problem/16762224>

        Reviewed by Tim Horton.

        Make -webkit-overflow-scrolling:touch scrolling work correctly when one axis
        has overflow:scroll and the other overflow:hidden. Also fix scrolling in RTL
        contexts.
        
        An RTL scroller with overflow-x:hidden will have a non-zero scroll origin,
        and needs to truncate the scrolled content on the left side. To pass the
        correct geometry to the UI process, we need to introduce the concept of
        "reachable" size as well as total content size; normally these are the same,
        but will differ when scrolling is only allowed on one axis but there is overflow
        on both axes.
        
        ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren() uses the total and
        reachable content sizes to set a negative edge inset on the left (for RTL) or top
        (for bottom-to-top) so prevent scrolling into these areas.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (ArgumentCoder<ScrollingStateScrollingNode>::encode):
        (ArgumentCoder<ScrollingStateScrollingNode>::decode):
        (WebKit::RemoteScrollingTreeTextStream::dump):
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren): 

2014-06-27  Joseph Pecoraro  <pecoraro@apple.com>

        Fix various leaks, RetainPtrs should adopt allocs
        https://bugs.webkit.org/show_bug.cgi?id=134308

        Reviewed by Alexey Proskuryakov.

        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _remoteObjectRegistry]):

2014-06-27  Dan Bernstein  <mitz@apple.com>

        Remove unused definitions that were mistakenly added back in r170323 and then again in r170329
        https://bugs.webkit.org/show_bug.cgi?id=134397

        Reviewed by Geoff Garen.

        * UIProcess/API/Cocoa/WKBackForwardList.mm:

2014-06-26  Daniel Bates  <dabates@apple.com>

        [iOS][WK2] Distant focusable element may not be scrolled into view when focused using keyboard
        https://bugs.webkit.org/show_bug.cgi?id=134309
        <rdar://problem/17427385>

        Reviewed by Darin Adler.

        Fixes an issue where the focusable element may not be scrolled into view when it's focused by
        using the keyboard accessory (i.e. the < and > buttons). In particular, we don't scroll a
        keyboard focused text field into view when it's positioned significantly outside the visible region.

        * UIProcess/ios/WKContentViewInteraction.h: Added an instance variable called _didAccessoryTabInitiateFocus
        to track whether an accessory tab initiated the focus of the focusable element.
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView cleanupInteraction]): Clear _didAccessoryTabInitiateFocus so that we're in a good state
        should the WebProcess crash between the time the UIProcess receives the accessory tab request and the
        WebProcess calls back to the UIProcess to zoom/scroll to the newly focused element.
        (-[WKContentView _displayFormNodeInputView]): Modified to pass an empty rectangle for the selection
        rectangle to -_zoomToFocusRect to avoid constraining the scroll to the newly focused element when it
        was focused using the keyboard accessory tab buttons
        (-[WKContentView accessoryTab:]): Modified to set _didAccessoryTabInitiateFocus to YES. We'll set
        this boolean to NO in -_displayFormNodeInputView.

2014-06-26  Timothy Horton  <timothy_horton@apple.com>

        [iOS][WK2] Implement WKPDFView smart magnification
        https://bugs.webkit.org/show_bug.cgi?id=134269
        <rdar://problem/17272825>

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _currentContentView]):
        (contentZoomScale):
        Factor _currentContentView out of contentZoomScale.

        (-[WKWebView _zoomToRect:WebCore::atScale:origin:WebCore::]):
        (-[WKWebView _scrollToRect:WebCore::origin:WebCore::minimumScrollDistance:]):
        (-[WKWebView _contentRectForUserInteraction]):
        Use it in a bunch more places so we query the right view when zooming/scrolling for smart magnification.

        * UIProcess/ios/WKPDFView.h:
        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView scrollViewDidScroll:]):
        (-[WKPDFView _revalidateViews]):
        (-[WKPDFView zoom:to:atPoint:kind:]):
        (-[WKPDFView resetZoom:]):
        Implement zoom:to:atPoint:kind: and resetZoom: UIPDFPageViewDelegate methods.
        Convert the rects/points and forward them on to the WKWebView to do the zoom.
        resetZoom: doesn't provide the gesture origin, so we zoom out using the view center as our origin.
        Avoid parenting new UIPDFPageViews while starting a zoom; they'll end up with a bizarre
        animation on them and go flying across the screen (even before _isAnimatingZoom is set).

2014-06-26  Tim Horton  <timothy_horton@apple.com>

        [WK2] Pinch-zoom shadows can overlap headers and footers
        https://bugs.webkit.org/show_bug.cgi?id=134372
        <rdar://problem/16004095>

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::shadowLayerPositionForFrame):
        (WebKit::shadowLayerBoundsForFrame):
        Compute the initial shadow layer and shadow bounds exactly as RenderLayerCompositor does
        (in updateRootLayerPosition and friends). Also, clip the shadow layer to the old document rect,
        otherwise it can extend over top of the header/footers. The content is automatically clipped to
        this rect by the root content layer, but the shadow is outside of that.

        (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToLayers):
        (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
        Pass all of the arguments to constrainScrollPositionForOverhang, not just half of them.
        There's still a bug where we constrain incorrectly with header/footer layers, but that
        will be addressed elsewhere.

        (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
        Make use of the new helpers.

2014-06-26  Tim Horton  <timothy_horton@apple.com>

        Don't leak WKBrowsingContextControllers
        https://bugs.webkit.org/show_bug.cgi?id=134368
        <rdar://problem/17476582>

        Reviewed by Sam Weinig.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView browsingContextController]):
        Adoption is important.

2014-06-26  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION: Mountain Lion: Gmail's "in new window" view of mail threads is very slow to load its content
        https://bugs.webkit.org/show_bug.cgi?id=133882
        <rdar://problem/17271965>

        Reviewed by Brady Eidson.

        * NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:
        (WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost):
        Same fix as in WebCore.

2014-06-26  Brady Eidson  <beidson@apple.com>

        Remove use of PlatformStrategies for Gamepad API.
        https://bugs.webkit.org/show_bug.cgi?id=134348

https://bugs.webkit.org/show_bug.cgi?id=134348
        * NetworkProcess/NetworkProcessPlatformStrategies.cpp:
        (WebKit::NetworkProcessPlatformStrategies::createGamepadStrategy): Deleted.
        * NetworkProcess/NetworkProcessPlatformStrategies.h:

        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        (WebKit::WebPlatformStrategies::createGamepadStrategy): Deleted.
        (WebKit::WebPlatformStrategies::startMonitoringGamepads): Deleted.
        (WebKit::WebPlatformStrategies::stopMonitoringGamepads): Deleted.
        (WebKit::WebPlatformStrategies::platformGamepads): Deleted.
        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:

2014-06-26  Dan Bernstein  <mitz@apple.com>

        [iOS] Add API for opting into character selection granularity
        https://bugs.webkit.org/show_bug.cgi?id=134354

        Reviewed by Geoff Garen.

        * Shared/API/Cocoa/WKFoundation.h: Added a definition of WK_ENUM_AVAILABLE_IOS.
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
        (WKSelectionGranularity): Added this enum with two values, one representing dynamic
        granularity( the current, default behavior) and one representing character granularity.
        Delcared new selectionGranularity property.
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration copyWithZone:]): Copy the _selectionGranularity ivar.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (toUIWebSelectionMode): Added this helper function for mapping WKSelectionGranularity values
        to UIWebSelectionMode values.
        (-[WKContentView setupInteraction]): Use a selection assistant with the mode specified in
        the configuration.
        (-[WKContentView _stopAssistingKeyboard]): Ditto.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::selectWithGesture): Changed the behavior of the loupe gesture type in
        non-editable text to select a word, rather than an empty range, matching the UITextView
        behavior.

2014-06-26  Ada Chan  <adachan@apple.com>

        Change the target membership of WKBackForwardListPrivate.h from WebKit2 to WebKit.

        Rubber-stamped by Dan Bernstein.

        * WebKit2.xcodeproj/project.pbxproj:

2014-06-26  Benjamin Poulain  <bpoulain@apple.com>

        Remove a useless return in WebPageProxyIOS

        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::updateVisibleContentRects):
        Darin caught this mistake in r170460.

2014-06-26  Chris Fleizach  <cfleizach@apple.com>

        Add an undo group for each dictated utterance in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=134086

        Applied review comments from Sam Weinig.

        Move the associated USE #define into Platform.h.

        * UIProcess/PageClient.h:

2014-06-24  Roger Fong  <roger_fong@apple.com>

        Don't allow sudden termination while writing to local storage.
        https://bugs.webkit.org/show_bug.cgi?id=134254.
        <rdar://problem/15093854>.

        Reviewed by Darin Adler.

        * UIProcess/Storage/LocalStorageDatabase.cpp:
        (WebKit::LocalStorageDatabase::scheduleDatabaseUpdate):
        Disable sudden termination when a database update is scheduled.
        (WebKit::LocalStorageDatabase::updateDatabase):
        Re-enable sudden termination when the update completes.
        * UIProcess/Storage/LocalStorageDatabase.h:

2014-06-25  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Update the long press interactions correctly when an overflow scroll view scrolls
        https://bugs.webkit.org/show_bug.cgi?id=134334

        Reviewed by Simon Fraser.

        * UIProcess/PageClient.h:
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll):
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::overflowScrollViewWillStartPanGesture):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollViewWillStartPanGesture): Deleted.
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::overflowScrollViewWillStartPanGesture):
        (WebKit::PageClientImpl::overflowScrollViewDidScroll):
        (WebKit::PageClientImpl::scrollViewWillStartPanGesture): Deleted.
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartPanGesture):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::overflowScrollViewWillStartPanGesture):
        (WebKit::WebPageProxy::overflowScrollViewDidScroll):
        (WebKit::WebPageProxy::scrollViewWillStartPanGesture): Deleted.

2014-06-25  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Page jumps when rubber-banding on azuremagazine.com 
        https://bugs.webkit.org/show_bug.cgi?id=134238
        <rdar://problem/16918228>

        Reviewed by Benjamin Poulain.
        
        If the scroll view is in the process of rubber-banding when -setContentSize: is called,
        it clamps the scroll offsets between zero and the max value, which visibly interrupts the
        rubberband. This can easily happen now that we continually send scroll events to the page
        on scrolling, especially when pages like azuremagazine.com do fake sticky by toggling
        in-flow elements into position:fixed.
        
        Fix by computing the amount of rubber-band before calling -setContentSize:, and then
        restoring the contentOffset with the same amount of rubber-band even when the content size
        is different, for top/left rubberbands.
        
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        * UIProcess/ios/WKScrollView.h:
        * UIProcess/ios/WKScrollView.mm:
        (-[WKScrollView _currentTopLeftRubberbandAmount]):
        (-[WKScrollView _restoreContentOffsetWithRubberbandAmount:]):
        (-[WKScrollView _setContentSizePreservingContentOffsetDuringRubberband:]):

2014-06-25  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fixed position elements jump around when zooming
        https://bugs.webkit.org/show_bug.cgi?id=134328
        <rdar://problem/17447048>

        Reviewed by Zalan Bujtas.

        If a given remote layer tree commit contains changes of layers for viewport-constrained
        objects, then the associated scrolling tree also needs to show that the layers changed,
        since we need to re-run the "viewport changed" logic in the UI process to get the
        layers correctly positioned for the current zoom level.
        
        The bug was that page scale changes resulted in small "pixel alignment" position
        changes which touched layers, but we didn't commit any scrolling tree changes. So
        the scrolling tree commit would result in visibly stale layer positions, with no scrolling tree
        update to adjust them for the current transient zoom.

        Fix by making use of the existing "alignment offset" field in the ViewportConstraints
        data, and having RemoteScrollingCoordinatorProxy::connectStateNodeLayers() note that
        fixed or sticky layers changed if any properties of fixed or sticky scrolling tree
        nodes were updated.

        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

2014-06-25  Benjamin Poulain  <bpoulain@apple.com>

        REGRESSION (r170325): UI process crashes in lastCommittedLayerTreeTransactionID() when the Web Content process crashes
        https://bugs.webkit.org/show_bug.cgi?id=134284

        Reviewed by Simon Fraser.

        The crash was caused by the access to the Drawing Area after the crash.
        This lead to discovering another bug: m_lastVisibleContentRectUpdate could have been updated after WebPageProxy::resetState(),
        which in turn would prevent valid updates when a new WebProcess is created.

        This patch fixes both issues by moving the VisibleContentRectUpdateInfo to be internal to WebPageProxy,
        then early return if we get there in an invalid state.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::updateVisibleContentRects):

2014-06-25  Brady Eidson  <beidson@apple.com>

        Add new platform gamepad abstractions
        https://bugs.webkit.org/show_bug.cgi?id=134325

        Reviewed by Dean Jackson.

        * NetworkProcess/NetworkProcessPlatformStrategies.cpp:
        (WebKit::NetworkProcessPlatformStrategies::createGamepadStrategy):
        * NetworkProcess/NetworkProcessPlatformStrategies.h:

        Actually return a GamepadStrategy in WK2 with no implementation for now:
        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        (WebKit::WebPlatformStrategies::createGamepadStrategy):
        (WebKit::WebPlatformStrategies::startMonitoringGamepads):
        (WebKit::WebPlatformStrategies::stopMonitoringGamepads):
        (WebKit::WebPlatformStrategies::platformGamepads):
        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:

2014-06-25  Jaehun Lim  <ljaehun.lim@samsung.com>

        Unreviewed, CMake build fix after r170450

        * CMakeLists.txt: Add ProcessAssertion.cpp and ProcessThrottler.cpp.
        * UIProcess/ProcessAssertion.cpp: Replace #import with #include.

2014-06-25  Tim Horton  <timothy_horton@apple.com>

        [WK2] Shadow layer is in the wrong place while pinch-zooming
        https://bugs.webkit.org/show_bug.cgi?id=134321

        Reviewed by Dan Bernstein.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToLayers):
        (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
        (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
        The anchor point of the shadow layer changed, so we no longer need to shift our position to the center.

2014-06-25  Dan Bernstein  <mitz@apple.com>

        Fixed crashes after r170450.

        Reviewed by Tim Horton.

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::WebProcessProxy): Removed iOS platform #ifdef around
        initialization of m_throttler.

2014-06-25  Beth Dakin  <bdakin@apple.com>

        Crash in ScrollingTree::isRubberBandInProgress()
        https://bugs.webkit.org/show_bug.cgi?id=134316
        -and corresponding-
        <rdar://problem/16247911>

        Reviewed by Geoffrey Garen.

        Move all ScrollingTreeNode creation from ScrollingCoordinator subclasses into 
        ScrollingTree subclasses.

        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::createScrollingTreeNode):
        (WebKit::RemoteScrollingTree::createNode): Deleted.
        * UIProcess/Scrolling/RemoteScrollingTree.h:
        * WebProcess/Scrolling/RemoteScrollingCoordinator.h:
        * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
        (WebKit::RemoteScrollingCoordinator::createScrollingTreeNode): Deleted.

2014-06-25  Dan Bernstein  <mitz@apple.com>

        Web process should become active when sent a message that requires a callback
        https://bugs.webkit.org/show_bug.cgi?id=134315

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Removed one-off code to
        acquire an activity token, now that WebPageProxy::takeSnapshot does it automatically for us.

        * UIProcess/GenericCallback.h:
        (WebKit::CallbackBase::CallbackBase): Made this constructor take and adopt an activity
        token.
        (WebKit::GenericCallback::create): Added an optional activity token parameter.
        (WebKit::GenericCallback::GenericCallback): Pass the activity token to the CallbackBase
        constructor.
        (WebKit::CallbackMap::put): Added an activity token parameter, which is passed along to
        GenericCallback::create.

        * UIProcess/ProcessAssertion.cpp: Moved from Source/WebKit2/UIProcess/ios/ProcessAssertion.mm.
        This copy includes generic no-op implementations for platforms that don’t have assertions.
        (WebKit::ProcessAssertion::ProcessAssertion):
        (WebKit::ProcessAssertion::setState):
        * UIProcess/ProcessAssertion.h: Moved from Source/WebKit2/UIProcess/ios/ProcessAssertion.h.
        Changed platform #ifdefs to make this usable by all platforms.

        * UIProcess/ProcessThrottler.cpp: Moved from Source/WebKit2/UIProcess/ios/ProcessThrottler.mm.
        Removed iOS platform #ifdef.
        * UIProcess/ProcessThrottler.h: Moved from Source/WebKit2/UIProcess/ios/ProcessThrottler.h.
        Ditto.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::validateCommand): Create a background activity token and pass it
        along to CallbackMap::put.
        (WebKit::WebPageProxy::runJavaScriptInMainFrame): Ditto.
        (WebKit::WebPageProxy::getRenderTreeExternalRepresentation): Ditto.
        (WebKit::WebPageProxy::getSourceForFrame): Ditto.
        (WebKit::WebPageProxy::getContentsAsString): Ditto.
        (WebKit::WebPageProxy::getBytecodeProfile): Ditto.
        (WebKit::WebPageProxy::getSelectionOrContentsAsString): Ditto.
        (WebKit::WebPageProxy::getSelectionAsWebArchiveData): Ditto.
        (WebKit::WebPageProxy::getMainResourceDataOfFrame): Ditto.
        (WebKit::WebPageProxy::getResourceDataFromFrame): Ditto.
        (WebKit::WebPageProxy::getWebArchiveOfFrame): Ditto.
        (WebKit::WebPageProxy::getMarkedRangeAsync): Ditto.
        (WebKit::WebPageProxy::getSelectedRangeAsync): Ditto.
        (WebKit::WebPageProxy::characterIndexForPointAsync): Ditto.
        (WebKit::WebPageProxy::firstRectForCharacterRangeAsync): Ditto.
        (WebKit::WebPageProxy::takeSnapshot): Ditto.

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::sendProcessWillSuspend): Moved from WebProcessProxyIOS.mm.
        (WebKit::WebProcessProxy::sendCancelProcessWillSuspend): Ditto.
        (WebKit::WebProcessProxy::processReadyToSuspend): Ditto.
        (WebKit::WebProcessProxy::didCancelProcessSuspension): Ditto.
        * UIProcess/WebProcessProxy.h: Removed iOS platform #ifdef.
        * UIProcess/WebProcessProxy.messages.in: Ditto.

        * UIProcess/ios/ProcessAssertionIOS.mm: Renamed from Source/WebKit2/UIProcess/ios/ProcessAssertion.mm.

        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::selectWithGesture): Changed to pass the function directly to
        CallbackMap::put, along with a background activity token.
        (WebKit::WebPageProxy::updateSelectionWithTouches): Ditto.
        (WebKit::WebPageProxy::requestAutocorrectionData): Ditto.
        (WebKit::WebPageProxy::applyAutocorrection): Ditto.
        (WebKit::WebPageProxy::requestDictationContext): Ditto.
        (WebKit::WebPageProxy::requestAutocorrectionContext): Ditto.
        (WebKit::WebPageProxy::selectWithTwoTouches): Ditto.

        * UIProcess/ios/WebProcessProxyIOS.mm:
        (WebKit::WebProcessProxy::sendProcessWillSuspend): Moved to WebProcessProxy.cpp.
        (WebKit::WebProcessProxy::sendCancelProcessWillSuspend): Ditto.
        (WebKit::WebProcessProxy::processReadyToSuspend): Ditto.
        (WebKit::WebProcessProxy::didCancelProcessSuspension): Ditto.

        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync): Create a background
        activity token and pass it along to CallbackMap::put.

        * WebKit2.xcodeproj/project.pbxproj: Updated for moves and copies.

        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::WebProcess): Moved iOS platform #ifdef.
        * WebProcess/WebProcess.h: Ditto.
        * WebProcess/WebProcess.messages.in: Ditto.

2014-06-25  Chris Fleizach  <cfleizach@apple.com>

        Add an undo group for each dictated utterance in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=134086

        Reviewed by Enrica Casucci.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView insertText:replacementRange:]):
        (-[WKView validAttributesForMarkedText]):
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::registerInsertionUndoGrouping):
        (WebKit::WebPageProxy::insertTextAsync):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::registerInsertionUndoGrouping):
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::registerInsertionUndoGrouping):
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::insertDictatedTextAsync):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::insertTextAsync):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::insertDictatedTextAsync):

2014-06-25  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS]: WK2 Inspector Node Search
        https://bugs.webkit.org/show_bug.cgi?id=134279

        Reviewed by Benjamin Poulain.

        * UIProcess/ios/WKInspectorNodeSearchGestureRecognizer.h: Added.
        * UIProcess/ios/WKInspectorNodeSearchGestureRecognizer.mm: Added.
        (-[WKInspectorNodeSearchGestureRecognizer locationInView:]):
        (-[WKInspectorNodeSearchGestureRecognizer _processTouches:state:]):
        (-[WKInspectorNodeSearchGestureRecognizer touchesBegan:withEvent:]):
        (-[WKInspectorNodeSearchGestureRecognizer touchesMoved:withEvent:]):
        (-[WKInspectorNodeSearchGestureRecognizer touchesEnded:withEvent:]):
        (-[WKInspectorNodeSearchGestureRecognizer touchesCancelled:withEvent:]):
        (-[WKInspectorNodeSearchGestureRecognizer reset]):
        Gesture recognizer that tracks a single touch, updates as that touch
        moves, and ends when that touch is cancelled or ends. The location
        of the gesture recognizer is the location of the touch it was tracking.

        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView cleanupInteraction]):
        Handle the inspector node search gesture recognizer if needed.

        (-[WKContentView _removeDefaultGestureRecognizers]):
        (-[WKContentView _addDefaultGestureRecognizers]):
        Helpers to add and remove the default gestures.

        (-[WKContentView _enableInspectorNodeSearch]):
        (-[WKContentView _disableInspectorNodeSearch]):
        When node search is enabled, remove all gesture recognizers and
        replace with a single inspector node search gesture recognizer.
        Likewise, inverse that when disabled.

        (-[WKContentView _inspectorNodeSearchRecognized:]):
        Notify the WebProcess of new touch positions during node search.

        (-[WKContentView hasSelectablePositionAtPoint:]):
        When inspector node search is enabled, disable selection.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::inspectorNodeSearchMovedToPosition):
        Send a mouse move to the new location. WebCore will update the highlight.

        (WebKit::WebPage::inspectorNodeSearchEndedAtPosition):
        Inspect the node at the location.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _enableInspectorNodeSearch]):
        (-[WKWebView _disableInspectorNodeSearch]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::enableInspectorNodeSearch):
        (WebKit::PageClientImpl::disableInspectorNodeSearch):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::inspectorNodeSearchMovedToPosition):
        (WebKit::WebPageProxy::inspectorNodeSearchEndedAtPosition):
        (WebKit::WebPageProxy::enableInspectorNodeSearch):
        (WebKit::WebPageProxy::disableInspectorNodeSearch):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
        (WebKit::WebInspectorClient::didSetSearchingForNode):
        * WebProcess/WebCoreSupport/WebInspectorClient.h:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::enableInspectorNodeSearch):
        (WebKit::WebPage::disableInspectorNodeSearch):
        Pass the inspector node search state up from the WebProcess
        to the WKContentView in the UIProcess. Likewise some messages
        in the reverse direction.

2014-06-25  Dana Burkart  <dburkart@apple.com>

        Add support for 5-tuple versioning.

        Reviewed by David Farler.

        * Configurations/Version.xcconfig:

2014-06-25  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17448049> REGRESSION (r170254): Input methods don’t work
        https://bugs.webkit.org/show_bug.cgi?id=134311

        Reviewed by Tim Horton.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::getSelectedRangeAsync): Removed code that accidentally put the
        callback function into a throwaway EditingRangeCallback.

2014-06-25  Timothy Horton  <timothy_horton@apple.com>

        [iOS][WK2] Rotating a zoomed PDF leads to weird scrolling behavior
        https://bugs.webkit.org/show_bug.cgi?id=134286

        Reviewed by Benjamin Poulain.

        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView _computePageAndDocumentFrames]):
        The WKPDFView frame and scroll view content size need to be scaled.

        (-[WKPDFView web_setScrollView:]): Deleted.

        (-[WKPDFView web_initWithFrame:webView:]):
        Get rid of _documentFrame, and don't set it at initWithFrame: time (it's not useful yet).

2014-06-25  Laszlo Gombos  <l.gombos@samsung.com>

        Remove build guard for progress element
        https://bugs.webkit.org/show_bug.cgi?id=134292

        Reviewed by Benjamin Poulain.

        * Configurations/FeatureDefines.xcconfig:

2014-06-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Windowed plugins visibility doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=131487

        Reviewed by Anders Carlsson.

        Implement plugins visibility changes and add a new message to
        notify the UI process when a windowed plugin is shown/hidden to
        show/hide the plugin widget.

        * PluginProcess/PluginControllerProxy.cpp:
        (WebKit::PluginControllerProxy::visibilityDidChange): Add
        implementation to notify the plugin about visibility change.
        (WebKit::PluginControllerProxy::windowedPluginVisibilityDidChange):
        Send WindowedPluginVisibilityDidChange to the plugin proxy.
        * PluginProcess/PluginControllerProxy.h:
        * PluginProcess/PluginControllerProxy.messages.in: Add VisibilityDidChange message.
        * UIProcess/WebPageProxy.h: Add windowedPluginVisibilityDidChange
        to handle WindowedPluginVisibilityDidChange message.
        * UIProcess/WebPageProxy.messages.in: Add WindowedPluginVisibilityDidChange message.
        * UIProcess/efl/WebPageProxyEfl.cpp:
        (WebKit::WebPageProxy::windowedPluginVisibilityDidChange):
        * UIProcess/gtk/WebPageProxyGtk.cpp:
        (WebKit::WebPageProxy::createPluginContainer): Do not show the
        plugins by default.
        (WebKit::WebPageProxy::windowedPluginVisibilityDidChange): Show or hide the plugin widget.
        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
        (WebKit::NetscapePlugin::NetscapePlugin): Initialize m_isVisible.
        (WebKit::NetscapePlugin::visibilityDidChange): Add visible parameter and save it in m_isVisible
        member, calling platformVisibilityDidChange() only when it has actually changed.
        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
        (WebKit::NetscapePlugin::platformVisibilityDidChange): Notify the controller about visibility change.
        * WebProcess/Plugins/PDF/PDFPlugin.h:
        * WebProcess/Plugins/Plugin.h:
        * WebProcess/Plugins/PluginController.h:
        * WebProcess/Plugins/PluginProxy.cpp:
        (WebKit::PluginProxy::visibilityDidChange): Send VisibilityDidChange message to the plugin controller proxy.
        (WebKit::PluginProxy::windowedPluginVisibilityDidChange): Notify the controller about visibility change.
        * WebProcess/Plugins/PluginProxy.h:
        * WebProcess/Plugins/PluginProxy.messages.in: Add WindowedPluginVisibilityDidChange message.
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::didInitializePlugin): Also call viewVisibilityDidChange() when the plugin is initialized.
        (WebKit::PluginView::setParentVisible): Override this Widget method to update the plugin visibility when parent
        widget is shown/hidden.
        (WebKit::PluginView::viewVisibilityDidChange): Pass visible parameter to visibilityDidChange().
        (WebKit::PluginView::windowedPluginVisibilityDidChange): Send WindowedPluginVisibilityDidChange message to the UI process.
        * WebProcess/Plugins/PluginView.h:

2014-06-24  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] We should not start potential tap activation unless the tap gesture recognizer succeed
        https://bugs.webkit.org/show_bug.cgi?id=134277
        <rdar://problem/17439973>

        Reviewed by Anders Carlsson.

        * UIProcess/ios/WKSyntheticClickTapGestureRecognizer.m:
        (-[WKSyntheticClickTapGestureRecognizer setState:]):
        We were calling the _gestureRecognizedAction even for failure states. The potential activation work
        is not light on the Web Process, we should not start if we don't care about the result.

2014-06-24  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Adopt the C API of UIWebTouchEventsGestureRecognizer for touch event mapping
        https://bugs.webkit.org/show_bug.cgi?id=134234

        Reviewed by Tim Horton.

        The C API is more efficient and expose properties we will need for other patches. This patch moves from
        getting each value independently on UIWebTouchEventsGestureRecognizer to the single structure exposed
        by _UIWebTouchEvent.

        * Shared/NativeWebTouchEvent.h:
        * Shared/ios/NativeWebTouchEventIOS.mm:
        (WebKit::convertTouchPhase):
        (WebKit::extractWebTouchPoint):
        (WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _webTouchEventsRecognized:]):

2014-06-24  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS]: WK2 Inspector Node Highlighting
        https://bugs.webkit.org/show_bug.cgi?id=134257

        Reviewed by Timothy Hatcher.

        * Scripts/webkit2/messages.py:
        (struct_or_class):
        (headers_for_type):
        * Shared/WebCoreArgumentCoders.h:
        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<Highlight>::encode):
        (IPC::ArgumentCoder<Highlight>::decode):
        Add a way to encode a WebCore::Highlight struct.

        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _showInspectorHighlight:WebCore::]):
        (-[WKWebView _hideInspectorHighlight]):
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::showInspectorHighlight):
        (WebKit::PageClientImpl::hideInspectorHighlight):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::showInspectorHighlight):
        (WebKit::WebPageProxy::hideInspectorHighlight):
        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
        (WebKit::WebInspectorClient::highlight):
        (WebKit::WebInspectorClient::hideHighlight):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::showInspectorHighlight):
        (WebKit::WebPage::hideInspectorHighlight):
        Send web process highlight / hideHighlight messages up to
        the UIProcess so it can highlight in the WKContentView.
        Pass up a WebCore::Highlight in Document coordinates.

        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKInspectorHighlightView initWithFrame:]):
        (-[WKInspectorHighlightView dealloc]):
        (-[WKInspectorHighlightView _removeAllLayers]):
        (-[WKInspectorHighlightView _createLayers:]):
        (findIntersectionOnLineBetweenPoints):
        (quadIntersection):
        (layerPathWithHole):
        (layerPath):
        (-[WKInspectorHighlightView _layoutForNodeHighlight:]):
        (-[WKInspectorHighlightView _layoutForRectsHighlight:]):
        (-[WKInspectorHighlightView update:]):
        Reuse the WebKit1 code to turn highlight float quads into CAShapeLayers.

        (-[WKContentView _showInspectorHighlight:WebCore::]):
        (-[WKContentView _hideInspectorHighlight]):
        Show and hide the highlight view with the respective WebCore::Highlight.

2014-06-24  Anders Carlsson  <andersca@apple.com>

        Simplify decodeLegacySessionState
        https://bugs.webkit.org/show_bug.cgi?id=134280

        Reviewed by Andreas Kling.

        There's no need to use a LegacySessionStateDecoder object with a single member,
        just make all functions static and only export a single entry point; decodeLegacySessionState.

        No functionality change, just moving code around.

        * UIProcess/API/C/WKSessionStateRef.cpp:
        (WKSessionStateCreateFromData):
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::decodeSessionHistoryEntryData):
        (WebKit::decodeSessionHistoryEntry):
        (WebKit::decodeSessionHistoryEntries):
        (WebKit::decodeV0SessionHistory):
        (WebKit::decodeV1SessionHistory):
        (WebKit::decodeSessionHistory):
        (WebKit::decodeLegacySessionState):
        (WebKit::LegacySessionStateDecoder::LegacySessionStateDecoder): Deleted.
        (WebKit::LegacySessionStateDecoder::~LegacySessionStateDecoder): Deleted.
        (WebKit::LegacySessionStateDecoder::decodeSessionState): Deleted.
        (WebKit::LegacySessionStateDecoder::decodeSessionHistory): Deleted.
        (WebKit::LegacySessionStateDecoder::decodeV0SessionHistory): Deleted.
        (WebKit::LegacySessionStateDecoder::decodeV1SessionHistory): Deleted.
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntries): Deleted.
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntry): Deleted.
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntryData): Deleted.
        * UIProcess/mac/LegacySessionStateCoding.h:

2014-06-24  Brady Eidson  <beidson@apple.com>

        Enable GAMEPAD in the Mac build, but disabled at runtime.
        https://bugs.webkit.org/show_bug.cgi?id=134255

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:

        * Shared/WebPreferencesDefinitions.h:
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetGamepadsEnabled):
        (WKPreferencesGetGamepadsEnabled):
        * UIProcess/API/C/WKPreferencesRefPrivate.h:

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-06-24  Anders Carlsson  <andersca@apple.com>

        Add support for v0 legacy decoding
        https://bugs.webkit.org/show_bug.cgi?id=134275

        Reviewed by Andreas Kling.

        * Shared/SessionState.h:
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::LegacySessionStateDecoder::decodeV0SessionHistory):
        (WebKit::LegacySessionStateDecoder::decodeV1SessionHistory):

2014-06-24  Anders Carlsson  <andersca@apple.com>

        Add SPI for clearing an entire back-forward list
        https://bugs.webkit.org/show_bug.cgi?id=134274

        Reviewed by Dan Bernstein.

        Add -[WKBackForwardList _clear] which only clears the back-forward items, and
        change -[WKBackForwardList _removeAllItems] to remove all items including the current one.

        * UIProcess/API/Cocoa/WKBackForwardList.mm:
        (-[WKBackForwardList _removeAllItems]):
        (-[WKBackForwardList _clear]):
        * UIProcess/API/Cocoa/WKBackForwardListPrivate.h:
        * UIProcess/WebBackForwardList.cpp:
        (WebKit::WebBackForwardList::removeAllItems):
        * UIProcess/WebBackForwardList.h:

2014-06-24  Anders Carlsson  <andersca@apple.com>

        Add iOS specific frame state member variables
        https://bugs.webkit.org/show_bug.cgi?id=134268

        Reviewed by Andreas Kling.

        * Shared/SessionState.cpp:
        (WebKit::FrameState::encode):
        (WebKit::FrameState::decode):
        * Shared/SessionState.h:
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::HistoryEntryDataDecoder::operator>>):
        (WebKit::decodeBackForwardTreeNode):
        * WebProcess/WebCoreSupport/SessionStateConversion.cpp:
        (WebKit::toFrameState):
        (WebKit::applyFrameState):

2014-06-24  Enrica Casucci  <enrica@apple.com>

        iOS WebKit2: block selection tends to prefer block to single words even when the page is zoomed.
        https://bugs.webkit.org/show_bug.cgi?id=134267
        <rdar://problem/17138059>

        Reviewed by Benjamin Poulain.

        When trying to find the best selection match for the position where the tap occurs,
        we need to take into account the page scale. This patch applies the scale factor
        to the selection rect before comparing it with the desired size.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::rangeForWebSelectionAtPosition):

2014-06-24  Anders Carlsson  <andersca@apple.com>

        Add code to convert HistoryItem to PageState
        https://bugs.webkit.org/show_bug.cgi?id=134263

        Reviewed by Andreas Kling.

        * WebProcess/WebCoreSupport/SessionStateConversion.cpp:
        (WebKit::toHTTPBody):
        (WebKit::toFrameState):
        (WebKit::toPageState):
        * WebProcess/WebCoreSupport/SessionStateConversion.h:

2014-06-24  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] Disable screen font substitution by default.
        <https://webkit.org/b/134266>
        <rdar://problem/17427740>

        Just like OS X >= 10.9, screen font substitution should be disabled
        by default in WebKit2 for iOS.

        Reviewed by Anders Carlsson.

        * Shared/WebPreferencesDefinitions.h:

2014-06-24  Anders Carlsson  <andersca@apple.com>

        Add PageState to HistoryItem conversion code
        https://bugs.webkit.org/show_bug.cgi?id=134259

        Reviewed by Andreas Kling.

        * Shared/SessionState.h:
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::decodeBackForwardTreeNode):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebCoreSupport/SessionStateConversion.cpp: Added.
        (WebKit::toFormData):
        (WebKit::applyFrameState):
        (WebKit::toHistoryItem):
        * WebProcess/WebCoreSupport/SessionStateConversion.h: Added.

2014-06-24  Antti Koivisto  <antti@apple.com>

        Only flush layers when the exposed rect actually changes
        https://bugs.webkit.org/show_bug.cgi?id=134248

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):

2014-06-24  Martin Hock  <mhock@apple.com>

        [iOS] DOMWindow::outerWidth and outerHeight don't return useful values, so return 0.
        Also, revert r169281.
        https://bugs.webkit.org/show_bug.cgi?id=134233
        <rdar://problem/17060183>

        Reviewed by Benjamin Poulain.

        * UIProcess/Cocoa/UIDelegate.h:
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::UIClient::windowFrame): Deleted.
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::convertToUserSpace):

2014-06-24  Jeremy Jones  <jeremyj@apple.com>

        Initialize WKWebViewConfiguration properties to their default values.
        https://bugs.webkit.org/show_bug.cgi?id=134216

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration init]):
        add -init method to initialize _mediaPlaybackRequiresUserAction and _mediaPlaybackAllowsAirPlay.

2014-06-24  Anders Carlsson  <andersca@apple.com>

        Add missing semicolon.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _updateVisibleContentRects]):

2014-06-24  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Fix unused parameter warnings if inspector is disabled
        https://bugs.webkit.org/show_bug.cgi?id=134244

        Reviewed by Zalan Bujtas.

        * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
        (WKBundleInspectorShow):
        (WKBundleInspectorClose):
        (WKBundleInspectorEvaluateScriptForTest):
        (WKBundleInspectorSetPageProfilingEnabled):

2014-06-24  Anders Carlsson  <andersca@apple.com>

        WKWebView doesn't respect -[UIScrollView contentInset]
        https://bugs.webkit.org/show_bug.cgi?id=134230
        <rdar://problem/17429107>

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _setHasCustomContentView:loadedMIMEType:WTF::]):
        Call initWithFrame and pass the WKWebView along.

        (-[WKWebView _adjustedContentOffset:]):
        New helper method that takes a content offset as a CGPoint and offsets it by the computed content inset.

        (-[WKWebView _computedContentInset]):
        New helper method that returns the _obscuredInsets, or if it's zero, the scroll view's content inset.

        (-[WKWebView _processDidExit]):
        Use _computedContentInset.

        (-[WKWebView _didCommitLayerTree:WebKit::]):
        use _computedContentInset.

        (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]):
        Use _computedContentInset.

        (-[WKWebView _scrollToContentOffset:WebCore::]):
        Use _computedContentInset.

        (-[WKWebView _updateVisibleContentRects]):
        If we have a custom content view, call web_computedContentInsetDidChange.

        (-[WKWebView _setObscuredInsets:]):
        Don't call web_setObscuredInsets: if we have a custom content view.

        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        Add new methods.

        * UIProcess/Cocoa/WKWebViewContentProvider.h:
        Add new methods.

        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView web_initWithFrame:webView:]):
        Set the _webView and _scrollView ivars.

        (-[WKPDFView _offsetForPageNumberIndicator]):
        Get the computed content offset from the WKWebView.

        (-[WKPDFView web_computedContentInsetDidChange]):
        Update the page indicator.
        
        (-[WKPDFView initWithFrame:]): Deleted.
        (-[WKPDFView web_setObscuredInsets:]): Deleted.

        * UIProcess/ios/WKScrollView.mm:
        (-[WKScrollView setContentInset:]):
        Call _updateVisibleContentRects.

2014-06-23  Jaehun Lim  <ljaehun.lim@samsung.com>

        Unreviewed, fix build warning.

        Source/WebKit2/WebProcess/WebPage/DrawingArea.h:117:18: warning: unused parameter ‘wantsDidUpdateViewState’ [-Wunused-parameter]

        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::viewStateDidChange):

2014-06-23  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Replace RefPtr<Evas_Object> with UniquePtrEfl
        https://bugs.webkit.org/show_bug.cgi?id=134236

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake:
        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::updateCursor):
        * UIProcess/API/efl/EwkView.h:
        * UIProcess/API/efl/SnapshotImageGL.cpp:
        * UIProcess/API/efl/ewk_favicon_database.cpp:
        (ewk_favicon_database_icon_get):
        * UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp: Removed.

2014-06-23  Daniel Bates  <dabates@apple.com>

        [iOS][WK2] REGRESSION (r169324): Page jumps to top when you type into a text field
        https://bugs.webkit.org/show_bug.cgi?id=134219
        <rdar://problem/17279113>

        Reviewed by Benjamin Poulain.

        Fixes an issue where typing into a text field may cause a noticeable jump to the top of
        the page.

        Currently when updating the visual content rectangles we always constrain the scroll offset
        (s_x, s_y) such that 0 <= s_x <= "content width" - "visible width" and 0 <= s_y <= "content height" - "visible height".
        However the UIProcess may want to scroll the page by an offset outside of this range to
        create a visually pleasing result. In particular, on iOS we may scroll the page slightly
        outside of this range (e.g. s_y > 0 = "content height" - "visible height") when a form
        control is focused so as to be consistent with platform convention.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects): Temporarily disable content edge constraint when
        updating scroll offset.

2014-06-23  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17413374> [iOS] Application cache size per origin is not limited
        https://bugs.webkit.org/show_bug.cgi?id=134229

        Reviewed by Anders Carlsson.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess): Set the default quota per origin to the same
        value it is set in Legacy WebKit.

2014-06-23  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed, EFL build fix after r170330.

        * WebProcess/WebPage/WebPage.cpp: Guard WKStringCF.h with PLATFORM(COCOA) macro.

2014-06-23  Timothy Horton  <timothy_horton@apple.com>

        [WK2] Use the page background color instead of white when swipe snapshots were purged (134218)
        https://bugs.webkit.org/show_bug.cgi?id=134218
        <rdar://problem/17426454>

        Reviewed by Benjamin Poulain.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _updateScrollViewBackground]):
        (-[WKWebView WebKit::]):
        * UIProcess/API/mac/WKView.mm:
        (-[WKView _takeViewSnapshot]):
        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::shouldUseSnapshotForSize):
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::retrieveSnapshotForItem): Deleted.
        * UIProcess/mac/ViewSnapshotStore.h:
        Store a color along with each snapshot.
        Set the background color of the swipe snapshot layer accordingly.

2014-06-23  Anders Carlsson  <andersca@apple.com>

        Add -[WKBackForwardList _removeAllItems]
        https://bugs.webkit.org/show_bug.cgi?id=134227
        <rdar://problem/17291623>

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKBackForwardList.mm:
        (-[WKBackForwardList _removeAllItems]):
        * UIProcess/API/Cocoa/WKBackForwardListPrivate.h: Added.
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-23  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17413498> [Cocoa] Expose WebPreferences::offlineWebApplicationCacheEnabled
        https://bugs.webkit.org/show_bug.cgi?id=134217

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences _offlineApplicationCacheIsEnabled]):
        (-[WKPreferences _setOfflineApplicationCacheIsEnabled:]):
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h: Added _offlineWebApplicationCacheIsEnabled
        property.

2014-06-23  Grant Kennell  <gkennell@apple.com>

        Add SPI for Injected Bundle to provide user agent for a given URL.
        https://bugs.webkit.org/show_bug.cgi?id=133562

        Reviewed by Sam Weinig.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: 
          Added delegate method to WebProcess PluIn protocol to provide UserAgent per URL.
        * WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h:
          Added new typedef for function pointer for this new delegate call.
          Added new version (V8) of bundle loader client struct containing
          a function pointer of that new type.
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (userAgentForURL): Makes delegate call with the new method.
        (setUpPageLoaderClient): Sets the struct's new function pointer to the new method.
        * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
        (WebKit::InjectedBundlePageLoaderClient::userAgentForURL):
        * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::userAgent):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::userAgent): Began using the new API to ask for user agent
          instead of simply returning what had been stored.
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::userAgent): Deleted.

2014-06-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170324.
        https://bugs.webkit.org/show_bug.cgi?id=134223

        lots of build breakage (Requested by bradeeoh on #webkit).

        Reverted changeset:

        "Unreviewed, revert an unintentional change committed with
        r170323."
        http://trac.webkit.org/changeset/170324

2014-06-23  Timothy Horton  <timothy_horton@apple.com>

        [iOS][wk2] Don't use view snapshots if the destination layer is a different size
        https://bugs.webkit.org/show_bug.cgi?id=134210
        <rdar://problem/17369463>

        Reviewed by Benjamin Poulain.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        Only use the view snapshot if the snapshot is the same (in device space) size
        as the layer it's going to be put into, and only if the device scale factor is
        the same as it was when the snapshot was taken.

2014-06-23  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Make the state restore from HistoryItem more precise and reliable
        https://bugs.webkit.org/show_bug.cgi?id=134150

        Reviewed by Tim Horton.

        This patch make several little improvements to improve how we restore the visible content rect and scale
        from the HistoryItem.

        The biggest architectural change is that the exposed rect is now restored on the UIProcess instead of the WebProcess,
        this ensure we restore the same position regardless of any modification of obscured areas.

        * Shared/VisibleContentRectUpdateInfo.cpp:
        (WebKit::VisibleContentRectUpdateInfo::encode):
        (WebKit::VisibleContentRectUpdateInfo::decode):
        * Shared/VisibleContentRectUpdateInfo.h:
        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
        (WebKit::VisibleContentRectUpdateInfo::lastLayerTreeTransactionId):
        (WebKit::WebPage::updateVisibleContentRects):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        A race between the UIProcess and the WebProcess could cause the viewport of the next page to be influenced by updates
        of the previous page. To avoid that, VisibleContentRectUpdateInfo keeps track of the last transaction seen at the time
        of the update.

        The WebProcess updates the size and scale of the content through layer tree updates. If an update was generated for a layer tree
        update of the old page, none of the information is valid for the current content. Since the UIProcess drives the state in case of conflicts,
        the WebProcess was updating the scale of the current page based on incorrect information.

        To avoid the problems, we save the layer tree transaction ID when we commit a new page. Only updates after that transaction are useful
        for the current page.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _processDidExit]):
        (withinEpsilon):
        (changeContentOffsetBoundedInValidRange):
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView _restorePageStateToExposedRect:WebCore::scale:]):
        (-[WKWebView _restorePageStateToUnobscuredCenter:WebCore::scale:]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::restorePageState):
        (WebKit::PageClientImpl::restorePageCenterAndScale):
        Restoring the state is now done by WKWebView. The state is only updated on the next layer tree commit,
        this is done to avoid any jumping if the page has scrolled since we tried to restore its state.

        Both update path end up calling _updateVisibleContentRects. This is because the update on the WebProcess
        never sets the ScrollPosition (because it does not know the current state of the obscured insets). Pushing
        a new VisibleContentRect will nicely udpates the exposed rect, scroll position, fixed elements, etc.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::restorePageState):
        (WebKit::WebPageProxy::restorePageCenterAndScale):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::lastCommittedLayerTreeTransactionID):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
        (WebKit::WebFrameLoaderClient::saveViewStateToItem):
        (WebKit::WebFrameLoaderClient::restoreViewState):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::didCommitLoad):
        * WebProcess/WebPage/WebPage.h:
        Get rid of m_obscuredTopInset. It was a bad idea. The UIProcess updates the obscured insets a lot during
        page load, the value we used to restore the scroll position was frequently stale.

        (WebKit::WebPage::userHasChangedPageScaleFactor): Deleted.
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::savePageState):
        (WebKit::scaleAfterViewportWidthChange):
        (WebKit::relativeCenterAfterContentSizeChange):
        (WebKit::adjustExposedRectForNewScale):
        Extract this out of dynamicViewportSizeUpdate(). It is useful to adjust the exposed rect when restoring a HistoryItem
        to a ViewportConfiguration that is different from when it was saved.

        (WebKit::WebPage::restorePageState):
        There are two variations of restorePage:
        1) If the viewport configuration is compatible, restore the exact scale and position of the page.
        2) Otherwise, restore the scale and position similarily to dynamicViewportSizeUpdate().

        (WebKit::WebPage::dynamicViewportSizeUpdate):
        (WebKit::WebPage::viewportConfigurationChanged):
        (WebKit::adjustExposedRectForBoundedScale):
        (WebKit::RemoteLayerTreeDrawingArea::currentTransactionID):
        Expose the transactionID for the race issue on VisibleRectUpdate.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):
        Store the exposed rect in floating point coordinates. This makes it possible to restore that exact
        position when needed.

2014-06-23  Eric Carlson  <eric.carlson@apple.com>

        Unreviewed, revert an unintentional change committed with r170323.

        * UIProcess/API/Cocoa/WKBackForwardList.mm:

2014-06-23  Anders Carlsson  <andersca@apple.com>

        Policy delegate methods should use CompletionHandlerCallChecker
        https://bugs.webkit.org/show_bug.cgi?id=134215

        Reviewed by Dan Bernstein.

        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
        (WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

2014-06-23  Anders Carlsson  <andersca@apple.com>

        Don't use the WK prefix for internal C++ types
        https://bugs.webkit.org/show_bug.cgi?id=134214

        Reviewed by Dan Bernstein.

        * Shared/AssistedNodeInformation.cpp:
        (WebKit::OptionItem::encode):
        (WebKit::OptionItem::decode):
        (WebKit::WKOptionItem::encode): Deleted.
        (WebKit::WKOptionItem::decode): Deleted.
        * Shared/AssistedNodeInformation.h:
        (WebKit::OptionItem::OptionItem):
        (WebKit::AssistedNodeInformation::AssistedNodeInformation):
        (WebKit::WKOptionItem::WKOptionItem): Deleted.
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _requiresKeyboardWhenFirstResponder]):
        (-[WKContentView inputView]):
        (-[WKContentView requiresAccessoryView]):
        (-[WKContentView _updateAccessory]):
        (-[WKContentView textInputTraits]):
        (-[WKContentView assistedNodeSelectOptions]):
        (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
        (-[WKContentView _stopAssistingNode]):
        * UIProcess/ios/forms/WKFormInputControl.mm:
        (-[WKDateTimePicker initWithView:datePickerMode:]):
        (-[WKFormInputControl initWithView:]):
        * UIProcess/ios/forms/WKFormSelectControl.h:
        * UIProcess/ios/forms/WKFormSelectControl.mm:
        (adjustedFontSize):
        * UIProcess/ios/forms/WKFormSelectPicker.mm:
        (-[WKOptionPickerCell initWithOptionItem:]):
        (-[WKOptionGroupPickerCell initWithOptionItem:]):
        (-[WKMultipleSelectPicker initWithView:]):
        (-[WKMultipleSelectPicker pickerView:viewForRow:forComponent:reusingView:]):
        (-[WKMultipleSelectPicker pickerView:row:column:checked:]):
        (-[WKSelectSinglePicker pickerView:attributedTitleForRow:forComponent:]):
        (-[WKSelectSinglePicker pickerView:didSelectRow:inComponent:]):
        * UIProcess/ios/forms/WKFormSelectPopover.mm:
        (-[WKSelectTableViewController initWithView:hasGroups:]):
        (-[WKSelectTableViewController tableView:numberOfRowsInSection:]):
        (-[WKSelectTableViewController tableView:titleForHeaderInSection:]):
        (-[WKSelectTableViewController populateCell:withItem:]):
        (-[WKSelectTableViewController findItemIndexAt:]):
        (-[WKSelectTableViewController findItemAt:]):
        (-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
        (-[WKSelectTableViewController tableView:didSelectRowAtIndexPath:]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getAssistedNodeInformation):

2014-06-23  Dan Bernstein  <mitz@apple.com>

        [Cocoa] No way to grant storage quotas for web application cache
        https://bugs.webkit.org/show_bug.cgi?id=134213

        Reviewed by Anders Carlsson.

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::reachedApplicationCacheOriginQuota): Added this new client function, with
        a default implementation that calls the completion handler with the current quota.

        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Declared a new delegate method.

        * UIProcess/API/Cocoa/_WKSecurityOrigin.mm:
        (-[_WKSecurityOrigin _initWithSecurityOrigin:WebCore::]): Changed the parameter into a const
        reference, since we copy it.
        * UIProcess/API/Cocoa/_WKSecurityOriginInternal.h:

        * UIProcess/Cocoa/UIDelegate.h: Override API::UIClient::reachedApplicationCacheOriginQuota.
        Added flag to m_delegateMethods struct for new delegate method.
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::setDelegate): Set new flag in m_delegateMethods struct.
        (WebKit::UIDelegate::UIClient::exceededDatabaseQuota): Updated for change in
        _WKSecurityOrigin initializer.
        (WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota): Added. Calls the new
        delegate method.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::reachedApplicationCacheOriginQuota): Added. Forwards the message to
        the UI client.
        * UIProcess/WebPageProxy.h:

        * UIProcess/WebPageProxy.messages.in: Added ReachedApplicationCacheOriginQuota message.

        * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
        (API::InjectedBundle::PageUIClient::didReachApplicationCacheOriginQuota): Changed the return
        type to bool, indicating whether the client handled the callback.

        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
        (WebKit::InjectedBundlePageUIClient::didReachApplicationCacheOriginQuota): Return the
        appropriate value.
        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:

        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota): If the bundle client didn’t
        handle the callback, send a message the the UI process, and update the quota with the reply.

2014-06-23  Tim Horton  <timothy_horton@apple.com>

        [wk2] Synchronously wait a short time for a layer tree update after bringing a web view in-window
        https://bugs.webkit.org/show_bug.cgi?id=134189

        Reviewed by Simon Fraser.

        Make the old behavior of -[WKView endDeferringViewInWindowChangesSync] the default; synchronously wait
        for a fraction of a second when a page that was previously in-window but currently isn't comes back in-window,
        until new content is painted (or we hit a timeout).
        
        * UIProcess/DrawingAreaProxy.h:
        (WebKit::DrawingAreaProxy::waitForDidUpdateViewState):
        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
        (WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateViewState):
        Delegate waitForDidUpdateViewState to the DrawingAreaProxys, because behavior is very dependent on them.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
        Implement waitForDidUpdateViewState for the RemoteLayerTree; it waits for CommitLayerTree.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::updateViewState):
        (WebKit::WebPageProxy::viewStateDidChange):
        (WebKit::WebPageProxy::dispatchViewStateChange):
        (WebKit::WebPageProxy::waitForDidUpdateViewState):
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        (WebKit::WebPageProxy::viewSize): Deleted.
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::didUpdateViewState):
        * UIProcess/API/mac/WKView.mm:
        (-[WKView endDeferringViewInWindowChangesSync]):
        Always waitForDidUpdateViewState when a page that was previously in-window but currently isn't comes back in-window.

        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::viewStateDidChange):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::setViewState):
        (WebKit::WebPage::didUpdateViewStateTimerFired): Deleted.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        (WebKit::RemoteLayerTreeDrawingArea::viewStateDidChange):
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
        (WebKit::TiledCoreAnimationDrawingArea::viewStateDidChange):
        (WebKit::TiledCoreAnimationDrawingArea::didUpdateViewStateTimerFired):
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::didUpdateViewStateTimerFired): Deleted.
        Delegate sending of didUpdateViewState to the DrawingAreas (RemoteLayerTreeDrawingArea won't send it,
            because the UI process waits for CommitLayerTree instead).

2014-06-23  Timothy Horton  <timothy_horton@apple.com>

        [iOS][wk2] Ensure that layers are marked volatile before allowing the process to suspend
        https://bugs.webkit.org/show_bug.cgi?id=134004
        <rdar://problem/17186342>

        Reviewed by Simon Fraser.

        WebKit tries to make layers volatile when unparented, but sometimes isn't given
        a chance to do so before the process gets suspended, so we end up with lots of
        non-volatile surfaces that should really be volatile.

        * Shared/mac/RemoteLayerBackingStoreCollection.h:
        * Shared/mac/RemoteLayerBackingStoreCollection.mm:
        (WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatileImmediately):
        (WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatileImmediatelyIfPossible):
        Add markAllBackingStoreVolatileImmediatelyIfPossible, which tries to mark *all*
        buffers of *all* backing store, (live and unreachable), (front, back, and secondary),
        volatile right away. It returns false if any buffer isn't marked volatile (because it was in-use).

        * UIProcess/ios/ProcessThrottler.h:
        * UIProcess/ios/ProcessThrottler.mm:
        (WebKit::ProcessThrottler::updateAssertion):
        (WebKit::ProcessThrottler::processReadyToSuspend):
        (WebKit::ProcessThrottler::didCancelProcessSuspension):
        * UIProcess/ios/WebProcessProxyIOS.mm:
        (WebKit::WebProcessProxy::sendCancelProcessWillSuspend):
        (WebKit::WebProcessProxy::didCancelProcessSuspension):
        * UIProcess/WebProcessProxy.h:
        * UIProcess/WebProcessProxy.messages.in:
        * WebProcess/WebProcess.h:
        * WebProcess/WebProcess.messages.in:
        If the UI process is waiting for the Web process to confirm that it can suspend
        and something happens (the view is reparented) that cancels the suspension, inform
        the Web process that this happened, so that it can cancel any cleanup that might still be taking place.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::viewStateDidChange):
        If a view goes in-window, dispatch the view state change immediately without delay,
        to minimize the latency between coming in-window and being ready to go.

        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::markLayersVolatileImmediatelyIfPossible):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
        Schedule a flush when we change the root layer; otherwise, we can end up
        detaching the root layer but changing nothing else, and never committing that change.

        (WebKit::RemoteLayerTreeDrawingArea::markLayersVolatileImmediatelyIfPossible):

        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::WebProcess):
        (WebKit::WebProcess::processWillSuspend):
        (WebKit::WebProcess::cancelProcessWillSuspend):
        (WebKit::WebProcess::markAllLayersVolatileIfPossible):
        (WebKit::WebProcess::processSuspensionCleanupTimerFired):
        When the UI process is going to suspend the process, it sends us ProcessWillSuspend,
        and defers the suspension until we send a ProcessReadyToSuspend back.
        Delay ProcessReadyToSuspend until all layers in our process have been marked volatile.
        We'll keep trying every 20ms until they're all volatile. For safety, the UI process will eventually
        stop waiting for us, but the volatility change is usually applied successfully within the first
        or second timer callback.

2014-06-23  Oliver Hunt  <oliver@apple.com>

        Ensure that we always use symlink free paths when specifying cache directories
        https://bugs.webkit.org/show_bug.cgi?id=134206

        Reviewed by Anders Carlsson.

        Sandboxing will deny symlink based paths, so we use realpath to create extensions.
        This leaves us in the position of an extension using a visually different path
        from other parts of the process code.  This patch simply makes sure that we always
        use the realpath for cache directories, so making debugging easier and also ensuring
        that we don't ever accidentally try to use a path with symlinks that will thus get
        denied.

        * Shared/SandboxExtension.h:
        (WebKit::stringByResolvingSymlinksInPath):
        * Shared/mac/SandboxExtensionMac.mm:
        (WebKit::stringByResolvingSymlinksInPath):
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::ensureNetworkProcess):
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultApplicationCacheDirectory):
        (WebKit::WebContext::platformDefaultDiskCacheDirectory):
        (WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory):
        (WebKit::WebContext::platformDefaultIconDatabasePath):
        (WebKit::WebContext::platformDefaultLocalStorageDirectory):

2014-06-23  Roger Fong  <roger_fong@apple.com>

        Unregister notification observer registered in r170156.
        https://bugs.webkit.org/show_bug.cgi?id=134204.

        Reviewed by Tim Horton.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView dealloc]):

2014-06-23  Dan Bernstein  <mitz@apple.com>

        [Cocoa] No way to grant storage quotas for WebSQL
        https://bugs.webkit.org/show_bug.cgi?id=134175

        Reviewed by Anders Carlsson.

        * Shared/WebSecurityOrigin.h:
        (WebKit::WebSecurityOrigin::securityOrigin): Changed to return a non-const reference.

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::exceededDatabaseQuota): Added a completion handler parameter than takes the
        new quota, and changed the return type to void.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageUIClient): Changed the override of exceededDatabaseQuota to call the
        completion handler with the new quota, or with the existing quota if the client doesn’t
        implement the callback.

        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Declared new delegate method.

        * UIProcess/API/Cocoa/_WKSecurityOrigin.h: Added.
        * UIProcess/API/Cocoa/_WKSecurityOrigin.mm: Added.
        (-[_WKSecurityOrigin _initWithSecurityOrigin:WebCore::]): Store the origin in an ivar.
        (-[_WKSecurityOrigin protocol]): Added this accessor.
        (-[_WKSecurityOrigin host]): Ditto.
        (-[_WKSecurityOrigin port]): Ditto.
        * UIProcess/API/Cocoa/_WKSecurityOriginInternal.h: Added.

        * UIProcess/Cocoa/UIDelegate.h: Override API::UIClient::exceededDatabaseQuota. Added flag
        to m_delegateMethods struct for new delegate method.
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::setDelegate): Set new flag in m_delegateMethods struct.
        (WebKit::UIDelegate::UIClient::exceededDatabaseQuota): Added. Calls the new delegate method.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::exceededDatabaseQuota): Updated for the new client interface: now
        passing a completion handler that replies with the new quota.

        * WebKit2.xcodeproj/project.pbxproj: Added references to new files, sorted a group.

2014-06-23  Simon Fraser  <simon.fraser@apple.com>

        More build fixing after r170295.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface):

2014-06-23  Anders Carlsson  <andersca@apple.com>

        Give read-only properties proper ownership attributes
        https://bugs.webkit.org/show_bug.cgi?id=134197
        <rdar://problem/16830117>

        Reviewed by Dan Bernstein.

        Also, make WKFrameInfo conform to NSCopying since it's a data-only object and thus intended to be copied.

        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
        * UIProcess/API/Cocoa/WKFrameInfo.h:
        * UIProcess/API/Cocoa/WKFrameInfo.mm:
        (-[WKFrameInfo copyWithZone:]):
        (-[WKFrameInfo setRequest:]): Deleted.
        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigationAction.h:
        * UIProcess/API/Cocoa/WKNavigationAction.mm:
        (-[WKNavigationAction setSourceFrame:]):
        (-[WKNavigationAction setTargetFrame:]):
        * UIProcess/API/Cocoa/WKNavigationActionInternal.h:
        * UIProcess/API/Cocoa/WKNavigationResponse.h:
        * UIProcess/API/Cocoa/WKScriptMessage.h:
        * UIProcess/API/Cocoa/WKUserContentController.h:
        * UIProcess/API/Cocoa/WKUserScript.h:
        * UIProcess/API/Cocoa/WKWebView.h:

2014-06-23  Gwang Yoon Hwang  <yoon@igalia.com>

        Unreviewed, GTK build fix after r170274.

        * WebProcess/WebPage/DrawingAreaImpl.cpp:
        Drawing::m_webPage changed to reference.

        (WebKit::DrawingAreaImpl::DrawingAreaImpl):
        (WebKit::DrawingAreaImpl::setNeedsDisplay):
        (WebKit::DrawingAreaImpl::setNeedsDisplayInRect):
        (WebKit::DrawingAreaImpl::forceRepaint):
        (WebKit::DrawingAreaImpl::updatePreferences):
        (WebKit::DrawingAreaImpl::layerHostDidFlushLayers):
        (WebKit::DrawingAreaImpl::updateBackingStoreState):
        (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState):
        (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
        (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
        (WebKit::DrawingAreaImpl::display):
        * WebProcess/WebPage/DrawingAreaImpl.h:

2014-06-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        REGRESSION(r170163): It made everything crash on EFL
        https://bugs.webkit.org/show_bug.cgi?id=134097

        Unreviewed EFL layout test and perforamcne crash fix.

        * WebProcess/WebPage/WebPage.cpp: Add a null check for m_mainFrame.
        (WebKit::WebPage::didCompletePageTransition):

2014-06-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed EFL build fix since r170274. Use reference for m_webPage member variable.

        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
        (WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea):
        (WebKit::CoordinatedDrawingArea::setNeedsDisplay):
        (WebKit::CoordinatedDrawingArea::setNeedsDisplayInRect):
        (WebKit::CoordinatedDrawingArea::forceRepaint):
        (WebKit::CoordinatedDrawingArea::updatePreferences):
        (WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged):
        (WebKit::CoordinatedDrawingArea::layerHostDidFlushLayers):
        (WebKit::CoordinatedDrawingArea::updateBackingStoreState):
        (WebKit::CoordinatedDrawingArea::sendDidUpdateBackingStoreState):
        (WebKit::CoordinatedDrawingArea::suspendPainting):
        (WebKit::CoordinatedDrawingArea::resumePainting):
        (WebKit::CoordinatedDrawingArea::enterAcceleratedCompositingMode):
        (WebKit::CoordinatedDrawingArea::display):
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:

2014-06-22  Tim Horton  <timothy_horton@apple.com>

        [iOS][wk2] Swiping back sometimes results in a missing (not blank) swipe snapshot
        https://bugs.webkit.org/show_bug.cgi?id=134181

        Reviewed by Benjamin Poulain.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::endSwipeGesture):
        (WebKit::ViewGestureController::setRenderTreeSize):
        (WebKit::ViewGestureController::removeSwipeSnapshot):
        * UIProcess/mac/ViewGestureController.h:
        Make it explicit that we should only remove the swipe snapshot when a
        big-enough render tree size arrives *after the swipe ends*.

2014-06-22  Tim Horton  <timothy_horton@apple.com>

        Thread some references through the remote layer tree code
        https://bugs.webkit.org/show_bug.cgi?id=134177

        Reviewed by Zalan Bujtas.

        A first pass at references for never-null things (first pass because I didn't touch the collections).
        Things that aren't straightforward reference-threading:

        * Shared/mac/RemoteLayerBackingStoreCollection.h:
        * Shared/mac/RemoteLayerBackingStoreCollection.mm:
        Remove the unimplemented/nonexistant RemoteLayerBackingStoreCollection::create.
        Make RemoteLayerBackingStoreCollection constructor not take a context, because m_context is never used.

        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        Factor out grabbing the PlatformLayerID in a few places.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        Use WebPage::mainFrameView() instead of WebPage::corePage()->mainFrame().view().

        * Shared/mac/RemoteLayerTreeTransaction.h:
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        * WebProcess/WebPage/DrawingArea.cpp:
        * WebProcess/WebPage/DrawingArea.h:
        * WebProcess/WebPage/WebPage.cpp:
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:om):
        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
        * Shared/mac/RemoteLayerBackingStore.mm:
        References.
        
2014-06-22  Anders Carlsson  <andersca@apple.com>

        Replace a couple of uses of bind with lambdas
        https://bugs.webkit.org/show_bug.cgi?id=134172

        Reviewed by Sam Weinig.

        * Platform/IPC/Connection.cpp:
        (IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
        (IPC::Connection::connectionDidClose):
        (IPC::Connection::dispatchMessage):
        (IPC::Connection::dispatchConnectionDidClose): Deleted.
        * Platform/IPC/Connection.h:
        * Shared/Plugins/NPObjectProxy.cpp:
        (WebKit::NPObjectProxy::NP_Deallocate):
        * UIProcess/Storage/LocalStorageDatabase.cpp:
        (WebKit::LocalStorageDatabase::scheduleDatabaseUpdate):
        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
        (WebKit::NetscapePlugin::pluginThreadAsyncCall):
        (WebKit::NetscapePlugin::handlePluginThreadAsyncCall): Deleted.
        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::forceRepaintAsync):
        (WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):

2014-06-20  Simon Fraser  <simon.fraser@apple.com>

        Have scrollingTreeAsText() dump the non-fast-scrollable region
        https://bugs.webkit.org/show_bug.cgi?id=134149

        Reviewed by Sam Weinig.

        Dump the non-fast-scrollable region (as an array of rects).

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (WebKit::RemoteScrollingTreeTextStream::dump):

2014-06-22  Anders Carlsson  <andersca@apple.com>

        Add IPC decoding support to BackForwardListState
        https://bugs.webkit.org/show_bug.cgi?id=134171

        Reviewed by Dan Bernstein.

        * Shared/SessionState.cpp:
        (WebKit::isValidEnum):
        (WebKit::HTTPBody::Element::decode):
        (WebKit::HTTPBody::decode):
        (WebKit::FrameState::decode):
        (WebKit::PageState::decode):
        (WebKit::BackForwardListState::decode):
        * Shared/SessionState.h:

2014-06-22  Anders Carlsson  <andersca@apple.com>

        Address a review comment.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::HistoryEntryDataDecoder::markInvalid):
        (WebKit::decodeFormDataElement):

2014-06-21  Anders Carlsson  <andersca@apple.com>

        Implement the rest of back forward tree decoding
        https://bugs.webkit.org/show_bug.cgi?id=134166

        Reviewed by Sam Weinig.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::HistoryEntryDataDecoder::operator>>):
        (WebKit::decodeFormDataElement):
        (WebKit::decodeFormData):
        (WebKit::decodeBackForwardTreeNode):

2014-06-22  Dan Bernstein  <mitz@apple.com>

        [iOS] WKWebViewConfiguration.allowsInlineMediaPlayback has no effect
        https://bugs.webkit.org/show_bug.cgi?id=134170

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]): Fixed a typo.

2014-06-21  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Fixing the GTK+ build after r170253.

        * UIProcess/API/gtk/WebKitSettings.cpp:
        (_WebKitSettingsPrivate::_WebKitSettingsPrivate): WebPreferences::create()
        now takes an additional String argument.

2014-06-21  Dan Bernstein  <mitz@apple.com>

        CallbackMap::put should be able to take an unwrapped function
        https://bugs.webkit.org/show_bug.cgi?id=134104

        Reviewed by Anders Carlsson.

        * UIProcess/GenericCallback.h:
        (WebKit::CallbackMap::put): Added an overload that takes a function and creates and puts a
        callback. Changed both overloads of put() to return the callback ID.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::validateCommand):
        (WebKit::WebPageProxy::runJavaScriptInMainFrame):
        (WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
        (WebKit::WebPageProxy::getSourceForFrame):
        (WebKit::WebPageProxy::getContentsAsString):
        (WebKit::WebPageProxy::getBytecodeProfile):
        (WebKit::WebPageProxy::getContentsAsMHTMLData):
        (WebKit::WebPageProxy::getSelectionOrContentsAsString):
        (WebKit::WebPageProxy::getSelectionAsWebArchiveData):
        (WebKit::WebPageProxy::getMainResourceDataOfFrame):
        (WebKit::WebPageProxy::getResourceDataFromFrame):
        (WebKit::WebPageProxy::getWebArchiveOfFrame):
        (WebKit::WebPageProxy::getMarkedRangeAsync):
        (WebKit::WebPageProxy::getSelectedRangeAsync):
        (WebKit::WebPageProxy::characterIndexForPointAsync):
        (WebKit::WebPageProxy::firstRectForCharacterRangeAsync):
        (WebKit::WebPageProxy::takeSnapshot):

2014-06-21  Anders Carlsson  <andersca@apple.com>

        Make it possible to override debug preferences on a per-identifier basis as well as globally
        https://bugs.webkit.org/show_bug.cgi?id=134164

        Reviewed by Dan Bernstein.

        * Shared/WebPreferencesDefinitions.h:
        * Shared/WebPreferencesKeys.cpp:
        * Shared/WebPreferencesKeys.h:
        * Shared/WebPreferencesStore.cpp:
        (WebKit::defaults):
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesCreate):
        (WKPreferencesCreateWithIdentifier):
        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences init]):
        * UIProcess/WebPageGroup.cpp:
        (WebKit::WebPageGroup::WebPageGroup):
        * UIProcess/WebPreferences.cpp:
        (WebKit::WebPreferences::create):
        (WebKit::WebPreferences::createWithLegacyDefaults):
        (WebKit::WebPreferences::WebPreferences):
        * UIProcess/WebPreferences.h:
        * UIProcess/mac/WebPreferencesMac.mm:
        (WebKit::makeKey):
        (WebKit::debugUserDefaultsValue):
        (WebKit::setDebugBoolValueIfInUserDefaults):
        (WebKit::WebPreferences::platformInitializeStore):

2014-06-21  Anders Carlsson  <andersca@apple.com>

        Begin work on decoding form data
        https://bugs.webkit.org/show_bug.cgi?id=134163

        Reviewed by Sam Weinig.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::HistoryEntryDataDecoder::operator>>):
        (WebKit::HistoryEntryDataDecoder::isValid):
        (WebKit::isValidEnum):
        (WebKit::decodeFormDataElement):
        (WebKit::decodeFormData):
        (WebKit::decodeBackForwardTreeNode):

2014-06-21  Anders Carlsson  <andersca@apple.com>

        Only initialize WebPreferences from NSUserDefaults if there's an identifier
        https://bugs.webkit.org/show_bug.cgi?id=134162

        Reviewed by Sam Weinig.

        We don't want to allow changing preferences by registering user defaults.

        * UIProcess/mac/WebPreferencesMac.mm:
        (WebKit::makeKey):
        (WebKit::WebPreferences::platformInitializeStore):

2014-06-21  Anders Carlsson  <andersca@apple.com>

        Begin work on decoding the back/forward tree
        https://bugs.webkit.org/show_bug.cgi?id=134161

        Reviewed by Sam Weinig.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntries):
        (WebKit::HistoryEntryDataDecoder::operator>>):
        (WebKit::HistoryEntryDataDecoder::decodeArithmeticType):
        (WebKit::HistoryEntryDataDecoder::bufferIsLargeEnoughToContain):
        (WebKit::decodeBackForwardTreeNode):
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntryData):
        (WebKit::HistoryEntryDataDecoder::decode): Deleted.

2014-06-21  Brady Eidson  <beidson@apple.com>

        Gamepad API - Deprecate the existing implementation
        https://bugs.webkit.org/show_bug.cgi?id=134108

        Reviewed by Timothy Hatcher.

        -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
        -Move some implementation files into a "deprecated" subdirectory.

        * Configurations/FeatureDefines.xcconfig:

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Implement more of HistoryEntryDataDecoder
        https://bugs.webkit.org/show_bug.cgi?id=134146

        Reviewed by Sam Weinig.

        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::HistoryEntryDataDecoder::HistoryEntryDataDecoder):
        (WebKit::HistoryEntryDataDecoder::operator>>):
        (WebKit::HistoryEntryDataDecoder::decode):
        (WebKit::HistoryEntryDataDecoder::decodeFixedLengthData):
        (WebKit::HistoryEntryDataDecoder::alignBufferPosition):
        (WebKit::HistoryEntryDataDecoder::alignedBuffer):
        (WebKit::HistoryEntryDataDecoder::alignedBufferIsLargeEnoughToContain):
        (WebKit::HistoryEntryDataDecoder::markInvalid):
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntryData):

2014-06-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170244.
        https://bugs.webkit.org/show_bug.cgi?id=134157

        GTK/EFL bindings generator works differently, making this
        patch not work there.  Will fix entire patch after a rollout.
        (Requested by bradee-oh on #webkit).

        Reverted changeset:

        "Gamepad API - Deprecate the existing implementation"
        https://bugs.webkit.org/show_bug.cgi?id=134108
        http://trac.webkit.org/changeset/170244

2014-06-21  Brady Eidson  <beidson@apple.com>

        Gamepad API - Deprecate the existing implementation
        https://bugs.webkit.org/show_bug.cgi?id=134108

        Reviewed by Timothy Hatcher.

        -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
        -Add the "Deprecated" suffix to some implementation files

        * Configurations/FeatureDefines.xcconfig:

2014-06-21  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CoordinatedGraphics][WK2][EFL] Page is moved to (0,0) position before rendering content
        https://bugs.webkit.org/show_bug.cgi?id=133300

        Reviewed by Csaba Osztrogonác.

        When new page is loaded, PageViewportController::didCommitLoad() calls PageViewportController::syncVisibleContents()
        with initial position via applyPositionAfterRenderingContents() before starting to render
        new page by PageViewportController::didRenderFrame(). This call flow causes that webview shows
        incomplete tiles to the user during a few milliseconds. To fix showing incomplete tiles during
        the page loading, this patch adds a flag so that we don't show the incomplete tiles until showing
        new page.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::EwkView):
        * UIProcess/API/efl/EwkView.h:
        (EwkView::setWaitingForNewPage):
        (EwkView::waitingForNewPage):
        * UIProcess/efl/PageLoadClientEfl.cpp:
        (WebKit::PageLoadClientEfl::didCommitLoadForFrame):
        * UIProcess/efl/PageViewportControllerClientEfl.cpp:
        (WebKit::PageViewportControllerClientEfl::didChangeVisibleContents):
        * UIProcess/efl/ViewClientEfl.cpp:
        (WebKit::ViewClientEfl::didRenderFrame):
        (WebKit::ViewClientEfl::didCompletePageTransition):

2014-06-21  Ryosuke Niwa  <rniwa@webkit.org>

        Commit queue has been failing due to a build failure in WKFoundation.h
        https://bugs.webkit.org/show_bug.cgi?id=134152

        Reviewed by Csaba Osztrogonác.
        Landed by Brady Eidson.

        The build failure was caused by WKFoundation.h erroneously redefining
        NSURLSessionAuthChallengeDisposition even when building with 10.9 SDK.

        The availability of this type depends on the version of SDK,
        not the target operating system.

        * Shared/API/Cocoa/WKFoundation.h:

2014-06-21  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Removing PAGE_VISIBILITY_API compile guard.
        https://bugs.webkit.org/show_bug.cgi?id=133844

        Reviewed by Gavin Barraclough.

        * Configurations/FeatureDefines.xcconfig:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Implement more of LegacySessionStateDecoder
        https://bugs.webkit.org/show_bug.cgi?id=134145

        Reviewed by Sam Weinig.

        * Shared/SessionState.h:
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntry):
        (WebKit::HistoryEntryDataDecoder::HistoryEntryDataDecoder):
        (WebKit::HistoryEntryDataDecoder::finishDecoding):
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntryData):
        * UIProcess/mac/LegacySessionStateCoding.h:

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Implement more of LegacySessionStateDecoder
        https://bugs.webkit.org/show_bug.cgi?id=134144

        Reviewed by Sam Weinig.

        * Shared/SessionState.cpp:
        (WebKit::BackForwardListState::encode):
        (WebKit::SessionState::encode): Deleted.
        * Shared/SessionState.h:
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::LegacySessionStateDecoder::decodeSessionState):
        (WebKit::LegacySessionStateDecoder::decodeSessionHistory):
        (WebKit::LegacySessionStateDecoder::decodeV0SessionHistory):
        (WebKit::LegacySessionStateDecoder::decodeV1SessionHistory):
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntries):
        (WebKit::LegacySessionStateDecoder::decodeSessionHistoryEntry):
        * UIProcess/mac/LegacySessionStateCoding.h:

2014-06-20  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed. build fix for the cmake based ports since r170188

        * CMakeLists.txt: Added LegacySessionState.cpp in source list.

2014-06-20  Dan Bernstein  <mitz@apple.com>

        [Cocoa] No way to get the main frame’s main resource’s data
        https://bugs.webkit.org/show_bug.cgi?id=134113

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _getMainResourceDataWithCompletionHandler:]): Added. Calls
        WebPageProxy::getMainResourceDataOfFrame and invokes the completion handler form the
        callback.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared new method.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::getMainResourceDataOfFrame): Made it safe to pass a NULL frame into
        this function.

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Introduce a WKSessionStateRef object
        https://bugs.webkit.org/show_bug.cgi?id=134136

        Reviewed by Tim Horton.

        WKSessionStateRef is going to hold session state, making it possible to migrate state from one 
        webpage to another without having to do any serialization/deserialization.

        * Shared/API/c/WKBase.h:
        * Shared/APIObject.h:
        * Shared/SessionState.cpp:
        (WebKit::SessionState::encode):
        * Shared/SessionState.h:
        * UIProcess/API/APISessionState.cpp: Added.
        (API::SessionState::create):
        (API::SessionState::SessionState):
        (API::SessionState::~SessionState):
        * UIProcess/API/APISessionState.h:
        * UIProcess/API/C/WKAPICast.h:
        * UIProcess/API/C/WKSessionStateRef.cpp:
        (WKSessionStateCreateFromData):
        * UIProcess/API/C/WKSessionStateRef.h:
        * UIProcess/mac/LegacySessionStateCoding.cpp:
        (WebKit::LegacySessionStateDecoder::LegacySessionStateDecoder):
        (WebKit::LegacySessionStateDecoder::~LegacySessionStateDecoder):
        (WebKit::LegacySessionStateDecoder::decodeSessionState):
        * UIProcess/mac/LegacySessionStateCoding.h:
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-19  Enrica Casucci  <enrica@apple.com>

        iOS WebKit2: selection handles become too large when zooming a page.
        https://bugs.webkit.org/show_bug.cgi?id=134084
        <rdar://problem/16799164>

        Reviewed by Benjamin Poulain.

        Since the document view is zoomed, we add a subview that has the inverse transform
        of the document view. This new view becomes the root for the selection hierarchy.
        The new view has zero size, not to interfere with the existing gestures on the WKContenView
        therefore we implement hitTest to detect interaction with the selection elements.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView setupInteraction]):
        (-[WKContentView cleanupInteraction]):
        (-[WKContentView unscaledView]):
        (-[WKContentView inverseScale]):
        (-[WKContentView _updateUnscaledView]):
        (-[WKContentView hitTest:withEvent:::]):
        (-[WKContentView selectedTextRange]):

2014-06-20  Timothy Horton  <timothy_horton@apple.com>

        Snapshotting WKThumbnailViews should not tell Web processes backing unparented WKViews that they're in window
        https://bugs.webkit.org/show_bug.cgi?id=134134
        <rdar://problem/17402119>

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _setThumbnailView:]):
        Re-evaluating our in-window state is only useful if we're going to use the live layer tree;
        snapshots can be taken of unparented views with no trouble. Plus, doing so sets off a chain of
        expensive things in the Web process which we can avoid if using snapshots.

2014-06-20  Timothy Horton  <timothy_horton@apple.com>

        WKThumbnailView should only use live layer trees before the snapshot arrives for parented WKViews
        https://bugs.webkit.org/show_bug.cgi?id=134129
        <rdar://problem/17401591>

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/_WKThumbnailView.mm:
        (-[_WKThumbnailView initWithFrame:fromWKView:]):
        Add a white background to WKThumbnailView, so that if we have no snapshot and no layer tree,
        the view isn't transparent.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _updateThumbnailViewLayer]):
        We currently pull the live layer tree into the WKThumbnailView even in snapshot mode,
        before the snapshot arrives, to avoid flashing when transitioning a live WKView to a thumbnail view.
        This is, however, not useful for unparented WKViews, because their layer tree will be detached
        and we'll flash anyway. So, only do that when the WKView is parented.

2014-06-20  Geoffrey Garen  <ggaren@apple.com>

        WebKit delegate methods should document their default behaviors
        https://bugs.webkit.org/show_bug.cgi?id=134132

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        * UIProcess/API/Cocoa/WKUIDelegate.h:

2014-06-20  Simon Fraser  <simon.fraser@apple.com>

        Fix lots of WK2 test crashes.

        We don't always have a ScrollingCoordinator.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::flushLayers):

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Always use XPC on iOS
        https://bugs.webkit.org/show_bug.cgi?id=134130

        Reviewed by Sam Weinig.

        * UIProcess/ios/WebProcessProxyIOS.mm:
        (WebKit::WebProcessProxy::platformGetLaunchOptions):
        (WebKit::shouldUseXPC): Deleted.

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * Shared/SessionState.cpp:

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Add ArgumentEncoder support to PageState and friends
        https://bugs.webkit.org/show_bug.cgi?id=134128

        Reviewed by Andreas Kling.

        Change the classes to structs, get rid of the constructors/destructors
        and add encode member functions.

        * Shared/SessionState.cpp:
        (WebKit::HTTPBody::Element::encode):
        (WebKit::HTTPBody::encode):
        (WebKit::FrameState::encode):
        (WebKit::PageState::encode):
        (WebKit::HTTPBody::Element::Element): Deleted.
        (WebKit::HTTPBody::Element::~Element): Deleted.
        (WebKit::FrameState::FrameState): Deleted.
        (WebKit::FrameState::~FrameState): Deleted.
        (WebKit::PageState::PageState): Deleted.
        (WebKit::PageState::~PageState): Deleted.
        * Shared/SessionState.h:
        (WebKit::HTTPBody::Element::type): Deleted.

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Add encoding and decoding support for WTF::Optional
        https://bugs.webkit.org/show_bug.cgi?id=134125

        Reviewed by Andreas Kling.

        * Platform/IPC/ArgumentCoders.h:
        (IPC::ArgumentCoder<WTF::Optional<T>>::encode):
        (IPC::ArgumentCoder<WTF::Optional<T>>::decode):

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Give NPAPI post requests a default content type
        https://bugs.webkit.org/show_bug.cgi?id=134120

        Reviewed by Andreas Kling.

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::loadURL):

2014-06-20  Simon Fraser  <simon.fraser@apple.com>

        Always commit the scrolling tree when we flush layers
        https://bugs.webkit.org/show_bug.cgi?id=134115

        Reviewed by Beth Dakin.
        
        The scrolling state tree contains bare pointers to GraphicsLayers, which get
        converted to CALayers at commit time. To avoid a window of time where those
        GraphicsLayer pointers go stale, commit the scrolling tree whenever we flush the
        compositing layer tree.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::flushLayers):

2014-06-19  Simon Fraser  <simon.fraser@apple.com>

        [iOS WebKit2] Make -webkit-overflow-scrolling:touch work in iframes (breaks MSWord previews)
        https://bugs.webkit.org/show_bug.cgi?id=134085
        <rdar://problem/16440586>

        Reviewed by Tim Horton.
        
        Add some debug-only assertions that check that the number of nodes we encoded is
        the expected number.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (WebKit::encodeNodeAndDescendants):
        (WebKit::RemoteScrollingCoordinatorTransaction::encode):

2014-06-19  Simon Fraser  <simon.fraser@apple.com>

        Handle scrolling tree modifications which remove intermediate nodes
        https://bugs.webkit.org/show_bug.cgi?id=134082

        Reviewed by Tim Horton.

        When updating the scrolling tree from the state tree, we failed to maintain
        the children arrays correctly. Fix by removing all children on scrolling nodes,
        and allowing the calls on children to add them back. A temporary hash map
        keeps the nodes alive.
        
        The state tree's m_nodesRemovedSinceLastCommit was also made into a HashSet,
        to make it easier to handle removal followed by re-insertion.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (WebKit::RemoteScrollingCoordinatorTransaction::decode):
        (WebKit::RemoteScrollingTreeTextStream::dump):

2014-06-19  Simon Fraser  <simon.fraser@apple.com>

        Make ScrollingTreeNodes refounted, for easier tree reconfiguration
        https://bugs.webkit.org/show_bug.cgi?id=134075

        Reviewed by Tim Horton.

        Make ScrollingTreeNode be ref-counted.

        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::createNode):
        * UIProcess/Scrolling/RemoteScrollingTree.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::create):
        * WebProcess/Scrolling/RemoteScrollingCoordinator.h:
        * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
        (WebKit::RemoteScrollingCoordinator::createScrollingTreeNode):

2014-06-20  Dan Bernstein  <mitz@apple.com>

        [Cocoa] No way to get the MIME type of the main frame
        https://bugs.webkit.org/show_bug.cgi?id=134111

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _MIMEType]): Added. Returns the MIME type of the main frame, or nil.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-06-20  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS]: Overrelease of RetainPtr object in file upload
        https://bugs.webkit.org/show_bug.cgi?id=134072

        Reviewed by Brady Eidson.

        This ivar is a RetainPtr, the release will be done automatically
        for us when we assign to nil or destruct.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView fileUploadPanelDidDismiss:]):

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Begin stubbing out new session state classes
        https://bugs.webkit.org/show_bug.cgi?id=134110

        Reviewed by Geoffrey Garen.

        The basic idea is that these classes will replace the data blobs representing HistoryItems
        that we currently send back and forth between the web and UI processes.
        
        * Shared/SessionState.cpp: Added.
        (WebKit::HTTPBody::Element::Element):
        (WebKit::HTTPBody::Element::~Element):
        (WebKit::FrameState::FrameState):
        (WebKit::FrameState::~FrameState):
        (WebKit::PageState::PageState):
        (WebKit::PageState::~PageState):
        * Shared/SessionState.h: Added.
        (WebKit::HTTPBody::Element::type):
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Rename SessionState to LegacySessionState
        https://bugs.webkit.org/show_bug.cgi?id=134107

        Reviewed by Dan Bernstein.

        * Shared/LegacySessionState.cpp: Renamed from Source/WebKit2/Shared/SessionState.cpp.
        (IPC::ArgumentCoder<RefPtr<T>>::encode):
        (IPC::ArgumentCoder<RefPtr<T>>::decode):
        (WebKit::LegacySessionState::LegacySessionState):
        (WebKit::LegacySessionState::isEmpty):
        (WebKit::LegacySessionState::encode):
        (WebKit::LegacySessionState::decode):
        * Shared/LegacySessionState.h: Renamed from Source/WebKit2/Shared/SessionState.h.
        (WebKit::LegacySessionState::list):
        (WebKit::LegacySessionState::currentIndex):
        * Shared/WebPageCreationParameters.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::creationParameters):
        * UIProcess/cf/WebPageProxyCF.cpp:
        (WebKit::WebPageProxy::restoreFromSessionStateData):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::restoreSession):
        (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Document the underlying types of the WKWindowFeatures rect properties
        https://bugs.webkit.org/show_bug.cgi?id=134103

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKWindowFeatures.h:

2014-06-20  Zan Dobersek  <zdobersek@igalia.com>

        PluginProcessMainUnix should only scan for plugins when X11 plugin architecture is enabled
        https://bugs.webkit.org/show_bug.cgi?id=134098

        Reviewed by Carlos Garcia Campos.

        * PluginProcess/unix/PluginProcessMainUnix.cpp: Guard the call to NetscapePluginModule::scanPlugin()
        with PLUGIN_ARCHITECTURE(X11) since the declaration has the same build guard. In case the X11 plugin
        architecture is not enabled the program exits with EXIT_FAILURE.

2014-06-20  Tim Horton  <timothy_horton@apple.com>

        LayerPool’d PlatformCALayerRemote/RemoteLayerBackingStore can have stale context pointers
        https://bugs.webkit.org/show_bug.cgi?id=134050
        <rdar://problem/17315114>

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
        (WebKit::PlatformCALayerRemote::layerPool):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        (WebKit::RemoteLayerTreeContext::layerPool):
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::buildTransaction):
        Ensure that layers being committed are always in the context that is committing them.
        Use a LayerPool per RemoteLayerTreeContext, to avoid moving layers between contexts.

2014-06-20  Tim Horton  <timothy_horton@apple.com>

        WKContentViewInteraction isn't cleaned up when the Web Content process crashes
        https://bugs.webkit.org/show_bug.cgi?id=134080
        <rdar://problem/17387652> and <rdar://problem/16848360>

        Reviewed by Benjamin Poulain.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _processDidExit]):
        Tear down WKContentViewInteraction when the process crashes.

        (-[WKContentView _didRelaunchProcess]):
        Set WKContentViewInteraction back up when the process is relaunched.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView cleanupInteraction]):
        Clear the SmartMagnificationController, which is a message receiver and thus must be re-created with the new page.
        Remove all gesture recognizers from the content view.
        Clear _fileUploadPanel, else we'll get an assert the next time we try to open one.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        Give the PageClient a chance to clean up *before* we clean up internals;
        it is at a higher level and some cleanup depends on WebPageProxy members
        not having been cleared yet.

2014-06-19  Dan Bernstein  <mitz@apple.com>

        Removed unused SPI -[WKWebView _runJavaScriptInMainFrame:].

        Rubber-stamped by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _runJavaScriptInMainFrame:]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-06-19  Dan Bernstein  <mitz@apple.com>

        Use a single map for all callback types in WebPageProxy
        https://bugs.webkit.org/show_bug.cgi?id=134069

        Reviewed by Tim Horton.

        * UIProcess/GenericCallback.h:
        (WebKit::CallbackMap::take):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::printFinishedCallback):
        (WebKit::WebPageProxy::resetState):
        (WebKit::WebPageProxy::drawPagesForPrinting):
        * UIProcess/WebPageProxy.h:
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
        (WebKit::WebPageProxy::attributedStringForCharacterRangeCallback):

2014-06-19  Anders Carlsson  <andersca@apple.com>

        Another build fix attempt.

        * Shared/API/Cocoa/WKFoundation.h:

2014-06-19  Dan Bernstein  <mitz@apple.com>

        [iOS] Legacy processes are installed inside WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=134079

        Reviewed by Anders Carlsson.

        * Configurations/All.xcconfig: Exclude the legacy processes on iOS so they don’t get copied.
        * Configurations/BaseLegacyProcess.xcconfig: Set SKIP_INSTALL to YES on iOS.

2014-06-19  Anders Carlsson  <andersca@apple.com>

        It's OS X, not OSX...

        * Shared/API/Cocoa/WKFoundation.h:

2014-06-19  Antti Koivisto  <antti@apple.com>

        Unfreeze the layer tree on DidFirstVisuallyNonEmptyLayout
        https://bugs.webkit.org/show_bug.cgi?id=134073

        Reviewed by Simon Fraser.
        
        DidFirstLayout is too early and we usually get a blank page. This doesn't match the existing iOS behavior either.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDidLayout):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):

2014-06-19  Anders Carlsson  <andersca@apple.com>

        Try to fix the Mavericks build.

        * Shared/API/Cocoa/WKFoundation.h:

2014-06-19  Sam Weinig  <sam@webkit.org>

        [Cocoa] Need SPI to determine if the WKWebView is displaying a standalone image
        https://bugs.webkit.org/show_bug.cgi?id=134071

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _isDisplayingStandaloneImageDocument]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-06-19  Dan Bernstein  <mitz@apple.com>

        Use a single map for all callback types in WebPageProxy
        https://bugs.webkit.org/show_bug.cgi?id=134069

        Reviewed by Anders Carlsson.

        * UIProcess/GenericCallback.h:
        (WebKit::CallbackBase::as): Added. Performs a dynamic cast to a specific callback type.
        (WebKit::CallbackBase::CallbackBase): Added a type parameter, which is used to initialize
        the new m_type member.
        (WebKit::GenericCallback::GenericCallback): Pass the type to the base class constructor.
        (WebKit::GenericCallback::type): Added. Returns a unique type.
        (WebKit::GenericCallback::invalidate): Now virtual.

        (WebKit::CallbackMap::put): Adds the callback to the map.
        (WebKit::CallbackMap::take): Removes the callback from the map, and dynamically casts it to
        the specified type.
        (WebKit::CallbackMap::invalidate): Invalidates the map.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::validateCommand):
        (WebKit::WebPageProxy::runJavaScriptInMainFrame):
        (WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
        (WebKit::WebPageProxy::getSourceForFrame):
        (WebKit::WebPageProxy::getContentsAsString):
        (WebKit::WebPageProxy::getBytecodeProfile):
        (WebKit::WebPageProxy::getSelectionOrContentsAsString):
        (WebKit::WebPageProxy::getSelectionAsWebArchiveData):
        (WebKit::WebPageProxy::getMainResourceDataOfFrame):
        (WebKit::WebPageProxy::getResourceDataFromFrame):
        (WebKit::WebPageProxy::getWebArchiveOfFrame):
        (WebKit::WebPageProxy::forceRepaint):
        (WebKit::WebPageProxy::clearLoadDependentCallbacks):
        (WebKit::WebPageProxy::voidCallback):
        (WebKit::WebPageProxy::dataCallback):
        (WebKit::WebPageProxy::imageCallback):
        (WebKit::WebPageProxy::stringCallback):
        (WebKit::WebPageProxy::scriptValueCallback):
        (WebKit::WebPageProxy::computedPagesCallback):
        (WebKit::WebPageProxy::validateCommandCallback):
        (WebKit::WebPageProxy::unsignedCallback):
        (WebKit::WebPageProxy::editingRangeCallback):
        (WebKit::WebPageProxy::rectForCharacterRangeCallback):
        (WebKit::WebPageProxy::resetState):
        (WebKit::WebPageProxy::computePagesForPrinting):
        (WebKit::WebPageProxy::drawRectToImage):
        (WebKit::WebPageProxy::drawPagesToPDF):
        (WebKit::WebPageProxy::getMarkedRangeAsync):
        (WebKit::WebPageProxy::getSelectedRangeAsync):
        (WebKit::WebPageProxy::characterIndexForPointAsync):
        (WebKit::WebPageProxy::firstRectForCharacterRangeAsync):
        (WebKit::WebPageProxy::takeSnapshot):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::gestureCallback):
        (WebKit::WebPageProxy::touchesCallback):
        (WebKit::WebPageProxy::autocorrectionDataCallback):
        (WebKit::WebPageProxy::dictationContextCallback):
        (WebKit::WebPageProxy::autocorrectionContextCallback):
        (WebKit::WebPageProxy::selectWithGesture):
        (WebKit::WebPageProxy::updateSelectionWithTouches):
        (WebKit::WebPageProxy::requestAutocorrectionData):
        (WebKit::WebPageProxy::applyAutocorrection):
        (WebKit::WebPageProxy::requestDictationContext):
        (WebKit::WebPageProxy::requestAutocorrectionContext):
        (WebKit::WebPageProxy::selectWithTwoTouches):

2014-06-19  Anders Carlsson  <andersca@apple.com>

        No way to handle HTTP Authentication with WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=134067
        <rdar://problem/17317874>

        Reviewed by Dan Bernstein.

        Add a public webView:didReceiveAuthenticationChallenge:completionHandler: delegate method and get rid of the SPI.
        
        * Shared/API/Cocoa/WKFoundation.h:
        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate):
        (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame):

2014-06-18  Roger Fong  <roger_fong@apple.com>

        Don't kill the UIProcess until all local storage transactions have been committed.
        https://bugs.webkit.org/show_bug.cgi?id=134042.
        <rdar://problem/16660724>.

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm: Add a listener for the application will terminate notification.
        (-[WKView _applicationWillTerminate:]):
        (-[WKView initWithFrame:context:configuration:webView:]):
        * UIProcess/WebContext.cpp: Calls code in StorageManager to cleanup local storage transactions upon application termination.
        (WebKit::WebContext::applicationWillTerminate):
        * UIProcess/WebContext.h:

        * UIProcess/Storage/StorageManager.cpp:
        (WebKit::StorageManager::applicationWillTerminate):
        Dispatch local storage cleanup task to background thread and make sure the UIProcess can't exit early.
        * UIProcess/Storage/StorageManager.h:

2014-06-19  Oliver Hunt  <oliver@apple.com>

        Switch to using the process parameters during initialisation
        to determine whether we hsould be using the network process.

        RS=Sam Weinig

        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-06-19  Pratik Solanki  <psolanki@apple.com>

        Copy SharedBuffer data into IPC message directly
        https://bugs.webkit.org/show_bug.cgi?id=133920

        Reviewed by Anders Carlsson.

        When data array callbacks are enabled, we currently merge all the CFDataRefs in SharedBuffer
        into one contiguous memory buffer when creating IPC::DataReference. This patch creates a
        subclass of DataReference that uses SharedBuffer::getSomeData() to copy the data directly
        into the IPC message.

        * NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
        (WebKit::AsynchronousNetworkLoaderClient::didReceiveBuffer):
        * Platform/IPC/ArgumentEncoder.cpp:
        (IPC::ArgumentEncoder::reserve): Added.
        (IPC::ArgumentEncoder::grow):
        * Platform/IPC/ArgumentEncoder.h:
        * Platform/IPC/DataReference.cpp:
        (IPC::SharedBufferDataReference::encode):
        * Platform/IPC/DataReference.h:
        (IPC::DataReference::~DataReference):

2014-06-18  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Fixing the GTK+ build after r170114.

        * UIProcess/API/gtk/WebKitAuthenticationRequest.cpp:
        (webkit_authentication_request_get_proposed_credential):
        The core() accessor has been renamed to credential().

2014-06-18  Dan Bernstein  <mitz@apple.com>

        Try to fix the Mountain Lion build.

        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame):

2014-06-18  Tim Horton  <timothy_horton@apple.com>

        Remove RemoteLayerBackingStore’s RemoteLayerTreeContext pointer
        https://bugs.webkit.org/show_bug.cgi?id=134055

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerBackingStore.h:
        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore):
        (WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore):
        (WebKit::RemoteLayerBackingStore::ensureBackingStore):
        (WebKit::RemoteLayerBackingStore::display):
        (WebKit::RemoteLayerBackingStore::drawInContext):
        Remove RemoteLayerBackingStore's RemoteLayerTreeContext pointer. Instead, use the PlatformCALayer's.
        Pass the PlatformCALayer in to the constructor, and remove it from ensureBackingStore();
        RemoteLayerBackingStore is (for now) strictly tied to a single layer.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::ensureBackingStore):
        (WebKit::PlatformCALayerRemote::updateBackingStore):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        (WebKit::PlatformCALayerRemote::context):

2014-06-18  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Modernize one-method authentication
        https://bugs.webkit.org/show_bug.cgi?id=134051

        Reviewed by Anders Carlsson.

        Instead of an NSURLConnection-style delegate method that takes a challenge and responds to
        its sender, provide an NSURLSession-style method that takes a challenge and a completion
        handler.

        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method, replacing
        old unused method.
        * UIProcess/Cocoa/NavigationState.h: Renamed flag in m_navigationDelegateMethods struct.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate): Check for new delegate method and update
        new flag.

        (WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame): If
        the delegate implements the new method, return true (if it cannot handle the protection
        space, it can reject it through the completion handler), except for server-trust
        authentication, which is not supported yet.
        (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): If the
        delegate implements the new method, call it, passing a completion handler that calls the
        right AuthenticationDecisionListener function based on its disposition and credential
        parameters.

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Make FrameLoadType a strongly typed enum
        https://bugs.webkit.org/show_bug.cgi?id=134047

        Reviewed by Andreas Kling.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didCommitLoadForFrame):
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::goForward):
        (WebKit::WebPage::goBack):
        (WebKit::WebPage::goToBackForwardItem):
        (WebKit::shouldReuseCommittedSandboxExtension):
        (WebKit::WebPage::didCommitLoad):

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Simplify WebSecurityOrigin
        https://bugs.webkit.org/show_bug.cgi?id=134049

        Reviewed by Andreas Kling.

        * Shared/API/c/WKSecurityOrigin.cpp:
        (WKSecurityOriginCreateFromString):
        (WKSecurityOriginCreateFromDatabaseIdentifier):
        (WKSecurityOriginCopyDatabaseIdentifier):
        (WKSecurityOriginCopyToString):
        (WKSecurityOriginCopyProtocol):
        (WKSecurityOriginCopyHost):
        (WKSecurityOriginGetPort):
        * Shared/WebSecurityOrigin.h:
        (WebKit::WebSecurityOrigin::securityOrigin):
        (WebKit::WebSecurityOrigin::createFromDatabaseIdentifier): Deleted.
        (WebKit::WebSecurityOrigin::protocol): Deleted.
        (WebKit::WebSecurityOrigin::host): Deleted.
        (WebKit::WebSecurityOrigin::port): Deleted.
        (WebKit::WebSecurityOrigin::databaseIdentifier): Deleted.
        (WebKit::WebSecurityOrigin::toString): Deleted.
        * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
        (WebKit::WebNotificationManagerProxy::providerDidUpdateNotificationPolicy):
        (WebKit::WebNotificationManagerProxy::providerDidRemoveNotificationPolicies):
        * UIProcess/Storage/StorageManager.cpp:
        (WebKit::StorageManager::deleteEntriesForOrigin):
        * UIProcess/Storage/StorageManager.h:
        * UIProcess/WebApplicationCacheManagerProxy.cpp:
        (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
        * UIProcess/WebDatabaseManagerProxy.cpp:
        (WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
        (WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):
        (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
        (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
        (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
        (WebKit::WebDatabaseManagerProxy::didModifyOrigin):
        (WebKit::WebDatabaseManagerProxy::didModifyDatabase):
        * UIProcess/WebKeyValueStorageManager.cpp:
        (WebKit::didGetStorageDetailsByOrigin):
        * UIProcess/WebOriginDataManagerProxy.cpp:
        (WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::exceededDatabaseQuota):
        (WebKit::WebPageProxy::requestGeolocationPermissionForFrame):
        * UIProcess/WebResourceCacheManagerProxy.cpp:
        (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin):
        * UIProcess/ios/WKGeolocationProviderIOS.mm:
        (-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:request:window:]):
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::exceededDatabaseQuota):

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Add back WKPageRunJavaScriptInMainFrame_b for now
        https://bugs.webkit.org/show_bug.cgi?id=134045
        <rdar://problem/17368879>

        Reviewed by Tim Horton.

        Reverted changeset:

        "Remove WKPageRunJavaScriptInMainFrame_b"
        https://bugs.webkit.org/show_bug.cgi?id=133926
        http://trac.webkit.org/changeset/169991

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Simplify WebPageProxy::saveRecentSearches and WebPageProxy::loadRecentSearches
        https://bugs.webkit.org/show_bug.cgi?id=134041

        Reviewed by Andreas Kling.

        * UIProcess/cf/WebPageProxyCF.cpp:
        (WebKit::WebPageProxy::saveRecentSearches):
        (WebKit::WebPageProxy::loadRecentSearches):

2014-06-18  Simon Fraser  <simon.fraser@apple.com>

        Make ScrollingStateNodes refcounted, and other minor cleanup
        https://bugs.webkit.org/show_bug.cgi?id=134040

        Reviewed by Beth Dakin.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (WebKit::encodeNodeAndDescendants):

2014-06-18  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Do not add padding when magnifying replaced elements
        https://bugs.webkit.org/show_bug.cgi?id=134019

        Reviewed by Tim Horton.

        Having margins for regular blocks make sense to improve readability. For replaced elements,
        we should follow iOS's UI and display edge to edge.

        * UIProcess/ios/SmartMagnificationController.mm:
        (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):

2014-06-18  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Re-sync didCommitLoadForMainFrame with its corresponding tile update
        https://bugs.webkit.org/show_bug.cgi?id=134009

        Reviewed by Tim Horton.

        WKWebView assumed the first _didCommitLayerTree: after _didCommitLoadForMainFrame
        had the state of the page being loaded.

        This is not always true. Sometimes, a set of tiles can be rendering asynchronously while the next
        page is loaded, and does not flush the queue until after didCommitLoadForMainFrame is executed.

        Tim introduced a transactionID with each layer tree update. This patch uses that to synchronize
        WKWebView with the right set of tiles.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLoadForMainFrame]):
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView _updateVisibleContentRects]):
        * UIProcess/WebPageProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::nextLayerTreeTransactionID):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.messages.in:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::willCommitLayerTree):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Simplify WebCredential
        https://bugs.webkit.org/show_bug.cgi?id=134036

        Reviewed by Andreas Kling.

        * UIProcess/API/C/WKCredential.cpp:
        (WKCredentialCreate):
        (WKCredentialCreateWithCertificateInfo):
        (WKCredentialCopyUser):
        * UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
        (WebKit::AuthenticationChallengeProxy::useCredential):
        * UIProcess/Authentication/WebCredential.cpp:
        (WebKit::WebCredential::credential):
        (WebKit::WebCredential::core): Deleted.
        (WebKit::WebCredential::user): Deleted.
        * UIProcess/Authentication/WebCredential.h:
        (WebKit::WebCredential::create): Deleted.

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Adopt modern C++11 loops and fix WebArchive creation functions
        https://bugs.webkit.org/show_bug.cgi?id=134032

        Reviewed by Andreas Kling.

        * Shared/APIWebArchive.cpp:
        (API::WebArchive::WebArchive):

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Give WKWebView on iOS a mobile user agent
        https://bugs.webkit.org/show_bug.cgi?id=134034
        <rdar://problem/17346489>

        Reviewed by Enrica Casucci.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):

2014-06-18  Joseph Pecoraro  <pecoraro@apple.com>

        Remove stale include, header was removed in r170101.

        Unreviewed build fix.

        * Shared/API/Cocoa/WebKitPrivate.h:

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Add CF type cast function templates and use them in KeyedDecoder in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=134033

        Reviewed by Sam Weinig.

        * Shared/cf/KeyedDecoder.cpp:
        (WebKit::KeyedDecoder::KeyedDecoder):
        (WebKit::KeyedDecoder::decodeBytes):
        (WebKit::KeyedDecoder::decodeBool):
        (WebKit::KeyedDecoder::decodeInt32):
        (WebKit::KeyedDecoder::decodeInt64):
        (WebKit::KeyedDecoder::decodeFloat):
        (WebKit::KeyedDecoder::decodeDouble):
        (WebKit::KeyedDecoder::decodeString):
        (WebKit::KeyedDecoder::beginObject):
        (WebKit::KeyedDecoder::beginArray):
        (WebKit::KeyedDecoder::beginArrayElement):

2014-06-18  Dan Bernstein  <mitz@apple.com>

        Remove the unused _WKBackForwardListDidChangeNotification.

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKBackForwardList.mm:
        * UIProcess/API/Cocoa/WKBackForwardListInternal.h:
        * UIProcess/API/Cocoa/WKBackForwardListPrivate.h: Removed.
        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::LoaderClient::didChangeBackForwardList): Deleted.
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-18  Andreas Kling  <akling@apple.com>

        Set main thread QoS policies after IPC initialization.
        <https://webkit.org/b/134014>

        Something was flipping the QoS level back to "unspecified" after
        setting it in the ChildProcess initialization code. Pending a better
        understanding of what really happens, move the code to a later stage,
        after IPC channels are up and running. Now the priority sticks.

        Reviewed by Anders Carlsson.

        * NetworkProcess/NetworkProcess.cpp:
        (WebKit::NetworkProcess::initializeNetworkProcess):
        * Shared/ChildProcess.cpp:
        (WebKit::ChildProcess::initialize):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::initializeWebProcess):

2014-06-17  Dan Bernstein  <mitz@apple.com>

        [Cocoa] WKWebView's _privateBrowsingEnabled property is unused
        https://bugs.webkit.org/show_bug.cgi?id=134013

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _privateBrowsingEnabled]): Deleted.
        (-[WKWebView _setPrivateBrowsingEnabled:]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-06-17  Tim Horton  <timothy_horton@apple.com>

        [iOS][wk2] Use ImageDocument to display subframe PDFs
        https://bugs.webkit.org/show_bug.cgi?id=133944
        <rdar://problem/17205983>

        Reviewed by Dan Bates.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):
        Always use ImageDocument for subframe PDFs in WebKit2 on iOS.

2014-06-17  Anders Carlsson  <andersca@apple.com>

        Make it possible to use -[NSBundle classNamed:] to find WebKitLegacy classes
        https://bugs.webkit.org/show_bug.cgi?id=134008
        <rdar://problem/17037600>

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/LegacyBundleForClass.mm: Added.
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-17  Anders Carlsson  <andersca@apple.com>

        Expose the location of website data
        https://bugs.webkit.org/show_bug.cgi?id=134000
        <rdar://problem/17350498>

        Reviewed by Dan Bernstein.

        Also, remove the bundle ID from the website data path for containerized apps.

        * Shared/mac/SandboxUtilities.cpp:
        (WebKit::processIsAppSandboxed):
        * Shared/mac/SandboxUtilities.h:
        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (+[WKProcessPool _websiteDataURLForContainerWithURL:]):
        (websiteDataDirectoryURL):
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

2014-06-17  Jeremy Jones  <jeremyj@apple.com>

        Improve enter and exit fullscreen transition by using two step transition.
        https://bugs.webkit.org/show_bug.cgi?id=133706

        Reviewed by Simon Fraser.

        Add setupFullscreen()/didSetupFullscreen() and cleanupFullscreen()/didCleanupFullscreen()
        to the proxies. And refactor enter/exit fullscreen to do some of the work in setup/cleanup.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        Add four methods mentioned above.
        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
        Add Setup/Cleanup functions.
        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): does what enterFullscreen used to do.
        (WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): forward IPC.
        (WebKit::WebVideoFullscreenManagerProxy::didSetupFullscreen): forward IPC.
        (WebKit::WebVideoFullscreenManagerProxy::enterFullscreenWithID): changed to enterFullscreen
        * WebProcess/ios/WebVideoFullscreenManager.h: Add didSetup/didCleanup
        * WebProcess/ios/WebVideoFullscreenManager.messages.in: Add didSetup/didCleanup
        * WebProcess/ios/WebVideoFullscreenManager.mm: 
        (WebKit::WebVideoFullscreenManager::enterFullscreenForNode): refactored,
        some implementation moves to didSetupFullscreen.
        (WebKit::WebVideoFullscreenManager::didSetupFullscreen):
        Moves the video layer over to the hosted layer, and initiates fullscreen.
        (WebKit::WebVideoFullscreenManager::didExitFullscreen): refactored,
        some implementation moves to didCleanupFullscreen, and initiates cleanup.
        (WebKit::WebVideoFullscreenManager::didCleanupFullscreen):
        Final cleanup refactored from didExitFullscreen()

2014-06-17  Eric Carlson  <eric.carlson@apple.com>

        [iOS] enable background audio in WK2
        https://bugs.webkit.org/show_bug.cgi?id=133996

        Reviewed by Jer Noble.

        * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-iOS.plist: Mark as
            allowed to play audio when in the background.
        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist: Ditto.

2014-06-17  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] fix reflections on composited layers
        https://bugs.webkit.org/show_bug.cgi?id=133942

        Reviewed by Tim Horton.
        
        Fix reflections on composited layers. There are two main set of changes.
        
        First, a PlatformCALayerRemote which is a clone has to track the layer
        it is a clone of, so it knows where to grab the contents from in the UI process.
        This layer may be told that its contents need updating out of order during
        recursiveBuildTransaction(), so we need some small changes in RemoteLayerTreeContext
        to allow a layer to add itself to the set of layers requiring commit.
        
        In the UI process, a new step is added to RemoteLayerTreeHost::updateLayerTree()
        to go through clones, and copy their contents from the origin layer.
        
        The second set of changes makes platformCALayerLayerDidDisplay() work for
        UI-side compositing by not taking a PlatformLayer*, but instead a PlatformCALayer*.
        PlatformCALayer::setContentsChanged() changed to copyContentsFromLayer() so we know
        what the origin layer is.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::display): Remove the early return so we can always
        call platformCALayerLayerDidDisplay().
        * Shared/mac/RemoteLayerTreeTransaction.h:
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
        (WebKit::dumpChangedLayers):
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::updateLayerTree):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::clone):
        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
        (WebKit::PlatformCALayerRemote::copyContentsFromLayer):
        (WebKit::PlatformCALayerRemote::setClonedLayer):
        (WebKit::PlatformCALayerRemote::setContentsChanged): Deleted.
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        (WebKit::PlatformCALayerRemote::properties):
        (WebKit::PlatformCALayerRemote::context):

2014-06-17  Anders Carlsson  <andersca@apple.com>

        Remove session state methods from WKBrowsingContextController
        https://bugs.webkit.org/show_bug.cgi?id=133995

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKBrowsingContextController.h:
        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
        (-[WKBrowsingContextController sessionState]): Deleted.
        (-[WKBrowsingContextController restoreFromSessionState:]): Deleted.

2014-06-17  Brady Eidson  <beidson@apple.com>

        Only show telephone number highlights if only one number is selected
        <rdar://problem/16874568> and https://bugs.webkit.org/show_bug.cgi?id=133989

        Reviewed by Tim Horton.

        Add a flag to TelephoneNumberData to remember if it was hovered over:
        * WebProcess/WebPage/TelephoneNumberOverlayController.h:
        (WebKit::TelephoneNumberData::hovered):
        (WebKit::TelephoneNumberData::setHovered):
        (WebKit::TelephoneNumberData::TelephoneNumberData):

        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
        (WebKit::TelephoneNumberOverlayController::drawRect): Only draw the highlight if one
          phone number is selected.
        (WebKit::TelephoneNumberOverlayController::mouseEvent): Update the hover state of the
          current phone number, and setNeedsDisplay if the hover state changes.
        (WebKit::TelephoneNumberOverlayController::clearHighlights):

2014-06-17  Tim Horton  <timothy_horton@apple.com>

        Remove WKContentView _setFindIndicator:fadeOut:animate:
        https://bugs.webkit.org/show_bug.cgi?id=133976

        Reviewed by Anders Carlsson.

        Find indicators are totally internal to FindController on iOS,
        we don't need to push them to the content view via PageClient,
        so this code was unused.

        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::setFindIndicator):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _setFindIndicator:WebKit::fadeOut:animate:]): Deleted.

2014-06-17  Andreas Kling  <akling@apple.com>

        Web process main thread priority is lower than some network process threads.
        <https://webkit.org/b/133987>
        <rdar://problem/17330300>

        Mark the main thread as "user initiated" in process entry.

        Reviewed by Maciej Stachowiak.

        * Shared/ChildProcess.cpp:
        (WebKit::ChildProcess::initialize):

2014-06-17  Anders Carlsson  <andersca@apple.com>

        Add SPI to get the NSURLRequest from a WKNavigationResponse
        https://bugs.webkit.org/show_bug.cgi?id=133984
        <rdar://problem/17006399>

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKNavigationResponse.mm:
        (-[WKNavigationResponse _request]):
        * UIProcess/API/Cocoa/WKNavigationResponseInternal.h:
        * UIProcess/API/Cocoa/WKNavigationResponsePrivate.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

2014-06-17  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL][WK2] Skip failing EFL API tests
        https://bugs.webkit.org/show_bug.cgi?id=133981

        Reviewed by Csaba Osztrogonác.

        UserMessage, WillLoad and test_ewk2_view have been failed since r169784.

        * PlatformEfl.cmake:

2014-06-17  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fix for the GTK+ port. Removing the *Callback::create() wrappings
        for lambda callbacks that aren't required anymore after the changes in r170041.

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkit_web_view_can_execute_editing_command):
        (webkit_web_view_run_javascript):
        (resourcesStreamReadCallback):
        (webkit_web_view_save):
        (webkit_web_view_save_to_file):

2014-06-16  Jaehun Lim  <ljaehun.lim@samsung.com>

        Unreviewed build fix when MHTML is enabled after r170041

        * UIProcess/API/C/WKPage.cpp:
        (WKPageGetContentsAsMHTMLData):

2014-06-16  Dan Bernstein  <mitz@apple.com>

        Part 2 of: Change GenericCallback<> function parameters into std::function<>
        https://bugs.webkit.org/show_bug.cgi?id=133927

        Reviewed by Sam Weinig.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageRunJavaScriptInMainFrame):
        (WKPageRenderTreeExternalRepresentation):
        (WKPageGetSourceForFrame):
        (WKPageGetContentsAsString):
        (WKPageGetBytecodeProfile):
        (WKPageGetSelectionAsWebArchiveData):
        (WKPageValidateCommand):
        * UIProcess/API/C/WKPluginSiteDataManager.cpp:
        (WKPluginSiteDataManagerClearSiteData):
        (WKPluginSiteDataManagerClearAllSiteData):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView evaluateJavaScript:completionHandler:]):
        * UIProcess/API/mac/WKView.mm:
        (-[WKView validateUserInterfaceItem:]):
        (-[WKView startSpeaking:]):
        (-[WKView selectedRangeWithCompletionHandler:]):
        (-[WKView markedRangeWithCompletionHandler:]):
        (-[WKView hasMarkedTextWithCompletionHandler:]):
        (-[WKView firstRectForCharacterRange:completionHandler:]):
        (-[WKView characterIndexForPoint:completionHandler:]):
        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
        (WebKit::WebPluginSiteDataManager::clearSiteData):
        * UIProcess/Plugins/WebPluginSiteDataManager.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::validateCommand):
        (WebKit::WebPageProxy::runJavaScriptInMainFrame):
        (WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
        (WebKit::WebPageProxy::getSourceForFrame):
        (WebKit::WebPageProxy::getContentsAsString):
        (WebKit::WebPageProxy::getBytecodeProfile):
        (WebKit::WebPageProxy::getContentsAsMHTMLData):
        (WebKit::WebPageProxy::getSelectionOrContentsAsString):
        (WebKit::WebPageProxy::getSelectionAsWebArchiveData):
        (WebKit::WebPageProxy::getMarkedRangeAsync):
        (WebKit::WebPageProxy::getSelectedRangeAsync):
        (WebKit::WebPageProxy::characterIndexForPointAsync):
        (WebKit::WebPageProxy::firstRectForCharacterRangeAsync):
        (WebKit::WebPageProxy::takeSnapshot):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _define:]):
        (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
        (-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
        (-[WKContentView requestDictationContext:]):
        (-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
        (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::updateSelectionWithTouches):
        (WebKit::WebPageProxy::requestAutocorrectionData):
        (WebKit::WebPageProxy::applyAutocorrection):
        (WebKit::WebPageProxy::requestDictationContext):
        (WebKit::WebPageProxy::requestAutocorrectionContext):

2014-06-16  Jaehun Lim  <ljaehun.lim@samsung.com>

        Unreviewed build fix after r170029

        Use String() instead of AtomicString().

        * UIProcess/InspectorServer/HTTPRequest.cpp:
        (WebKit::HTTPRequest::parseHeaders):

2014-06-16  Brent Fulgham  <bfulgham@apple.com>

        [Win] Use TileController on Windows
        https://bugs.webkit.org/show_bug.cgi?id=133895

        Reviewed by Tim Horton.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.h: Remove
        unneeded overload.

2014-06-16  Timothy Horton  <timothy_horton@apple.com>

        [iOS][wk2] Swipe snapshots are removed too quickly if there is no saved render tree size
        https://bugs.webkit.org/show_bug.cgi?id=133891

        Reviewed by Simon Fraser.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::endSwipeGesture):
        (WebKit::ViewGestureController::setRenderTreeSize):
        If we don't know the target render tree size, wait until the first layer tree commit
        that comes in, instead of removing the snapshot when the gesture ends.

2014-06-16  Timothy Horton  <timothy_horton@apple.com>

        [iOS][wk2] Swiping back briefly shows the previous page before loading the new one
        https://bugs.webkit.org/show_bug.cgi?id=133885

        Reviewed by Simon Fraser.

        Remove a race between the UI and Web processes when removing the swipe snapshot.
        Previously, it was possible to get a commit from the Web process with layer content
        (and render tree size) from the previous page *after* sending the navigation request
        to the page, because of the asynchronicity of layer tree commits. This could cause
        the snapshot to be removed early (if the previous fully-loaded page had a sufficiently
        large render tree size), revealing the old tiles underneath the snapshot.

        * Shared/mac/RemoteLayerTreeTransaction.h:
        (WebKit::RemoteLayerTreeTransaction::transactionID):
        (WebKit::RemoteLayerTreeTransaction::setTransactionID):
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::encode):
        (WebKit::RemoteLayerTreeTransaction::decode):
        * UIProcess/DrawingAreaProxy.h:
        (WebKit::DrawingAreaProxy::lastVisibleTransactionID):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
        Keep track of an ever-increasing transaction ID in RemoteLayerTreeDrawingArea(Proxy).
        It increments in the UI process at didUpdate time, because the Web process cannot
        have started on a new layer tree commit until didUpdate is sent.
        It increments in the Web process at commit time.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::endSwipeGesture):
        (WebKit::ViewGestureController::setRenderTreeSize):
        * UIProcess/mac/ViewGestureController.h:
        Adopt transaction IDs; don't remove the snapshot until the commit
        that includes the navigation arrives.

2014-06-16  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17327707> [Cocoa] Expose WebPreferences::storageBlockingPolicy
        https://bugs.webkit.org/show_bug.cgi?id=133958

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKPreferences.mm:
        (toStorageBlockingPolicy): Added this helper conversion function.
        (toAPI): Ditto.
        (-[WKPreferences _storageBlockingPolicy]): Added this getter.
        (-[WKPreferences _setStorageBlockingPolicy:]): Added this setter.
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h: Declared new _storageBlockingPolicy property
        and _WKStorageBlockingPolicy enum. 

2014-06-16  Anders Carlsson  <andersca@apple.com>

        Don't use AtomicString in HTTPHeaderMap
        https://bugs.webkit.org/show_bug.cgi?id=133957
        <rdar://problem/15256572>

        Reviewed by Andreas Kling.

        Update for WebCore changes.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<HTTPHeaderMap>::decode):

2014-06-15  Anders Carlsson  <andersca@apple.com>

        Change ResourceRequestBase::addHTTPHeaderFields to setHTTPHeaderFields instead
        https://bugs.webkit.org/show_bug.cgi?id=133925

        Reviewed by Sam Weinig.

        * PluginProcess/PluginControllerProxy.h:
        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<ResourceRequest>::decode):
        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
        (WebKit::NPN_PostURL):
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::loadURL):
        * WebProcess/Plugins/PluginView.h:

2014-06-16  Anders Carlsson  <andersca@apple.com>

        Add HTTPHeaderName overloads on ResourceResponseBase
        https://bugs.webkit.org/show_bug.cgi?id=133946

        Reviewed by Andreas Kling.

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::buildHTTPHeaders):

2014-06-16  Dan Bernstein  <mitz@apple.com>

        Fixed a typo in the last change.

        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences init]):

2014-06-16  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Remove WKPreferences persistence in user defaults
        https://bugs.webkit.org/show_bug.cgi?id=133945

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKPreferences.h: Removed userDefaultsKeyPrefix property and
        initializer with userDefaultsKeyPrefix parameter.
        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences init]): Changed to initialize an instance with an empty identifier, which
        means that it won’t persist to user defaults.
        (-[WKPreferences initWithUserDefaultsKeyPrefix:]): Deleted.
        (-[WKPreferences userDefaultsKeyPrefix]): Deleted.

2014-06-16  Zan Dobersek  <zdobersek@igalia.com>

        Page::findStringMatchingRanges() should take Vector<RefPtr<Range>> by reference instead of pointer
        https://bugs.webkit.org/show_bug.cgi?id=133677

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::findString): Update the call to Page::findStringMatchingRanges() to pass
        in a Vector<RefPtr<Range>> reference instead of a pointer.
        (WebKit::FindController::findStringMatches): Ditto.

2014-06-16  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fixes for the EFL and GTK+ ports after r169994 and 170000.

        * UIProcess/API/C/WKPluginSiteDataManager.cpp: Undefine the None macro under X11.
        * UIProcess/API/gtk/WebKitCookieManager.cpp:
        (webkit_cookie_manager_get_accept_policy): Remove unnecessary ::create() wrappings.
        (webkit_cookie_manager_get_domains_with_cookies): Ditto.
        * UIProcess/API/gtk/WebKitWebResource.cpp:
        (webkit_web_resource_get_data): Ditto.

2014-06-15  Dan Bernstein  <mitz@apple.com>

        Part 1 of: Change GenericCallback<> function parameters into std::function<>
        https://bugs.webkit.org/show_bug.cgi?id=133927

        Reviewed by Sam Weinig.

        * UIProcess/API/C/WKApplicationCacheManager.cpp:
        (WKApplicationCacheManagerGetApplicationCacheOrigins):
        * UIProcess/API/C/WKContext.cpp:
        (WKContextGetStatistics):
        (WKContextGetStatisticsWithOptions):
        * UIProcess/API/C/WKCookieManager.cpp:
        (WKCookieManagerGetHostnamesWithCookies):
        (WKCookieManagerGetHTTPCookieAcceptPolicy):
        * UIProcess/API/C/WKDatabaseManager.cpp:
        (WKDatabaseManagerGetDatabasesByOrigin):
        (WKDatabaseManagerGetDatabaseOrigins):
        * UIProcess/API/C/WKFrame.cpp:
        (WKFrameGetMainResourceData):
        (WKFrameGetResourceData):
        (WKFrameGetWebArchive):
        * UIProcess/API/C/WKKeyValueStorageManager.cpp:
        (WKKeyValueStorageManagerGetKeyValueStorageOrigins):
        (WKKeyValueStorageManagerGetStorageDetailsByOrigin):
        * UIProcess/API/C/WKMediaCacheManager.cpp:
        (WKMediaCacheManagerGetHostnamesWithMediaCache):
        * UIProcess/API/C/WKOriginDataManager.cpp:
        (WKOriginDataManagerGetOrigins):
        * UIProcess/API/C/WKPluginSiteDataManager.cpp:
        (WKPluginSiteDataManagerGetSitesWithData):
        * UIProcess/API/C/WKResourceCacheManager.cpp:
        (WKResourceCacheManagerGetCacheOrigins):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
        * UIProcess/API/mac/WKView.mm:
        (-[WKView attributedSubstringForProposedRange:completionHandler:]):
        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
        (WebKit::WebPluginSiteDataManager::getSitesWithData):
        * UIProcess/Plugins/WebPluginSiteDataManager.h:
        * UIProcess/WebApplicationCacheManagerProxy.cpp:
        (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins):
        * UIProcess/WebApplicationCacheManagerProxy.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::getStatistics):
        * UIProcess/WebContext.h:
        * UIProcess/WebCookieManagerProxy.cpp:
        (WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
        (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
        * UIProcess/WebCookieManagerProxy.h:
        * UIProcess/WebDatabaseManagerProxy.cpp:
        (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
        (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
        * UIProcess/WebDatabaseManagerProxy.h:
        * UIProcess/WebFrameProxy.cpp:
        (WebKit::WebFrameProxy::getWebArchive):
        (WebKit::WebFrameProxy::getMainResourceData):
        (WebKit::WebFrameProxy::getResourceData):
        * UIProcess/WebFrameProxy.h:
        * UIProcess/WebKeyValueStorageManager.cpp:
        (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
        (WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
        * UIProcess/WebKeyValueStorageManager.h:
        * UIProcess/WebMediaCacheManagerProxy.cpp:
        (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache):
        * UIProcess/WebMediaCacheManagerProxy.h:
        * UIProcess/WebOriginDataManagerProxy.cpp:
        (WebKit::WebOriginDataManagerProxy::getOrigins):
        * UIProcess/WebOriginDataManagerProxy.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::getMainResourceDataOfFrame):
        (WebKit::WebPageProxy::getResourceDataFromFrame):
        (WebKit::WebPageProxy::getWebArchiveOfFrame):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebResourceCacheManagerProxy.cpp:
        (WebKit::WebResourceCacheManagerProxy::getCacheOrigins):
        * UIProcess/WebResourceCacheManagerProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
        (-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::selectWithGesture):
        (WebKit::WebPageProxy::selectWithTwoTouches):
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):

2014-06-15  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17291697> [Cocoa] Can’t tell at policy decision time whether WebKit can handle the request
        https://bugs.webkit.org/show_bug.cgi?id=133930

        Reviewed by Sam Weinig.

        * Shared/NavigationActionData.cpp:
        (WebKit::NavigationActionData::NavigationActionData): Initialize new member canHandleRequest
        to false.
        (WebKit::NavigationActionData::encode): Encode canHandleRequest.
        (WebKit::NavigationActionData::decode): Decode it.
        * Shared/NavigationActionData.h: Declared new boolean member canHandleRequest.

        * UIProcess/API/Cocoa/WKNavigationAction.mm:
        (-[WKNavigationAction _initWithNavigationActionData:]): Set new ivar _canHandleRequest from
        the action data.
        (-[WKNavigationAction _canHandleRequest]): Added this getter.
        * UIProcess/API/Cocoa/WKNavigationActionPrivate.h: Declared new property _canHandleRequest.

        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::createWindow): Set canHandleRequest in the NavigationActionData.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Ditto.
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto.

2014-06-15  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Change ewk_view_settings_get to ewk_page_group_settings_get
        https://bugs.webkit.org/show_bug.cgi?id=133841

        Reviewed by Gyuyoung Kim.

        Ewk_Settings object is a member of Ewk_Page_Group.
        So, Ewk_Page_Group is better place for the getter of Ewk_Settings.

        * UIProcess/API/efl/ewk_page_group.cpp:
        (ewk_page_group_settings_get): Added instead of ewk_view_settings_get.
        * UIProcess/API/efl/ewk_page_group.h:
        * UIProcess/API/efl/ewk_view.cpp:
        (ewk_view_settings_get): Deleted.
        * UIProcess/API/efl/ewk_view.h:
        * UIProcess/API/efl/tests/test_ewk2_page_group.cpp:
        (TEST_F):
        * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
        (TEST_F):
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F): Deleted.

2014-06-15  Anders Carlsson  <andersca@apple.com>

        Add an autorelease() member function to RetainPtr
        https://bugs.webkit.org/show_bug.cgi?id=133929

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
        (-[_WKRemoteObjectRegistry remoteObjectProxyWithInterface:]):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView navigationDelegate]):
        (-[WKWebView UIDelegate]):
        (-[WKWebView loadRequest:]):
        (-[WKWebView loadHTMLString:baseURL:]):
        (-[WKWebView goToBackForwardListItem:]):
        (-[WKWebView goBack]):
        (-[WKWebView goForward]):
        (-[WKWebView reload]):
        (-[WKWebView reloadFromOrigin]):
        (-[WKWebView _historyDelegate]):
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
        (WebKit::animationValueFromKeyframeValue):

2014-06-15  Dan Bernstein  <mitz@apple.com>

        Get rid of VoidAPICallback
        https://bugs.webkit.org/show_bug.cgi?id=133928

        Reviewed by Sam Weinig.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageForceRepaint): Wrap the API callback in a generic callback here.

        * UIProcess/API/C/WKPluginSiteDataManager.cpp:
        (WKPluginSiteDataManagerClearSiteData): Ditto.
        (WKPluginSiteDataManagerClearAllSiteData): Ditto.

        * UIProcess/GenericCallback.h:
        (WebKit::GenericCallback::performCallback): Added this helper for 0-argument callbacks.
        (WebKit::VoidCallback::create): Deleted.
        (WebKit::VoidCallback::~VoidCallback): Deleted.
        (WebKit::VoidCallback::performCallback): Deleted.
        (WebKit::VoidCallback::invalidate): Deleted.
        (WebKit::VoidCallback::VoidCallback): Deleted.
        (WebKit::VoidAPICallback::create): Deleted.

        * UIProcess/mac/WKFullScreenWindowController.h:

2014-06-15  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fix for the GTK+ port after r169990.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::resetState): Pass the error value to
        the rest of invalidateCallbackMap calls.

2014-06-15  Anders Carlsson  <andersca@apple.com>

        Remove WKPageRunJavaScriptInMainFrame_b
        https://bugs.webkit.org/show_bug.cgi?id=133926

        Reviewed by Dan Bernstein.

        * UIProcess/API/C/WKPage.cpp:
        (callRunJavaScriptBlockAndRelease): Deleted.
        (WKPageRunJavaScriptInMainFrame_b): Deleted.
        * UIProcess/API/C/WKPage.h:

2014-06-15  Anders Carlsson  <andersca@apple.com>

        invalidateCallbackMap doesn’t pass the error parameter on to invalidate(), so script completion handler is passed the wrong error
        https://bugs.webkit.org/show_bug.cgi?id=133921
        <rdar://problem/17316653>

        Reviewed by Dan Bernstein.

        * UIProcess/GenericCallback.h:
        (WebKit::VoidCallback::performCallback):
        (WebKit::VoidCallback::invalidate):
        (WebKit::VoidAPICallback::create):
        (WebKit::invalidateCallbackMap):
        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
        (WebKit::WebPluginSiteDataManager::invalidate):
        (WebKit::WebPluginSiteDataManager::clearSiteData):
        * UIProcess/WebApplicationCacheManagerProxy.cpp:
        (WebKit::WebApplicationCacheManagerProxy::contextDestroyed):
        (WebKit::WebApplicationCacheManagerProxy::processDidClose):
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::~WebContext):
        * UIProcess/WebCookieManagerProxy.cpp:
        (WebKit::WebCookieManagerProxy::contextDestroyed):
        (WebKit::WebCookieManagerProxy::processDidClose):
        * UIProcess/WebDatabaseManagerProxy.cpp:
        (WebKit::WebDatabaseManagerProxy::contextDestroyed):
        (WebKit::WebDatabaseManagerProxy::processDidClose):
        * UIProcess/WebMediaCacheManagerProxy.cpp:
        (WebKit::WebMediaCacheManagerProxy::contextDestroyed):
        (WebKit::WebMediaCacheManagerProxy::processDidClose):
        * UIProcess/WebOriginDataManagerProxy.cpp:
        (WebKit::WebOriginDataManagerProxy::contextDestroyed):
        (WebKit::WebOriginDataManagerProxy::processDidClose):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::forceRepaint):
        (WebKit::WebPageProxy::resetState):
        * UIProcess/WebResourceCacheManagerProxy.cpp:
        (WebKit::WebResourceCacheManagerProxy::contextDestroyed):
        (WebKit::WebResourceCacheManagerProxy::processDidClose):
        * UIProcess/mac/WKFullScreenWindowController.mm:
        (-[WKFullScreenWindowController dealloc]):
        (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):

2014-06-15  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fix for the GTK+ port after r169987.

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkit_web_view_can_execute_editing_command): The first passed-in parameter
        is now a reference to a const String object.

2014-06-14  Dan Bernstein  <mitz@apple.com>

        Replace StringImpl* callback parameters with const String&
        https://bugs.webkit.org/show_bug.cgi?id=133922

        Reviewed by Sam Weinig.

        * UIProcess/API/C/WKPage.cpp:
        (toGenericCallbackFunction): Added this helper function to wrap a WKStringRef-returning
        API callback in a generic const String&-returning callback.
        (WKPageRenderTreeExternalRepresentation):
        (WKPageGetSourceForFrame):
        (WKPageGetContentsAsString):
        (WKPageGetBytecodeProfile):
        (WKPageValidateCommand):
        * UIProcess/API/mac/WKView.mm:
        (-[WKView validateUserInterfaceItem:]):
        (-[WKView startSpeaking:]):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _define:]):
        (-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):

2014-06-14  Dan Bernstein  <mitz@apple.com>

        Additional iOS build fix.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _define:]):
        (selectionChangedWithGesture):
        (selectionChangedWithTouch):
        (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
        (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
        (-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
        (-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):

2014-06-14  Dan Bernstein  <mitz@apple.com>

        iOS build fix.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

2014-06-14  Dan Bernstein  <mitz@apple.com>

        Get rid of GenericAPICallback
        https://bugs.webkit.org/show_bug.cgi?id=133909

        Reviewed by Sam Weinig.

        In preparation for passing callbacks as functions, replace GenericAPICallback::create, which
        returned a GenericCallback, with a function template that returns an appropriate callback
        function.

        * UIProcess/API/C/WKApplicationCacheManager.cpp:
        (WKApplicationCacheManagerGetApplicationCacheOrigins):
        * UIProcess/API/C/WKContext.cpp:
        (WKContextGetStatistics):
        (WKContextGetStatisticsWithOptions):
        * UIProcess/API/C/WKCookieManager.cpp:
        (WKCookieManagerGetHostnamesWithCookies):
        (WKCookieManagerGetHTTPCookieAcceptPolicy):
        * UIProcess/API/C/WKDatabaseManager.cpp:
        (WKDatabaseManagerGetDatabasesByOrigin):
        (WKDatabaseManagerGetDatabaseOrigins):
        * UIProcess/API/C/WKFrame.cpp:
        (WKFrameGetMainResourceData):
        (WKFrameGetResourceData):
        (WKFrameGetWebArchive):
        * UIProcess/API/C/WKKeyValueStorageManager.cpp:
        (WKKeyValueStorageManagerGetKeyValueStorageOrigins):
        (WKKeyValueStorageManagerGetStorageDetailsByOrigin):
        * UIProcess/API/C/WKMediaCacheManager.cpp:
        (WKMediaCacheManagerGetHostnamesWithMediaCache):
        * UIProcess/API/C/WKOriginDataManager.cpp:
        (WKOriginDataManagerGetOrigins):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageRunJavaScriptInMainFrame):
        (WKPageRenderTreeExternalRepresentation):
        (WKPageGetSourceForFrame):
        (WKPageGetContentsAsString):
        (WKPageGetBytecodeProfile):
        (WKPageGetSelectionAsWebArchiveData):
        (WKPageGetContentsAsMHTMLData):
        (WKPageDrawPagesToPDF):
        * UIProcess/API/C/WKPluginSiteDataManager.cpp:
        (WKPluginSiteDataManagerGetSitesWithData):
        * UIProcess/API/C/WKResourceCacheManager.cpp:
        (WKResourceCacheManagerGetCacheOrigins):

        * UIProcess/GenericCallback.h:
        (WebKit::toGenericCallbackFunction): Added. Given a C SPI callback function, returns a generic
        callback function that wraps it.

2014-06-14  Dan Bernstein  <mitz@apple.com>

        Reverted the last change, which broken the Mac build.

        * UIProcess/GenericCallback.h:
        (WebKit::invalidateCallbackMap):

2014-06-14  Dan Bernstein  <mitz@apple.com>

        Tried to fix the GTK build.

        * UIProcess/GenericCallback.h:
        (WebKit::invalidateCallbackMap):

2014-06-14  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView selectedRangeWithCompletionHandler:]):
        (-[WKView markedRangeWithCompletionHandler:]):
        (-[WKView hasMarkedTextWithCompletionHandler:]):
        (-[WKView attributedSubstringForProposedRange:completionHandler:]):
        (-[WKView firstRectForCharacterRange:completionHandler:]):
        (-[WKView characterIndexForPoint:completionHandler:]):

2014-06-14  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fix for the GTK+ port.
        Fixing the callback lambda parameters after r169962.

        * UIProcess/API/gtk/WebKitPrintOperation.cpp:
        (webkitPrintOperationPrintPagesForFrame):
        * UIProcess/API/gtk/WebKitWebResource.cpp:
        (webkit_web_resource_get_data):
        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkit_web_view_can_execute_editing_command):
        (webkit_web_view_run_javascript):
        (resourcesStreamReadCallback):
        (webkit_web_view_save):
        (webkit_web_view_save_to_file):

2014-06-14  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r169943 and r169946, use the format of set/get.

        * UIProcess/InspectorServer/WebInspectorServer.cpp:
        (WebKit::WebInspectorServer::didReceiveUnrecognizedHTTPRequest):
        * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
        (WebKit::WebSocketServerConnection::readHTTPMessage):
        (WebKit::WebSocketServerConnection::upgradeToWebSocketServerConnection):

2014-06-13  Andreas Kling  <akling@apple.com>

        REGRESSION (r167635): Reference leak in NetworkResourceLoader while loads are being deferred.
        <https://webkit.org/b/133894>
        <rdar://problem/17312299>

        Don't self-ref() in start() until we actually start; if page loads are being
        deferred, start() will be called again once deferral stops.

        This was causing us to leak the entire NetworkResourceLoader object graph.

        Reviewed by Brady Eidson.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::start):

2014-06-13  Dan Bernstein  <mitz@apple.com>

        Make GenericCallback variadic
        https://bugs.webkit.org/show_bug.cgi?id=133897

        Reviewed by Sam Weinig.

        Also eliminated legacy callback functions and all CallbackBase derived classes outside of
        GenericCallback.h.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageValidateCommand): Changed legacy callback (with leading bool parameter) into modern
        callback (with trailing error parameter).
        (WKPageComputePagesForPrinting): Ditto.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _getWebArchiveDataWithCompletionHandler:]): Ditto.
        (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Ditto.

        * UIProcess/API/Cocoa/_WKThumbnailView.mm:
        (-[_WKThumbnailView _requestSnapshotIfNeeded]): Ditto.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView validateUserInterfaceItem:]): Ditto.
        (-[WKView startSpeaking:]): Ditto.

        * UIProcess/AutoCorrectionCallback.h: Replaced CallbackBase derived classes with
        GenericCallback specializations.

        * UIProcess/GenericCallback.h:
        - Made GenericCallback variadic:
        (WebKit::GenericCallback::performCallbackWithReturnValue):
        (WebKit::GenericCallback::invalidate):
        (WebKit::GenericAPICallback::create):

        - Replaced CallbackBase derived classes with GenericCallback specializations:
        (WebKit::GenericCallback::create): Deleted.
        (WebKit::ComputedPagesCallback::create): Deleted.
        (WebKit::ComputedPagesCallback::~ComputedPagesCallback): Deleted.
        (WebKit::ComputedPagesCallback::performCallbackWithReturnValue): Deleted.
        (WebKit::ComputedPagesCallback::invalidate): Deleted.
        (WebKit::ComputedPagesCallback::ComputedPagesCallback): Deleted.
        (WebKit::ImageCallback::create): Deleted.
        (WebKit::ImageCallback::~ImageCallback): Deleted.
        (WebKit::ImageCallback::performCallbackWithReturnValue): Deleted.
        (WebKit::ImageCallback::invalidate): Deleted.
        (WebKit::ImageCallback::ImageCallback): Deleted.

        * UIProcess/WebPageProxy.h: Replaced CallbackBase derived classes with GenericCallback
        specializations.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]): Changed
        legacy callback (with leading bool parameter) into modern callback (with trailing error
        parameter).
        (-[WKContentView requestDictationContext:]): Ditto.
        (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]): Ditto.

        * UIProcess/mac/WKPrintingView.mm:
        (-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): Ditto.
        (-[WKPrintingView _askPageToComputePageRects]): Ditto.
        (-[WKPrintingView _drawPreview:]): Ditto.

2014-06-13  Tim Horton  <timothy_horton@apple.com>

        Unreviewed; fix the build.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::drawInContext):

2014-06-13  Martin Hock  <mhock@apple.com>

        Clean up layers in RemoteLayerTreeHost::clearLayers().
        https://bugs.webkit.org/show_bug.cgi?id=133888

        Reviewed by Tim Horton.

        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::clearLayers):

2014-06-13  Anders Carlsson  <andersca@apple.com>

        Add a HTTPHeaderMap::get overload that takes an HTTPHeaderName
        https://bugs.webkit.org/show_bug.cgi?id=133877

        Reviewed by Andreas Kling.

        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
        (WebKit::parsePostBuffer):

2014-06-13  Dan Bernstein  <mitz@apple.com>

        [iOS] Networking process always decodes keys
        https://bugs.webkit.org/show_bug.cgi?id=133863

        Reviewed by Anders Carlsson.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
        (WebKit::XPCServiceInitializer): Call checkEntitlements on iOS, too.
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
        (WebKit::XPCServiceInitializerDelegate::checkEntitlements): On iOS, allow decoding keys
        if the application has the appropriate keychain access group.

        * Shared/cf/ArgumentCodersCF.cpp:
        (IPC::setAllowsDecodingSecKeyRef): Added. Sets static bool.
        (IPC::decode): Check the secKeyRefDecodingAllowed bool before decoding a key.
        * Shared/cf/ArgumentCodersCF.h:

2014-06-12  Anders Carlsson  <andersca@apple.com>

        Add overloads of HTTPHeaderMap::find and remove that take enums
        https://bugs.webkit.org/show_bug.cgi?id=133823

        Reviewed by Sam Weinig.

        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
        (WebKit::parsePostBuffer):
        Update for WebCore changes.

2014-06-12  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Do not update the viewport configuration on load until the first viewport arguments is received
        https://bugs.webkit.org/show_bug.cgi?id=133719
        <rdar://problem/17008149>

        Reviewed by Simon Fraser.

        When pages are loaded from the page cache, we were updating the viewport to the initial values
        in WebPage::dynamicViewportSizeUpdate(), then update the viewport again when the page's viewport argument
        are received.

        The problem is that was messing up with text autosizing. The page would relayout with the default viewport
        configuration, adopt the text autosizing parameters from that size, then remain in that state when
        the actual viewport configuration would be set.

        With this patch, the viewport configuration is updated from the values in WebCore instead of with default values.
        For new documents, this is strictly equivalent. For documents coming from the page cache, the values are from
        the previous state of the page, which ensure we do not restart negotiating a viewport configuration from scratch.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::didCommitLoad):

2014-06-12  Gavin Barraclough  <barraclough@apple.com>

        Add support for thread/WorkQueue QoS
        https://bugs.webkit.org/show_bug.cgi?id=130688

        Reviewed by Anders Carlson & Simon Fraser.

        The EventDispatcher's WorkQueue should be UserInteractive.

        * Platform/WorkQueue.cpp:
        (WorkQueue::create):
            - pass QOS to constructor.
        (WorkQueue::WorkQueue):
            - pass QOS to platformInitialize.
        * Platform/WorkQueue.h:
            - added enum, arguments.
        * Platform/efl/WorkQueueEfl.cpp:
        (WorkQueue::platformInitialize):
            - has extra argument.
        * Platform/gtk/WorkQueueGtk.cpp:
        (WorkQueue::platformInitialize):
            - has extra argument.
        * Platform/mac/WorkQueueMac.cpp:
        (platformQOS):
            - map from enum to platform type.
        (WorkQueue::platformInitialize):
            - set the QoS of the dispatch queue.
        * WebProcess/WebPage/EventDispatcher.cpp:
        (WebKit::EventDispatcher::EventDispatcher):
            - EventDispatcher's WorkQueue should be UserInteractive.
        * config.h:
            - added HAVE_QOS_CLASSES

2014-06-12  Simon Fraser  <simon.fraser@apple.com>

        [iOS] Tiny hack to fix WebKitTestRunner view visibility
        https://bugs.webkit.org/show_bug.cgi?id=133833

        Reviewed by Tim Horton.
        
        PageClientImplIOS in WebKitTestRunner has a null m_webView, so isViewInWindow
        was returning false, which confused things.
        
        Fix by falling back to a check on the content view if the m_webView is nil.

        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::isViewVisible):
        (WebKit::PageClientImpl::isViewInWindow):

2014-06-12  Brady Eidson  <beidson@apple.com>

        Add SPI for image controls and service controls preferences.
        <rdar://problem/17292209> and https://bugs.webkit.org/show_bug.cgi?id=133820

        Reviewed by Anders Carlsson.

        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetServiceControlsEnabled):
        (WKPreferencesGetServiceControlsEnabled):
        (WKPreferencesSetImageControlsEnabled):
        (WKPreferencesGetImageControlsEnabled):
        * UIProcess/API/C/WKPreferencesRefPrivate.h:

2014-06-12  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Allow reading com.apple.universalaccess preferences
        https://bugs.webkit.org/show_bug.cgi?id=133817
        <rdar://problem/17028261>

        Reviewed by Anders Carlsson.

        * WebProcess/com.apple.WebProcess.sb.in:

2014-06-12  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<HTTPHeaderMap>::decode):
        (CoreIPC::ArgumentCoder<ResourceRequest>::decode):

2014-06-12  Dan Bernstein  <mitz@apple.com>

        Fixed a harmless error message when rewrite-availability-macros.sh is run in a clean build.

        Rubber-stamped by Anders Carlsson.

        * mac/rewrite-availability-macros.sh:

2014-06-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove view mode API
        https://bugs.webkit.org/show_bug.cgi?id=133725

        Reviewed by Martin Robinson.

        It currently does nothing because support for view source mode was
        removed from WebCore.

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkitWebViewSetProperty):
        (webkitWebViewGetProperty):
        (webkit_web_view_class_init):
        (webkit_web_view_set_view_mode): Deleted.
        (webkit_web_view_get_view_mode): Deleted.
        * UIProcess/API/gtk/WebKitWebView.h:
        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:

2014-06-12  Pratik Solanki  <psolanki@apple.com>

        Avoid creating a CFData when checking if a resource is file backed
        https://bugs.webkit.org/show_bug.cgi?id=133783

        Reviewed by Andreas Kling.

        When a resource is file backed, we have it as a single CFDataRef in SharedBuffer. Add an
        early return in tryGetShareableHandleFromSharedBuffer() so we don't end up creating a new
        CFDataRef if we don't already have one in SharedBuffer. If we had to create a CFDataRef, the
        it can't have been a file backed resource.

        * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
        (WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer):

2014-06-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Fix build break on EFL and GTK ports since r169820
        https://bugs.webkit.org/show_bug.cgi?id=133786

        Reviewed by Philippe Normand.

        ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC macro are missing in PluginView::pluginSnapshotTimerFired().

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::pluginSnapshotTimerFired):

2014-06-11  Csaba Osztrogonác  <ossy@webkit.org>

        [EFL][GTK] Ultimate fix not to have build failures
        in the future because of "#if TARGET_OS_IPHONE" guards.

        Unreviewed buildfix.

        Revert the previous wrong fix attempt r169879.

        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
        * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:

2014-06-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Fix build break on EFL port since r169869
        https://bugs.webkit.org/show_bug.cgi?id=133785

        Unreviewed, fix a build break on EFL port.

        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: Use defined(TARGET_OS_IPHONE).
        * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: ditto.

2014-06-11  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Give WebKitTestRunner a viewport configuration with initial scale=1 for testing
        https://bugs.webkit.org/show_bug.cgi?id=133779

        Reviewed by Benjamin Poulain.
        
        Support a custom viewport configuration for testing, on iOS.

        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView _frameOrBoundsChanged]): Call setViewportConfigurationMinimumLayoutSize()
        just as WKWebView does.
        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
        (WKBundlePageSetUseTestingViewportConfiguration): New SPI to set a viewport config for testing.
        * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: Ditto.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::setUseTestingViewportConfiguration):
        (WebKit::WebPage::isUsingTestingViewportConfiguration):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::resetViewportDefaultConfiguration):

2014-06-11  Timothy Horton  <timothy_horton@apple.com>

        Remove unused VisibleContentRectUpdateInfo update ID
        https://bugs.webkit.org/show_bug.cgi?id=133777

        Reviewed by Benjamin Poulain.

        Remove some unused code.

        * Shared/VisibleContentRectUpdateInfo.cpp:
        (WebKit::VisibleContentRectUpdateInfo::encode):
        (WebKit::VisibleContentRectUpdateInfo::decode):
        * Shared/VisibleContentRectUpdateInfo.h:
        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
        (WebKit::operator==):
        (WebKit::VisibleContentRectUpdateInfo::updateID): Deleted.
        * Shared/mac/RemoteLayerTreeTransaction.h:
        (WebKit::RemoteLayerTreeTransaction::setLastVisibleContentRectUpdateID): Deleted.
        (WebKit::RemoteLayerTreeTransaction::lastVisibleContentRectUpdateID): Deleted.
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::encode):
        (WebKit::RemoteLayerTreeTransaction::decode):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::nextVisibleContentRectUpdateID): Deleted.
        (WebKit::WebPageProxy::lastVisibleContentRectUpdateID): Deleted.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::willCommitLayerTree):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):

2014-06-11  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Move CompletionHandlerCallChecker into a separate file
        https://bugs.webkit.org/show_bug.cgi?id=133774

        Reviewed by Anders Carlsson.

        * Shared/Cocoa/CompletionHandlerCallChecker.h: Added.
        * Shared/Cocoa/CompletionHandlerCallChecker.mm: Added.
        (WebKit::CompletionHandlerCallChecker::create):
        (WebKit::CompletionHandlerCallChecker::CompletionHandlerCallChecker):
        (WebKit::CompletionHandlerCallChecker::~CompletionHandlerCallChecker):
        (WebKit::CompletionHandlerCallChecker::didCallCompletionHandler):
        (WebKit::CompletionHandlerCallChecker::classImplementingDelegateMethod):

        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::CompletionHandlerCallChecker::create): Deleted.
        (WebKit::CompletionHandlerCallChecker::~CompletionHandlerCallChecker): Deleted.
        (WebKit::CompletionHandlerCallChecker::didCallCompletionHandler): Deleted.
        (WebKit::CompletionHandlerCallChecker::CompletionHandlerCallChecker): Deleted.
        (WebKit::CompletionHandlerCallChecker::classImplementingDelegateMethod): Deleted.
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-11  Martin Hock  <mhock@apple.com>

        [iOS] Clear UIProcess visual state after WebProcess crash
        https://bugs.webkit.org/show_bug.cgi?id=133664
        <rdar://problem/16952742>

        Reviewed by Benjamin Poulain.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didRelaunchProcess]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::didRelaunchProcess):
        * UIProcess/mac/RemoteLayerTreeHost.h:
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::~RemoteLayerTreeHost):
        (WebKit::RemoteLayerTreeHost::clearLayers):

2014-06-11  Tim Horton  <timothy_horton@apple.com>

        Implement swipeWithEvent for non-fluid swipes
        https://bugs.webkit.org/show_bug.cgi?id=133766
        <rdar://problem/17126889>

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView swipeWithEvent:]):
        On non-fluid swipes, go back or forward depending on the swipe direction.

2014-06-11  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Xcode cannot infer that the WebKit target implicitly depends on WebCore.framework
        https://bugs.webkit.org/show_bug.cgi?id=133765

        Reviewed by Anders Carlsson.

        * Configurations/WebKit.xcconfig: Move linking against WebCore from OTHER_LDFLAGS here...
        * WebKit2.xcodeproj/project.pbxproj: ...to the Link Binary With Libraries build phase here.

2014-06-11  Timothy Horton  <timothy_horton@apple.com>

        [wk2] Don't dispatch view state changes immediately
        https://bugs.webkit.org/show_bug.cgi?id=133713

        Reviewed by Simon Fraser.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::viewStateDidChange):
        (WebKit::WebPageProxy::dispatchViewStateChange):
        (WebKit::WebPageProxy::updateViewState): Deleted.
        * UIProcess/WebPageProxy.h:
        On PLATFORM(COCOA), wait until just before CA is going to commit the UI process layer
        tree to dispatch view state changes to the Web process. This avoids sending multiple
        view state change messages to the Web process within one run-loop cycle, for example
        when a view is moved around in the view hierarchy but the view state otherwise remains the same.

2014-06-11  Timothy Horton  <timothy_horton@apple.com>

        Make it possible for waitForAndDispatchImmediately to bail if a sync message comes in from the other direction
        https://bugs.webkit.org/show_bug.cgi?id=133708

        Reviewed by Anders Carlsson.

        * Platform/IPC/Connection.cpp:
        (IPC::WaitForMessageState):
        (IPC::Connection::Connection):
        (IPC::Connection::waitForMessage):
        (IPC::Connection::processIncomingMessage):
        (IPC::Connection::connectionDidClose):
        * Platform/IPC/Connection.h:
        (IPC::Connection::waitForAndDispatchImmediately):
        Remove the waitForMessageMap, and assert that we're only ever waiting for one message at a time.
        This simplifies this code a bit, and we never wait on more than one message at a time, so it was unnecessary.

        Add a flag to waitForAndDispatchImmediately, InterruptWaitingIfSyncMessageArrives, which will cause
        waitForAndDispatchImmediately to bail if a sync message arrives, to avoid pointlessly blocking both processes
        for the entire timeout.

2014-06-11  Oliver Hunt  <oliver@apple.com>

        Restrict database process profile
        https://bugs.webkit.org/show_bug.cgi?id=133750

        Reviewed by Alexey Proskuryakov.

        Make the sandbox profile much more restrictive.

        * Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb:

2014-06-11  Roger Fong  <roger_fong@apple.com>

        Don't snapshot offscreen plugins that would normally be considered primary plugins after they are moved in view.
        https://bugs.webkit.org/show_bug.cgi?id=133667.
        <rdar://problem/16743250>

        Reviewed by Tim Horton.

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::PluginView):
        (WebKit::PluginView::pluginSnapshotTimerFired):
        Set the display state to Playing if the following is true:
        The plugin in question is large enough to be considered the primary snapshot and either:
        a) The maximum number of snapshot retries has been reached and no good snapshot has been found.
        b) The plugin is moved to be on-screen while the snapshot attempts are in progress.
        * WebProcess/Plugins/PluginView.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::plugInIntersectsSearchRect): Re-factor out intersection logic.
        (WebKit::WebPage::plugInIsPrimarySize): Re-factor out primary plugin size logic.
        (WebKit::WebPage::determinePrimarySnapshottedPlugIn): Use the above two methods here.
        * WebProcess/WebPage/WebPage.h:

2014-06-11  Anders Carlsson  <andersca@apple.com>

        Move more WKPreferences to WKWebViewConfiguration
        https://bugs.webkit.org/show_bug.cgi?id=133756
        <rdar://problem/17271468>

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences setMinimumFontSize:]):
        (-[WKPreferences suppressesIncrementalRendering]): Deleted.
        (-[WKPreferences setSuppressesIncrementalRendering:]): Deleted.
        (-[WKPreferences allowsInlineMediaPlayback]): Deleted.
        (-[WKPreferences setAllowsInlineMediaPlayback:]): Deleted.
        (-[WKPreferences mediaPlaybackRequiresUserAction]): Deleted.
        (-[WKPreferences setMediaPlaybackRequiresUserAction:]): Deleted.
        (-[WKPreferences mediaPlaybackAllowsAirPlay]): Deleted.
        (-[WKPreferences setMediaPlaybackAllowsAirPlay:]): Deleted.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration copyWithZone:]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-11  Enrica Casucci  <enrica@apple.com>

        WebKit2 iOS: Unable to open UI menu for "open in new tab" for links on yahoo.com.
        https://bugs.webkit.org/show_bug.cgi?id=133749
        <rdar://problem/17165992>

        Reviewed by Brady Eidson.

        The URL returned to the UIProcess as string needs to be encoded.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getPositionInformation):

2014-06-10  Anders Carlsson  <andersca@apple.com>

        Move suppressesIncrementalRendering to WKWebViewConfiguration
        https://bugs.webkit.org/show_bug.cgi?id=133707
        <rdar://problem/17271468>

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKPreferences.h:
        Get rid of suppressesIncrementalRendering.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        Set the suppressesIncrementalRenderingKey key in webPageConfiguration.preferenceValues.

        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
        Add suppressesIncrementalRendering.

        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration copyWithZone:]):
        Assign suppressesIncrementalRendering.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        Copy webPageConfiguration.preferenceValues to m_configurationPreferenceValues.

        (WebKit::WebPageProxy::preferencesStore):
        If m_configurationPreferenceValues is empty, just return m_preferences->store(). Otherwise,
        copy the store and apply the configuration preference values.

        (WebKit::WebPageProxy::preferencesDidChange):
        Call preferencesStore() so we'll get the configuration preference values as well.

        (WebKit::WebPageProxy::creationParameters):
        Ditto.

        * UIProcess/WebPageProxy.h:

2014-06-11  Antti Koivisto  <antti@apple.com>

        Wrap NSURLRequest in bundle API
        https://bugs.webkit.org/show_bug.cgi?id=133732
        <rdar://problem/17267217>

        Reviewed by Andreas Kling.
        
        Patch by Dan Bernstein.

        We don't want to construct actual NSURLRequests in the web process side unless really needed as it is slow.

        * Shared/Cocoa/APIObject.mm:
        (API::Object::newObject):
        * Shared/Cocoa/WKNSURLRequest.h: Added.
        (WebKit::wrapper):
        * Shared/Cocoa/WKNSURLRequest.mm: Added.
        
            Add a wrapper object that initializes the underlying NSURLRequest on-demand.

        (-[WKNSURLRequest _web_createTarget]):
        (-[WKNSURLRequest URL]):
        (-[WKNSURLRequest copyWithZone:]):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (willSendRequestForFrame):
        (didInitiateLoadForResource):

2014-06-11  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17218629> [Cocoa] WKWebView’s canGoBack and canGoForward properties are not KVO-compliant
        https://bugs.webkit.org/show_bug.cgi?id=133722

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKBrowsingContextController.mm: Added no-op overrides of new
        PageLoadStateObserver member functions.

        * UIProcess/API/Cocoa/WKWebView.h: Documented the canGoBack and canGoForward properties as
        being KVO-compliant.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView canGoBack]): Changed to get the return value from the page load state.
        (-[WKWebView canGoForward]): Ditto.

        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::willChangeCanGoBack): Override this new PageLoadStateObserver
        member function by sending the appropriate KVO change message to the WKWebView.
        (WebKit::NavigationState::didChangeCanGoBack): Ditto.
        (WebKit::NavigationState::willChangeCanGoForward): Ditto.
        (WebKit::NavigationState::didChangeCanGoForward): Ditto.

        * UIProcess/PageLoadState.cpp:
        (WebKit::PageLoadState::commitChanges): Check for changes to canGoBack and canGoForward
        and call the observers if needed.
        (WebKit::PageLoadState::canGoBack): Added. Returns the value from the committed state.
        (WebKit::PageLoadState::setCanGoBack): Added. Sets the value in the uncommitted state.
        (WebKit::PageLoadState::canGoForward): Added. Returns the value from the committed state.
        (WebKit::PageLoadState::setCanGoForward): Added. Sets the value in the uncommitted state.
        * UIProcess/PageLoadState.h:
        (WebKit::PageLoadState::Data::Data): Added canGoBack and canGoForward boolean members.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didChangeBackForwardList): Update the page load state with the new
        state of canGoBack and canGoForward.
        * UIProcess/WebPageProxy.h: Removed unused member variables m_canGoBack and m_canGoForward.

2014-06-11  Zan Dobersek  <zdobersek@igalia.com>

        Avoid Vector copies in WebNotificationManagerProxy::providerDidCloseNotifications(), FindController::findStringMatches()
        https://bugs.webkit.org/show_bug.cgi?id=133676

        Reviewed by Andreas Kling.

        * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
        (WebKit::WebNotificationManagerProxy::providerDidCloseNotifications): Move the newly-created
        Vector object into the HashMap<>::add() call.
        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::findStringMatches): Movethe newly-create Vector object into the
        Vector<>::append() call.

2014-06-11  Shivakumar JM  <shiva.jm@samsung.com>

        [EFL][WK2] Add missing test cases for EWK2ViewTest.
        https://bugs.webkit.org/show_bug.cgi?id=133715

        Reviewed by Gyuyoung Kim.

        Add missing test cases for ewk_view.h APIs, ewk_view_stop(), ewk_view_html_string_load(), ewk_view_theme_get(), 
        ewk_view_feed_touch_event(), ewk_view_text_find_highlight_clear(), ewk_view_text_find(), ewk_view_text_matches_count(),
        ewk_view_page_contents_get(), ewk_view_script_execute().

        * PlatformEfl.cmake:
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F):

2014-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use a different user agent string depending on the site
        https://bugs.webkit.org/show_bug.cgi?id=132681

        Reviewed by Anders Carlsson.

        * UIProcess/API/gtk/WebKitSettings.cpp:
        (webkit_settings_class_init): Enable site specific quirks setting
        by default.
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::userAgent): Pass the given URL to WebPage.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::userAgent): Try to get the user agent for the
        URL received falling back to the current one otherwise.
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::platformUserAgent): Added.
        * WebProcess/WebPage/efl/WebPageEfl.cpp:
        (WebKit::WebPage::platformUserAgent): Return null String.
        * WebProcess/WebPage/gtk/WebPageGtk.cpp:
        (WebKit::WebPage::platformUserAgent): Use WebCore::standardUserAgentForURL() when site specific quirks
        setting is enabled.
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::platformUserAgent): Return null String.
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::platformUserAgent): Return null String.

2014-06-10  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] ScrollingTreeOverflowScrollingNode does not use asynchronous touch dispatch
        https://bugs.webkit.org/show_bug.cgi?id=133702
        <rdar://problem/17259261>

        Reviewed by Simon Fraser.

        Notify the WKWebView and the TouchGestureRecognizer when on of the internal UIScrollView
        starts scrolling in response to a gesture.

        * UIProcess/PageClient.h:
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::scrollingTreeNodeWillStartPanGesture):
        * UIProcess/Scrolling/RemoteScrollingTree.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollViewWillStartPanGesture):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::scrollViewWillStartPanGesture):
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartPanGesture):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::scrollViewWillStartPanGesture):

2014-06-10  Dan Bernstein  <mitz@apple.com>

        WebKit2 part of [Cocoa] Handling authentication challenges should not require multiple delegate methods
        https://bugs.webkit.org/show_bug.cgi?id=133697

        Reviewed by Anders Carlsson.

        * Shared/Authentication/AuthenticationManager.cpp:
        (WebKit::AuthenticationManager::performDefaultHandling): Added. Calls the new
        AuthenticationClient function receivedRequestToPerformDefaultHandling.
        (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue): Added. Calls the new
        AuthenticationClient function receivedChallengeRejection.
        * Shared/Authentication/AuthenticationManager.h:
        * Shared/Authentication/AuthenticationManager.messages.in: Added new messages
        PerformDefaultHandling and RejectProtectionSpaceAndContinue.

        * Shared/Downloads/DownloadAuthenticationClient.h: Override new AuthenticationClient member
        functions.

        * Shared/Downloads/ios/DownloadIOS.mm:
        (WebKit::Download::receivedRequestToPerformDefaultHandling): Added empty implementation.
        (WebKit::Download::receivedChallengeRejection): Ditto.

        * Shared/Downloads/mac/DownloadMac.mm:
        (WebKit::Download::receivedRequestToPerformDefaultHandling): Added. Forwards to the sender.
        (WebKit::Download::receivedChallengeRejection): Ditto.

        * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:
        (checkChallenge): Factored out a bit of code into this helper function.
        (-[WKNSURLAuthenticationChallengeSender cancelAuthenticationChallenge:]): Use new helper.
        (-[WKNSURLAuthenticationChallengeSender continueWithoutCredentialForAuthenticationChallenge:]):
        Ditto.
        (-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]): Ditto.
        (-[WKNSURLAuthenticationChallengeSender performDefaultHandlingForAuthenticationChallenge:]):
        Implemented this optional NSURLAuthenticationChallengeSender protocol method by forwarding
        to the decision listener.
        (-[WKNSURLAuthenticationChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]):
        Ditto.

        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.

        * UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
        (WebKit::AuthenticationChallengeProxy::performDefaultHandling): Added. Sends a message to
        the authentication manager.
        (WebKit::AuthenticationChallengeProxy::rejectProtectionSpaceAndContinue): Ditto.
        * UIProcess/Authentication/AuthenticationChallengeProxy.h:

        * UIProcess/Authentication/AuthenticationDecisionListener.cpp:
        (WebKit::AuthenticationDecisionListener::performDefaultHandling): Added. Forwards to the
        authentication challenge proxy.
        (WebKit::AuthenticationDecisionListener::rejectProtectionSpaceAndContinue): Ditto.
        * UIProcess/Authentication/AuthenticationDecisionListener.h:

        * UIProcess/Cocoa/NavigationState.h: Added flag in m_navigationDelegateMethods struct.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate): Initialize
        webViewWillSendRequestForAuthenticationChallenge flag in the delegate methods struct.
        (WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame): If
        the delegate implements -_webView:willSendRequestForAuthenticationChallenge:, return true
        here; the delegate will respond with -rejectProtectionSpaceAndContinueWithChallenge: if
        it cannot authenticate.
        (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): If the
        delegate implements -_webView:willSendRequestForAuthenticationChallenge:, send that message.

2014-06-10  Timothy Horton  <timothy_horton@apple.com>

        Factor repeated CFRunLoopObserver code out
        https://bugs.webkit.org/show_bug.cgi?id=133690

        Reviewed by Simon Fraser.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
        (WebKit::coreAnimationDidCommitLayersCallback): Deleted.
        (WebKit::RemoteLayerTreeDrawingAreaProxy::scheduleCoreAnimationLayerCommitObserver): Deleted.
        (WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers): Deleted.
        Make use of WebCore::RunLoopObserver.

2014-06-10  Anders Carlsson  <andersca@apple.com>

        Fix availability declaration.

        * UIProcess/API/Cocoa/WKError.h:

2014-06-10  Anders Carlsson  <andersca@apple.com>

        Address a comment about a comment.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView evaluateJavaScript:completionHandler:]):

2014-06-10  Anders Carlsson  <andersca@apple.com>

        Add -[WKWebView evaluateJavaScript:completionHandler:]
        https://bugs.webkit.org/show_bug.cgi?id=133689
        <rdar://problem/17152685>

        Reviewed by Geoffrey Garen.

        * Shared/API/c/WKErrorRef.h:
        Remove WKErrorCode typedef from here.

        * UIProcess/API/C/WKPageLoaderClient.h:
        Use uint32_t instead of WKErrorCode.

        * UIProcess/API/Cocoa/WKError.h:
        (NS_ENUM):
        Add a WKErrorDomain and a WKErrorCode enum.

        * UIProcess/API/Cocoa/WKError.mm:
        (localizedDescriptionForErrorCode):
        Helper that returns the localized description given an error code.

        (createNSError):
        Helper that creates an NSError with the correct localized description given an error code.

        * UIProcess/API/Cocoa/WKErrorInternal.h:
        Add helpers.

        * UIProcess/API/Cocoa/WKWebView.h:
        Add evaluateJavaScript:completionHandler: method.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (callbackErrorCode):
        Helper that returns a WKErrorCode from a WebKit::CallbackBase::Error enum.

        (-[WKWebView evaluateJavaScript:completionHandler:]):
        Run the JavaScript code and handle all the error cases.

        (-[WKWebView _runJavaScriptInMainFrame:]):
        Reimplement this using the API method.

        * WebKit2.xcodeproj/project.pbxproj:
        Add new files.

2014-06-10  Anders Carlsson  <andersca@apple.com>

        Don't call Connection::terminateSoon if the connection is null
        https://bugs.webkit.org/show_bug.cgi?id=133695
        <rdar://problem/17069024>

        Reviewed by Tim Horton.

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::removeWebPage):

2014-06-10  Oliver Hunt  <oliver@apple.com>

        Add process entitlements
        https://bugs.webkit.org/show_bug.cgi?id=133693

        Reviewed by Alexey Proskuryakov.

        Add entitlements description for Database process, and
        ensure that we reference the correct seatbelt profiles.

        * Configurations/DatabaseService.Development.xcconfig:
        * Configurations/DatabaseService.xcconfig:
        * Configurations/Databases-iOS.entitlements:
        * Configurations/Network-iOS.entitlements:
        * Configurations/WebContent-iOS.entitlements:
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-10  Alexey Proskuryakov  <ap@apple.com>

        Fix crashes on some plug-in tests.
        https://bugs.webkit.org/show_bug.cgi?id=133691
        <rdar://problem/17255836>

        Reviewed by Anders Carlsson.

        * PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::initialize):
        Cannot use TemporaryChange here, because the object may go away before stack unwinds.

2014-06-10  Antti Koivisto  <antti@apple.com>

        Serialize ResourceRequests without platform request
        https://bugs.webkit.org/show_bug.cgi?id=133679

        Reviewed by Alexey Proskuryakov.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<ResourceRequest>::encode):
        (IPC::ArgumentCoder<ResourceRequest>::decode):
        
            Encode ResourceRequest directly if possible.

2014-06-09  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::resetState):

2014-06-09  Simon Fraser  <simon.fraser@apple.com>

        Work towards having frames in the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=133665

        Reviewed by Tim Horton.
        
        Override coordinatesScrollingForFrameView() to always return true for composited
        frames, for iOS WK2 (eventually this class will have to be specialized for iOS and OS X).

        * WebProcess/Scrolling/RemoteScrollingCoordinator.h:
        * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
        (WebKit::RemoteScrollingCoordinator::coordinatesScrollingForFrameView):

2014-06-09  Anders Carlsson  <andersca@apple.com>

        Give callbacks real status codes
        https://bugs.webkit.org/show_bug.cgi?id=133668

        Reviewed by Dan Bernstein.

        This makes it possible to know whether a callback was invalidated due to the webpage being closed,
        or whether it was due the a web process crash.

        * UIProcess/GenericCallback.h:
        (WebKit::GenericCallback::create):
        (WebKit::GenericCallback::performCallbackWithReturnValue):
        (WebKit::GenericCallback::invalidate):
        (WebKit::invalidateCallbackMap):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::close):
        (WebKit::WebPageProxy::resetState):
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        * UIProcess/WebPageProxy.h:

2014-06-09  Enrica Casucci  <enrica@apple.com>

        iOS WebKit: Crash in charactersAroundPosition.
        https://bugs.webkit.org/show_bug.cgi?id=133659
        <rdar://problem/17220870>

        Reviewed by Benjamin Poulain.

        We only need to compute charactersAroundPosition when we are in
        editable content.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::editorState):

2014-06-06  Andy Estes  <aestes@apple.com>

        [iOS] Expose _WKWebViewPrintFormatter and -_webView:printFrame: as SPI
        https://bugs.webkit.org/show_bug.cgi?id=133600

        Reviewed by David Kilzer.

        Expose -_webView:printFrame: in WKUIDelegatePrivate so that clients can implement support for window.print().
        Since window.print() can be called from a subframe, expose _WKWebViewPrintFormatter (renamed from
        WKWebViewPrintFormatter to reflect its new SPI status) as SPI and add a frameToPrint property.

        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Forward-declared _WKFrameHandle and declared -_webView:printFrame:.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _webViewPrintFormatter]): Added to get a _WKWebViewPrintFormatter.
        (-[WKWebView _printFormatterClass]): Updated the class name to _WKWebViewPrintFormatter.
        (-[WKWebView _computePageCountAndStartDrawingToPDFForFrame:printInfo:WebKit::firstPage:computedTotalScaleFactor:]):
        Added a frame argument. If frame is nil, print the main frame.
        (-[WKWebView _computePageCountAndStartDrawingToPDFWithPrintInfo:WebKit::firstPage:computedTotalScaleFactor:]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewInternal.h: Forward-declared _WKFrameHandle; removed an unneccessary
        forward-declaration of WKWebViewPrintFormatter.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h: Added a _webViewPrintFormatter property.
        * UIProcess/Cocoa/UIDelegate.h:
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::setDelegate):
        (WebKit::UIDelegate::UIClient::printFrame): Called -_webView:printFrame:.
        * UIProcess/_WKWebViewPrintFormatter.h: Renamed from Source/WebKit2/UIProcess/WKWebViewPrintFormatter.h.
        * UIProcess/_WKWebViewPrintFormatter.mm: Renamed from Source/WebKit2/UIProcess/WKWebViewPrintFormatter.mm.
        * WebKit2.xcodeproj/project.pbxproj:

2014-06-09  Beth Dakin  <bdakin@apple.com>

        Flash video controls hit-test incorrectly after changing topContentInset
        https://bugs.webkit.org/show_bug.cgi?id=133658
        -and corresponding-
        <rdar://problem/16978590>

        Reviewed by Anders Carlsson.

        When the topContent changes, the PluginView needs to be informed.

        New function PluginView::topContentInsetDidChange() calls viewGeometryDidChange().
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::topContentInsetDidChange):
        * WebProcess/Plugins/PluginView.h:

        Call topContentInsetDidChange() after setting an inset only if it is a new inset.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::setTopContentInset):

2014-06-09  Daniel Bates  <dabates@apple.com>

        Another attempt to fix the EFL and GTK builds after <http://trac.webkit.org/changeset/169711>
        (https://bugs.webkit.org/show_bug.cgi?id=133657)

        Substitute WKErrorRef.h for WKError.h.

        * UIProcess/API/efl/ewk_error.cpp:
        * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
        * WebProcess/WebCoreSupport/gtk/WebErrorsGtk.cpp:

2014-06-09  Daniel Bates  <dabates@apple.com>

        Attempt to fix the EFL and GTK builds after <http://trac.webkit.org/changeset/169711>
        (https://bugs.webkit.org/show_bug.cgi?id=133657)

        Rename Shared/API/c/WKError.cpp to Shared/API/c/WKErrorRef.cpp.

        * CMakeLists.txt:

2014-06-09  Anders Carlsson  <andersca@apple.com>

        Address review feedback.

        * UIProcess/API/Cocoa/WKWebView.h:

2014-06-09  Anders Carlsson  <andersca@apple.com>

        Add a WKError.h header and rename the existing WKError.h to WKErrorRef.h
        https://bugs.webkit.org/show_bug.cgi?id=133657

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WebKit.h:
        * Shared/API/c/WKErrorRef.cpp: Renamed from Source/WebKit2/Shared/API/c/WKError.cpp.
        (WKErrorGetTypeID):
        (WKErrorCopyWKErrorDomain):
        (WKErrorCopyDomain):
        (WKErrorGetErrorCode):
        (WKErrorCopyFailingURL):
        (WKErrorCopyLocalizedDescription):
        * Shared/API/c/WKErrorRef.h: Renamed from Source/WebKit2/Shared/API/c/WKError.h.
        * UIProcess/API/C/WKPage.h:
        * UIProcess/API/C/WKPageLoaderClient.h:
        * UIProcess/API/C/WebKit2_C.h:
        * UIProcess/API/Cocoa/WKError.h: Copied from Source/WebKit2/Shared/API/Cocoa/WebKit.h.
        * UIProcess/API/Cocoa/WKError.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WebKit.h.
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:

2014-06-09  Brady Eidson  <beidson@apple.com>

        Use different AppKit API for all services menus
        <rdar://problem/16874403> and https://bugs.webkit.org/show_bug.cgi?id=133649

        Reviewed by Tim Horton.

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::showContextMenu):

2014-06-09  Anders Carlsson  <andersca@apple.com>

        Add WKWindowFeatures.h to the umbrella header.

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WebKit.h:

2014-06-09  Anders Carlsson  <andersca@apple.com>

        Add -[WKWebView loadHTMLString:baseURL:]
        https://bugs.webkit.org/show_bug.cgi?id=133645
        <rdar://problem/17170649>

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView loadHTMLString:baseURL:]):
        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::createLoadDataNavigation):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::loadHTMLString):
        * UIProcess/WebPageProxy.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::loadDataImpl):
        (WebKit::WebPage::loadString):
        (WebKit::WebPage::loadData):
        (WebKit::WebPage::loadHTMLString):
        (WebKit::WebPage::loadAlternateHTMLString):
        (WebKit::WebPage::loadPlainTextString):
        (WebKit::WebPage::loadWebArchiveData):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-06-09  Simon Fraser  <simon.fraser@apple.com>

        Fix more latched scrolling test flakiness and slowness
        https://bugs.webkit.org/show_bug.cgi?id=133601

        Reviewed by Brent Fulgham.

        Latched scrolling tests were flakey for two reasons. First, the EventSender
        wheel events were async from the web to the UI process, and the resulting
        synthetic events also async from the UI to the web process. Make them sync
        for testing.
        
        Secondly, the timer-based scrolling tree commit could result in the scrolling
        tree (specifically the frame node's notion of the scrollable area and content
        size) not being updated before the scrolling thread starts getting wheel events.
        Fix by having WebPage::wheelEventSyncForTesting() commit if necessary.
        
        Finally remove all the now-unnecessary timeouts from the tests.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::wheelEventSyncForTesting):

2014-06-09  Andrzej Badowski  <a.badowski@samsung.com>

        [EFL] Add parameter to MiniBrowser to disable web security
        https://bugs.webkit.org/show_bug.cgi?id=121095

        Reviewed by Gyuyoung Kim.

        -w (--web-security) commandline allows to disable/enable web security (enabled by default).
        The reason for this is to test and debug (using, for example, MiniBrowser) scripts accessing
        resources from other domains (cross-domain requests) such as access map location on another server.
        Another possibility is to launch in a webkit browser local file tests that will refer to the links
        in the http website loaded in an iframe. It will not be possible without deactivation of web security.

        * UIProcess/API/efl/ewk_settings.cpp:
        (ewk_settings_web_security_enabled_set):
        (ewk_settings_web_security_enabled_get):
        * UIProcess/API/efl/ewk_settings.h:
        * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
        (TEST_F):

2014-06-08  Sam Weinig  <sam@webkit.org>

        [Cocoa] WKScriptMessage should include the frame the message is from
        <rdar://problem/17210226>
        https://bugs.webkit.org/show_bug.cgi?id=133623

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKScriptMessage.h:
        Add WKFrameInfo property.

        * UIProcess/API/Cocoa/WKScriptMessage.mm:
        (-[WKScriptMessage _initWithBody:webView:frameInfo:name:]):
        Add WKFrameInfo to the initializer.

        (-[WKScriptMessage frameInfo]):
        Implement frameInfo accessor.

        * UIProcess/API/Cocoa/WKScriptMessageInternal.h:
        Add WKFrameInfo to the initializer.

        * UIProcess/API/Cocoa/WKUserContentController.mm:
        Pass the WKFrameInfo to the WKScriptMessage initializer.

2014-06-08  Dan Bernstein  <mitz@apple.com>

        [Cococa] WKWindowFeatures.h is missing from WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=133622

        Reviewed by Sam Weinig.

        * WebKit2.xcodeproj/project.pbxproj: Promoted WKWindowFeatures.h to Public.

2014-06-08  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17208234> [Mac] Client-certificate authentication isn’t working when using the modern API
        https://bugs.webkit.org/show_bug.cgi?id=133617

        Reviewed by Sam Weinig.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<Credential>::encode): Encode certificate credentials on Mac as well.
        (IPC::ArgumentCoder<Credential>::decode): Decode certificate credentials on Mac as well.

        * Shared/cf/ArgumentCodersCF.cpp:
        (IPC::encode): Use OS X API for getting a persistent reference to a key.
        (IPC::decode): Use OS X API for getting a key from a persistent reference.

        * Shared/cf/ArgumentCodersCF.h: Make identity coding available on Mac as well.

2014-06-07  Anders Carlsson  <andersca@apple.com>

        Get rid of _WKScriptWorld
        https://bugs.webkit.org/show_bug.cgi?id=133610

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WebKitPrivate.h:
        * UIProcess/API/Cocoa/_WKScriptWorld.h: Removed.
        * UIProcess/API/Cocoa/_WKScriptWorld.mm: Removed.
        * WebKit2.xcodeproj/project.pbxproj:

2014-05-29  Anders Carlsson  <andersca@apple.com>

        HTTPHeaderMap should not derive from HashMap
        https://bugs.webkit.org/show_bug.cgi?id=133392

        Reviewed by Darin Adler.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<HTTPHeaderMap>::encode):
        (IPC::ArgumentCoder<HTTPHeaderMap>::decode):

2014-06-07  Alexey Proskuryakov  <ap@apple.com>

        [iOS] Fix a path used for sandbox profiles
        https://bugs.webkit.org/show_bug.cgi?id=133602
        <rdar://problem/17212011>

        Reviewed by David Kilzer.

        * WebKit2.xcodeproj/project.pbxproj:

2014-06-06  Enrica Casucci  <enrica@apple.com>

        REGRESSION (iOS WebKit2): backspace key does not repeat beyond a single word.
        https://bugs.webkit.org/show_bug.cgi?id=133593
        <rdar://problem/16352228>

        Reviewed by Benjamin Poulain.

        We need to provide a way for the keyboard layer to select from
        the current position to the beginning of the word moving backwards
        and implement the method to know when we have reached the beginning of the document.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView selectWordBackward]):
        (-[WKContentView _selectionAtDocumentStart]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::selectWordBackward):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::selectWordBackward):

2014-06-06  Enrica Casucci  <enrica@apple.com>

        Adopt the new UIAlertController API to replace UIActionSheet.
        https://bugs.webkit.org/show_bug.cgi?id=133582
        <rdar://problem/16845223>

        Reviewed by Joseph Pecoraro.

        UIActionSheet is deprecated. We need to move out action sheets
        implementation to UIAlertView.

        * UIProcess/API/Cocoa/_WKElementAction.h:
        * UIProcess/API/Cocoa/_WKElementAction.mm:
        * UIProcess/ios/WKActionSheet.h:
        * UIProcess/ios/WKActionSheet.mm:
        (-[WKActionSheet presentSheetFromRect:]):
        (-[WKActionSheet doneWithSheet]):
        (-[WKActionSheet willRotate]):
        (-[WKActionSheet updateSheetPosition]):
        (-[WKActionSheet _didRotateAndLayout]):
        (-[WKActionSheet didRotate]):
        * UIProcess/ios/WKActionSheetAssistant.h:
        * UIProcess/ios/WKActionSheetAssistant.mm:
        (-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
        (-[WKActionSheetAssistant showImageSheet]):
        (-[WKActionSheetAssistant showLinkSheet]):
        (-[WKActionSheetAssistant showDataDetectorsSheet]):
        (-[WKActionSheetAssistant cleanupSheet]):
        (-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]): Deleted.
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _longPressRecognized:]):

2014-06-06  Gavin Barraclough  <baraclough@apple.com>

        Should boost ChildProcesses on iOS
        https://bugs.webkit.org/show_bug.cgi?id=133583

        Reviewed by Sam Weinig.

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):
            - boost all child processes on iOS.

2014-06-06  Alexey Proskuryakov  <ap@apple.com>

        Build fix after <http://trac.webkit.org/changeset/169655>.

        The SPIs used do not exist on Mac, limit the code to iOS.

        * Shared/Authentication/mac/AuthenticationManager.mac.mm:
        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<Credential>::encode):
        (IPC::ArgumentCoder<Credential>::decode):
        * Shared/cf/ArgumentCodersCF.cpp:
        (IPC::typeFromCFTypeRef):
        (IPC::encode):
        (IPC::decode):
        * Shared/cf/ArgumentCodersCF.h:

2014-06-06  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17095692> [iOS] Client-certificate authentication isn’t working
        https://bugs.webkit.org/show_bug.cgi?id=133527

        Reviewed by Darin Adler.

        * Configurations/Network-iOS.entitlements: Enabled the Network process to access the keys
        needed to create identities to authenticate with.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<Credential>::encode): Encode the credential type, and if it is a client
        certificate, encode the identity and the certificates.
        (IPC::ArgumentCoder<Credential>::decode): Decode the credential type. If it is a client
        certificate, decode the identity and the certificates and use the proper Credential
        constructor.

        * Shared/cf/ArgumentCodersCF.cpp:
        (IPC::typeFromCFTypeRef): Handle SecIdentityRef.
        (IPC::encode): Encode an identity by encoding its certificate and a persistent reference to
        its key.
        (IPC::decode): Decode a certificate and a persistent reference to a key, find the key, and
        create an identity.
        * Shared/cf/ArgumentCodersCF.h:

2014-06-05  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] WebPage sometimes forces two resize events on animated resize
        https://bugs.webkit.org/show_bug.cgi?id=133534

        Reviewed by Enrica Casucci.

        When I updated the patch for resize events (r168556) to use the unobscured rect in scrollview coordinates,
        I forgot to update a snippet of code in dynamicViewportSizeUpdate(). Since that code was still using
        the scaled unobscured rect, there was sometimes a difference of 1 pixel between the size set by that
        call site and the others.

        This path nukes the bad code and use the unobscured rect in scrollview coordinates given by the UIProcess.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-06-05  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Add device orientation
        https://bugs.webkit.org/show_bug.cgi?id=133530
        <rdar://problem/16680041>

        Reviewed by Tim Horton.

        Add device orientation for WebKit2.

        For the public API, WKWebView get the updates through the notification UIWindowDidRotateNotification.
        We do not have any control over how the API is used, but we can expect the size will be updated before
        the end of rotation in most cases and the events should be sent in the right order.

        For Safari, we use an override to support animated resize (and some tabs corner cases).

        On the WebProcess side, we just get the new orientation directly or on DynamicViewportSizeUpdate.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (deviceOrientationForUIInterfaceOrientation):
        (deviceOrientation):
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView _windowDidRotate:]):
        (-[WKWebView _setInterfaceOrientationOverride:]):
        (-[WKWebView _interfaceOrientationOverride]):
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::deviceOrientation):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
        (WebKit::WebPageProxy::setDeviceOrientation):
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
        (WebKit::WebChromeClient::deviceOrientation):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::deviceOrientation):
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setDeviceOrientation):
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-06-05  Oliver Hunt  <oliver@apple.com>

        Enable SANDBOX_EXTENSIONS build flag universally on cocoa
        https://bugs.webkit.org/show_bug.cgi?id=133556

        Reviewed by Alexey Proskuryakov.

        Remove unnecessary iOS exception.

        * WebKit2Prefix.h:

2014-06-05  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Tweak plug-in sandbox profiles
        https://bugs.webkit.org/show_bug.cgi?id=133549

        Fix <rdar://problem/17068055> and <rdar://problem/17148837>.

        Reviewed by Sam Weinig and Simon Cooper.

        * Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
        * Resources/PlugInSandboxProfiles/com.microsoft.SilverlightPlugin.sb:

2014-06-05  Tanay C  <tanay.c@samsung.com>

        Resolve compiler error (call of overloaded 'schedule' function is ambiguous) 
        https://bugs.webkit.org/show_bug.cgi?id=133467

        Reviewed by Carlos Garcia Campos.

        * Shared/Downloads/soup/DownloadSoup.cpp:
        (WebKit::DownloadClient::handleResponseLater): Explicitly casting second parameter to std::function<void()>

2014-06-04  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Restore the visual scroll position instead of the dom scroll position when restoring states from the history
        https://bugs.webkit.org/show_bug.cgi?id=133490

        Reviewed by Tim Horton.

        Instead of restoring the scroll position, restore the visual position. This makes pages appear at the same position
        on screen ignoring changes in the obscured top inset.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
        (WebKit::WebFrameLoaderClient::saveViewStateToItem):
        (WebKit::WebFrameLoaderClient::restoreViewState):
        Save and restore userHasChangedPageScaleFactor to handle rescaling correctly.
        Limit the scale into valid viewport limits in case the viewport meta tag has changed or the device has rotated.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::userHasChangedPageScaleFactor):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::restorePageState):
        (WebKit::WebPage::updateVisibleContentRects):
        In updateVisibleContentRects, we keep track or the current difference between the exposed rect and the unobscured rect.
        When restoring the page position, we use the current top inset and the saved exposed rect to restore the visual
        scroll position.

        It is not very robust as it does not resolve races between the two processes, but that is not worse than what we is there now.

2014-06-03  Timothy Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures (Zoom): Can show unpainted regions when zoom-pinching-out
        https://bugs.webkit.org/show_bug.cgi?id=133472
        <rdar://problem/15686848>

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
        (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToLayers):
        (WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
        Use prepopulateRect() when zooming out to ensure that we have tiles for the current exposed area.

        Factor applyTransientZoomToLayers out of adjustTransientZoom, so that
        flushLayers can call applyTransientZoomToLayers without ending up calling prepopulateRect()
        during layer flushing, which causes trouble.

        It is OK to populate layers at the current scale even when zooming out, because the overdraw
        already covers most of the zoomed out area, and we're only adding a few more tiles at worst.

2014-06-03  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Align the highlight rects with device pixels
        https://bugs.webkit.org/show_bug.cgi?id=133464
        <rdar://problem/16708861>

        Reviewed by Enrica Casucci.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _showTapHighlightWithColor:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):

2014-06-02  Enrica Casucci  <enrica@apple.com>

        REGRESSION (iOS WebKit2): Single tap in pages with focus on load will clear the selection after the keyboard appears.
        https://bugs.webkit.org/show_bug.cgi?id=133465
        <rdar://problem/17059189>

        Reviewed by Benjamin Poulain.

        If a page focuses an input field on load we don't bring the keyboard on screen
        since the keyboard is only shown when the user interacts with the page with gestures.
        Still the WebProcess sets the focus and the selection according to the rules.
        We need to make sure the UI process doesn't accidentally clear this selection
        when the user starts the interaction with the page.
        This patch also improves the function that retrieves the autocorrection data
        to be returned to the keyboard, making sure that we always send back a reply
        even when we don't have a valid selection.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _singleTapCommited:]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::requestAutocorrectionData):

2014-05-31  Anders Carlsson  <andersca@apple.com>

        Change DeferrableOneShotTimer to use std::function instead of being a class template
        https://bugs.webkit.org/show_bug.cgi?id=133423

        Reviewed by Antti Koivisto.

        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
        (WebKit::NetworkProcess::platformSetCacheModel):
        * Shared/CacheModel.cpp:
        (WebKit::calculateCacheSizes):
        * Shared/CacheModel.h:
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::pluginSnapshotTimerFired):
        * WebProcess/Plugins/PluginView.h:
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformSetCacheModel):

2014-06-02  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Round the UIScrollView content size to device pixel
        https://bugs.webkit.org/show_bug.cgi?id=133417
        <rdar://problem/15922440>

        Reviewed by Simon Fraser.

        We should really have the scaled content size floored to device pixels, but that will be for another
        time.
        This patch ensure the content size as seen by the API is rounded to device pixels. The value is floored
        to avoid showing partial pixels when the content is stable.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (floorFloatToPixels):
        (roundScrollViewCountentSize):
        (-[WKWebView _setHasCustomContentView:loadedMIMEType:WTF::]):
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView scrollView:contentSizeForZoomScale:withProposedSize:]):
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        (-[WKWebView _endAnimatedResize]):

2014-06-02  Oliver Hunt  <oliver@apple.com>

        Move ifdef to the right place.

        RS=Enrica

        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::initializeSandbox):

2014-06-02  Gavin Barraclough  <barraclough@apple.com>

        Set default voucher for XPC client processes
        https://bugs.webkit.org/show_bug.cgi?id=133458

        Reviewed by Geoff Garen.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
        (WebKit::XPCServiceInitializer):
            - add voucher_replace_default_voucher.
        * config.h:
            - add HAVE_VOUCHERS.

2014-06-02  Jeremy Jones  <jeremyj@apple.com>

        Send external playback properties to fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=133366

        Reviewed by Simon Fraser.

        Forward setExternalPlayback.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: add setExternalPlaybackProperties
        * WebProcess/ios/WebVideoFullscreenManager.h: add setExternalPlaybackProperties
        * WebProcess/ios/WebVideoFullscreenManager.mm: add setExternalPlaybackProperties
        (WebKit::WebVideoFullscreenManager::setExternalPlaybackProperties): added

2014-06-02  Enrica Casucci  <enrica@apple.com>

        Remove unintentional changes to WKContentViewInteraction.mm
        introduced in r169500.

        Unreviewed.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):

2014-06-02  Geoffrey Garen  <ggaren@apple.com>

        Address some review comments on bug 133408
        https://bugs.webkit.org/show_bug.cgi?id=133410

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
        * UIProcess/API/Cocoa/WKUIDelegate.h:

2014-06-02  Dan Bernstein  <mitz@apple.com>

        [Cocoa] -[WKWebView activeURL] is unused
        https://bugs.webkit.org/show_bug.cgi?id=133440

        Reviewed by Mark Rowe.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView activeURL]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h: Removed the property declaration.

2014-05-31  Oliver Hunt  <oliver@apple.com>

        Restructure initial distinct sandbox profiles
        https://bugs.webkit.org/show_bug.cgi?id=133415

        Reviewed by Alexey Proskuryakov.

        Add support for manually instantiating the network and
        content process sandboxes, and add initial profiles.
        These profiles are completely generic so we can make sure
        nothing is broken by enabling them.

        This also adds a target to the WebKit2 project to correctly
        process the profiles.

        * DatabaseProcess/ios/DatabaseProcessIOS.mm:
        (WebKit::DatabaseProcess::initializeSandbox):
        * DatabaseProcess/ios/com.apple.WebKit.DatabasesIOS.sb: Removed.
        * NetworkProcess/ios/NetworkProcessIOS.mm:
        (WebKit::NetworkProcess::initializeSandbox):
        * Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb: Added.
        * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Added.
        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Added.
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::initializeSandbox):

2014-06-01  Sam Weinig  <sam@webkit.org>

        [Cocoa] Add SPI to get a WebArchive of the WKWebView
        <rdar://problem/16748120>
        https://bugs.webkit.org/show_bug.cgi?id=133439

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-05-31  Anders Carlsson  <andersca@apple.com>

        Add a LazyNeverDestroyed class template and use it
        https://bugs.webkit.org/show_bug.cgi?id=133425

        Reviewed by Darin Adler.

        * Shared/mac/SecItemShim.cpp:
        (WebKit::responseMap):

2014-05-31  Timothy Horton  <timothy_horton@apple.com>

        View snapshots are sometimes taken at the wrong scale
        https://bugs.webkit.org/show_bug.cgi?id=133419
        <rdar://problem/17087497>

        Reviewed by Sam Weinig.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _takeViewSnapshot]):
        Work around <rdar://problem/17084993> by re-requesting the snapshot at
        kCGWindowImageNominalResolution if it was captured at the wrong scale.

2014-05-31  Dan Bernstein  <mitz@apple.com>

        [iOS] WebKit2.framework is unused
        https://bugs.webkit.org/show_bug.cgi?id=133424

        Reviewed by Anders Carlsson.

        * Configurations/WebKit2.xcconfig: Set SKIP_INSTALL to YES when targeting iOS.

2014-05-30  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] When a page does not finish rotation before the end of the animation, synchronize explicitely
        https://bugs.webkit.org/show_bug.cgi?id=133364
        <rdar://problem/17026333>

        Reviewed by Sam Weinig.

        When a page that does layout on rotation does not respond before the end of the animation, we end up with
        a completely inconsistent state on the UIProcess (because it is unware of the new states).

        The perfect way to fix this would be to make animated resize transactional and have the WebProcess resolve
        conflicts. That is very complicated and the issue is uncommon, so this patch does not do that.

        This patch force the synchronization whenever we finish the animation before we heard back
        from the WebProcess.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _endAnimatedResize]):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::resetState):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
        (WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
        (WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):
        (WebKit::WebPage::synchronizeDynamicViewportUpdate):

2014-05-30  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): space space to insert period doesn't work in web forms.
        https://bugs.webkit.org/show_bug.cgi?id=133413
        <rdar://problem/16948333>

        Reviewed by Benjamin Poulain.

        iOS TextInput needs to know about content surrounding the
        current position while editing. Since we don't want to
        query this information synchronously when asked, we cache it
        as part of the EditorState. EditorState now contains a vector of
        three characters representing the content after, before and two
        position before the caret position.
        The patch also replaces all calls to plainText with plainTextReplacingNoBreakSpace
        to work well with iOS text input.

        * Shared/EditorState.cpp:
        (WebKit::EditorState::encode):
        (WebKit::EditorState::decode):
        * Shared/EditorState.h:
        (WebKit::EditorState::EditorState):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _characterInRelationToCaretSelection:]):
        (+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::editorState):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::requestDictationContext):
        (WebKit::WebPage::replaceSelectedText):
        (WebKit::WebPage::replaceDictatedText):
        (WebKit::WebPage::requestAutocorrectionData):
        (WebKit::WebPage::syncApplyAutocorrection):
        (WebKit::computeAutocorrectionContext):

2014-05-30  Geoffrey Garen  <ggaren@apple.com>

        Fixed the build by adding back a declaration I deleted by accident :(.

        Unreviewed.

        * UIProcess/API/Cocoa/WKWebView.h:

2014-05-30  Geoffrey Garen  <ggaren@apple.com>

        Unreviewed, rolling in r169490.

        I changed a non-ASCII apostrophe to ASCII.

        Restored changeset:

        "Some more copy-editing of the Modern WebKit headerdoc"
        https://bugs.webkit.org/show_bug.cgi?id=133408
        http://trac.webkit.org/changeset/169490

        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
        * UIProcess/API/Cocoa/WKFrameInfo.h:
        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigationAction.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKNavigationResponse.h:
        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKProcessPool.h:
        * UIProcess/API/Cocoa/WKScriptMessage.h:
        * UIProcess/API/Cocoa/WKScriptMessageHandler.h:
        * UIProcess/API/Cocoa/WKUIDelegate.h:
        * UIProcess/API/Cocoa/WKUserContentController.h:
        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:

2014-05-30  Geoffrey Garen  <ggaren@apple.com>

        Unreviewed, rolling out r169490.

        It broke the build with a mysterious warning about ASCII.

        Reverted changeset:

        "Some more copy-editing of the Modern WebKit headerdoc"
        https://bugs.webkit.org/show_bug.cgi?id=133408
        http://trac.webkit.org/changeset/169490

2014-05-30  Geoffrey Garen  <ggaren@apple.com>

        Some more copy-editing of the Modern WebKit headerdoc
        https://bugs.webkit.org/show_bug.cgi?id=133408

        Reviewed by Beth Dakin.

        A copy-editor suggested some edits to the headerdoc for clarity,
        style, and formatting.

        I reviewed the edits and accepted about 80% of them.

        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
        * UIProcess/API/Cocoa/WKFrameInfo.h:
        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigationAction.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKNavigationResponse.h:
        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKProcessPool.h:
        * UIProcess/API/Cocoa/WKScriptMessage.h:
        * UIProcess/API/Cocoa/WKScriptMessageHandler.h:
        * UIProcess/API/Cocoa/WKUIDelegate.h:
        * UIProcess/API/Cocoa/WKUserContentController.h:
        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:

2014-05-30  Timothy Horton  <timothy_horton@apple.com>

        Crash loading skydrive.com (assertion under RemoteLayerTreeDisplayRefreshMonitor)
        https://bugs.webkit.org/show_bug.cgi?id=133370
        <rdar://problem/17061361>

        Reviewed by Darin Adler.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
        (WebKit::RemoteLayerTreeDrawingArea::willDestroyDisplayRefreshMonitor):
        (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
        Post-landing review comments from Darin noted that checking if the
        DrawingArea's m_displayRefreshMonitors contains the monitor in the
        list to notify is insufficient, because a new one could have been
        added with the same address. Instead, copy the HashSet, removing
        at random from it and firing didUpdateLayers, but *also* removing
        from it in the willDestroyDisplayRefreshMonitor callback.
        This is very similar to what DisplayRefreshMonitor itself does internally
        (we don't have to duplicate its code to avoid re-entry because it is
        already impossible to re-enter didUpdate).

2014-05-29  Anders Carlsson  <andersca@apple.com>

        -[WKProcessPoolConfiguration setCachePartitionedURLSchemes:] should do a deep copy
        https://bugs.webkit.org/show_bug.cgi?id=133393

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
        (-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]):

2014-05-29  Mark Lam  <mark.lam@apple.com>

        Restoring FloatingPointEnvironment initialization that was accidentally rolled out by r169176.
        <https://webkit.org/b/133389>

        Rubber stamped by Oliver Hunt.

        * Shared/ios/ChildProcessIOS.mm:
        (WebKit::ChildProcess::platformInitialize):

2014-05-29  Enrica Casucci  <enrica@apple.com>

        Need to notify the keyboard about every KeyDown event.
        https://bugs.webkit.org/show_bug.cgi?id=133383
        <rdar://problem/16633975>

        Reviewed by Benjamin Poulain.
        
        A key down will generate most of the time a call to the keyboard to add input or delete.
        But the event could be handled by JavaScript and its default prevented.
        We need to notify the keyboard in every case to allow updating its internal state about what has been typed.

        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::doneWithKeyEvent):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _didHandleKeyEvent:]):

2014-05-29  Matthew Hanson  <matthew_hanson@apple.com>

        Roll out r169439. <rdar://problem/17069364>

    2014-05-28  Gavin Barraclough  <baraclough@apple.com> 

            viewStateDidChange should always fully update ViewState
            https://bugs.webkit.org/show_bug.cgi?id=133159

            Reviewed by Anders Carlson.

            Currently WebPageProxy::viewStateDidChange is passed a mask of bits to update.

            This has the following negative consequences:
             – WKWebView implicitly requires more detailed knowledge of the internal implementation of the PageClient.
             – Updates may unnecessarily be split over multiple IPC messages.
             – In order to support partial updates we make multiple virtual function calls to PageClient, which then makes duplicate objc calls. 

            Better to just always update the entire ViewState. 

            * UIProcess/API/Cocoa/WKWebView.mm:
            (-[WKWebView didMoveToWindow]):
                - removed argument to viewStateDidChange.
            * UIProcess/API/gtk/PageClientImpl.cpp:
            (WebKit::PageClientImpl::viewState):
            (WebKit::PageClientImpl::isViewWindowActive): Deleted.
            (WebKit::PageClientImpl::isViewFocused): Deleted.
            (WebKit::PageClientImpl::isViewVisible): Deleted.
            (WebKit::PageClientImpl::isViewInWindow): Deleted.
            * UIProcess/API/gtk/PageClientImpl.h:
                - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
            * UIProcess/API/mac/WKView.mm:
            (-[WKView becomeFirstResponder]):
            (-[WKView resignFirstResponder]):
            (-[WKView viewDidMoveToWindow]):
            (-[WKView _windowDidBecomeKey:]):
            (-[WKView _windowDidResignKey:]):
            (-[WKView _windowDidMiniaturize:]):
            (-[WKView _windowDidDeminiaturize:]):
            (-[WKView _windowDidOrderOffScreen:]):
            (-[WKView _windowDidOrderOnScreen:]):
            (-[WKView _windowDidChangeOcclusionState:]):
            (-[WKView viewDidHide]):
            (-[WKView viewDidUnhide]):
            (-[WKView _activeSpaceDidChange:]):
            (-[WKView _setThumbnailView:]):
            (-[WKView endDeferringViewInWindowChanges]):
            (-[WKView endDeferringViewInWindowChangesSync]):
                - removed argument to viewStateDidChange.
            * UIProcess/CoordinatedGraphics/WebView.cpp:
            (WebKit::WebView::viewState):
            (WebKit::WebView::isViewWindowActive): Deleted.
            (WebKit::WebView::isViewFocused): Deleted.
            (WebKit::WebView::isViewVisible): Deleted.
            (WebKit::WebView::isViewInWindow): Deleted.
            * UIProcess/CoordinatedGraphics/WebView.h:
                - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
            * UIProcess/PageClient.h:
            (WebKit::PageClient::isViewVisibleOrOccluded): Deleted.
            (WebKit::PageClient::isVisuallyIdle): Deleted.
                - merged isViewVisibleOrOccluded/isVisuallyIdle to subclass viewState methods.
            * UIProcess/WebPageProxy.cpp:
            (WebKit::WebPageProxy::WebPageProxy):
            (WebKit::WebPageProxy::reattachToWebProcess):
                - updateViewState -> PageClient::viewState
            (WebKit::WebPageProxy::viewStateDidChange):
                - argument removed; updateViewState -> PageClient::viewState.
            (WebKit::WebPageProxy::setCursor):
                - call isViewWindowActive on WebPageProxy, rather than PageClient.
            (WebKit::WebPageProxy::updateBackingStoreDiscardableState):
                - call isViewWindowActive on WebPageProxy, rather than PageClient.
            (WebKit::WebPageProxy::updateViewState): Deleted.
                - removed - viewState method moved to PageClient.
            * UIProcess/WebPageProxy.h:
            (WebKit::WebPageProxy::isViewWindowActive):
                - added missing implementation.
            (WebKit::WebPageProxy::isViewVisible):
                - removed argument to viewStateDidChange.
            * UIProcess/WebProcessProxy.cpp:
            (WebKit::WebProcessProxy::windowServerConnectionStateChanged):
                - removed argument to viewStateDidChange.
            * UIProcess/ios/PageClientImplIOS.h:
            * UIProcess/ios/PageClientImplIOS.mm:
            (WebKit::PageClientImpl::viewState):
            (WebKit::PageClientImpl::isViewWindowActive): Deleted.
            (WebKit::PageClientImpl::isViewFocused): Deleted.
            (WebKit::PageClientImpl::isViewVisible): Deleted.
            (WebKit::PageClientImpl::isViewInWindow): Deleted.
            (WebKit::PageClientImpl::isViewVisibleOrOccluded): Deleted.
            (WebKit::PageClientImpl::isVisuallyIdle): Deleted.
                - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
            * UIProcess/ios/WKContentView.mm:
            (-[WKContentView didMoveToWindow]):
            (-[WKContentView _applicationDidEnterBackground:]):
            (-[WKContentView _applicationWillEnterForeground:]):
                - removed argument to viewStateDidChange.
            * UIProcess/mac/PageClientImpl.h:
            * UIProcess/mac/PageClientImpl.mm:
            (WebKit::PageClientImpl::viewState):
            (WebKit::PageClientImpl::showCorrectionPanel):
            (WebKit::PageClientImpl::showDictationAlternativeUI):
            (WebKit::PageClientImpl::isViewWindowActive): Deleted.
            (WebKit::PageClientImpl::isViewFocused): Deleted.
            (WebKit::PageClientImpl::isViewVisibleOrOccluded): Deleted.
            (WebKit::PageClientImpl::isVisuallyIdle): Deleted.
                - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.

2014-05-29  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Can’t recover from subframe load errors
        https://bugs.webkit.org/show_bug.cgi?id=133385

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.
        * UIProcess/Cocoa/NavigationState.h: Added flag in m_navigationDelegateMethods struct.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate): Initialize
        webViewNavigationDidFailProvisionalLoadInSubframeWithError flag in the delegate methods
        struct.
        (WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame): If the
        error occurred in a subframe, invoke the new delegate method.

2014-05-29  Geoffrey Garen  <ggaren@apple.com>

        Added a missing @result to WKPreferences headerdoc
        https://bugs.webkit.org/show_bug.cgi?id=133381

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKPreferences.h:

2014-05-29  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Always use plug-in sandbox with sandboxed clients
        https://bugs.webkit.org/show_bug.cgi?id=133358
        <rdar://problem/15637695>

        Reviewed by Anders Carlsson.

        * PluginProcess/mac/PluginProcessMac.mm: (WebKit::PluginProcess::initializeSandbox):
        Refuse to start if parent process is sandboxed, and plug-in process is not going to be.
        None of this should run in normal case, because there are also checks on UI process side.
        
        * Shared/Plugins/PluginModuleInfo.h:
        * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
        (WebKit::NetscapePluginModule::getPluginInfo):
        Added a member to PluginModuleInfo, telling whether the plug-in has a sandbox profile.

        * Shared/Plugins/Netscape/mac/PluginInformationMac.mm:
        (WebKit::getPlatformPluginModuleInformation): Use the new PluginModuleInfo member,
        we no longer need to check the file system here.

        * WebKit2.xcodeproj/project.pbxproj:
        * Shared/mac/SandboxUtilities.h: Added.
        * Shared/mac/SandboxUtilities.cpp: Added. (WebKit::processIsSandboxed):
        This code is simple, but include magic is not. Moved it to a separate file to
        avoid repeating.

        * UIProcess/API/C/mac/WKContextPrivateMac.mm: Removed an unused include.

        * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
        (WebKit::PluginInfoStore::shouldUsePlugin): Don't use unsandboxed plug-ins in
        sandboxed applications.

        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
        (WebKit::PluginProcessProxy::platformGetLaunchOptions): Don't ever pass disable-sandbox
        from sandboxed processes.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
        (WebKit::XPCServiceInitializerDelegate::isClientSandboxed):
        Use the new shared code in SandboxUtilities.h.

2014-05-29  Timothy Horton  <timothy_horton@apple.com>

        Crash loading skydrive.com (assertion under RemoteLayerTreeDisplayRefreshMonitor)
        https://bugs.webkit.org/show_bug.cgi?id=133370
        <rdar://problem/17061361>

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
        Copy the set of refresh monitors so that we don't try to mutate the list we're iterating,
        and don't try to fire refresh monitors that were removed in a previous iteration of the loop.

2014-05-29  Timothy Horton  <timothy_horton@apple.com>

        REGRESSION (iOS WebKit2): Find-in-Page doesn't work in subframes
        https://bugs.webkit.org/show_bug.cgi?id=133372
        <rdar://problem/17045070>

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/ios/FindControllerIOS.mm:
        (WebKit::FindController::willFindString):
        (WebKit::FindController::didFailToFindString):
        (WebKit::FindController::didHideFindIndicator):
        Flip ignoreCompositionSelectionChange and updateAppearanceEnabled on all
        frames, not just the main frame, because the found string can be in a subframe.
        Ideally we would flip it on/off for each frame as we move the selection between them,
        but would require a lot of work (and the overhead of touching each frame shouldn't be significant).

2014-05-29  Dan Bernstein  <mitz@apple.com>

        WKBundleActivateMacFontAscentHack is unused
        https://bugs.webkit.org/show_bug.cgi?id=133379

        Reviewed by Anders Carlsson.

        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
        (WKBundleActivateMacFontAscentHack): Deleted.
        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
        * WebProcess/InjectedBundle/InjectedBundle.h:
        * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp:
        (WebKit::InjectedBundle::activateMacFontAscentHack): Deleted.
        * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
        (WebKit::InjectedBundle::activateMacFontAscentHack): Deleted.
        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
        (WebKit::InjectedBundle::activateMacFontAscentHack): Deleted.

2014-05-29  Alexey Proskuryakov  <ap@apple.com>

        Add a sandbox profile for com.apple.appstore.CodeRedeemerNetscapePlugin
        https://bugs.webkit.org/show_bug.cgi?id=133360

        Reviewed by Sam Weinig.

        * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb: Looks like
        anyone using camera would need access to CoreMedia preferences.

        * Resources/PlugInSandboxProfiles/com.apple.appstore.CodeRedeemerNetscapePlugin.sb: Added.

        * WebKit2.xcodeproj/project.pbxproj: Added the profile.

2014-05-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add support for HiDPI icons
        https://bugs.webkit.org/show_bug.cgi?id=133377

        Reviewed by Martin Robinson.

        * PlatformGTK.cmake: Compile also the @2x versions for the builtin icons.

2014-05-29  Owen Taylor  <otaylor@redhat.com>

        [GTK] Add HighDPI support for non-accelerated compositing contents
        https://bugs.webkit.org/show_bug.cgi?id=131562

        Reviewed by Anders Carlsson.

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (deviceScaleFactorChanged): Added this callback to pass scale changes to the page proxy.
        (webkitWebViewBaseCreateWebPage): Attach the callback to the notify signal.
        * UIProcess/WebPageProxy.cpp:
        * UIProcess/cairo/BackingStoreCairo.cpp:
        (WebKit::WebPageProxy::setCustomDeviceScaleFactor): Do not set a
        custom device scale factor for cairo when it's not supported.
        (WebKit::createBackingStoreForGTK): Pass the scale factor to the WebCore backing store.
        (WebKit::BackingStore::incorporateUpdate): Ditto.

2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use GMainLoopSource for idle and timeout sources in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130081

        Reviewed by Martin Robinson.

        * Platform/WorkQueue.h:
        * Platform/gtk/WorkQueueGtk.cpp:
        (WorkQueue::registerSocketEventHandler): Stop pretending it's
        possible to register a socket event handler for more than one
        descriptor.
        (WorkQueue::unregisterSocketEventHandler):
        (WorkQueue::dispatch):
        (WorkQueue::dispatchAfter):
        * Shared/Downloads/soup/DownloadSoup.cpp:
        (WebKit::DownloadClient::DownloadClient):
        (WebKit::DownloadClient::~DownloadClient):
        (WebKit::DownloadClient::didReceiveData):
        (WebKit::DownloadClient::handleResponse):
        (WebKit::DownloadClient::handleResponseLater):
        * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
        (WebKit::PluginInfoCache::PluginInfoCache):
        (WebKit::PluginInfoCache::~PluginInfoCache):
        (WebKit::PluginInfoCache::saveToFile):
        (WebKit::PluginInfoCache::updatePluginInfo):
        * UIProcess/Plugins/gtk/PluginInfoCache.h:
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
        (WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
        (WebKit::LayerTreeHostGtk::layerFlushTimerFired):
        (WebKit::LayerTreeHostGtk::scheduleLayerFlush):
        (WebKit::LayerTreeHostGtk::cancelPendingLayerFlush):
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:

2014-05-28  Gavin Barraclough  <baraclough@apple.com>

        viewStateDidChange should always fully update ViewState
        https://bugs.webkit.org/show_bug.cgi?id=133159

        Reviewed by Anders Carlson.

        Currently WebPageProxy::viewStateDidChange is passed a mask of bits to update.

        This has the following negative consequences:
         – WKWebView implicitly requires more detailed knowledge of the internal implementation of the PageClient.
         – Updates may unnecessarily be split over multiple IPC messages.
         – In order to support partial updates we make multiple virtual function calls to PageClient, which then makes duplicate objc calls.

        Better to just always update the entire ViewState.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView didMoveToWindow]):
            - removed argument to viewStateDidChange.
        * UIProcess/API/gtk/PageClientImpl.cpp:
        (WebKit::PageClientImpl::viewState):
        (WebKit::PageClientImpl::isViewWindowActive): Deleted.
        (WebKit::PageClientImpl::isViewFocused): Deleted.
        (WebKit::PageClientImpl::isViewVisible): Deleted.
        (WebKit::PageClientImpl::isViewInWindow): Deleted.
        * UIProcess/API/gtk/PageClientImpl.h:
            - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
        * UIProcess/API/mac/WKView.mm:
        (-[WKView becomeFirstResponder]):
        (-[WKView resignFirstResponder]):
        (-[WKView viewDidMoveToWindow]):
        (-[WKView _windowDidBecomeKey:]):
        (-[WKView _windowDidResignKey:]):
        (-[WKView _windowDidMiniaturize:]):
        (-[WKView _windowDidDeminiaturize:]):
        (-[WKView _windowDidOrderOffScreen:]):
        (-[WKView _windowDidOrderOnScreen:]):
        (-[WKView _windowDidChangeOcclusionState:]):
        (-[WKView viewDidHide]):
        (-[WKView viewDidUnhide]):
        (-[WKView _activeSpaceDidChange:]):
        (-[WKView _setThumbnailView:]):
        (-[WKView endDeferringViewInWindowChanges]):
        (-[WKView endDeferringViewInWindowChangesSync]):
            - removed argument to viewStateDidChange.
        * UIProcess/CoordinatedGraphics/WebView.cpp:
        (WebKit::WebView::viewState):
        (WebKit::WebView::isViewWindowActive): Deleted.
        (WebKit::WebView::isViewFocused): Deleted.
        (WebKit::WebView::isViewVisible): Deleted.
        (WebKit::WebView::isViewInWindow): Deleted.
        * UIProcess/CoordinatedGraphics/WebView.h:
            - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
        * UIProcess/PageClient.h:
        (WebKit::PageClient::isViewVisibleOrOccluded): Deleted.
        (WebKit::PageClient::isVisuallyIdle): Deleted.
            - merged isViewVisibleOrOccluded/isVisuallyIdle to subclass viewState methods.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::reattachToWebProcess):
            - updateViewState -> PageClient::viewState
        (WebKit::WebPageProxy::viewStateDidChange):
            - argument removed; updateViewState -> PageClient::viewState.
        (WebKit::WebPageProxy::setCursor):
            - call isViewWindowActive on WebPageProxy, rather than PageClient.
        (WebKit::WebPageProxy::updateBackingStoreDiscardableState):
            - call isViewWindowActive on WebPageProxy, rather than PageClient.
        (WebKit::WebPageProxy::updateViewState): Deleted.
            - removed - viewState method moved to PageClient.
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::isViewWindowActive):
            - added missing implementation.
        (WebKit::WebPageProxy::isViewVisible):
            - removed argument to viewStateDidChange.
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::windowServerConnectionStateChanged):
            - removed argument to viewStateDidChange.
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::viewState):
        (WebKit::PageClientImpl::isViewWindowActive): Deleted.
        (WebKit::PageClientImpl::isViewFocused): Deleted.
        (WebKit::PageClientImpl::isViewVisible): Deleted.
        (WebKit::PageClientImpl::isViewInWindow): Deleted.
        (WebKit::PageClientImpl::isViewVisibleOrOccluded): Deleted.
        (WebKit::PageClientImpl::isVisuallyIdle): Deleted.
            - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didMoveToWindow]):
        (-[WKContentView _applicationDidEnterBackground:]):
        (-[WKContentView _applicationWillEnterForeground:]):
            - removed argument to viewStateDidChange.
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::viewState):
        (WebKit::PageClientImpl::showCorrectionPanel):
        (WebKit::PageClientImpl::showDictationAlternativeUI):
        (WebKit::PageClientImpl::isViewWindowActive): Deleted.
        (WebKit::PageClientImpl::isViewFocused): Deleted.
        (WebKit::PageClientImpl::isViewVisibleOrOccluded): Deleted.
        (WebKit::PageClientImpl::isVisuallyIdle): Deleted.
            - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.

2014-05-28  Jeffrey Pfau  <jpfau@apple.com>

        Add Obj-C API for cache partitioned URL schemes
        https://bugs.webkit.org/show_bug.cgi?id=133361
        <rdar://problem/17035415>

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _initWithConfiguration:]):
        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
        (-[_WKProcessPoolConfiguration cachePartitionedURLSchemes]):
        (-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]):
        (-[_WKProcessPoolConfiguration copyWithZone:]):

2014-05-28  Sam Weinig  <sam@webkit.org>

        [iOS WebKit2] Sometimes Safari gets into a limbo state after web process crash
        <rdar://problem/17029526>
        https://bugs.webkit.org/show_bug.cgi?id=133362

        Reviewed by Dan Bernstein.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        Remove unnecessary initialization of a unique_ptr.

        (WebKit::WebPageProxy::reattachToWebProcess):
        Move calls to update the view state and activity tokens to after we have swapped in the new process.

        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        Clear the activity token on process exit.

2014-05-28  Timothy Horton  <timothy_horton@apple.com>

        Add WKWebView SPI to forcefully kill the associated Web process
        https://bugs.webkit.org/show_bug.cgi?id=133357

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _killWebContentProcess]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-05-28  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Crash when trying to decode an instance of a class inheriting from WKObject
        https://bugs.webkit.org/show_bug.cgi?id=133355

        Reviewed by Anders Carlsson.

        * Shared/Cocoa/WKObject.mm:
        (-[WKObject classForCoder]): Override this NSObject method to forward to the
        target object.
        (-[WKObject classForKeyedArchiver]): Ditto.

2014-05-28  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Improve behavior of position:fixed inside accelerated overflow-scroll
        https://bugs.webkit.org/show_bug.cgi?id=133352

        Reviewed by Tim Horton.

        Pass the correct delta down to descendant nodes.

        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateChildNodesAfterScroll):

2014-05-28  Andy Estes  <aestes@apple.com>

        [iOS] REGRESSION (r168388): DidNotHandleTapAsClick not sent when commitPotentialTap() fails
        https://bugs.webkit.org/show_bug.cgi?id=133349

        Reviewed by Benjamin Poulain.

        WebPage::commitPotentialTap() fails when a recognized single tap cannot be sent as a synthetic click event.
        We should send WebPageProxy::DidNotHandleTapAsClick in these cases.

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::commitPotentialTap):
        (WebKit::WebPage::commitPotentialTapFailed):

2014-05-28  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169423.
        https://bugs.webkit.org/show_bug.cgi?id=133348

        It makes a lot of tests crash in assert (Requested by KaL on
        #webkit).

        Reverted changeset:

        "[GTK] Use GMainLoopSource for idle and timeout sources in
        WebKit2"
        https://bugs.webkit.org/show_bug.cgi?id=130081
        http://trac.webkit.org/changeset/169423

2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use GMainLoopSource for idle and timeout sources in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130081

        Reviewed by Martin Robinson.

        * Platform/WorkQueue.h:
        * Platform/gtk/WorkQueueGtk.cpp:
        (WorkQueue::registerSocketEventHandler): Stop pretending it's
        possible to register a socket event handler for more than one
        descriptor.
        (WorkQueue::unregisterSocketEventHandler):
        (WorkQueue::dispatch):
        (WorkQueue::dispatchAfter):
        * Shared/Downloads/soup/DownloadSoup.cpp:
        (WebKit::DownloadClient::DownloadClient):
        (WebKit::DownloadClient::~DownloadClient):
        (WebKit::DownloadClient::didReceiveData):
        (WebKit::DownloadClient::handleResponse):
        (WebKit::DownloadClient::handleResponseLater):
        * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
        (WebKit::PluginInfoCache::PluginInfoCache):
        (WebKit::PluginInfoCache::~PluginInfoCache):
        (WebKit::PluginInfoCache::saveToFile):
        (WebKit::PluginInfoCache::updatePluginInfo):
        * UIProcess/Plugins/gtk/PluginInfoCache.h:
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
        (WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
        (WebKit::LayerTreeHostGtk::layerFlushTimerFired):
        (WebKit::LayerTreeHostGtk::scheduleLayerFlush):
        (WebKit::LayerTreeHostGtk::cancelPendingLayerFlush):
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:

2014-05-28  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Can't use bundle-defined classes for bundle parameters
        https://bugs.webkit.org/show_bug.cgi?id=133339

        Reviewed by Anders Carlsson.

        Ensure that bundle parameters are decoded only after the injected bundle is loaded.

        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::create): Moved the definition from the header to here, added the
        lagacy initializationUserData as a parameter, and made this function set the sandbox
        extension and load the bundle.
        (WebKit::InjectedBundle::InjectedBundle): Removed call to platformInitialize.
        * WebProcess/InjectedBundle/InjectedBundle.h:
        (WebKit::InjectedBundle::setSandboxExtension): Deleted.
        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
        (WebKit::InjectedBundle::initialize): Renamed the load function to this, and added the
        creation parameters as a parameter. Moved code to initialize the bundle paramters from
        platformInitialize to here. Changed the class passed to -decodeObjectOfClass:forKey: to
        NSObject, to allow arbitrary types in the values, and added an assertion that the
        top-level object is a dictionary.
        (WebKit::InjectedBundle::platformInitialize): Deleted.
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::initializeWebProcess): Changed to pass the legacy initialization user
        data to InjectedBundle::create() and removed code to separately set the sandbox extension
        and load the bundle, which is now done by create().

2014-05-28  Alberto Garcia  <berto@igalia.com>

        Unreviewed. Fix warning: unused parameter 'frame'

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::didFinishDocumentLoad):

2014-05-27  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fix behavior of position:sticky inside accelerated overflow-scroll
        https://bugs.webkit.org/show_bug.cgi?id=133334
        <rdar://problem/16462535>

        Reviewed by Tim Horton.

        When the scroll position changes in an accelerated overflow-scroll element, we have
        to update child nodes in the scrolling tree for position:sticky. That requires a
        more generic ability to update the scrolling tree after some arbitrary zoom or
        scroll. To do this, we need to know the current fixed position rect, rather than
        having it passed in.
        
        So make the fixed position rect available from ScrollingTree, and make it possible
        to get the current scrollPosition() from any ScrollingTreeScrollingNode.
        
        Also, implement updateLayersAfterDelegatedScroll() in ScrollingTreeOverflowScrollingNodeIOS,
        and have it update descendant layers.
        
        Finally, fix ScrollingTreeOverflowScrollingNode to use the correct rectangle for its
        constraints math, using the scroll position of the parent node if appropriate.

        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::fixedPositionRect):
        * UIProcess/Scrolling/RemoteScrollingTree.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterDelegatedScroll):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateChildNodesAfterScroll):
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect):

2014-05-27  Simon Fraser  <simon.fraser@apple.com>

        Do some renaming in the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=133333

        Reviewed by Tim Horton.
        
        Rename ScrollingTreeNode::parentScrollPositionDidChange() to updateLayersAfterAncestorChange()
        since this goes deep and to indicate that it's about layer updating.
        
        Also rename the "viewportRect" parameter to "fixedPositionRect", since on iOS
        this is the custom fixed-position rect that changes on zooming.

        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterViewportChange):

2014-05-27  Geoffrey Garen  <ggaren@apple.com>

        Some proof-reading of the WebKit2 API headerdoc
        https://bugs.webkit.org/show_bug.cgi?id=133328

        Reviewed by Anders Carlsson.

        Consistently say "item" to reference back-forward list items.

        Consistently say "webpage" instead of "page" or "web page".

        Consistently say "navigation" instead of "load".

        Plus a few fix-ups for run-on sentences, mismatched verb tense, and
        mismatched singular vs plural.

        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
        * UIProcess/API/Cocoa/WKBrowsingContextController.h:
        * UIProcess/API/Cocoa/WKBrowsingContextGroup.h:
        * UIProcess/API/Cocoa/WKFrameInfo.h:
        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigationAction.h:
        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        * UIProcess/API/Cocoa/WKProcessPool.h:
        * UIProcess/API/Cocoa/WKUIDelegate.h:
        * UIProcess/API/Cocoa/WKWebView.h:

2014-05-27  Timothy Horton  <timothy_horton@apple.com>

        [wk2] PDFPlugin snapshots are misplaced
        https://bugs.webkit.org/show_bug.cgi?id=133323

        Reviewed by Simon Fraser.

        * WebProcess/Plugins/PDF/PDFPlugin.mm:
        (WebKit::PDFPlugin::paintControlForLayerInContext):
        (WebKit::PDFPlugin::snapshot):
        Include the scroll offset in the snapshot translation,
        and use the whole document size instead of just the view size.

2014-05-27  Sam Weinig  <sam@webkit.org>

        [WebKit2] Move WebPreferences macro definitions and key names into their own files
        https://bugs.webkit.org/show_bug.cgi?id=133315

        Reviewed by Anders Carlsson.

        * CMakeLists.txt:
        * Shared/WebPreferencesDefinitions.h: Copied from Source/WebKit2/Shared/WebPreferencesStore.h.
        * Shared/WebPreferencesKeys.cpp: Copied from Source/WebKit2/Shared/WebPreferencesStore.cpp.
        * Shared/WebPreferencesKeys.h: Copied from Source/WebKit2/Shared/WebPreferencesStore.h.
        * Shared/WebPreferencesStore.cpp:
        * Shared/WebPreferencesStore.h:
        * UIProcess/WebPreferences.cpp:
        * UIProcess/WebPreferences.h:
        * UIProcess/mac/WebContextMac.mm:
        * UIProcess/mac/WebPreferencesMac.mm:
        * UIProcess/mac/WebProcessProxyMac.mm:
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        * WebProcess/WebPage/WebPage.cpp:
        * WebProcess/WebProcess.cpp:

2014-05-27  Gavin Barraclough  <baraclough@apple.com>

        Add UI process watchdog on iOS to ensure WebProcess connections close
        https://bugs.webkit.org/show_bug.cgi?id=133200
        <rdar://problem/16997983>

        Mountain Lion build fix

        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::ConnectionTerminationWatchdog::watchdogTimerFired):

2014-05-27  Gavin Barraclough  <baraclough@apple.com>

        importance_assertion -> denap_assertion
        https://bugs.webkit.org/show_bug.cgi?id=133294

        iOS build fix

        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::Connection::open):

2014-05-27  Gavin Barraclough  <baraclough@apple.com>

        Add UI process watchdog on iOS to ensure WebProcess connections close
        https://bugs.webkit.org/show_bug.cgi?id=133200
        <rdar://problem/16997983>

        Reviewed by Darin Adler.

        When the WebProcessProxy wants to disconnect from a WebContent process it just drops the connection,
        and hopes the connection closes. There is a watchdog thread in the ChildProcess to try to ensure this
        happens.

        On iOS the process may not be runnable at the time, preventing termination. Instead add a watchdog in
        the UI process to make the process runnable, and to terminate if it doesn't quit in a timely fashion.

        * Platform/IPC/Connection.h:
            - added terminateSoon.
        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
            - take an assertion to make the process runnable, and start a watchdog timer.
        (IPC::ConnectionTerminationWatchdog::watchdogTimerFired):
            - if the process hasn't quit by the timer the watchdog fires, kill it.
        (IPC::Connection::terminateSoon):
            - create a ConnectionTerminationWatchdog.
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::removeWebPage):
            - when disconnecting from a process, first tell it to terminateSoon.

2014-05-26  Gavin Barraclough  <barraclough@apple.com>

        importance_assertion -> denap_assertion
        https://bugs.webkit.org/show_bug.cgi?id=133294

        Reviewed by Sam Weinig.

        Update in accordance with API change. The importance assertion is used on
        Mavericks & newer to ensure the WebContent process wakes from AppNap.

        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::Connection::open):
            - MACH_PORT_IMPORTANCE_RECEIVER -> MACH_PORT_DENAP_RECEIVER
        * Platform/IPC/mac/ImportanceAssertion.h:
        (IPC::ImportanceAssertion::ImportanceAssertion):
        (IPC::ImportanceAssertion::~ImportanceAssertion):
            - proc_importance_assertion -> proc_denap_assertion

2014-05-27  Jessie Berlin  <jberlin@apple.com>

        Revert r169362 since it broke the ML build.

        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::ConnectionTerminationWatchdog::createConnectionTerminationWatchdog): Deleted.
        (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog): Deleted.
        (IPC::ConnectionTerminationWatchdog::watchdogTimerFired): Deleted.
        (IPC::Connection::terminateSoon): Deleted.
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::removeWebPage):

2014-05-27  Jon Lee  <jonlee@apple.com>

        Update ENABLE(MEDIA_SOURCE) on Mac
        https://bugs.webkit.org/show_bug.cgi?id=133141

        Reviewed by Darin Adler.

        * Configurations/FeatureDefines.xcconfig:

2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>

        Remove BLOB guards
        https://bugs.webkit.org/show_bug.cgi?id=132863

        Reviewed by Csaba Osztrogonác.

        * Configurations/FeatureDefines.xcconfig:
        * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
        * NetworkProcess/FileAPI/NetworkBlobRegistry.h:
        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::didClose):
        (WebKit::NetworkConnectionToWebProcess::blobSize):
        * NetworkProcess/NetworkConnectionToWebProcess.h:
        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
        * NetworkProcess/NetworkProcessPlatformStrategies.cpp:
        * NetworkProcess/NetworkProcessPlatformStrategies.h:
        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::NetworkResourceLoader):
        * WebProcess/FileAPI/BlobRegistryProxy.cpp:
        * WebProcess/FileAPI/BlobRegistryProxy.h:
        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::canHandleRequest):

2014-05-26  Tim Horton  <timothy_horton@apple.com>

        [wk2] RemoteLayerBackingStore front buffers should be purgeable when unparented
        https://bugs.webkit.org/show_bug.cgi?id=133020
        <rdar://problem/16521736>

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::display):
        Let the context know whenever a RemoteLayerBackingStore is displayed, so that
        RemoteLayerBackingStoreCollection can (if needed) note that the backing store
        is active once again (because we only display parented backing store).

        (WebKit::RemoteLayerBackingStore::setBufferVolatility):
        Ensure that we never have live contexts attached to any buffers when
        marking them volatile, because checking isInUse() with live contexts is futile.

        * Shared/mac/RemoteLayerBackingStoreCollection.h:
        * Shared/mac/RemoteLayerBackingStoreCollection.mm:
        (WebKit::RemoteLayerBackingStoreCollection::RemoteLayerBackingStoreCollection):
        (WebKit::RemoteLayerBackingStoreCollection::willFlushLayers):
        (WebKit::RemoteLayerBackingStoreCollection::willCommitLayerTree):
        (WebKit::RemoteLayerBackingStoreCollection::didFlushLayers):
        (WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDestroyed):
        (WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDisplayed):
        (WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatileImmediately):
        (WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):
        (WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable):
        (WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):
        (WebKit::RemoteLayerBackingStoreCollection::scheduleVolatilityTimer):
        (WebKit::RemoteLayerBackingStoreCollection::purgeabilityTimerFired): Deleted.
        (WebKit::RemoteLayerBackingStoreCollection::schedulePurgeabilityTimer): Deleted.
        Rename purgeable->volatile for accuracy.
        Keep track of two sets of backing store: those which are active/parented, and
        those which are not. Backing store is moved to the inactive set after building
        the transaction in which its owning layer is unparented.
        When backing store is unparented, try to mark it volatile immediately. Also,
        mark the backing store property as dirty on the owning layer so that when
        said layer is reparented, we encode the backing store in the commit that reparents it,
        as the UI process will throw away its reference to the backing store when
        the layer is unparented. Mark the front buffers of unparented layers as volatile,
        in addition to the others.

        * Shared/mac/RemoteLayerTreeTransaction.h:
        (WebKit::RemoteLayerTreeTransaction::layerIDsWithNewlyUnreachableBackingStore):
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::encode):
        (WebKit::RemoteLayerTreeTransaction::decode):
        (WebKit::RemoteLayerTreeTransaction::setLayerIDsWithNewlyUnreachableBackingStore):
        Include the list of layers (by ID) with backing store which just became unreachable in the transaction.

        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::updateLayerTree):
        Clear the contents of layers which now have unreachable backing store.
        Otherwise, the UI process would hold a 'use' on the IOSurface, and prevent
        the Web process from marking it volatile.

        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::backingStoreWillBeDisplayed):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        Give RemoteLayerBackingStoreCollection a shot at the RemoteLayerTreeTransaction,
        so that it can fill in layerIDsWithNewlyUnreachableBackingStore.
        Also, let it know when the flush begins and ends, so that it can keep track
        of which layers were reached in the flush.

2014-05-26  Shivakumar JM  <shiva.jm@samsung.com>

        [EFL][WK2] Fix EWK2BackForwardListTest test fails.
        https://bugs.webkit.org/show_bug.cgi?id=133171

        Reviewed by Gyuyoung Kim.

        Use local test html pages instead of EWK2UnitTestServer, call ewk_view_url_set() to load test html pages.
        Since even after setting no_proxy="localhost,127.0.0.1", still test server was unable to load the test 
        html pages for ewk2_back_forward_list tests, so changed to use local html pages.

        * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:
        (TEST_F):

2014-05-26  Shivakumar JM  <shiva.jm@samsung.com>

        [EFL][WK2] Fix code style check errors in EFL API tests.
        https://bugs.webkit.org/show_bug.cgi?id=133170

        Reviewed by Gyuyoung Kim.

        Omit int when using unsigned modifier, as per coding style rules.

        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
        (EWK2UnitTest::EWK2UnitTestBase::SetUp):
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
        (EWK2UnitTest::EWK2UnitTestEnvironment::defaultWidth):
        (EWK2UnitTest::EWK2UnitTestEnvironment::defaultHeight):

2014-05-22  Gavin Barraclough  <baraclough@apple.com>

        Add UI process watchdog on iOS to ensure WebProcess connections close
        https://bugs.webkit.org/show_bug.cgi?id=133200
        <rdar://problem/16997983>

        Reviewed by Darin Adler.

        When the WebProcessProxy wants to disconnect from a WebContent process it just drops the connection,
        and hopes the connection closes. There is a watchdog thread in the ChildProcess to try to ensure this
        happens.

        On iOS the process may not be runnable at the time, preventing termination. Instead add a watchdog in
        the UI process to make the process runnable, and to terminate if it doesn't quit in a timely fashion.

        * Platform/IPC/Connection.h:
            - added terminateSoon.
        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
            - take an assertion to make the process runnable, and start a watchdog timer.
        (IPC::ConnectionTerminationWatchdog::watchdogTimerFired):
            - if the process hasn't quit by the timer the watchdog fires, kill it.
        (IPC::Connection::terminateSoon):
            - create a ConnectionTerminationWatchdog.
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::removeWebPage):
            - when disconnecting from a process, first tell it to terminateSoon.

2014-05-26  Sam Weinig  <sam@webkit.org>

        [WebKit2] Add better default preferences while keeping backward compatibility for the C-SPI
        https://bugs.webkit.org/show_bug.cgi?id=133289

        Reviewed by Anders Carlsson.

        * Shared/WebPreferencesStore.h:
        Change a few defaults:
        - PluginsEnabled -> false
        - JavaEnabled -> false
        - JavaEnabledForLocalFiles -> false
        - StorageBlockingPolicy -> BlockThirdPartyStorage

        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesCreate):
        (WKPreferencesCreateWithIdentifier):
        * UIProcess/WebPageGroup.cpp:
        (WebKit::WebPageGroup::WebPageGroup):
        Switch to using WebPreferences::createWithLegacyDefaults().

        * UIProcess/WebPreferences.cpp:
        (WebKit::WebPreferences::create):
        (WebKit::WebPreferences::createWithLegacyDefaults):
        * UIProcess/WebPreferences.h:
        Move create functions to the cpp file and add createWithLegacyDefaults() which keeps
        the old defaults;

        * UIProcess/API/C/WKPreferencesRef.h:
        Fix the comment.

        * UIProcess/API/Cocoa/WKPreferences.h:
        Update the comment to reflect the new defaults.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):
        Unconditionally set setShouldDispatchJavaScriptWindowOnErrorEvents() to true. This setting only
        exists for legacy WebKit.

2014-05-26  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Rewrite WK_DESIGNATED_INITIALIZER in installed headers
        https://bugs.webkit.org/show_bug.cgi?id=133290

        Reviewed by Anders Carlsson.

        * Shared/API/Cocoa/WKFoundation.h: When WK_API_AVAILABILITY_ENABLED is defined, don’t
        provide definitions of WK_DESIGNATED_INITIALIZER and WK_UNAVAILABLE, since those macros will
        be rewritten out of the headers. When WK_API_AVAILABILITY_ENABLED isn’t defined, provide
        definitions of the other two macros as appropriate for the target OS.
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Removed WK_DESIGNATED_INITIALIZER from a
        category method declaration.
        * UIProcess/API/Cocoa/WKWebView.h: Mark the superclass designated initializer
        -initWithCoder: as unavailable.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithCoder:]): Override this designated initializer of the superclass by
        returning nil.
        * mac/rewrite-availability-macros.sh: Rewrite WK_DESIGNATED_INITIALIZER to
        NS_DESIGNATED_INITIALIZER and WK_UNAVAILABLE to NS_UNAVAILABLE. Also make sure to process
        all headers if the script has changed since the last time it was run.

2014-05-26  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169122.
        https://bugs.webkit.org/show_bug.cgi?id=133288

        Broke CJK font fallback (Requested by ap on #webkit).

        Reverted changeset:

        "[Mac] WebProcess doesn't follow localization of UI process
        when run as a service"
        https://bugs.webkit.org/show_bug.cgi?id=133126
        http://trac.webkit.org/changeset/169122

2014-05-26  Anders Carlsson  <andersca@apple.com>

        Convert a couple of loops over to range-based for
        https://bugs.webkit.org/show_bug.cgi?id=133287

        Reviewed by Simon Fraser.

        * UIProcess/Plugins/PluginInfoStore.cpp:
        (WebKit::PluginInfoStore::findPluginForMIMEType):
        (WebKit::PluginInfoStore::findPluginForExtension):
        (WebKit::PluginInfoStore::infoForPluginWithPath):
        * UIProcess/Plugins/mac/PluginProcessManagerMac.mm:
        (WebKit::PluginProcessManager::setProcessSuppressionEnabled):

2014-05-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] WebProcess leaked when closing pages with network process enabled
        https://bugs.webkit.org/show_bug.cgi?id=129684

        Reviewed by Anders Carlsson.

        The problem is that the web process is not notified when the UI
        process closes the connection, because when close() is called on
        the socket by the UI process, the socket is shared by another web
        process launched later, preventing the connection from being
        shut down. We need to set the CLOEXEC flag on the sockets file
        descriptor to make sure they are not exposed to other processes.

        * Platform/IPC/Connection.h: Add ConnectionOptions parameter to
        createPlatformConnection() with a default value compatible with
        existing callers.
        * Platform/IPC/unix/ConnectionUnix.cpp:
        (IPC::Connection::createPlatformConnection): Set the CLOEXEC flag
        on the client and server socket file descriptors depending on the
        options passed.
        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
        (WebKit::ProcessLauncher::launchProcess): Use
        IPC::Connection::createPlatformConnection() instead of
        socketpair() directly, setting the CLOEXEC flag on the server
        before spawning the new process and on the client right after
        spawning the new process.

2014-05-25  Anders Carlsson  <andersca@apple.com>

        Initialize WKWebViewConfiguration ivars lazily
        https://bugs.webkit.org/show_bug.cgi?id=133270
        <rdar://problem/17027606>

        Reviewed by Sam Weinig.

        Create a LazyInitialized class template and use it to lazily initialize WKWebViewConfiguration properties.

        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (LazyInitialized::get):
        Initialize m_value with the given function if it hasn't been initialized already.

        (LazyInitialized::set):
        Update m_value and set m_isInitialized to true.

        (LazyInitialized::peek):
        Return m_value without initializing it.

        (-[WKWebViewConfiguration description]):
        Use getters so we'll initialize variables if needed.

        (-[WKWebViewConfiguration copyWithZone:]):
        Ditto.

        (-[WKWebViewConfiguration processPool]):
        (-[WKWebViewConfiguration setProcessPool:]):
        (-[WKWebViewConfiguration preferences]):
        (-[WKWebViewConfiguration setPreferences:]):
        (-[WKWebViewConfiguration userContentController]):
        (-[WKWebViewConfiguration setUserContentController:]):
        (-[WKWebViewConfiguration _visitedLinkProvider]):
        (-[WKWebViewConfiguration _setVisitedLinkProvider:]):
        (-[WKWebViewConfiguration _websiteDataStore]):
        (-[WKWebViewConfiguration _setWebsiteDataStore:]):
        (-[WKWebViewConfiguration _contentProviderRegistry]):
        (-[WKWebViewConfiguration _setContentProviderRegistry:]):
        Pass initialization code to all getters.

        (-[WKWebViewConfiguration _validate]):
        Use getters.

        (-[WKWebViewConfiguration init]): Deleted.

2014-05-26  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        Remove WebKit2 framework from generate-forwarding-headers.pl
        https://bugs.webkit.org/show_bug.cgi?id=133214

        Since renaming WebKit2.framework to WebKit.framework is done and all WebKit2/*.h includes
        were renamed to WebKit/*.h, generating forwarding headers for WebKit2/*.h framework style
        headers is not necessary anymore.

        Reviewed by Darin Adler.

        * Scripts/generate-forwarding-headers.pl:

2014-05-26  Zan Dobersek  <zdobersek@igalia.com>

        WebPage::setComposition(), WebPageProxy::didFindStringMatches() should take Vector parameters by const reference
        https://bugs.webkit.org/show_bug.cgi?id=133264

        Reviewed by Darin Adler.

        Taking the Vector parameters in the two methods (invoked through the IPC message handling)
        by value causes unnecessary copies. The methods don't modify the objects and don't want
        or need fresh copies, hence they should take in const references to Vector objects.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didFindStringMatches):
        * UIProcess/WebPageProxy.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::setComposition):
        * WebProcess/WebPage/WebPage.h:

2014-05-25  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Fix some state reset on crash on the WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=133039

        Reviewed by Sam Weinig.

        This is in no way complete, but this should reduce the undefined states on crash.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _processDidExit]):
        If the view is animating, nuke the resize animation. That should be invisible to the user
        because the background color is reset to white below.

        Reset the contentView frame and scrollview state.

        Reset the runtime states. We do not strictly need to reset _needsResetViewStateAfterCommitLoadForMainFrame,
        _delayUpdateVisibleContentRects and _hadDelayedUpdateVisibleContentRects but it seems better to have
        a clean slate.

        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        (-[WKWebView _endAnimatedResize]):
        We could have crashes during rotation. To simplify the reset code, the animated resize code
        no longer change any state when WKWebView is using a custom content view.

        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::processDidExit):
        Send a _processDidExit on the WKWebView too.

2014-05-25  Anders Carlsson  <andersca@apple.com>

        Use the right paths for website data
        https://bugs.webkit.org/show_bug.cgi?id=133267
        <rdar://problem/17027698>

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _initWithConfiguration:]):
        Get the path of the absolute URL.

        * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
        (WebKit::LocalStorageDatabaseTracker::databasePath):
        Fix spelling error.

        * WebProcess/Network/NetworkProcessConnection.cpp:
        (WebKit::NetworkProcessConnection::didCacheResource):
        Ditto.

2014-05-25  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Use ScrollView's scrollOffset as the unobscuredContentRect
        https://bugs.webkit.org/show_bug.cgi?id=133262

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):
        (WebKit::WebPage::viewportConfigurationChanged):
        (WebKit::WebPage::updateVisibleContentRects):

2014-05-25  Sam Weinig  <sam@webkit.org>

        Build fix 2.

        * UIProcess/API/Cocoa/WKPreferences.h:

2014-05-25  Sam Weinig  <sam@webkit.org>

        Fix build.

        * UIProcess/API/Cocoa/WKPreferences.h:

2014-05-24  Sam Weinig  <sam@webkit.org>

        [WebKit2] Rework WebPreferencesStore to allow easier overriding of defaults
        https://bugs.webkit.org/show_bug.cgi?id=133258

        Reviewed by Anders Carlsson.

        To support changing default values of preferences based on which API you are using (either
        the legacy C-SPI or the Objective-C API), overhaul the WebPreferencesStore to use a single
        HashMap of String -> Value (where Value is new type that can be a String, bool, uint32_t or double)
        instead of four HashMaps.  This allows us to use two of these new HashMaps, one for the actual
        set values, and one for overridden defaults. This new Value class will also allow easier incremental
        updating of preferences in the future.
        
        Other notable changes:
        - Removed Float kind of preferences. There were none.
        - Move StorageBlockingPolicy preference to the correct group, it's a uint32_t, not bool.

        * Shared/WebPreferencesStore.cpp:
        * Shared/WebPreferencesStore.h:

2014-05-25  David Kilzer  <ddkilzer@apple.com>

        Add type-checked casts for TransformOperations
        <http://webkit.org/b/133217>

        Reviewed by Simon Fraser.

        * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
        (IPC::ArgumentCoder<TransformOperations>::encode):
        - Switch to type-checked casts.

2014-05-25  David Kilzer  <ddkilzer@apple.com>

        Use type-checking FilterOperation casts in CoordinatedGraphicsArgumentCoders.cpp
        <http://webkit.org/b/133203>

        Reviewed by Simon Fraser.

        * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
        (IPC::ArgumentCoder<WebCore::FilterOperations>::encode):
        - Replace static_cast<>() operators with type-checking
          FilterOperation casts.
        - Replace 'default' statement with 'case' statements so new
          filters added later require an explicit decision to be made.
        (IPC::ArgumentCoder<WebCore::FilterOperations>::decode):
        - Replace 'default' statement with 'case' statements so new
          filters added later require an explicit decision to be made.

2014-05-24  Jon Honeycutt  <jhoneycutt@apple.com>

        Potential null dereference in
        WebFrameLoaderClient::dispatchDidFailProvisionalLoad()
        <https://bugs.webkit.org/show_bug.cgi?id=133193>

        WebFrameLoaderClient::dispatchDidFailProvisionalLoad() calls the
        InjectedBundleLoaderClient's didFailProvisionalLoadWithErrorForFrame()
        before sending a message to the UI process that a provisional load has
        failed. It's possible for the provisional document loader to become
        null while calling into the InjectedBundleLoaderClient (as is the case
        with the WebKitTestRunner's injected bundle), leading to a null
        dereference when trying to send the DidFailProvisionalLoadForFrame
        message.

        Reviewed by Darin Adler.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
        Get the navigation ID before calling into the injected bundle.

2014-05-23  Simon Fraser  <simon.fraser@apple.com>

        Rename ScrollingTreeScrollingNode's m_scrollPosition to make it clear that it's the value committed from the state tree
        https://bugs.webkit.org/show_bug.cgi?id=133254

        Reviewed by Tim Horton.
        
        Override scrollPosition() on ScrollingTreeOverflowScrollingNodeIOS.

        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollPosition):

2014-05-24  Chris Fleizach  <cfleizach@apple.com>

        AX: fix coordinate mapping for iOS accessibility
        https://bugs.webkit.org/show_bug.cgi?id=133188

        Reviewed by Sam Weinig.

        Add in accessibility conversion methods that will check if the methods are present 
        (if accessibility is not on, they won't be)
        and use those to convert points into the right coordinate space that VoiceOver is expecting.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::accessibilityScreenToRootView):
        (WebKit::WebPageProxy::rootViewToAccessibilityScreen):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::accessibilityScreenToRootView):
        (WebKit::PageClientImpl::rootViewToAccessibilityScreen):
        * UIProcess/mac/PageClientImpl.h:
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::accessibilityScreenToRootView):
        (WebKit::WebChromeClient::rootViewToAccessibilityScreen):
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::accessibilityScreenToRootView):
        (WebKit::WebPage::rootViewToAccessibilityScreen):
        * WebProcess/WebPage/WebPage.h:

2014-05-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r165841): Messages sent before the child process is launched are never sent after r165841
        https://bugs.webkit.org/show_bug.cgi?id=131675

        Reviewed by Anders Carlsson.

        Since r165841 the connection is opened after the pending messages
        are sent, because connectionWillOpen might send messages that we
        want to happen after the ones already pending. The problem is that
        Connection::canSendOutgoingMessages() returns false when
        connection hasn't been opened. We should ensure no messages are
        sent by connectionWillOpen.

        * Shared/ChildProcessProxy.cpp:
        (WebKit::ChildProcessProxy::didFinishLaunching): Open the
        connection before sending pending messages.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::connectionWillOpen): Do not call
        VisitedLinkProvider::addProcess() here because it tries to send a
        message to the web process, but the connection hasn't be opened yet.
        (WebKit::WebPageProxy::processDidFinishLaunching): Call
        VisitedLinkProvider::addProcess() here instead.
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::didFinishLaunching): Call
        WebPageProxy::processDidFinishLaunching() for every web page.

2014-05-23  Ian Henderson  <ianh@apple.com>

        REGRESSION: Rubberbanding out jumps to top left corner on google.com
        https://bugs.webkit.org/show_bug.cgi?id=133253
        <rdar://problem/17025664>

        Reviewed by Benjamin Poulain.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
        Avoid deceleration during zooming to work around a UIKit bug.

2014-05-23  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Avoid updating the view from the viewport configuration unnecessarily
        https://bugs.webkit.org/show_bug.cgi?id=133255
        <rdar://problem/16890926>

        Reviewed by Simon Fraser.

        All the updates were mostly harmless since they are pretty cheap, but they can be
        very annoying for debugging.

        This patch skips viewportUpdates in the trivial cases.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _setMinimumLayoutSizeOverride:]):
        (-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::mainFrameDidLayout):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::viewportPropertiesDidChange):

2014-05-23  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] The page scale factor randomly resets to initial scale when editing
        https://bugs.webkit.org/show_bug.cgi?id=133244

        Reviewed by Enrica Casucci.

        We were never telling the WebProcess that zoom is used triggered. As a result, the ViewportConfiguration was free
        to reset the scale whenever it felt like it. The fix is to call willStartUserTriggeredZoom before changing the scale.

        This patch also split _willStartUserTriggeredScrollingOrZooming from willStartUserTriggeredZoom
        and rename it to willStartPanOrPinchGesture. This is just a tiny cleanup since the only thing left in _willStartUserTriggeredScrollingOrZooming
        was gesture related.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _zoomToFocusRect:WebCore::selectionRect:WebCore::fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
        (-[WKWebView scrollViewWillBeginZooming:withView:]):
        (-[WKWebView scrollViewWillBeginDragging:]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView scrollViewWillBeginDragging:]):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView willStartUserTriggeredZoom]):
        (-[WKContentView willStartUserTriggeredScroll]): Deleted.
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView willStartPanOrPinchGesture]):
        (-[WKContentView _willStartUserTriggeredScrollingOrZooming]): Deleted.

2014-05-23  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (iOS WebKit2): requestAnimationFrame fires more than once between layer tree commits
        https://bugs.webkit.org/show_bug.cgi?id=132794
        <rdar://problem/16877909>

        Reviewed by Simon Fraser.

        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::createDisplayRefreshMonitor):
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::graphicsLayerFactory):
        (WebKit::DrawingArea::createDisplayRefreshMonitor):
        Plumb the DisplayRefreshMonitor request through to the DrawingArea.
        RemoteLayerTreeDrawingArea will implement and return a RemoteLayerTreeDisplayRefreshMonitor.

        * WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h: Added.
        (WebKit::RemoteLayerTreeDisplayRefreshMonitor::create):
        * WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.mm: Added.
        (WebKit::RemoteLayerTreeDisplayRefreshMonitor::RemoteLayerTreeDisplayRefreshMonitor):
        (WebKit::RemoteLayerTreeDisplayRefreshMonitor::~RemoteLayerTreeDisplayRefreshMonitor):
        (WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):
        When requesting a display refresh callback, schedule a layer commit.
        It may end up being empty, but will still call us back with a didUpdate,
        upon which we'll fire the callback.

        (WebKit::RemoteLayerTreeDisplayRefreshMonitor::didUpdateLayers):

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::createDisplayRefreshMonitor):
        (WebKit::RemoteLayerTreeDrawingArea::willDestroyDisplayRefreshMonitor):
        Keep track of the set of DisplayRefreshMonitors.

        (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
        Fire requestAnimationFrame callbacks once the UI process commits the new layer tree.

2014-05-23  Jeremy Jones  <jeremyj@apple.com>

        Hide fullscreen immediately when switching tabs.
        https://bugs.webkit.org/show_bug.cgi?id=133239

        Reviewed by Eric Carlson.

        Renamed a function to better describe it's new functionality.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::viewStateDidChange):
        now calls: requestHideAndExitFullscreen

2014-05-23  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): Keyboard disappears/appears automatically between text boxes.
        https://bugs.webkit.org/show_bug.cgi?id=133243
        <rdar://problem/16761913>

        Reviewed by Benjamin Poulain.

        We need to ensure that when an element loses focus and another one gets it,
        this is handled in one single message in the UI process to avoid seeing
        the keyboard animating in and out.
        This is accomplished by always postponing the blur notification until all events
        have been processed.
        If a new node is focused before the delayed blur notification is sent to the UI
        process, the message we send includes both blur and focus notification. In this case,
        the postponed blur notification is not sent.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::startAssistingNode):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
        (-[WKContentView _startAssistingNode:userIsInteracting:userObject:]): Deleted.
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::startAssistingNode):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::elementDidFocus):
        (WebKit::WebPage::elementDidBlur):

2014-05-23  Anders Carlsson  <andersca@apple.com>

        Remove an assertion.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::loadRequest):

2014-05-23  Tim Horton  <timothy_horton@apple.com>

        [iOS] WKPDFView should have a page indicator
        https://bugs.webkit.org/show_bug.cgi?id=133109
        <rdar://problem/16383003>

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _setHasCustomContentView:loadedMIMEType:WTF::]):
        (-[WKWebView _setObscuredInsets:]):
        Forward obscured insets changes to the custom content view.

        (-[WKWebView _updateScrollViewBackground]):
        If we have a custom content view, use its background instead of the
        (likely nonexistent) page's when updaing the scroll view's background color.

        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/Cocoa/WKWebViewContentProvider.h:
        * UIProcess/Cocoa/WKWebViewContentProviderDelegate.h: Added.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _setInsetForOverlaidAccessoryViews:]):
        Add SPI for clients to inform us about potential overlaid accessory views
        which should be taken into account e.g. for positioning the page indicator.

        Add a view that sits fixed on top of the WKWebView, ignores interaction,
        but provides the WKWebViewContentProvider a place to install views
        that don't scroll along with the content.

        * UIProcess/ios/WKPDFPageNumberIndicator.h: Added.
        * UIProcess/ios/WKPDFPageNumberIndicator.mm: Added.
        (-[WKPDFPageNumberIndicator initWithFrame:]):
        (-[WKPDFPageNumberIndicator dealloc]):
        (-[WKPDFPageNumberIndicator setCurrentPageNumber:]):
        (-[WKPDFPageNumberIndicator setPageCount:]):
        (-[WKPDFPageNumberIndicator show]):
        (-[WKPDFPageNumberIndicator hide:]):
        (-[WKPDFPageNumberIndicator moveToPoint:animated:]):
        (-[WKPDFPageNumberIndicator sizeThatFits:]):
        (-[WKPDFPageNumberIndicator _updateLabel]):
        (-[WKPDFPageNumberIndicator _makeRoundedCorners]):
        Add a page number indicator.

        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView dealloc]):
        (-[WKPDFView web_setScrollView:]):
        (-[WKPDFView _revalidateViews]):
        (-[WKPDFView _offsetForPageNumberIndicator]):
        (-[WKPDFView _updatePageNumberIndicator]):
        (-[WKPDFView web_setObscuredInsets:]):
        (-[WKPDFView web_setInsetForOverlaidAccessoryViews:]):
        (-[WKPDFView web_setFixedOverlayView:]):
        (-[WKPDFView _computePageAndDocumentFrames]):
        Update the page number indicator when the topmost visible page changes.
        Move the page number indicator around when the obscured insets change.

        * WebKit2.xcodeproj/project.pbxproj:

2014-05-23  Anders Carlsson  <andersca@apple.com>

        Fix test failures on the bot.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (websiteDataDirectoryURL):
        If we have no bundle identifier, use the process name.

2014-05-23  Enrica Casucci  <enrica@apple.com>

        REGRESSION (iOS WebKit2): Autocorrection is not accurate when changing selection.
        https://bugs.webkit.org/show_bug.cgi?id=133237
        <rdar://problem/16655776>

        Reviewed by Ryosuke Niwa.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView beginSelectionChange]):
        (-[WKContentView endSelectionChange]):

        When the selection is changed with a gesture in an editable element,
        we must notify the keyboard to make sure the autocorrection engine 
        updates its typing context. WKContentView must implement
        beginSelectionChange and endSelectionChange to call into
        the keyboard layer.

2014-05-22  Brent Fulgham  <bfulgham@apple.com>

        [iOS] WK2: Provide implementation for windowFrame
        https://bugs.webkit.org/show_bug.cgi?id=133205
        <rdar://problem/16894890>

        Reviewed by Benjamin Poulain.

        * UIProcess/Cocoa/UIDelegate.h:
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::UIClient::windowFrame): Added.
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::convertToUserSpace): Added.

2014-05-20  Anders Carlsson  <andersca@apple.com>

        Use a per app directory structure for website data
        https://bugs.webkit.org/show_bug.cgi?id=133125
        <rdar://problem/16830143>

        Reviewed by Dan Bernstein, Sam Weinig and Tim Horton.

        Put website data in subdirectories of ~/Library/WebKit/<bundle ID>/WebsiteData.
        We use "LocalStorage", "WebSQL", and "IndexedDB" subdirectories.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (websiteDataDirectoryURL):
        (-[WKProcessPool _initWithConfiguration:]):

2014-05-23  Dan Bernstein  <mitz@apple.com>

        [Cocoa] WKNavigationResponsePrivate.h is internal
        https://bugs.webkit.org/show_bug.cgi?id=133218

        Reviewed by Dean Jackson.

        * WebKit2.xcodeproj/project.pbxproj: Promote WKNavigationResponsePrivate.h to private.

2014-05-23  Carlos Garcia Campos  <cgarcia@igalia.com>

        [UNIX] Reorganize and cleanup main functions of GTK and EFL ports
        https://bugs.webkit.org/show_bug.cgi?id=131024

        Reviewed by Gustavo Noronha Silva.

        Move main function implementation files to <process-dir>/EntryPoint/unix/<ProcessName>Main.cpp
        files that are now shared by GTK and EFL ports. These files call a
        main method that wraps a new method ChildProcessMain that contains
        the common code and uses a helper class for the platform specific
        code. GTK+ and EFL ports implement that helper class for every process type.

        * NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp: Renamed from Source/WebKit2/efl/MainEfl.cpp.
        (main):
        * NetworkProcess/efl/NetworkProcessMainEfl.cpp: Renamed from Source/WebKit2/unix/NetworkMainUnix.cpp.
        (WebKit::NetworkProcessMainUnix):
        * NetworkProcess/gtk/NetworkProcessMainGtk.cpp: Renamed from Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp.
        (WebKit::NetworkProcessMainUnix):
        * NetworkProcess/unix/NetworkProcessMainUnix.h:
        * PlatformEfl.cmake:
        * PlatformGTK.cmake:
        * PluginProcess/EntryPoint/unix/PluginProcessMain.cpp: Renamed from Source/WebKit2/unix/PluginMainUnix.cpp.
        (main):
        * PluginProcess/unix/PluginProcessMainUnix.cpp:
        (WebKit::webkitXError):
        (WebKit::PluginProcessMainUnix):
        * PluginProcess/unix/PluginProcessMainUnix.h:
        * Shared/unix/ChildProcessMain.cpp: Copied from Source/WebKit2/WebProcess/efl/WebProcessMainEfl.h.
        (WebKit::ChildProcessMainBase::parseCommandLine):
        * Shared/unix/ChildProcessMain.h: Renamed from Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.h.
        (WebKit::ChildProcessMainBase::platformInitialize):
        (WebKit::ChildProcessMainBase::platformFinalize):
        (WebKit::ChildProcessMainBase::initializationParameters):
        (WebKit::ChildProcessMain):
        * WebProcess/EntryPoint/unix/WebProcessMain.cpp: Renamed from Source/WebKit2/gtk/MainGtk.cpp.
        (main):
        * WebProcess/efl/WebProcessMainEfl.cpp:
        (WebKit::WebProcessMainUnix):
        (dummyExtensionErrorHandler): Deleted.
        * WebProcess/gtk/WebProcessMainGtk.cpp:
        (WebKit::WebProcessMainUnix):
        * WebProcess/unix/WebProcessMainUnix.h: Renamed from Source/WebKit2/WebProcess/efl/WebProcessMainEfl.h.

2014-05-22  Zan Dobersek  <zdobersek@igalia.com>

        Have the decoded element in VectorArgumentCoder::decode() moved into Vector::append()
        https://bugs.webkit.org/show_bug.cgi?id=133082

        Reviewed by Andreas Kling.

        * Platform/IPC/ArgumentCoders.h: Move the decoded element into the Vector::append() call.
        This enforces a move instead of a copy if the decoded element's type is move-constructible.

2014-05-22  Zan Dobersek  <zdobersek@igalia.com>

        Move the passed-in Vector<Attachment> in MessageDecoder constructor down into ArgumentDecoder
        https://bugs.webkit.org/show_bug.cgi?id=133080

        Reviewed by Andreas Kling.

        * Platform/IPC/MessageDecoder.cpp:
        (IPC::MessageDecoder::MessageDecoder): The Vector<Attachment> object was passed in by value.
        Move it into the ArgumentDecoder constructor as it is not used elsewhere in this constructor
        and produces a copy otherwise.

2014-05-22  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Add support for minimal-ui viewports
        https://bugs.webkit.org/show_bug.cgi?id=133162

        Reviewed by Simon Fraser.

        In the WebKit2 layers, we have two parts to minimal-ui.
        -In WebPage, we need to get the values from the UIProcess and setup the ViewportConfiguration.
         Another part is freezing the state on page load.
        -In the UIProcess, we need to get the right information for layout and styling, and we need to tell
         the UI clients about minimal-ui changes.

        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _setUsesMinimalUI:]):
        (-[WKWebView _usesMinimalUI]):
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _minimumLayoutSizeOverride]):
        (-[WKWebView _setMinimumLayoutSizeOverride:]):
        (-[WKWebView _minimumLayoutSizeOverrideForMinimalUI]):
        (-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
        (-[WKWebView _largestUnobscuredSizeOverride]):
        (-[WKWebView _setMaximumUnobscuredSizeOverride:]):
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        (setViewportConfigurationMinimumLayoutSize): Deleted.
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::setUsesMinimalUI):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
        (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSizeForMinimalUI):
        (WebKit::WebPageProxy::setMaximumUnobscuredSize):
        (WebKit::WebPageProxy::setUsesMinimalUI):
        (WebKit::WebPageProxy::setMinimumLayoutSizeForMinimalUI): Deleted.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::didCommitLoad):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setViewportConfigurationMinimumLayoutSizeForMinimalUI):
        (WebKit::WebPage::setMaximumUnobscuredSize):
        (WebKit::WebPage::willFlushLayers):
        (WebKit::WebPage::dynamicViewportSizeUpdate):
        (WebKit::WebPage::viewportConfigurationChanged):
        (WebKit::WebPage::updateViewportSizeForCSSViewportUnits):
        (WebKit::WebPage::setMinimumLayoutSizeForMinimalUI): Deleted.
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):

2014-05-22  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Reset the special action-target of WKSyntheticClickTapGestureRecognizer on destruction
        https://bugs.webkit.org/show_bug.cgi?id=133165
        <rdar://problem/16283914>

        Reviewed by Andy Estes.

        It is unclear why, but the WKSyntheticClickTapGestureRecognizer sometimes survives its own view
        and is reset after WKContentView was destructed.
        This patch cleans up the target-action on destruction to avoid accessing a destructed object.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView cleanupInteraction]):

2014-05-22  Benjamin Poulain  <bpoulain@apple.com>

        Do not force a layout when changing the FixedLayoutSize in WebPage
        https://bugs.webkit.org/show_bug.cgi?id=133167

        Reviewed by Andreas Kling.

        WebPage::setFixedLayoutSize was forcing a layout immediately after changing the layout size on FrameView.
        This is forcing plenty of extra layouts since the fixed layout size is one of many properties updated on the FrameView.

        FrameView marks that layout is needed. It is not clear why a layout was performed immediately.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::setFixedLayoutSize):

2014-05-22  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] Web process should try to shrink its memory footprint when going into background.
        <https://webkit.org/b/133197>
        <rdar://problem/17011561>

        Try to free up as much memory as possible before going into background.

        Reviewed by Gavin Barraclough.

        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::processWillSuspend):

2014-05-22  Andreas Kling  <akling@apple.com>

        Hook up a setting for showing detailed logging during memory pressure relief.
        <https://webkit.org/b/133194>

        Plumb through the same setting that we used for detailed logging in WK1.

        Reviewed by Gavin Barraclough.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformInitializeWebProcess):
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-05-22  Andy Estes  <aestes@apple.com>

        [iOS] Send shareable resources to QuickLook if enabled
        https://bugs.webkit.org/show_bug.cgi?id=133189
        <rdar://problem/17003995>

        Reviewed by Brady Eidson.

        Like we do for didReceiveData(), we need to pass an incoming ShareableResource to QuickLook if a QuickLook
        handle exists.

        * Shared/ShareableResource.cpp:
        (WebKit::ShareableResource::Handle::tryWrapInCFData): Return the shared resource in a CFDataRef.
        (WebKit::ShareableResource::Handle::tryWrapInSharedBuffer): Implemented in terms of tryWrapInCFData().
        * Shared/ShareableResource.h:
        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::didReceiveResource): If a QuickLook handle exists, send the shareable resource to
        it via a CFDataRef.

2014-05-22  Martin Hock  <mhock@apple.com>

        [iOS] Enable -apple-system- styled elements to respond to system font size changes.
        https://bugs.webkit.org/show_bug.cgi?id=133186
        <rdar://problem/16583782>

        Reviewed by Enrica Casucci.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView _contentSizeCategoryDidChange:]):
        (-[WKWebView _contentSizeCategory]):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::contentSizeCategoryDidChange):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::contentSizeCategoryDidChange):

2014-05-22  Alexey Proskuryakov  <ap@apple.com>

        [iOS] Add CFBundleAllowMixedLocalizations to WebContentService
        https://bugs.webkit.org/show_bug.cgi?id=133187
        <rdar://problem/16561084>

        Reviewed by Tim Horton.

        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:
        We already had it in WebContentService.Development, just not here.

2014-05-22  Alexey Proskuryakov  <ap@apple.com>

        [iOS][WK2] Application cache is broken
        https://bugs.webkit.org/show_bug.cgi?id=133172
        <rdar://problem/16994593>

        Reviewed by Andy Estes.

        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultApplicationCacheDirectory): Use a proper
        path for application cache database (same as WebKit1).

2014-05-22  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): Keyboard should have Search button in duckduckgo.com.
        https://bugs.webkit.org/show_bug.cgi?id=133183
        <rdar://problem/17004207>

        Reviewed by Geoff Garen.

        The keyboard type should be search if the input type is search
        or if it is text and it is inside a form with an action and either
        name, id or title contain the word search. This matches the
        heuristics we have in WK1 for iOS.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getAssistedNodeInformation):

2014-05-21  Oliver Hunt  <oliver@apple.com>

        Only enable sandbox extensions on mac.

        RS = Alexey.

        * WebKit2Prefix.h:

2014-05-21  Oliver Hunt  <oliver@apple.com>

        [iOS] Enable sandboxing for the database process
        https://bugs.webkit.org/show_bug.cgi?id=132963

        Reviewed by Alexey Proskuryakov.

        Simply ensure that the database process is running in a tight
        sandbox. As part of this i've separated out ChildProcessIOS
        and ensures that the database process loads a custom sandbox.

        * Configurations/WebKit.xcconfig:
        * DatabaseProcess/ios/DatabaseProcessIOS.mm:
        (WebKit::DatabaseProcess::initializeSandbox):
        * DatabaseProcess/ios/com.apple.WebKit.DatabasesIOS.sb: Added.
        * Shared/ios/ChildProcessIOS.mm: Added.
        Essentially cloned from the Mac version, only all the OSX
        specific logic has been stripped.
        (WebKit::ChildProcess::setApplicationIsDaemon):
        (WebKit::ChildProcess::platformInitialize):
        (WebKit::ChildProcess::initializeSandbox):
        (WebKit::ChildProcess::setQOS):
        * Shared/mac/ChildProcessMac.mm:
        Remove all the IOS ifdefs.
        (WebKit::ChildProcess::setApplicationIsDaemon):
        (WebKit::ChildProcess::platformInitialize):
        (WebKit::ChildProcess::initializeSandbox):
        (WebKit::ChildProcess::setQOS):
        * WebKit2.xcodeproj/project.pbxproj:

2014-05-21  Andy Estes  <aestes@apple.com>

        [iOS] Create a UIPrintFormatter for WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=133005

        Reviewed by Tim Horton.

        Implemented a UIPrintFormatter subclass to support printing WKWebViews using UIPrintInteractionController.
        Overrode -_recalcPageCount: to synchronously ask the web process to lay out for printing and return the number
        of page rects. The web process returns the page rects immediately and then starts rendering the page to a PDF,
        returning the PDF data to the UI process asynchronously. When UIPrintInteractionController later calls our
        overridden -drawInRect:forPageAtIndex:, we block and wait for the PDF data to be returned. Since
        UIPrintInteractionController draws each page after a delay, it's possible that the web process has already
        returned the PDF data to us by the time we print the first page.

        * Shared/WebPreferencesStore.h: Correctly initialized shouldPrintBackgrounds for iOS.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _dataForDisplayedPDF]): Now that WKPDFView vends its CGPDFDocument directly, extract its data here.
        (-[WKWebView _printFormatterClass]): Tell UIView which UIPrintFormatter to alloc.
        (-[WKWebView _computePageCountAndStartDrawingToPDFWithPrintInfo:WebKit::firstPage:computedTotalScaleFactor:]):
        If we're displaying a PDF, return its page count directly. Otherwise, synchronously ask the web process to
        compute page rects for printing and then return the number of rects.
        (-[WKWebView _endPrinting]): Cleared state and sent the WebPage::EndPrinting message to the web process.
        (-[WKWebView _printedDocument]): If we're displaying a PDF, return its data directly. Otherwise, if we haven't
        received PDF data from the web process yet, wait for it indefinitely (there's no sensible timeout to use here
        since failing to receive the data results in printing some number of blank pages).
        (-[WKWebView _setPrintedDocument:]): Set the CGPDFDocument received from the web process.
        * UIProcess/API/Cocoa/WKWebViewInternal.h: Declared methods called by WKWebViewPrintFormatter.
        * UIProcess/PageClient.h: Declared didFinishDrawingPagesToPDF.
        * UIProcess/WKWebViewPrintFormatter.h: Added.
        * UIProcess/WKWebViewPrintFormatter.mm: Added.
        (-[WKWebViewPrintFormatter dealloc]): Cleared state and called -[WKWebView _endPrinting].
        (-[WKWebViewPrintFormatter webView]): Returned the WKWebView for this print formatter.
        (-[WKWebViewPrintFormatter _recalcPageCount]): Set up a PrintInfo object given the formatter's content rect
        and called -_computePageCountAndStartDrawingToPDFWithPrintInfo:...
        (-[WKWebViewPrintFormatter rectForPageAtIndex:]): Called -_recalcIfNecessary and then returned the rect from
        -_pageContentRect.
        (-[WKWebViewPrintFormatter drawInRect:forPageAtIndex:]): Taught to draw the given page of the printed PDF
        document into the given rect and context provided to us.
        * UIProcess/WebPageProxy.h: Declared didFinishDrawingPagesToPDF.
        * UIProcess/WebPageProxy.messages.in: Added DidFinishDrawingPagesToPDF. Made this a delayed syncrhonous message
        so that additoinal work could be performed after sending the response.
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::didFinishDrawingPagesToPDF): Created a CGPDFDocument from the data sent to us by the
        web process and called -[WKWebView _setPrintedDocument:].
        * UIProcess/ios/WKPDFView.h:
        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView pdfDocument]): Returned the underlying CGPDFDocument.
        (-[WKPDFView documentData]): Deleted.
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::didFinishDrawingPagesToPDF):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::computePagesForPrinting): Changed to call computePagesForPrintingImpl.
        (WebKit::WebPage::computePagesForPrintingImpl): Moved the common logic of computePagesForPrinting to here so it
        could be called by computePagesForPrintingAndStartDrawingToPDF.
        (WebKit::WebPage::drawPagesToPDF): Changed to call drawPagesToPDFImpl
        (WebKit::WebPage::drawPagesToPDFImpl): Moved the common logic of drawPagesToPDF to here so it could be called
        by computePagesForPrintingAndStartDrawingToPDF.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::computePagesForPrintingAndStartDrawingToPDF): Computed page rects and returned them as a
        synchronous response. Afterwards called drawPagesToPDFImpl() and returned the PDF data by sending
        WebPageProxy::DidFinishDrawingPagesToPDF.

2014-05-21  Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        [EFL] Turn on ENABLE_CSS_FILTERS
        https://bugs.webkit.org/show_bug.cgi?id=133153

        Reviewed by Gyuyoung Kim.

        Make WebKit2 compile after r166741 when CSS_FILTERS are enabled.

        * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
        (IPC::ArgumentCoder<WebCore::FilterOperations>::decode):

2014-05-21  Brady Eidson  <beidson@apple.com>

        Special handling of telephone number detection menu.
        <rdar://problem/16967971> and https://bugs.webkit.org/show_bug.cgi?id=133143

        Reviewed by Geoff Garen.

        Add a bool to ContextMenuContextData to represent telephone number menus:
        * Shared/ContextMenuContextData.cpp:
        (WebKit::ContextMenuContextData::ContextMenuContextData):
        (WebKit::ContextMenuContextData::operator=):
        (WebKit::ContextMenuContextData::encode):
        (WebKit::ContextMenuContextData::decode):
        * Shared/ContextMenuContextData.h:
        (WebKit::ContextMenuContextData::ContextMenuContextData):
        (WebKit::ContextMenuContextData::isTelephoneNumberContext):

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::showContextMenu): If the menu is a telephone
          number menu then display it using a specific AppKit API.

        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::showTelephoneNumberMenu): Filter the array of menu items
          through a new WKSI call, and then show it using a telephone number context.

2014-05-21  Alexey Proskuryakov  <ap@apple.com>

        [Mac] REGRESSION (Async text input): Asian text input doesn't work in Flash
        https://bugs.webkit.org/show_bug.cgi?id=133128
        <rdar://problem/16890920>

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _interpretKeyEvent:completionHandler:]): Added a separate code path for
        plug-in input. Before async text input, we used to provide a nil input context due
        to having _data->_interpretKeyEventsParameters while this function was executing,
        and thus took a shortcut. The new behavior is different from pre-async in that
        we don't collect commands at all, but I couldn't find any case where that mattered.
        (-[WKView inputContext]): The _collectedKeypressCommands check was not a correct
        replacement for _interpretKeyEventsParameters one, because this variable is not
        always set within -_interpretKeyEvent:completionHandler:.

        * UIProcess/mac/WKTextInputWindowController.mm:
        (-[WKTextInputPanel _interpretKeyEvent:usingLegacyCocoaTextInput:string:]):
        While at it, fixed a separate issue with Cangjie predictive input. We shouldn't
        keep prediction pop-up on screen after hiding the bottom input window.

2014-05-16  Martin Robinson  <mrobinson@igalia.com>

        [CMake] Improve handling of LIB_INSTALL_DIR, EXEC_INSTALL_DIR, and LIBEXEC_INSTALL_DIR
        https://bugs.webkit.org/show_bug.cgi?id=132819

        Reviewed by Carlos Garcia Campos.

        * PlatformEfl.cmake: No need to prefix EXEC_INSTALL_DIR with the prefix any longer.
        * PlatformGtk.cmake: No longer use CMAKE_INSTALL_FULL_FOO variables, instead using the WebKit-specific ones.
        * efl/EWebKit2Config.cmake.in: Ditto.
        * efl/ewebkit2.pc.in: Instead of hard-coding the path to the library installation directory use LIB_INSTALL_DIR.
        * webkit2gtk-web-extension.pc.in: No longer use the pkg-config only variables. Instead use
        the common CMake ones.
        * webkit2gtk.pc.in: Ditto.

2014-05-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r168625): [GTK] Assertion failure in LocalStorageDatabaseTracker
        https://bugs.webkit.org/show_bug.cgi?id=133118

        Reviewed by Philippe Normand.

        Call WebContext::applyPlatformSpecificConfigurationDefaults() to
        initialize the WebContextConfiguration before creating the default WebContext.

        * UIProcess/API/gtk/WebKitWebContext.cpp:
        (createDefaultWebContext):

2014-05-21  Shivakumar JM  <shiva.jm@samsung.com>

        [WebKit2] Cleanup the build from unused variable in WebProcess module
        https://bugs.webkit.org/show_bug.cgi?id=133062

        Reviewed by Csaba Osztrogonác.

        Fix unused parameter by using UNUSED_PARAM macro

        * WebProcess/UserContent/WebUserContentController.cpp:
        (WebKit::WebUserContentController::addUserScriptMessageHandlers):
        (WebKit::WebUserContentController::removeUserScriptMessageHandler):

2014-05-20  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WK2): Tapping on the input field in duckduckgo.com shows the keyboard but not the caret.
        https://bugs.webkit.org/show_bug.cgi?id=133140
        <rdar://problem/16980898>

        Reviewed by Benjamin Poulain.

        When a page focuses a field on load, we receive the call to startAssistingNode
        but we don't create a text interaction assistant if the focus is not originated
        by a user action. Upon receiving the selection change notification we don't
        call the text interaction assistant, since we don't have one, but we do call
        the web selection assistant. We don't have any valid rects for web selection
        and we clear the selection on the page, causing the caret not to appear and
        the typing to have no effect.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _updateChangedSelection]):

2014-05-20  Dean Jackson  <dino@apple.com>

        [Mac] Allow popup menus to override default appearance
        https://bugs.webkit.org/show_bug.cgi?id=133129

        Reviewed by Tim Horton.

        Add an extra "hideArrows" flag to PlatformPopupMenuData
        and replace the call to WKPopupMenuWithSize with WKPopupMenu.

        * Shared/PlatformPopupMenuData.cpp: Encode and decode the new data value.
        (WebKit::PlatformPopupMenuData::encode):
        (WebKit::PlatformPopupMenuData::decode):
        * Shared/PlatformPopupMenuData.h: Add hideArrows boolean.
        * UIProcess/mac/WebPopupMenuProxyMac.mm:
        (WebKit::WebPopupMenuProxyMac::showPopupMenu):
        * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
        (WebKit::WebPopupMenu::setUpPlatformData): The hideArrows flag is
        true if we don't have the default appearance.

2014-05-20  Eric Carlson  <eric.carlson@apple.com>

        [Mac] do not deactivate an audio session that has running I/O
        https://bugs.webkit.org/show_bug.cgi?id=133127

        Reviewed by Jer Noble.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage): Settings::setShouldManageAudioSession renamed to 
            setShouldManageAudioSessionCategory, deal with it.

2014-05-19  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r169063) Fixed and sticky nodes misplaced on scrolling sometimes
        https://bugs.webkit.org/show_bug.cgi?id=133106
        <rdar://problem/16967648>

        Reviewed by Sam Weinig.

        Fix regression from r169063. That commit removed scrolledContentsLayers from 
        frame scrolling nodes, but they do actually use them.
        
        So put them back; not in the base class, because they have a somewhat different
        meaning for overflow scrolling and frame scrolling.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
        (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
        (WebKit::RemoteScrollingTreeTextStream::dump):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

2014-05-20  Alexey Proskuryakov  <ap@apple.com>

        [Mac] WebProcess doesn't follow localization of UI process when run as a service
        https://bugs.webkit.org/show_bug.cgi?id=133126
        <rdar://problem/13396515>
        <rdar://problem/16561084>

        Reviewed by Sam Weinig and Tim Horton.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
        (WebKit::handleXPCBootstrap):
        (main):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
        (WebKit::handleXPCBootstrap):
        (main):
        Set localization very early in process lifetime (in development builds, that's
        even before WebKit framework is loaded).

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::connectToService):
        Pass UI process localization to the service, computing it in the same way we do
        for child processes.

2014-05-20  Anders Carlsson  <andersca@apple.com>

        Fix a header comment
        https://bugs.webkit.org/show_bug.cgi?id=133123
        <rdar://problem/16973783>

        Reviewed by Geoffrey Garen.

        * UIProcess/API/Cocoa/WKUserContentController.h:

2014-05-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] WebKitWebPage::send-request always pass a valid pointer for redirected response
        https://bugs.webkit.org/show_bug.cgi?id=133119

        Reviewed by Sergio Villar Senin.

        The problem is that we were checking whether the passed in
        WKURLResponseRef is NULL or not, but it's always a valid object
        that can contain a NULL WebCore::ResourceResponse.

        * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
        (willSendRequestForFrame): Pass NULL as redirect-response
        parameter of WebKitWebPage::send-request signal when the
        WebCore::ResourceResponse of the passed in WKURLResponseRef is NULL.

2014-05-20  Antti Koivisto  <antti@apple.com>

        Double-tap zoom does not take obscuring insets into account
        https://bugs.webkit.org/show_bug.cgi?id=133116
        <rdar://problem/16765604>

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _zoomToRect:WebCore::atScale:origin:WebCore::]):
        
            Compute the zoom target taking insets into account.

2014-05-19  Gavin Barraclough  <baraclough@apple.com>

        WebKit2/iOS: parented view should be considered hidden if app is backgrounded
        https://bugs.webkit.org/show_bug.cgi?id=133099
        radar://16942183

        Reviewed by Simon Fraser.

        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::isViewWindowActive):
            - implemented in terms of isViewVisible.
            - FIXME: https://bugs.webkit.org/show_bug.cgi?id=133098
        (WebKit::PageClientImpl::isViewFocused):
            - implemented in terms of isViewWindowActive.
            - FIXME: https://bugs.webkit.org/show_bug.cgi?id=133098
        (WebKit::PageClientImpl::isViewVisible):
            - take UIApplication applicationState into account in determining visibility.
        (WebKit::PageClientImpl::isViewVisibleOrOccluded):
            - implemented in terms of isViewVisible.
        (WebKit::PageClientImpl::isVisuallyIdle):
            - implemented in terms of isViewVisible.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
            - register for UIApplicationDidEnterBackgroundNotification.
        (-[WKContentView _applicationDidEnterBackground:]):
        (-[WKContentView _applicationWillEnterForeground:]):
            - when the application state changes all flags except IsInWindow may be affected.

2014-05-19  Enrica Casucci  <enrica@apple.com>

        WK2 iOS: Pressing the form navigation button causes the keyboard to be dismissed.
        https://bugs.webkit.org/show_bug.cgi?id=133100
        <rdar://problem/16808673>

        Reviewed by Benjamin Poulain.

        The call to focusNextAssistedNode is the result of a user action, since
        it is called when the user pressed the form navigation buttons.
        Therefore we must set m_userIsInteracting to true before changing the focus
        to make sure the focus change is honored.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::focusNextAssistedNode):

2014-05-19  Beth Dakin  <bdakin@apple.com>

        TelephoneNumberOverlayController should use a modern loop for text quad bounding 
        boxes
        https://bugs.webkit.org/show_bug.cgi?id=133096

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
        (WebKit::textQuadsToBoundingRectForRange):

2014-05-19  Jeremy Jones  <jeremyj@apple.com>

        PlatformCALayerRemoteCustom properties aren't initialized to match the PlatformLayer
        https://bugs.webkit.org/show_bug.cgi?id=133025

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
        (WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
        Initialize PlatformCALayerRemote properties from the PlatformLayer.

2014-05-19  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] When a page relayout on dynamic resize, keep the same relative width in view
        https://bugs.webkit.org/show_bug.cgi?id=133026
        <rdar://problem/16833971>

        Reviewed by Simon Fraser.

        When a page does not relayout, we keep the same width in view.
        When a page relayout, we should keep the same relative width in view.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::isResponsiveDesignWithContentLargerThanLayout):
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-05-19  Benjamin Poulain  <benjamin@webkit.org>

        [WK2] Add some missing state reset on crash
        https://bugs.webkit.org/show_bug.cgi?id=133036

        Reviewed by Sam Weinig.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::resetState):
        The missing reset for m_isTrackingTouchEvents would cause the WebPageProxy to send
        touch events when it shouldn't. That would only be for an active touch sequence.

        The missing reset m_lastVisibleContentRectUpdate would prevent pushing the new UI state
        to the new page on reload, that is very bad.

        Also moved m_videoFullscreenManager to be in the same order as initialization, and invalidate
        the callbacks for dictation.

2014-05-19  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Move scale noise filtering to the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=133021

        Reviewed by Darin Adler.

        Filtering in the UIProcess was stupid. It forces to handle a third kind of scale just for updates.

        The WebProcess already adjusts the input scale based on the viewport. Changing the input scale at that level
        is already supported. It is a better place to have the filtering.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):

2014-05-19  Simon Fraser  <simon.fraser@apple.com>

        Split scrolling tree ScrollingNodes into FrameScrollingNodes and OverflowScrollingNodes
        https://bugs.webkit.org/show_bug.cgi?id=133022

        Reviewed by Sam Weinig.
        
        In both the scrolling state tree and the scrolling tree, split the "scrolling nodes"
        into FrameScrolling and OverflowScrolling nodes.
        
        Move what was the "viewportSize" property onto the base class for the scrolling
        nodes, calling it "scrollableAreaSize".
        
        Make minimum/maximumScrollPosition() virtual so we can share more code (and there
        is more code sharing to be done in future).

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (ArgumentCoder<ScrollingStateScrollingNode>::encode):
        (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
        (ArgumentCoder<ScrollingStateOverflowScrollingNode>::encode):
        (ArgumentCoder<ScrollingStateScrollingNode>::decode):
        (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
        (ArgumentCoder<ScrollingStateOverflowScrollingNode>::decode):
        (WebKit::encodeNodeAndDescendants):
        (WebKit::RemoteScrollingCoordinatorTransaction::decode):
        (WebKit::RemoteScrollingTreeTextStream::dump):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::createNode):
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollLayer):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterViewportChange):
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateBeforeChildren):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::setScrollLayerPosition):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateChildNodesAfterScroll):
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

2014-05-19  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Fix a typo in plug-in sandbox
        https://bugs.webkit.org/show_bug.cgi?id=133074

        Reviewed by Anders Carlsson.

        * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:

2014-05-16  Andy Estes  <aestes@apple.com>

        [WebKit2] Wake up threads blocked in waitForAndDispatchImmediately() if we lose our connection
        https://bugs.webkit.org/show_bug.cgi?id=133010

        Reviewed by Geoffrey Garen.

        If a thread is blocked on m_waitForMessageCondition and we lose our connection, treat that like we do a timeout.

        * Platform/IPC/Connection.cpp:
        (IPC::Connection::Connection):
        (IPC::Connection::waitForMessage):
        (IPC::Connection::connectionDidClose):
        * Platform/IPC/Connection.h:

2014-05-19  Mark Rowe  <mrowe@apple.com>

        Build fix after r169023.

        * Shared/API/Cocoa/WebKitPrivate.h: Stop including headers that no longer exist.
        I hope for weinig's sake that no-one was relying on them.

2014-05-18  Anders Carlsson  <andersca@apple.com>

        Relax an assertion when creating document loaders
        https://bugs.webkit.org/show_bug.cgi?id=133058

        Reviewed by Sam Weinig.

        When navigating back/forward items recursively, createDocumentLoader will be called
        for subframes before main frames so only associate the navigation with main frames.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::createDocumentLoader):

2014-05-18  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>

        CMake Buildfix after r169023.

        Reviewed by Csaba Osztrogonác.

        * CMakeLists.txt: Add new files after r168994.

2014-05-18  Sam Weinig  <sam@webkit.org>

        [WebKit2] Implement ScriptMessageHandlers
        https://bugs.webkit.org/show_bug.cgi?id=133053

        Reviewed by Anders Carlsson.

        * DerivedSources.make:
        * Scripts/webkit2/messages.py:
        (struct_or_class):
        (argument_coder_headers_for_type):
        (headers_for_type):
        * UIProcess/API/Cocoa/WKScriptMessage.mm:
        (-[WKScriptMessage _initWithBody:webView:name:]):
        (-[WKScriptMessage body]):
        (-[WKScriptMessage webView]):
        (-[WKScriptMessage name]):
        (-[WKScriptMessage _scriptWorld]): Deleted.
        * UIProcess/API/Cocoa/WKScriptMessageInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKScriptMessagePrivate.h.
        * UIProcess/API/Cocoa/WKScriptMessagePrivate.h: Removed.
        * UIProcess/API/Cocoa/WKUserContentController.mm:
        (-[WKUserContentController addScriptMessageHandler:name:]):
        (-[WKUserContentController removeScriptMessageHandlerForName:]):
        (-[WKUserContentController _addScriptMessageHandler:name:world:]): Deleted.
        (-[WKUserContentController _removeScriptMessageHandlerForName:world:]): Deleted.
        * UIProcess/API/Cocoa/WKUserContentControllerInternal.h:
        * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: Removed.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (pageToViewMap):
        (fromWebPageProxy):
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView dealloc]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/UserContent/WebScriptMessageHandler.cpp: Added.
        (WebKit::WebScriptMessageHandlerHandle::encode):
        (WebKit::WebScriptMessageHandlerHandle::decode):
        (WebKit::generateIdentifier):
        (WebKit::WebScriptMessageHandler::create):
        (WebKit::WebScriptMessageHandler::WebScriptMessageHandler):
        (WebKit::WebScriptMessageHandler::~WebScriptMessageHandler):
        * UIProcess/UserContent/WebScriptMessageHandler.h: Added.
        (WebKit::WebScriptMessageHandler::Client::~Client):
        (WebKit::WebScriptMessageHandler::handle):
        (WebKit::WebScriptMessageHandler::identifier):
        (WebKit::WebScriptMessageHandler::name):
        (WebKit::WebScriptMessageHandler::client):
        * UIProcess/UserContent/WebUserContentControllerProxy.cpp:
        (WebKit::WebUserContentControllerProxy::addProcess):
        (WebKit::WebUserContentControllerProxy::removeProcess):
        (WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
        (WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
        (WebKit::WebUserContentControllerProxy::didPostMessage):
        * UIProcess/UserContent/WebUserContentControllerProxy.h:
        * UIProcess/UserContent/WebUserContentControllerProxy.messages.in: Added.
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/UserContent/WebUserContentController.cpp:
        (WebKit::WebUserMessageHandlerDescriptorProxy::create):
        (WebKit::WebUserMessageHandlerDescriptorProxy::~WebUserMessageHandlerDescriptorProxy):
        (WebKit::WebUserMessageHandlerDescriptorProxy::didPostMessage):
        (WebKit::WebUserMessageHandlerDescriptorProxy::descriptor):
        (WebKit::WebUserMessageHandlerDescriptorProxy::identifier):
        (WebKit::WebUserMessageHandlerDescriptorProxy::WebUserMessageHandlerDescriptorProxy):
        (WebKit::WebUserContentController::addUserScriptMessageHandlers):
        (WebKit::WebUserContentController::removeUserScriptMessageHandler):
        * WebProcess/UserContent/WebUserContentController.h:
        * WebProcess/UserContent/WebUserContentController.messages.in:

2014-05-18  Rik Cabanier  <cabanier@adobe.com>

        support for navigator.hardwareConcurrency
        https://bugs.webkit.org/show_bug.cgi?id=132588

        Reviewed by Filip Pizlo.

        * Configurations/FeatureDefines.xcconfig:

2014-05-18  Anders Carlsson  <andersca@apple.com>

        Implement Navigations for all methods declared returning one
        https://bugs.webkit.org/show_bug.cgi?id=133048
        <rdar://problem/16830064>

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView goToBackForwardListItem:]):
        (-[WKWebView goBack]):
        (-[WKWebView goForward]):
        (-[WKWebView reload]):
        (-[WKWebView reloadFromOrigin]):
        Create and return navigations.

        (-[WKWebView _reload]):
        Call -[WKWebView reload].

        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::createBackForwardNavigation):
        Create a back/forward navigation.

        (WebKit::NavigationState::createReloadNavigation):
        Create a reload navigation.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::reattachToWebProcessWithItem):
        Generate a navigation ID and send it with the GoToBackForwardItem message.

        (WebKit::WebPageProxy::reload):
        Return a navigation ID.

        (WebKit::WebPageProxy::goForward):
        Generate a navigation ID and send it with the GoForward message.
        
        (WebKit::WebPageProxy::goBack):
        Generate a navigation ID and send it with the GoBack message.

        (WebKit::WebPageProxy::goToBackForwardItem):
        Generate a navigation ID and send it with the GoToBackForwardItem message.

        * UIProcess/WebPageProxy.h:
        Return navigation IDs where appropriate.

        * UIProcess/cf/WebPageProxyCF.cpp:
        (WebKit::WebPageProxy::restoreFromSessionStateData):
        Generate a navigation ID and send it with the RestoreSessionAndNavigateToCurrentItem message.
        
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::goForward):
        (WebKit::WebPage::goBack):
        (WebKit::WebPage::goToBackForwardItem):
        Set up the pending navigation ID.

        (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem):
        Call goToBackForwardItem with a navigation ID.

        * WebProcess/WebPage/WebPage.h:
        Add navigation IDs.

        * WebProcess/WebPage/WebPage.messages.in:
        Add navigation IDs.

2014-05-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169001.
        https://bugs.webkit.org/show_bug.cgi?id=133050

        We can't expose the C SPI from WKWebView (Requested by
        andersca on #webkit).

        Reverted changeset:

        "Need a way to get a WKPageRef from a WKWebView"
        https://bugs.webkit.org/show_bug.cgi?id=133015
        http://trac.webkit.org/changeset/169001

2014-05-18  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        [WK2][GTK] Buildfix after r168999.

        Reviewed by Csaba Osztrogonác.

        * UIProcess/gtk/WebContextGtk.cpp:
        (WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory): Renamed from WebKit::WebContext::platformDefaultDatabaseDirectory().
        (WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory): Added.

2014-05-18  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        [WK2][EFL] Buildfix after r168999.

        Reviewed by Csaba Osztrogonác.

        * UIProcess/efl/WebContextEfl.cpp:
        (WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory): Renamed from WebKit::WebContext::platformDefaultDatabaseDirectory().
        (WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory): Added.

2014-05-18  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        [WK2][cmake] Buildfix after r168994.

        Reviewed by Csaba Osztrogonác.

        * CMakeLists.txt: Added new files to the build system introduced in r168994.

2014-05-17  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (NetworkProcess): Trying to use appcache fallback crashes in ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache
        https://bugs.webkit.org/show_bug.cgi?id=133007
        <rdar://problem/13702706>

        appcache tests often fail on the Mac WebKit2 bot
        https://bugs.webkit.org/show_bug.cgi?id=82061

        Reviewed by Maciej Stachowiak.

        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::willSendRequest):
        (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
        (WebKit::WebResourceLoader::didFailResourceLoad):
        Perform the same appcache checks that ResourceHandleClient implementation in ResourceLoader
        does. We should eventually come up with a way to share the code. Perhaps add a class that
        isolates ResourceLoader from networking details? But ResourceLoader was itself supposed
        to be the class that isolates DocumentLoader from networking details. So, unsure.

2014-05-17  Jae Hyun Park  <jaepark@webkit.org>

        [EFL] Remove m_contentPosition from PageViewportControllerClientEfl
        https://bugs.webkit.org/show_bug.cgi?id=132774

        Reviewed by Anders Carlsson.

        m_contentPosition is not used anywhere. So, this patch removes
        m_contentPosition and reduces one unnecessary assignment in
        setViewportPosition. Also, it renames contentsPoint to contentsPosition.

        * UIProcess/PageViewportControllerClient.h:
        * UIProcess/efl/PageViewportControllerClientEfl.cpp:
        (WebKit::PageViewportControllerClientEfl::setViewportPosition):
        * UIProcess/efl/PageViewportControllerClientEfl.h:

2014-05-17  David Kilzer  <ddkilzer@apple.com>

        Need a way to get a WKPageRef from a WKWebView
        <http://webkit.org/b/133015>

        Reviewed by Benjamin Poulain.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _pageRef]): Added.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        (-[WKWebView _pageRef]): Added declaration.

2014-05-17  Anders Carlsson  <andersca@apple.com>

        Give user scripts custom URLs
        https://bugs.webkit.org/show_bug.cgi?id=133035

        Reviewed by Beth Dakin.

        * UIProcess/API/Cocoa/WKUserContentController.mm:
        (-[WKUserContentController addUserScript:]):
        Create a user-script:<number> URL for user scripts.

        * UIProcess/API/Cocoa/WKUserScript.h:
        Move the init method after the properties.

2014-05-17  Anders Carlsson  <andersca@apple.com>

        Replace WKContextSetDatabaseDirectory with two WKContextConfiguration parameters
        https://bugs.webkit.org/show_bug.cgi?id=133033
        <rdar://problem/16830143>

        Reviewed by Sam Weinig.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        Rename databaseDirectory to webSQLDatabaseDirectory to better indicate the directory type.

        * UIProcess/API/C/WKContext.cpp:
        (WKContextSetDatabaseDirectory): Deleted.
        This is no longer needed.

        * UIProcess/API/C/WKContextConfigurationRef.cpp:
        (WKContextConfigurationCopyIndexedDBDatabaseDirectory):
        (WKContextConfigurationSetIndexedDBDatabaseDirectory):
        (WKContextConfigurationCopyWebSQLDatabaseDirectory):
        (WKContextConfigurationSetWebSQLDatabaseDirectory):
        * UIProcess/API/C/WKContextConfigurationRef.h:
        Add setters and getters.

        * UIProcess/API/C/WKContextPrivate.h:
        Remove WKContextSetDatabaseDirectory.

        * UIProcess/APIContextConfiguration.cpp:
        (API::ContextConfiguration::webContextConfiguration):
        Set m_indexedDBDatabaseDirectory and m_webSQLDatabaseDirectory on the configuration.

        * UIProcess/APIContextConfiguration.h:
        (API::ContextConfiguration::indexedDBDatabaseDirectory):
        (API::ContextConfiguration::setIndexedDBDatabaseDirectory):
        (API::ContextConfiguration::webSQLDatabaseDirectory):
        (API::ContextConfiguration::setWebSQLDatabaseDirectory):
        Add getters and setters to the C++ part of WKContextConfigurationRef.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
        Set webSQLDatabaseDirectory and indexedDBDatabaseDirectory.

        (WebKit::WebContext::WebContext):
        Initialize m_webSQLDatabaseDirectory and m_indexedDBDatabaseDirectory.

        (WebKit::WebContext::ensureDatabaseProcess):
        Set parameters.indexedDatabaseDirectory from m_indexedDBDatabaseDirectory.

        (WebKit::WebContext::createNewWebProcess):
        Set parameters.webSQLDatabaseDirectory from m_webSQLDatabaseDirectory.

        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory):
        Rename this to indicate that it's about WebSQL databases.

        (WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory):
        Add this.

        * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
        (WebKit::WebDatabaseManager::initialize):
        Update for WebProcessCreationParameters rename.

        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):
        Update for WebProcessCreationParameters rename.

2014-05-17  Brent Fulgham  <bfulgham@apple.com>

        [Phone Number Detection] drop-down menu in the phone number detection box doesn't appear.
        https://bugs.webkit.org/show_bug.cgi?id=133024

        Reviewed by Sam Weinig.

        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
        (WebKit::TelephoneNumberOverlayController::drawRect): Don't clear the set of found phone numbers each
        time we call drawRect. This gets called ~9 times per screen refresh, so end up with no active
        phone numbers to interact with.

2014-05-17  Alexey Proskuryakov  <ap@apple.com>

        NetworkProcess can repeatedly crash handling Blob messages after any unrelated crash
        https://bugs.webkit.org/show_bug.cgi?id=133032
        <rdar://problem/16951630>

        Reviewed by Geoffrey Garen.

        Replaced assertions with runtime checks. This can happen if NetworkProcess previously
        crashed for any unrelated reason.

        * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
        (WebKit::NetworkBlobRegistry::registerBlobURL):
        (WebKit::NetworkBlobRegistry::registerBlobURLForSlice):
        (WebKit::NetworkBlobRegistry::unregisterBlobURL):

2014-05-17  Anders Carlsson  <andersca@apple.com>

        -[WKWebView dealloc] should close the page
        https://bugs.webkit.org/show_bug.cgi?id=133031
        <rdar://problem/16929815>

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView dealloc]):

2014-05-16  Anders Carlsson  <andersca@apple.com>

        Expose WKUserScript as API
        https://bugs.webkit.org/show_bug.cgi?id=133017
        <rdar://problem/16948059>

        Reviewed by Sam Weinig.

        * DerivedSources.make:
        Add WebUserContentController.

        * Shared/API/Cocoa/WebKit.h:
        Add WKUserScript.h

        * Shared/API/c/WKSharedAPICast.h:
        (WebKit::toUserScriptInjectionTime):
        Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

        * Shared/API/c/WKUserScriptInjectionTime.h:
        Rename WKUserScriptInjectionTime to _WKUserScriptInjectionTime to free up the name for the Objective-C API

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        Encode the user content controller ID.

        (WebKit::WebPageCreationParameters::decode):
        Decode the user content controller ID.

        * Shared/WebPageCreationParameters.h:
        Add userContentControllerID.

        * UIProcess/API/C/WKPageGroup.cpp:
        (WKPageGroupAddUserScript):
        Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

        * UIProcess/API/C/WKPageGroup.h:
        Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

        * UIProcess/API/Cocoa/WKBrowsingContextGroup.h:
        Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

        * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:
        (-[WKBrowsingContextGroup addUserScript:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:injectionTime:mainFrameOnly:]):
        Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.

        * UIProcess/API/Cocoa/WKUserContentController.h:
        Add new methods.

        * UIProcess/API/Cocoa/WKUserContentController.mm:
        (-[WKUserContentController init]):
        Create the WebUserContentControllerProxy object and user scripts array.

        (-[WKUserContentController userScripts]):
        Return the user scripts array.

        (toWebCoreUserScriptInjectionTime):
        Helper for converting from a WKUserScriptInjectionTime enum to WebCore::UserScriptInjectionTime.

        (-[WKUserContentController addUserScript:]):
        Call through to the _userContentControllerProxy object.

        (-[WKUserContentController removeAllUserScripts]):
        Call through to the _userContentControllerProxy object.
        
        * UIProcess/API/Cocoa/WKUserContentControllerInternal.h: Added.
        Add WebUserContentControllerProxy ivar.

        * UIProcess/API/Cocoa/WKUserScript.h: Added.
        Add new header.

        * UIProcess/API/Cocoa/WKUserScript.mm:
        (-[WKUserScript initWithSource:injectionTime:forMainFrameOnly:]):
        Initialize the WKUserScript object.

        (-[WKUserScript source]):
        (-[WKUserScript injectionTime]):
        (-[WKUserScript isForMainFrameOnly]):
        Add getters.

        (-[WKUserScript copyWithZone:]):
        Since WKUserScript is immutable, just return a retained object.

        * UIProcess/API/Cocoa/WKUserScriptInternal.h:
        Add ivars.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        Set the user content controller from the configuration.

        * UIProcess/UserContent/WebUserContentControllerProxy.cpp: Added.
        (WebKit::generateIdentifier):
        Return a unique identifier.

        (WebKit::WebUserContentControllerProxy::create):
        Return a new WebUserContentControllerProxy object.

        (WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy):
        Initialize m_identifier.

        (WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy):
        Add destructor.

        (WebKit::WebUserContentControllerProxy::addProcess):
        Add the process to the m_processes set. If it's the first time doing so, add the user scripts we know about.

        (WebKit::WebUserContentControllerProxy::removeProcess):
        Remove the process from m_processes.

        (WebKit::WebUserContentControllerProxy::addUserScript):
        Add the user script and let all the web processes know that it was added.

        (WebKit::WebUserContentControllerProxy::removeAllUserScripts):
        Remove all user scripts and tell all the web processes about it.
        
        * UIProcess/UserContent/WebUserContentControllerProxy.h:
        Add new class.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        If the process is already running, add it to the user content controller.

        (WebKit::WebPageProxy::close):
        If the process is running, remove it from the user content controller.

        (WebKit::WebPageProxy::connectionWillOpen):
        Add the process to the user content controller.

        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        Remove the process from the user content controller.

        (WebKit::WebPageProxy::creationParameters):
        Pass along the user content controller ID when creating the web page.

        * UIProcess/WebPageProxy.h:
        Add a WebUserContentControllerProxy object to the web page configuration.

        * WebKit2.xcodeproj/project.pbxproj:
        Add new files.

        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
        Update for WKUserScriptInjectionTime -> _WKUserScriptInjectionTime rename.
        
        * WebProcess/UserContent/WebUserContentController.cpp: Added.
        New class that manages a WebCore::UserContentController object.

        (WebKit::WebUserContentController::getOrCreate):
        Look up (or create) a WebUserContentController object given its identifier.

        (WebKit::WebUserContentController::WebUserContentController):
        Add ourselves as a message receiver.

        (WebKit::WebUserContentController::~WebUserContentController):
        Remove ourselves as a message receiver.

        (WebKit::WebUserContentController::addUserScripts):
        Add all passed in user scripts to the WebCore user content controller object.

        (WebKit::WebUserContentController::removeAllUserScripts):
        Remove all user scripts from the WebCore user content controller object.

        * WebProcess/UserContent/WebUserContentController.messages.in: Added.
        Add new messages file.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        Get a WebUserContentController object and pass it along to WebCore.

        * WebProcess/WebPage/WebPage.h:
        Add WebUserContentController member.

2014-05-16  Piotr Grad  <p.grad@samsung.com>

        [GTK] Build break after 168978.
        https://bugs.webkit.org/show_bug.cgi?id=133012.

        Reviewed by Simon Fraser.

        * UIProcess/API/gtk/WebKitSettings.cpp:
        (webKitSettingsConstructed):

2014-05-16  Simon Fraser  <simon.fraser@apple.com>

        Put back a symbol removed in r168978 that Safari needs, but deprecate it.

        Reviewed by Anders Carlsson.

        * Shared/API/c/WKDeprecatedFunctions.cpp:
        (WKPreferencesSetRegionBasedColumnsEnabled):
        (WKPreferencesGetRegionBasedColumnsEnabled):

2014-05-16  Oliver Hunt  <oliver@apple.com>

        Separate enabling sandbox extensions from the WEB_PROCESS_SANDBOX flag
        https://bugs.webkit.org/show_bug.cgi?id=133016

        Reviewed by Alexey Proskuryakov.

        Add a distinct SANDBOX_EXTENSIONS flag to guard sandbox extensions
        and switch over to it in the places that extensions are used.

        * Shared/SandboxExtension.h:
        * Shared/mac/SandboxExtensionMac.mm:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didChooseFilesForOpenPanel):
        * WebKit2Prefix.h:
        * WebProcess/WebPage/WebPage.cpp:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-05-16  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Add a heuristic to set the right horizontal offset on rotation for responsive websites
        https://bugs.webkit.org/show_bug.cgi?id=132937
        <rdar://problem/16710097>

        Reviewed by Simon Fraser.

        When responsive websites have the content size lay out larger than the minimal layout size,
        we should not keep the relative horizontal position into view,
        many of those websites have all the content on the left.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-05-16  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] On dynamic resize, the content offset is contrained to the old content size
        https://bugs.webkit.org/show_bug.cgi?id=132972

        Reviewed by Simon Fraser.

        When we set the content offset, UIScrollView limits the value to the current valid range for
        content size. Since the content size was only updated after the animation, when the first frame
        comes in, the content offset would sometimes be limited to a smaller rect that the actual content.

        To fix this, set the expected future content size before changing the offset.

        During the animation, the content size could have changed arbitrarily. At the end of the animation,
        we take the actual frame and set the definite content size.
        Any update after that will be regular updates through didCommitLayer. 

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        (-[WKWebView _endAnimatedResize]):

2014-05-16  Simon Fraser  <simon.fraser@apple.com>

        Remove "region-based columns" prefs
        https://bugs.webkit.org/show_bug.cgi?id=133006
        <rdar://problem/16945824>

        Reviewed by Dave Hyatt.

        Remove "region-based columns" prefs and related code, since this is only
        way to render columns now.

        * Shared/WebPreferencesStore.h:
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetRegionBasedColumnsEnabled): Deleted.
        (WKPreferencesGetRegionBasedColumnsEnabled): Deleted.
        * UIProcess/API/C/WKPreferencesRefPrivate.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-05-16  Brent Fulgham  <bfulgham@apple.com>

        Work around bug in Silverlight
        https://bugs.webkit.org/show_bug.cgi?id=133004

        Reviewed by Anders Carlsson.

        * PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
        (WebKit::PluginProcessMainDelegate::doPreInitializationWork): Add low-resolution flag
        to user defaults prior to NSApplication invocation. This code was moved from
        PluginProcess::platformInitializeProcess.
        * PluginProcess/mac/PluginProcessMac.mm:
        (WebKit::PluginProcess::platformInitializeProcess): Move low-resolution flag
        setting to PluginProcessMainDelegate.

2014-05-16  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        [WK2] Change the remaining framework includes from WebKit2 to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=132956

        Reviewed by Sam Weinig.

        * NetworkProcess/unix/NetworkProcessMainUnix.cpp:
        * NetworkProcess/unix/NetworkProcessMainUnix.h:
        * PluginProcess/unix/PluginProcessMainUnix.h:
        * Shared/API/c/cairo/WKImageCairo.h:
        * Shared/API/c/cf/WKURLRequestCF.h:
        * Shared/API/c/cf/WKURLResponseCF.h:
        * Shared/API/c/efl/WKArrayEfl.cpp:
        * Shared/API/c/efl/WKArrayEfl.h:
        * UIProcess/API/C/CoordinatedGraphics/WKView.h:
        * UIProcess/API/C/WKBatteryManager.h:
        * UIProcess/API/C/WKBatteryStatus.h:
        * UIProcess/API/C/WKGrammarDetail.h:
        * UIProcess/API/C/WKTextChecker.h:
        * UIProcess/API/C/WKVibration.h:
        * UIProcess/API/C/WKViewportAttributes.h:
        * UIProcess/API/C/cairo/WKIconDatabaseCairo.h:
        * UIProcess/API/C/efl/WKAPICastEfl.h:
        * UIProcess/API/C/efl/WKColorPickerResultListener.h:
        * UIProcess/API/C/efl/WKEventEfl.h:
        * UIProcess/API/C/efl/WKPageEfl.h:
        * UIProcess/API/C/efl/WKPopupItem.h:
        * UIProcess/API/C/efl/WKPopupMenuListener.h:
        * UIProcess/API/C/efl/WKViewEfl.cpp:
        * UIProcess/API/C/efl/WKViewEfl.h:
        * UIProcess/API/C/gtk/WKFullScreenClientGtk.h:
        * UIProcess/API/C/gtk/WKInspectorClientGtk.h:
        * UIProcess/API/C/gtk/WKView.h:
        * UIProcess/API/C/gtk/WKViewPrivate.h:
        * UIProcess/API/C/soup/WKContextSoup.h:
        * UIProcess/API/C/soup/WKCookieManagerSoup.h:
        * UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.h:
        * UIProcess/API/C/soup/WKSoupRequestManager.h:
        * UIProcess/API/Cocoa/WKErrorRecoveryAttempting.h:
        * UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.h:
        * UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
        * UIProcess/API/cpp/efl/WKEinaSharedString.h:
        * UIProcess/API/efl/EwkView.cpp:
        * UIProcess/API/efl/EwkView.h:
        * UIProcess/API/efl/EwkViewCallbacks.h:
        * UIProcess/API/efl/GestureRecognizer.h:
        * UIProcess/API/efl/ewk_application_cache_manager_private.h:
        * UIProcess/API/efl/ewk_auth_request_private.h:
        * UIProcess/API/efl/ewk_back_forward_list_item_private.h:
        * UIProcess/API/efl/ewk_back_forward_list_private.h:
        * UIProcess/API/efl/ewk_context_menu_item.cpp:
        * UIProcess/API/efl/ewk_context_private.h:
        * UIProcess/API/efl/ewk_cookie_manager_private.h:
        * UIProcess/API/efl/ewk_database_manager_private.h:
        * UIProcess/API/efl/ewk_error_private.h:
        * UIProcess/API/efl/ewk_favicon_database_private.h:
        * UIProcess/API/efl/ewk_file_chooser_request_private.h:
        * UIProcess/API/efl/ewk_page_group_private.h:
        * UIProcess/API/efl/ewk_popup_menu_item_private.h:
        * UIProcess/API/efl/ewk_popup_menu_private.h:
        * UIProcess/API/efl/ewk_security_origin_private.h:
        * UIProcess/API/efl/ewk_settings_private.h:
        * UIProcess/API/efl/ewk_storage_manager_private.h:
        * UIProcess/API/efl/ewk_view.cpp:
        * UIProcess/API/efl/ewk_view_private.h:
        * UIProcess/API/efl/ewk_window_features_private.h:
        * UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp:
        * UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp:
        * UIProcess/API/gtk/WebKitDownloadClient.cpp:
        * UIProcess/API/gtk/WebKitPrivate.h:
        * UIProcess/CoordinatedGraphics/WKCoordinatedSceneAPICast.h:
        * UIProcess/efl/BatteryProvider.h:
        * UIProcess/efl/ContextHistoryClientEfl.h:
        * UIProcess/efl/DownloadManagerEfl.h:
        * UIProcess/efl/FindClientEfl.h:
        * UIProcess/efl/FormClientEfl.h:
        * UIProcess/efl/PageLoadClientEfl.h:
        * UIProcess/efl/PagePolicyClientEfl.h:
        * UIProcess/efl/PageUIClientEfl.h:
        * UIProcess/efl/RequestManagerClientEfl.h:
        * UIProcess/efl/TextCheckerClientEfl.h:
        * UIProcess/efl/VibrationClientEfl.h:
        * UIProcess/efl/ViewClientEfl.cpp:
        * UIProcess/efl/ViewClientEfl.h:
        * UIProcess/efl/WebInspectorProxyEfl.cpp:
        * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
        * WebProcess/WebCoreSupport/gtk/WebErrorsGtk.cpp:
        * WebProcess/efl/SeccompFiltersWebProcessEfl.cpp:
        * WebProcess/efl/SeccompFiltersWebProcessEfl.h:
        * WebProcess/efl/WebProcessMainEfl.cpp:
        * WebProcess/efl/WebProcessMainEfl.h:
        * WebProcess/gtk/WebGtkInjectedBundleMain.cpp:
        * WebProcess/gtk/WebProcessMainGtk.cpp:
        * WebProcess/gtk/WebProcessMainGtk.h:
        * mac/WKPreferences.h:

2014-05-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL][WK2] Skip failing unit tests
        https://bugs.webkit.org/show_bug.cgi?id=132979

        Reviewed by Daniel Bates.

        * PlatformEfl.cmake: Skip failing unit tests for now.

2014-05-15  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] When zoomed, fixed elements jump at the start of a scroll, and jump back at the end.
        https://bugs.webkit.org/show_bug.cgi?id=132978
        <rdar://problem/16894428>

        Reviewed by Benjamin Poulain.
        
        Move the static function fixedPositionRectFromExposedRect() to a member function on
        WebPageProxy so we can call it from more places. Also never give WebCore a customFixedPosition
        rect that extends past the document bounds, but allow rubber-banding/pinching in the UI process to
        move fixed elements outside the document.
        
        * UIProcess/PageClient.h: Need to expose minimumZoomScale() and contentsSize() to WebPageProxy.
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::minimumZoomScale):
        (WebKit::PageClientImpl::contentsSize):
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
        Pass the computeCustomFixedPositionRect(ConstrainedToDocumentRect) to WebCore, but use computeCustomFixedPositionRect()
        for the ScrollingCoordinator update.
        (adjustedUnexposedEdge): Deleted.
        (adjustedUnexposedMaxEdge): Deleted.
        (fixedPositionRectFromExposedRect): Deleted.
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::adjustedUnexposedEdge):
        (WebKit::adjustedUnexposedMaxEdge):
        (WebKit::WebPageProxy::computeCustomFixedPositionRect):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): This fixes some flashing when the scrolling tree
        was being updated while scrolling; we now pass the correct rect.

2014-05-15  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/132976> Move discovery of sharing services off the main thread

        Discovery of sharing services can require disk access and IPC. Since the interface to
        ServicesController is already asynchronous, we can easily perform the discovery on a
        background queue. This can eliminate tens to hundreds of milliseconds worth of work
        from the main thread when creating the first web process.

        Reviewed by Brady Eidson.

        * UIProcess/mac/ServicesController.h:
        * UIProcess/mac/ServicesController.mm:
        (WebKit::ServicesController::ServicesController):
        (WebKit::ServicesController::refreshExistingServices): Bail out early if we're already
        in the process of refreshing the services. Kick the discovery over to a background queue,
        with it hopping back to the main queue to update the actual state and notify any contexts
        that were interested.

2014-05-15  Dan Bernstein  <mitz@apple.com>

        Fixed a typo in a comment and updated previous change log entry.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::elementDidFocus):

2014-05-15  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16844952> [iOS] www.wikipedia.org is loading much slower due to FormClient::willBeginInputSession
        https://bugs.webkit.org/show_bug.cgi?id=132974

        Reviewed by Enrica Casucci.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::elementDidFocus): Don’t call FormClient::willBeginInputSession if the
        focus isn’t user-initiated, because in that case the UI process will bail out of
        -_startAssistingNode:userIsInteracting:userObject: before creating an input session and
        calling the -_webView:didStartInputSession:.

2014-05-15  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] WKWebView sends invalid content offsets at the end of animated resize
        https://bugs.webkit.org/show_bug.cgi?id=132941
        <rdar://problem/16921557>

        Reviewed by Tim Horton.

        Since we cannot change the scale and content inset simultaneously while accounting for the obscured insets,
        we end up with invalid contentOffsets.

        To work around the problem, change the content scale outside of UIScrollView to ensure none of the side effect
        happens.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _endAnimatedResize]):

2014-05-15  Tim Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures (Zoom): Document size changes during zoom gesture cause erratic scrolling
        https://bugs.webkit.org/show_bug.cgi?id=132944
        <rdar://problem/15769454>

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
        If a layer flush occurs and we have an active transient zoom,
        re-apply the transient zoom to the relevant platform layers, because
        WebCore might have overwritten the relevant layer properties.

        (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
        Reset m_transientZoomScale before flushLayers() so that we don't
        re-apply the transient zoom when we're actually trying to commit it.

2014-05-15  Alex Christensen  <achristensen@webkit.org>

        Add pointer lock to features without enabling it.
        https://bugs.webkit.org/show_bug.cgi?id=132961

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:
        Added ENABLE_POINTER_LOCK to list of features.

2014-05-15  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Fix copying animations between layers, and pausing them
        https://bugs.webkit.org/show_bug.cgi?id=132943
        <rdar://problem/16906369&16906541>

        Reviewed by Tim Horton.
        
        Fix PlatformCAAnimationRemote to support animation copying, and to record
        the beginTime for implicitly started animations. This fixes animation pausing,
        and copying of animations between layers when they go between tiled and non-tiled.
        
        This requires sending the animation key back through animationDidStart() so that
        we can record this beginTime on the PlatformCAAnimationRemote in the web process.
        This path doesn't set the "hasExplicitBeginTime" flag.
        
        PlatformCAAnimationRemote also now stores a hash of active animations, so that
        it can implement animationForKey(), and record the beginTime.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart):
        * UIProcess/mac/RemoteLayerTreeHost.h:
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::animationDidStart): Grovel for the key for this
        animation; sadly CA doesn't give us an easier way.
        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::acceleratedAnimationDidStart):
        * WebProcess/WebPage/DrawingArea.messages.in:
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
        (-[WKAnimationDelegate animationDidStart:]):
        (WebKit::PlatformCAAnimationRemote::copy):
        (WebKit::PlatformCAAnimationRemote::copyTimingFunctionFrom):
        (WebKit::PlatformCAAnimationRemote::copyFromValueFrom):
        (WebKit::PlatformCAAnimationRemote::copyToValueFrom):
        (WebKit::PlatformCAAnimationRemote::copyValuesFrom):
        (WebKit::PlatformCAAnimationRemote::copyKeyTimesFrom):
        (WebKit::PlatformCAAnimationRemote::copyTimingFunctionsFrom):
        (WebKit::addAnimationToLayer):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::addAnimationForKey):
        (WebKit::PlatformCALayerRemote::removeAnimationForKey):
        (WebKit::PlatformCALayerRemote::animationForKey):
        (WebKit::PlatformCALayerRemote::animationStarted):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::animationDidStart):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidStart):

2014-05-14  Simon Fraser  <simon.fraser@apple.com>

        Clean up "has non-zero begin time" terminology in animations
        https://bugs.webkit.org/show_bug.cgi?id=132942

        Reviewed by Tim Horton.

        Change the "non-zero beginTime" terminology in the platform CA animations
        code to "explicit beginTime": this flag really means that we explicitly set
        the beginTime of the animation, rather than let CA set the beginTime when
        committing the animation. This flag is used for animations with negative
        delay, and when pausing.

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTextStream::operator<<):
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
        (-[WKAnimationDelegate animationDidStart:]):
        (WebKit::PlatformCAAnimationRemote::Properties::encode):
        (WebKit::PlatformCAAnimationRemote::Properties::decode):
        (WebKit::PlatformCAAnimationRemote::setBeginTime):
        (WebKit::addAnimationToLayer):

2014-05-15  Tim Horton  <timothy_horton@apple.com>

        [iOS] Incremental updates during scroll-to-top shouldn’t count as “stable” updates
        https://bugs.webkit.org/show_bug.cgi?id=132934

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _updateVisibleContentRects]):
        If we're in a scroll-to-top programmatic scroll, the update is not stable.
        The last event comes in with _isScrollingToTop false, so we do our stable update.

2014-05-15  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Compile all installed resources as GResources
        https://bugs.webkit.org/show_bug.cgi?id=131099

        Reviewed by Philippe Normand.

        It avoids conflicts with old WebKit versions, and resources are
        always found even without installing or using environment variables.

        * PlatformGTK.cmake: Add rules to write the xml file with the
        resources depending on the configure options and to generate and
        build the GResources file.

2014-05-14  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL][WK2] Fix an unit test of ewk_context_url_scheme_register()
        https://bugs.webkit.org/show_bug.cgi?id=132902

        Reviewed by Anders Carlsson.

        This test can be run when CUSTOM_PROTOCOL is enabled. Besides the test needs 
        to check if registered callback function works well.

        * UIProcess/API/efl/tests/test_ewk2_context.cpp:
        (EWK2ContextTest::schemeRequestCallback):
        (TEST_F):

2014-05-14  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Use default context for ewk_view_add
        https://bugs.webkit.org/show_bug.cgi?id=132936

        Reviewed by Gyuyoung Kim.

        Since r146265, ewk_view_add created new context and it's regression.
        This patch restores the behavior of ewk_view_add to original one.

        * UIProcess/API/efl/ewk_view.cpp:
        (ewk_view_add):
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F):

2014-05-14  Maciej Stachowiak  <mjs@apple.com>

        Database Process crashes after loading html5test.com
        https://bugs.webkit.org/show_bug.cgi?id=132938
        <rdar://problem/16241419>

        Reviewed by Ryosuke Niwa.

        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
        (WebKit::DatabaseProcessIDBConnection::disconnectedFromWebProcess): Expand comment
        about the null check.
        (WebKit::DatabaseProcessIDBConnection::deleteDatabase): Call disconnectedFromWebProcess
        to pick up its null check and to avoid duplicating code.

2014-05-14  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] The top/bottom edges should not be sticky when restoring the scroll position from the dynamic size update history
        https://bugs.webkit.org/show_bug.cgi?id=132931

        Reviewed by Sam Weinig.

        The goal of dynamicSizeUpdateHistory is to make dynamic resize completely reversible.
        Because of the stick-to-edges heuristics, this was not true near the top and bottom edges.

        For example, start in landscape, scroll the page a bit, then rotate to portrait. Now you have
        a lot more vertical space, and the top edge of the document is at the edge of the scrollview.
        Rotate back to landscape: the position is restored  correct, but it is then overriden by
        the stick-to-edges branch.

        When we restore the position from history, we should only put it back in the valid bounds, skipping
        stick-to-edges entirely.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-05-14  Tim Horton  <timothy_horton@apple.com>

        Enable IOSurface view snapshots for 10.9+
        https://bugs.webkit.org/show_bug.cgi?id=132932
        <rdar://problem/16900619>

        Reviewed by Dean Jackson.

        * UIProcess/mac/ViewSnapshotStore.h:
        r166005 unintentionally worked around <rdar://problem/16734031>.
        r168689 fixed another bug that caused sometimes randomly white snapshots.
        It's safe to turn on IOSurface view snapshots where purgeability is supported.

2014-05-14  Alexey Proskuryakov  <ap@apple.com>

        Use the correct client in WebPageProxy::unwrapCryptoKey
        https://bugs.webkit.org/show_bug.cgi?id=132924

        Reviewed by Darin Adler.

        * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::unwrapCryptoKey): Match what
        we now do in wrapCryptoKey().

2014-05-14  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Change Element.offset* client* scroll* return type to double.
        https://bugs.webkit.org/show_bug.cgi?id=132895

        Reviewed by Simon Fraser.

        This patch changes Element.offset*, Element.client* and Element.scroll* APIs return
        type from long to double to match the latest CSSOM View Module spec[1].
        Element.offset* and Element.client* do return subpixel values from now on.
        Element.scroll* still return integral values as the scrolling code hasn't adopted to subpixel rendering yet.

        subpixelCSSOMElementMetricsEnabled setting is added to be able to turn this feature on/off
        from WK2 preferences. It toggles the return value from subpixel to floored integral.
        It does not change layout/rendering behavior.

        Reference list of what other browsers do:
        IE: http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx
        Blink: http://www.chromestatus.com/features/5497402177880064
        Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=825607

        [1] http://www.w3.org/TR/2013/WD-cssom-view-20131217/

        * Shared/WebPreferencesStore.h:
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetSubpixelCSSOMElementMetricsEnabled):
        (WKPreferencesGetSubpixelCSSOMElementMetricsEnabled):
        * UIProcess/API/C/WKPreferencesRefPrivate.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-05-14  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Expose the viewport meta tag width on the UIProcess
        https://bugs.webkit.org/show_bug.cgi?id=132926
        <rdar://problem/16892115>

        Reviewed by Sam Weinig.

        Safari requires the viewport meta tag width for legacy stuff on WebApps. Just send it
        over to the UIProcess when it changes.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView _setViewportMetaTagWidth:]):
        (-[WKWebView _viewportMetaTagWidth]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::didChangeViewportMetaTagWidth):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::viewportMetaTagWidthDidChange):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::viewportPropertiesDidChange):

2014-05-13  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Make view debugging easier
        https://bugs.webkit.org/show_bug.cgi?id=132892

        Reviewed by Tim Horton.
        
        Enhance -[WKCompositingView description] to show WebKit-related information
        which is useful when dumping a window's UIView hierarchy.
        
        Also have WKTransformView and WKRemoteView inherit from WKCompositingView,
        and thereby get the hitTest:withEvent: override for free, as well as better dumping.

        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (-[WKCompositingView description]):
        (-[WKTransformView hitTest:withEvent:]): Deleted.
        (-[WKRemoteView hitTest:withEvent:]): Deleted.

2014-05-14  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fixed positioned element must relayout correctly before sending resize events to the page
        https://bugs.webkit.org/show_bug.cgi?id=132920
        <rdar://problem/16836866>

        Reviewed by Simon Fraser.

        During the dynamic resize operation, we do not update the fixed position elements because
        it is a very hard problem on the UI Process side.

        When the animation finishes, the fixed positioned rect is recomputed on the UIProcess and pushed
        to the WebProcess.

        The problem is sending the rect after the animation is too late, the content can observe the fixed
        elements layout through JavaScript and would get the old size.

        This patch fixes the issue updating the CustomFixedPositionLayoutRect on the WebProcess before
        notifying the content of the resize.
        First, we layout the content to the new fixed layout size to get the new content size.
        Then, we compute the new FixedPositionedLayoutRect with FrameView's viewportConstrainedObjectsRect(),
        this use the real content size and our estimated unobscured content rect.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-05-14  Enrica Casucci  <enrica@apple.com>

        REGRESSION(WK2): Many pages have very wrong text size after rotating.
        https://bugs.webkit.org/show_bug.cgi?id=132893
        <rdar://problem/16806958>

        Reviewed by Benjamin Poulain.

        Whenever our viewport width changes we must reset text autosizing
        on the renderer.

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setViewportConfigurationMinimumLayoutSize):
        (WebKit::WebPage::setMinimumLayoutSizeForMinimalUI):
        (WebKit::WebPage::resetTextAutosizingBeforeLayoutIfNeeded):
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-05-14  Alex Christensen  <achristensen@webkit.org>

        Use references instead of pointers with ResourceLoadTiming.
        https://bugs.webkit.org/show_bug.cgi?id=132846

        Reviewed by Alexey Proskuryakov.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<ResourceResponse>::encode):
        (IPC::ArgumentCoder<ResourceResponse>::decode):
        Use references instead of pointers and null checks.

2014-05-14  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>

        Remove CSS_STICKY_POSITION guards
        https://bugs.webkit.org/show_bug.cgi?id=132676

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2014-05-13  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL][WK2] Add ewk_view_fixed_layout_size_set|get()
        https://bugs.webkit.org/show_bug.cgi?id=132811

        Reviewed by Christophe Dumez.

        Some EFL applications need to set size of fixed layout when enabling fixed layout.
        This APIs can pass ownership regarding the size of fixed layout to application side.

        * UIProcess/API/efl/ewk_view.cpp:
        (ewk_view_layout_fixed_size_set):
        (ewk_view_layout_fixed_size_get):
        * UIProcess/API/efl/ewk_view.h:
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F):

2014-05-13  Simon Fraser  <simon.fraser@apple.com>

        Fix "ASSERTION FAILED: m_representation == PlatformLayerRepresentation" with UI-side compositing
        https://bugs.webkit.org/show_bug.cgi?id=132899

        Reviewed by Beth Dakin.
        
        The new InsetClipLayer and ContentShadowLayer members on scrolling nodes
        need to be correctly encoded/decoded for UI-side compositing, and dumped
        correctly.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (ArgumentCoder<ScrollingStateScrollingNode>::encode):
        (ArgumentCoder<ScrollingStateScrollingNode>::decode):
        (WebKit::RemoteScrollingTreeTextStream::dump):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

2014-05-13  Anders Carlsson  <andersca@apple.com>

        Another build fix.

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKFoundation.h:
        Make sure to include Availability.h

2014-05-13  Beth Dakin  <bdakin@apple.com>

        REGRESSION (topContentInset): Searching through Facebook Messenger's chat causes 
        scrolling in News Feed
        https://bugs.webkit.org/show_bug.cgi?id=132889
        -and corresponding-
        <rdar://problem/16715716>

        Reviewed by Simon Fraser.

        Re-name scrollOffsetRelativeToDocument() to 
        documentScrollPositionRelativeToViewOrigin().
        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::rectsForTextMatches):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::determinePrimarySnapshottedPlugIn):

2014-05-13  Dean Jackson  <dino@apple.com>

        [iOS] Page scale update messages for media controls should only fire at the end of zooming
        https://bugs.webkit.org/show_bug.cgi?id=132857
        <rdar://problem/16631009>

        Reviewed by Simon Fraser.

        As the user was zooming, the media controls that responded
        to the page scale (and resized themselves) would do so
        slightly out of sync with the screen refreshes, and it looked
        terrible.

        We already know if a pageScale change is happening inside
        a gesture using the inStableState property of the visibleContentRectUpdateInfo.
        Simply pass this along to WebCore::Page.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects): Pass inStableState onto the
        WebCore::Page. Note that we have to send this message even if the
        scale has not changed, since the last changing update might not have
        been stable.

2014-05-13  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] When the secondary UIScrollView delegates respond to callbacks, delay the state change until both delegates have finished
        https://bugs.webkit.org/show_bug.cgi?id=132849
        <rdar://problem/16863716>

        Reviewed by Anders Carlsson.

        When there are two delegates responding to UIScrollView changes, there was often an intermediate invalid
        state forwarded to the UIProcess.

        For example, on scroll, WKWebView would update the state based on the current obscured insets in response to
        delegate callbacks.
        After that update, Safari would modify the insets, thus updating the state again.
        The first state changed by WKWebView is incomplete, and should never have been set.

        This patch works around the issue by delaying visible update rect in those cases.

        When the two delegates of WKScrollView respond to the same selector, WKScrollView invokes 
        [UIWebView _willInvokeUIScrollViewDelegateCallback] on entry, and
        [UIWebView _didInvokeUIScrollViewDelegateCallback] on exit.

        Between those two calls, WKWebView does not forward the new UI state to the WebProcess.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _willInvokeUIScrollViewDelegateCallback]):
        (-[WKWebView _didInvokeUIScrollViewDelegateCallback]):
        (-[WKWebView _updateVisibleContentRects]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
        * UIProcess/ios/WKScrollView.h:
        * UIProcess/ios/WKScrollView.mm:
        (-[WKScrollViewDelegateForwarder initWithInternalDelegate:externalDelegate:]):
        (-[WKScrollViewDelegateForwarder forwardInvocation:]):
        (-[WKScrollView setInternalDelegate:]):

2014-05-13  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Remove the _extendedBackgroundExclusionInsets SPI
        https://bugs.webkit.org/show_bug.cgi?id=132848
        <rdar://problem/16875093>

        Reviewed by Darin Adler.

        The SPI is no longer needed by Safari.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView _updateScrollViewBackground]):
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _setObscuredInsets:]):
        (-[WKWebView _endAnimatedResize]):
        (updateTopAndBottomExtendedBackgroundExclusionIfNecessary): Deleted.
        (-[WKWebView _setExtendedBackgroundExclusionInsets:]): Deleted.
        (-[WKWebView _extendedBackgroundExclusionInsets]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-05-13  Samuel White  <samuel_white@apple.com>

        AX: Hit testing not accounting for top content inset.
        https://bugs.webkit.org/show_bug.cgi?id=132876

        Reviewed by Chris Fleizach.

        Updated accessibilityHitTest: to account for top content inset when converting from screen coords to WebKit coords.

        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):

2014-05-13  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): Zooming to text field leaves it partially hidden by the form assistant.
        https://bugs.webkit.org/show_bug.cgi?id=132879
        <rdar://problem/16318049>

        Reviewed by Benjamin Poulain.

        Adds the heuristics to zoom and scroll to ensure the element being focused
        is fully visible and its text readable.

        * Shared/AssistedNodeInformation.cpp:
        (WebKit::AssistedNodeInformation::encode):
        (WebKit::AssistedNodeInformation::decode):
        * Shared/AssistedNodeInformation.h:
        (WebKit::AssistedNodeInformation::AssistedNodeInformation):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _zoomToFocusRect:WebCore::selectionRect:WebCore::fontSize:minimumScale:maximumScale:allowUserScaling:forceScroll:]):
        (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowUserScaling:forceScroll:]):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _displayFormNodeInputView]):
        (-[WKContentView _startAssistingNode:userIsInteracting:userObject:]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getAssistedNodeInformation):

2014-05-13  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS Simulator build.

        * UIProcess/mac/ViewSnapshotStore.h:

2014-05-13  Tim Horton  <timothy_horton@apple.com>

        Speculative build fix for iOS.

        * UIProcess/ios/WebMemoryPressureHandlerIOS.cpp: Removed.
        * UIProcess/ios/WebMemoryPressureHandlerIOS.mm: Added.
        (WebKit::WebMemoryPressureHandler::shared):
        (WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler):
        * WebKit2.xcodeproj/project.pbxproj:
        Make WebMemoryPressureHandlerIOS Obj-C.

2014-05-13  Anders Carlsson  <andersca@apple.com>

        Another follow-up build fix.

        * Shared/API/Cocoa/WKFoundation.h:

2014-05-13  Anders Carlsson  <andersca@apple.com>

        Another follow-up build fix.

        * Shared/API/Cocoa/WKFoundation.h:

2014-05-13  Anders Carlsson  <andersca@apple.com>

        Follow-up fix.

        * UIProcess/API/Cocoa/WKNavigationAction.mm:
        (-[WKNavigationAction _initWithNavigationActionData:WebKit::]):
        (-[WKNavigationAction _isUserInitiated]):

2014-05-13  Anders Carlsson  <andersca@apple.com>

        Add -[WKNavigationAction modifierFlags] and -[WKNavigationAction buttonNumber]
        https://bugs.webkit.org/show_bug.cgi?id=132880
        <rdar://problem/16901354>

        Reviewed by Dan Bernstein.

        * Shared/API/Cocoa/WKFoundation.h:
        Add typedef for older systems.

        * UIProcess/API/Cocoa/WKNavigationAction.h:
        Add -[WKNavigationAction modifierFlags] and -[WKNavigationAction buttonNumber]

        * UIProcess/API/Cocoa/WKNavigationAction.mm:
        (toWKNavigationType):
        This can be static now.

        (toNSEventModifierFlags):
        Helper to convert WebEvent::Modifiers to NSEventModifierFlags.

        (toNSButtonNumber):
        Helper to convert WebMouseEvent::Button to an AppKit button number.

        (-[WKNavigationAction initWithNavigationActionData:WebKit::]):
        New initializer that takes a NavigationActionData and fills in the relevant ivars from it.

        (-[WKNavigationAction _isUserInitiated]):
        Return the new ivar.

        * UIProcess/API/Cocoa/WKNavigationActionInternal.h:
        Remove readwrite overrides.

        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
        Use initWithNavigationActionData:

        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::UIClient::createNewPage):
        Use initWithNavigationActionData:

2014-05-13  Tim Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures (Swipe): Encode snapshots as JPEG on some platforms
        https://bugs.webkit.org/show_bug.cgi?id=127788
        <rdar://problem/15928241>

        Reviewed by Anders Carlsson.

        Allow JPEG snapshots. Compression is done asynchronously.
        Enable JPEG snapshots (for now) on all PLATFORM(MAC).
        We'll switch back to IOSurface snapshots on 10.9+ after <rdar://problem/16734031> is resolved.

        * UIProcess/API/Cocoa/WKWebView.mm:
        * UIProcess/API/mac/WKView.mm:
        (-[WKView _takeViewSnapshot]):
        Store the image size on the ViewSnapshot.
        Move IOSurface-related code to ViewSnapshotStore.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        Adopt asLayerContents().

        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::retrieveSnapshotForItem):
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::removeSwipeSnapshot):
        Adopt asLayerContents().
        Put the snapshot on the right layer (the parent of the snapshot image layer);
        if it's on the snapshot image layer itself, if there is no image, the shadow
        is displayed on top of the white placeholder.
        Only reset snapshot purgeability if we're using IOSurface snapshots.

        * UIProcess/mac/ViewSnapshotStore.h:
        Add a bunch of macros to allow us to switch the snapshot backing store implementation.

        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::ViewSnapshotStore):
        (WebKit::ViewSnapshotStore::~ViewSnapshotStore):
        (WebKit::ViewSnapshotStore::recordSnapshot):
        If takeViewSnapshot() fails, don't remove the existing snapshot.

        (WebKit::createIOSurfaceFromImage):
        (WebKit::compressImageAsJPEG):
        (WebKit::ViewSnapshotStore::reduceSnapshotMemoryCost):
        (WebKit::ViewSnapshotStore::didCompressSnapshot):
        (WebKit::ViewSnapshot::clearImage):
        (WebKit::ViewSnapshot::asLayerContents):
        Asynchronously compress snapshots - if we're using JPEG snapshots - for a
        very large memory win (~20-30x).

2014-05-12  Darin Adler  <darin@apple.com>

        Make a few icon database improvements
        https://bugs.webkit.org/show_bug.cgi?id=132812

        Reviewed by Brady Eidson.

        * UIProcess/API/C/WKIconDatabase.cpp:
        (WKIconDatabaseCopyIconDataForPageURL): Moved the actual implementation of this
        out of the bindings into the WebIconDatabase class.

        * UIProcess/API/C/WKIconDatabase.h: Fixed argument names that were inconsistent.

        * UIProcess/WebIconDatabase.cpp: Removed unneeded includes.
        (WebKit::WebIconDatabase::create): Pass a reference instead of a pointer.
        (WebKit::WebIconDatabase::WebIconDatabase): Take a reference instead of a pointer.
        (WebKit::WebIconDatabase::invalidate): Use nullptr.
        (WebKit::WebIconDatabase::setDatabasePath): Use make_unique.
        (WebKit::WebIconDatabase::setIconDataForIconURL): Removed unneeded local variable.
        (WebKit::WebIconDatabase::imageForPageURL): Use nullptr.
        (WebKit::WebIconDatabase::nativeImageForPageURL): Ditto.
        (WebKit::WebIconDatabase::didFinishURLImport): Use a modern for loop.
        (WebKit::WebIconDatabase::iconDataForPageURL): Added. Moved this here from
        WKIconDatabase.cpp, but also changed to use createWithoutCopying to avoid making
        another copy of the data for each icon.

        * UIProcess/WebIconDatabase.h: Removed unneeded includes. Derive from
        IconDatabaseClient privately. Use nullptr. Added iconDataForPageURL member
        function. Use a reference for the constructor argument. Use override for
        virtual functions. Use unique_ptr instead of OwnPtr.

2014-05-12  Mark Lam  <mark.lam@apple.com>

        WebKit2 on iOS needs to capture the main thread's floating point environment.
        <https://webkit.org/b/132755>

        Reviewed by Geoffrey Garen.

        * Shared/mac/ChildProcessMac.mm:
        (WebKit::ChildProcess::platformInitialize):
        - Call FloatingPointEnv::enableNeededFloatingPointModes() to initialize
          the ARMv7 FP env to support denormalized numbers.
        - Call FloatingPointEnv::saveMainThreadEnvironment() to capture the main thread
          fp env.

2014-05-12  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL][WK2] Fix ewk_view_navigation test in EWK2ViewTest 
        https://bugs.webkit.org/show_bug.cgi?id=132817

        Reviewed by Dirk Schulze.

        To load test html pages, call ewk_view_uri_set() instead of EWK2UnitTestServer.
        Besides this patch adds test html page for ewk_view_navigation unit test.

        * UIProcess/API/efl/tests/resources/Page1.html: Added.
        * UIProcess/API/efl/tests/resources/Page2.html: Added.
        * UIProcess/API/efl/tests/resources/Page3.html: Added.
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F):

2014-05-12  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed, EFL build fix since r168625.

        * UIProcess/efl/WebContextEfl.cpp:
        (WebKit::WebContext::platformDefaultLocalStorageDirectory): Remove const keyword.

2014-05-12  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fuzzy tiles on some sites on loading
        https://bugs.webkit.org/show_bug.cgi?id=132847
        <rdar://problem/16816178>

        Reviewed by Benjamin Poulain.
        
        PlatformCALayerRemoteTiledBacking overrode setContentsScale() but not contentsScale(),
        causing us to early-return from GraphicsLayerCA::updateContentsScale() and leave the
        scale wrong. Fix by overriding contentsScale() also.

        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
        (WebKit::PlatformCALayerRemoteTiledBacking::contentsScale):
        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:

2014-05-12  Tim Horton  <timothy_horton@apple.com>

        Triple-buffer RemoteLayerBackingStore
        https://bugs.webkit.org/show_bug.cgi?id=132786
        <rdar://problem/16877498>

        Reviewed by Simon Fraser.

        We need three buffers because we're currently unable to synchronize
        with the render server to swap when they're not in use, so we were
        throwing surfaces away far too frequently.

        This hugely reduces time spent in IOSurface::create on various repaint benchmarks.

        * Shared/mac/RemoteLayerBackingStore.h:
        (WebKit::RemoteLayerBackingStore::hasFrontBuffer):
        (WebKit::RemoteLayerBackingStore::volatility): Deleted.
        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore):
        (WebKit::RemoteLayerBackingStore::clearBackingStore):
        (WebKit::RemoteLayerBackingStore::encode):
        (WebKit::RemoteLayerBackingStore::decode):
        (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
        (WebKit::RemoteLayerBackingStore::display):
        (WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
        (WebKit::RemoteLayerBackingStore::setBufferVolatility):
        (WebKit::RemoteLayerBackingStore::Buffer::discard):
        (WebKit::RemoteLayerBackingStore::setVolatility): Deleted.
        * Shared/mac/RemoteLayerBackingStoreCollection.mm:
        (WebKit::RemoteLayerBackingStoreCollection::purgeabilityTimerFired):
        Put the ShareableBitmap/IOSurface and a volatility bit in a Buffer struct.
        Also factor out "throw away this buffer and put it in the pool" into Buffer::discard().
        We keep a volatility bit because querying IOSurface purgeability is expensive,
        and we have a guarantee that any changes will happen in the Web process
        and go through this class (the lack of this guarantee in most cases is why I'm not
        putting this bit in WebCore::IOSurface itself).

        Make it so that each buffer's volatility can be adjusted individually
        by setBufferVolatility(), and adopt in RemoteLayerBackingStoreCollection.

        Add a third buffer, m_secondaryBackBuffer, which will swap with the back buffer
        before swapping front and back if the back buffer (soon to be the front buffer)
        is still in use by the render server. This means that we will almost never
        have to throw away a surface because it's in use (and conversely never need
        to make a new surface).

        Adjust RemoteLayerBackingStoreCollection to make secondary back surfaces purgeable
        more aggressively than others.

2014-05-12  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r165972): Can't type into text fields in Flash
        https://bugs.webkit.org/show_bug.cgi?id=132840
        <rdar://problem/16671969>

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm: (-[WKView inputContext]): Restore a function that
        got accidentally lost when adding async text input code.

2014-05-12  Chris Fleizach  <cfleizach@apple.com>

        AX: .js dialogs shown in unload while AX is running crash WebKit.
        https://bugs.webkit.org/show_bug.cgi?id=123828

        Reviewed by Anders Carlsson.

        Utilize platform API to inform AX clients when the WebProcess will suspend and resume.
        This allows us to avoid having special behavior for accessibility when the WebProcess needs
        to wait on a reply.

        * Platform/IPC/Connection.cpp:
        (IPC::Connection::waitForSyncReply):
        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.cpp:
        (IPC::Connection::willSendSyncMessage):
        (IPC::Connection::didReceiveSyncReply):
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
        (WebKit::WebChromeClient::runJavaScriptAlert):
        (WebKit::WebChromeClient::runJavaScriptConfirm):
        (WebKit::WebChromeClient::runJavaScriptPrompt):
        (WebKit::WebChromeClient::print):
        (WebKit::WebChromeClient::exceededDatabaseQuota):
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

2014-05-12  Alex Christensen  <achristensen@webkit.org>

        Progress on web timing.
        https://bugs.webkit.org/show_bug.cgi?id=132574

        Reviewed by Alexey Proskuryakov.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<ResourceResponse>::encode):
        (IPC::ArgumentCoder<ResourceResponse>::decode):
        Transfer ResourceLoadTiming values if they exist.

2014-05-12  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Expose WebPage::usesEphemeralSession to the bundle
        https://bugs.webkit.org/show_bug.cgi?id=132836

        Reviewed by Anders Carlsson.

        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _usesNonPersistentWebsiteDataStore]):
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:

2014-05-12  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        REGRESSION(168625): [GTK] build broken due to WKContextSetLocalStorageDirectory
        https://bugs.webkit.org/show_bug.cgi?id=132831

        Unreviewed GTK build fix.

        * UIProcess/gtk/WebContextGtk.cpp:
        (WebKit::WebContext::platformDefaultLocalStorageDirectory):
        This is now a static member function.

2014-05-12  Anders Carlsson  <andersca@apple.com>

        WKWebViewConfiguration should fill in the blanks
        https://bugs.webkit.org/show_bug.cgi?id=132832
        <rdar://problem/16886408>

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration init]):
        (-[WKWebViewConfiguration _validate]):
        * UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h:

2014-05-12  Anders Carlsson  <andersca@apple.com>

        WKWebView should default to _backgroundExtendsBeyondPage = YES
        https://bugs.webkit.org/show_bug.cgi?id=132829
        <rdar://problem/16886364>

        Reviewed by Beth Dakin.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):

2014-05-12  Anders Carlsson  <andersca@apple.com>

        Pass local storage directory to StorageManager::create
        https://bugs.webkit.org/show_bug.cgi?id=132827

        Reviewed by Tim Horton.

        Since we know the local storage directory at creation time and we know it never changes,
        we can get rid of setLocalStorageDirectory and just pass the local storage directory at creation time.

        * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
        (WebKit::LocalStorageDatabaseTracker::create):
        (WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
        (WebKit::LocalStorageDatabaseTracker::~LocalStorageDatabaseTracker):
        (WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectory): Deleted.
        (WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal): Deleted.
        * UIProcess/Storage/LocalStorageDatabaseTracker.h:
        * UIProcess/Storage/StorageManager.cpp:
        (WebKit::StorageManager::create):
        (WebKit::StorageManager::StorageManager):
        (WebKit::StorageManager::setLocalStorageDirectory): Deleted.
        * UIProcess/Storage/StorageManager.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::WebContext):

2014-05-11  Anders Carlsson  <andersca@apple.com>

        Replace WKContextSetLocalStorageDirectory with a context configuration getter/setter
        https://bugs.webkit.org/show_bug.cgi?id=132809

        Reviewed by Dan Bernstein.

        * UIProcess/API/C/WKContext.cpp:
        (WKContextSetLocalStorageDirectory): Deleted.

        * UIProcess/API/C/WKContextConfigurationRef.cpp:
        (WKContextConfigurationCopyLocalStorageDirectory):
        (WKContextConfigurationSetLocalStorageDirectory):
        * UIProcess/API/C/WKContextConfigurationRef.h:
        Add getters and setters for the local storage directory.

        * UIProcess/API/C/WKContextPrivate.h:
        Remove WKContextSetLocalStorageDirectory.

        * UIProcess/API/Cocoa/WKProcessGroup.mm:
        (-[WKProcessGroup initWithInjectedBundleURL:]):
        Call WebContext::applyPlatformSpecificConfigurationDefaults.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _initWithConfiguration:]):
        Call WebContext::applyPlatformSpecificConfigurationDefaults (for now).

        * UIProcess/APIContextConfiguration.cpp:
        (API::ContextConfiguration::webContextConfiguration):
        Set the local storage. Also, call WebContext::applyPlatformSpecificConfigurationDefaults.

        * UIProcess/APIContextConfiguration.h:
        (API::ContextConfiguration::injectedBundlePath):
        This should be const.

        (API::ContextConfiguration::localStorageDirectory):
        (API::ContextConfiguration::setLocalStorageDirectory):
        Add getter and setter.

        * UIProcess/Storage/StorageManager.cpp:
        (WebKit::StorageManager::setLocalStorageDirectory):
        ASSERT that the path isn't null.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
        New helper function that will fill in platform specific defaults for empty parameters.

        (WebKit::WebContext::WebContext):
        Get the local storage directory from the configuration.

        (WebKit::WebContext::setLocalStorageDirectory): Deleted.
        (WebKit::WebContext::localStorageDirectory): Deleted.
        These are no longer needed.

        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultLocalStorageDirectory):
        This should be a static member function.

2014-05-12  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        Typo fix in generate-forwarding-headers
        https://bugs.webkit.org/show_bug.cgi?id=132820

        Reviewed by Anders Carlsson.

        * Scripts/generate-forwarding-headers.pl:
        (collectFrameworkHeaderPaths):
        
2014-05-12  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        [EFL] TLSErrors do not cause page load to fail when not ignored
        https://bugs.webkit.org/show_bug.cgi?id=131104

        Reviewed by Gyuyoung Kim.

        Added EFL unit test for the bug https://bugs.webkit.org/show_bug.cgi?id=121548

        * UIProcess/API/efl/tests/test_ewk2_ssl.cpp: Added new test: ewk_ssl_bad_cert_redirect_https_to_http

2014-05-11  Gordon Sheridan  <gordon_sheridan@apple.com>

        Expose a function to copy favicon data without image conversion.
        https://bugs.webkit.org/show_bug.cgi?id=132805

        Reviewed by Darin Adler.

        * UIProcess/API/C/WKIconDatabase.cpp:
        (WKIconDatabaseCopyIconDataForPageURL):
        Add a function to copy the data from the image of a favicon for an associated page url.

        * UIProcess/API/C/WKIconDatabase.h:
        Declare WKIconDatabaseCopyIconDataForPageURL.

2014-05-11  Seongjun Kim  <isAir@company100.com>

        REGRESSION(r168603): [GTK] Build broken.
        https://bugs.webkit.org/show_bug.cgi?id=132810

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitWebContext.cpp:
        (createDefaultWebContext):
        Construct a WebContextConfiguration object and pass it to WebContext::create.

2014-05-11  Anders Carlsson  <andersca@apple.com>

        Remove local storage directory and sandbox extension from WebProcessCreationParameters
        https://bugs.webkit.org/show_bug.cgi?id=132808

        Reviewed by Beth Dakin.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess):
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-05-11  Jaehun Lim  <ljaehun.lim@samsung.com>

        Unreviewed, CMake build fix after r168603

        Add APIContextConfiguration.cpp and WKContextConfigurationRef.cpp to the source list.

        * CMakeLists.txt:

2014-05-11  Anders Carlsson  <andersca@apple.com>

        Add a WKContextConfigurationRef object and make the injected bundle path part of the configuration
        https://bugs.webkit.org/show_bug.cgi?id=132806
        <rdar://problem/16830143>

        Reviewed by Beth Dakin.

        Many setters on WKContextRef really only make sense to set early on, so move to a pattern where we create a
        configuration object, a WKContextConfiguration which WKContexts can be created from. Add the injected bundle path
        as a configuration property. More setters will follow.

        * Shared/API/c/WKBase.h:
        Add WKContextConfigurationRef.

        * Shared/APIObject.h:
        Add ContextConfiguration enum declaration.

        * UIProcess/API/C/WKAPICast.h:
        Handle WKContextConfigurationRef.

        * UIProcess/API/C/WKContext.cpp:
        (WKContextCreate):
        Create an empty WKContextConfigurationRef object and pass it to WKContextCreateWithConfiguration.

        (WKContextCreateWithInjectedBundlePath):
        Create a WKContextConfigurationRef object, set its bundle path and pass the configuration to WKContextCreateWithConfiguration.

        (WKContextCreateWithConfiguration):
        Convert the WKContextConfigurationRef object to a WebContextConfiguration and pass it to WebContext::create.

        * UIProcess/API/C/WKContext.h:
        Add WKContextCreateWithConfiguration.

        * UIProcess/API/C/WKContextConfigurationRef.cpp: Added.
        (WKContextConfigurationCreate):
        Create an API::ContextConfiguration object.

        (WKContextConfigurationCopyInjectedBundlePath):
        Return the injected bundle path.

        (WKContextConfigurationSetInjectedBundlePath):
        Set the injected bundle path.

        * UIProcess/API/C/WKContextConfigurationRef.h: Added.
        New C SPI header.
        
        * UIProcess/API/Cocoa/WKProcessGroup.mm:
        (-[WKProcessGroup initWithInjectedBundleURL:]):
        Construct a WebContextConfiguration object and pass it to WebContext::Create.
    
        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _initWithConfiguration:]):
        Construct a WebContextConfiguration object and pass it to WebContext::Create.

        * UIProcess/APIContextConfiguration.cpp: Added.
        New API::ContextConfiguration object.

        (API::ContextConfiguration::webContextConfiguration):
        Construct a WebContextConfiguration struct from our current configuration.

        * UIProcess/APIContextConfiguration.h: Added.
        
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::create):
        Pass the WebContextConfiguration to the constructor.

        (WebKit::WebContext::WebContext):
        Set the injected bundle path from the WebContextConfiguration object.

        * UIProcess/WebContext.h:
        Change the WebContext constructor and create function to take a WebContextConfiguration object.

        * WebKit2.xcodeproj/project.pbxproj:
        Add new files.

2014-05-10  Csaba Osztrogonác  <ossy@webkit.org>

        [WK2] URTBF after r168585.

        * Platform/IPC/Connection.h:
        * Shared/ChildProcessProxy.cpp:
        (WebKit::ChildProcessProxy::terminate):

2014-05-10  Tim Horton  <timothy_horton@apple.com>

        [WKWebView _updateScrollViewBackground] churns UI-and-CGColors while repainting
        https://bugs.webkit.org/show_bug.cgi?id=132793
        <rdar://problem/16877870>

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _updateScrollViewBackground]):
        Don't bypass the cache and make a copy of the CGColor just to set its alpha.
        Cache the last color and don't bother creating a UIColor nor updating the
        color on our views if it hasn't changed.

2014-05-10  Tim Horton  <timothy_horton@apple.com>

        Implement -forwardingTargetForSelector on WKScrollViewDelegateForwarder
        https://bugs.webkit.org/show_bug.cgi?id=132790
        <rdar://problem/16877802>

        Reviewed by Dan Bernstein.

        * UIProcess/ios/WKScrollView.mm:
        (-[WKScrollViewDelegateForwarder forwardingTargetForSelector:]):
        If only one of the delegates will respond to a selector,
        we can return it from forwardingTargetForSelector: to avoid
        NSInvocation overhead.

2014-05-10  Dan Bernstein  <mitz@apple.com>

        [Mac] Some targets that link or soft-link WebKit.framework don't depend on it
        https://bugs.webkit.org/show_bug.cgi?id=132776

        Reviewed by Darin Adler.

        * WebKit2.xcodeproj/project.pbxproj:

2014-05-10  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Move the ownership of EwkSettings from EwkView to EwkPageGroup
        https://bugs.webkit.org/show_bug.cgi?id=132771

        Reviewed by Gyuyoung Kim.

        Moved ownership of EwkSettings from EwkView to EwkPageGroup.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::EwkView):
        * UIProcess/API/efl/EwkView.h:
        (EwkView::settings): Deleted.
        * UIProcess/API/efl/ewk_page_group.cpp:
        (EwkPageGroup::EwkPageGroup):
        * UIProcess/API/efl/ewk_page_group_private.h:
        (EwkPageGroup::settings):
        * UIProcess/API/efl/ewk_settings_private.h:
        * UIProcess/API/efl/ewk_view.cpp:
        (ewk_view_settings_get):

2014-05-10  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] REGRESSION (r168493): Canvasmark 2013 benchmark always hits the RELEASE_ASSERT in RemoteLayerTreeDrawingArea::flushLayers()
        https://bugs.webkit.org/show_bug.cgi?id=132783
        <rdar://problem/16877326>

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):
        There's a race window between the BackingStoreFlusher sending the new
        layer tree to the UI process and updating m_hasFlushed where we can
        get a reply back in (on the Web process main thread) from the UI process
        that we committed the new layer tree (didUpdate).
        This will cause the RELEASE_ASSERT in flushLayers() to fire incorrectly.
        Since the RELEASE_ASSERT is there only to avoid painting garbage, move
        our code to set m_hasFlushed=true to after we finish calling CGContextFlush
        on all of the contexts, instead of after we send the layer tree commit message,
        which will remove the race entirely.

2014-05-10  Anders Carlsson  <andersca@apple.com>

        ASSERTION FAILED: !m_connection under RunJavaScriptAlert
        https://bugs.webkit.org/show_bug.cgi?id=132792
        <rdar://problem/16691138>

        Reviewed by Dan Bernstein.

        Detect if someone implementing a UI delegate method with a completion handler never calls the completion
        handler and raise an exception instead of asserting.

        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::CompletionHandlerCallChecker::create):
        (WebKit::CompletionHandlerCallChecker::~CompletionHandlerCallChecker):
        (WebKit::CompletionHandlerCallChecker::didCallCompletionHandler):
        (WebKit::CompletionHandlerCallChecker::CompletionHandlerCallChecker):
        (WebKit::CompletionHandlerCallChecker::classImplementingDelegateMethod):
        (WebKit::UIDelegate::UIClient::runJavaScriptAlert):
        (WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
        (WebKit::UIDelegate::UIClient::runJavaScriptPrompt):

2014-05-10  Anders Carlsson  <andersca@apple.com>

        Use xpc_connection_kill for killing child processes where appropriate
        https://bugs.webkit.org/show_bug.cgi?id=132788
        <rdar://problem/16664185>

        Reviewed by Sam Weinig.

        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::Connection::kill):
        * Platform/IPC/mac/XPCPtr.h:
        (IPC::XPCPtr::operator bool):
        * Shared/ChildProcessProxy.cpp:
        (WebKit::ChildProcessProxy::terminate):

2014-05-10  Anders Carlsson  <andersca@apple.com>

        WebKit2 is leaking an xpc_connection per web process it creates
        https://bugs.webkit.org/show_bug.cgi?id=132785
        <rdar://problem/14912160>

        Reviewed by Sam Weinig.

        Introduce an IPC::XPCPtr smart pointer class and use it for XPC connections inside Connection::Identifier and Connection itself.

        Make sure we always adopt any connections that are created.

        * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
        (DatabaseServiceInitializer):
        * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
        (WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate):
        (NetworkServiceInitializer):
        * Platform/IPC/Connection.h:
        (IPC::Connection::Identifier::Identifier):
        (IPC::Connection::xpcConnection):
        * Platform/IPC/mac/ConnectionMac.mm:
        (IPC::Connection::platformInvalidate):
        (IPC::Connection::platformInitialize):
        (IPC::Connection::getAuditToken):
        * Platform/IPC/mac/XPCPtr.h: Added.
        (IPC::XPCPtr::XPCPtr):
        (IPC::XPCPtr::~XPCPtr):
        (IPC::XPCPtr::get):
        (IPC::XPCPtr::operator!):
        (IPC::XPCPtr::operator=):
        (IPC::adoptXPC):
        * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
        (WebKit::PluginServiceInitializerDelegate::PluginServiceInitializerDelegate):
        (PluginServiceInitializer):
        * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm:
        (WebKit::BootstrapMain):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
        (WebKit::XPCServiceInitializerDelegate::XPCServiceInitializerDelegate):
        (WebKit::XPCServiceInitializer):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
        (WebKit::XPCServiceInitializerDelegate::hasEntitlement):
        (WebKit::XPCServiceInitializerDelegate::isClientSandboxed):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
        (WebKit::XPCServiceEventHandler):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
        (WebKit::XPCServiceEventHandler):
        * UIProcess/Launcher/ProcessLauncher.cpp:
        (WebKit::ProcessLauncher::didFinishLaunchingProcess):
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
        (WebContentServiceInitializer):

2014-05-10  Anders Carlsson  <andersca@apple.com>

        Simplify createDataAvailableSource
        https://bugs.webkit.org/show_bug.cgi?id=132782
        <rdar://problem/16815202>

        Reviewed by Sam Weinig.

        * Platform/IPC/mac/ConnectionMac.mm: Renamed from Source/WebKit2/Platform/IPC/mac/ConnectionMac.cpp.
        Rename to make this Objective-C++ so we get the lambda-to-block conversion.

        (IPC::createDataAvailableSource):
        Make this a function template and just pass the function directly to dispatch_source_set_event_handler.

        (IPC::Connection::open):
        Use lambdas instead of WTF::bind, so we'll make sure the connection is kept alive.

        * WebKit2.xcodeproj/project.pbxproj:
        Update for ConnectionMac.cpp to ConnectionMac.mm rename.

2014-05-10  Anders Carlsson  <andersca@apple.com>

        Follow-up fix.

        Reviewed by Darin Adler.

        * UIProcess/API/Cocoa/WKNavigationResponse.h:
        * UIProcess/API/Cocoa/WKNavigationResponse.mm:
        (-[WKNavigationResponse isForMainFrame]):
        Use a slightly better name.

2014-05-10  Anders Carlsson  <andersca@apple.com>

        Make -[WKNavigationResponse frame] SPI and only expose -[WKNavigationResponse isMainFrame]
        https://bugs.webkit.org/show_bug.cgi?id=132781
        <rdar://problem/16868319>

        Reviewed by Darin Adler.

        * UIProcess/API/Cocoa/WKNavigationResponse.h:
        * UIProcess/API/Cocoa/WKNavigationResponse.mm:
        (-[WKNavigationResponse description]):
        (-[WKNavigationResponse isMainFrameNavigation]):
        (-[WKNavigationResponse _frame]):
        (-[WKNavigationResponse frame]): Deleted.
        (-[WKNavigationResponse setFrame:]): Deleted.
        * UIProcess/API/Cocoa/WKNavigationResponseInternal.h:
        * UIProcess/API/Cocoa/WKNavigationResponsePrivate.h: Added.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForResponse):
        * WebKit2.xcodeproj/project.pbxproj:

2014-05-09  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Remove a deprecated bundle form delegate method now that no one implements it
        https://bugs.webkit.org/show_bug.cgi?id=132769

        Reviewed by Sam Weinig.

        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]):

2014-05-09  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix bugs exposed by r168556
        https://bugs.webkit.org/show_bug.cgi?id=132768

        Reviewed by Ryosuke Niwa.

        Fix two bugs exposed by r168556.
        1) We were only changing the page scale factor when the scale was not adjusted by live
           resize. The idea was that the scale would either be the same (responsive content)
           or that it would be defined by the next viewContentRectUpdate.

           Now that we also send resize and scroll events, we must always update the scale since
           it affects some APIs observable from JavaScript (like scrolling bounds).

        2) Internally, Page's scaleFactor is stored as a float and not double. The rounding error
           were causing us to send DynamicViewportUpdateChangedTarget() in cases were there is no change
           of target.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::withinEpsilon):
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-05-09  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Close icondatabase when EwkFaviconDatabase is destroyed
        https://bugs.webkit.org/show_bug.cgi?id=132767

        Reviewed by Gyuyoung Kim.

        IconDatabase should be closed explicitly.

        * UIProcess/API/efl/ewk_favicon_database.cpp:
        (EwkFaviconDatabase::~EwkFaviconDatabase):

2014-05-09  Anders Carlsson  <andersca@apple.com>

        Another build fix.

        * mac/MigrateHeadersToWebKit2.make:
        Don't migrate the WKPreferences.h header, WebKit2 provides its own header.

2014-05-09  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Reset the scroll position on the first frame after didCommitLoad
        https://bugs.webkit.org/show_bug.cgi?id=132765

        Reviewed by Tim Horton.

        Since WebCore does not update our scroll view on load, we need to do that ourself.

        In case where we need to restore the state from the history, RemoteLayerTreeDrawingAreaProxy
        will always invoke the scrolling after didCommitLayerTree() (since r167916).
        Consequently, it is now safe again to reset the scroll position ourself on the first frame.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLoadForMainFrame]):
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _didCommitLoadForMainFrame]):

2014-05-09  Anders Carlsson  <andersca@apple.com>

        Update availability macros
        https://bugs.webkit.org/show_bug.cgi?id=132763
        <rdar://problem/15311800>

        Reviewed by Dan Bernstein.

        * Configurations/WebKit.xcconfig:
        * Shared/API/Cocoa/WKBrowsingContextHandle.h:
        * Shared/API/Cocoa/WKFoundation.h:
        * Shared/API/Cocoa/_WKFrameHandle.h:
        * Shared/API/Cocoa/_WKRemoteObjectInterface.h:
        * Shared/API/Cocoa/_WKRemoteObjectRegistry.h:
        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
        * UIProcess/API/Cocoa/WKBackForwardListPrivate.h:
        * UIProcess/API/Cocoa/WKBrowsingContextController.h:
        * UIProcess/API/Cocoa/WKBrowsingContextGroup.h:
        * UIProcess/API/Cocoa/WKConnection.h:
        * UIProcess/API/Cocoa/WKFrameInfo.h:
        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigationAction.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKNavigationData.h:
        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKNavigationResponse.h:
        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKProcessGroup.h:
        * UIProcess/API/Cocoa/WKProcessPool.h:
        * UIProcess/API/Cocoa/WKScriptMessage.h:
        * UIProcess/API/Cocoa/WKScriptMessageHandler.h:
        * UIProcess/API/Cocoa/WKTypeRefWrapper.h:
        * UIProcess/API/Cocoa/WKUIDelegate.h:
        * UIProcess/API/Cocoa/WKUserContentController.h:
        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        (NS_OPTIONS):
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKWindowFeatures.h:
        * UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/_WKDownload.h:
        * UIProcess/API/Cocoa/_WKElementAction.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
        * UIProcess/API/Cocoa/_WKScriptWorld.h:
        * UIProcess/API/Cocoa/_WKThumbnailView.h:
        * UIProcess/API/Cocoa/_WKVisitedLinkProvider.h:
        * UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.h:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.h:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h:
        * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
        * WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
        * WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
        * WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
        * WebProcess/InjectedBundle/API/mac/WKDOMText.h:
        * WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
        * mac/rewrite-availability-macros.sh: Added.

2014-05-09  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Allow Remote Inspector to entitlement check UIProcess through WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=132409

        Reviewed by Timothy Hatcher.

        * WebProcess/WebCoreSupport/WebInspectorClient.h:
        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
        (WebKit::WebInspectorClient::parentProcessIdentifier): Deleted.
        pid per debuggable is no longer needed.

        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::initializeWebProcess):
        Immediately pass the parent process pid and audit_token on
        to the RemoteInspector singleton when the process is created
        so that it can be sent to webinspectord.

2014-05-09  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): Tapping in search field at wikipedia.org doesn’t bring up the keyboard.
        https://bugs.webkit.org/show_bug.cgi?id=132761
        <rdar://problem/16857491>

        Reviewed by Benjamin Poulain.

        The interactionAssistant accessor should never create an instance of
        UIWKTextInteractionAssistant, but simply return the value of _textInteractionAssistant.
        The text interaction assistant should only be created when needed so that the rest of
        the code could reliably check if we are interacting with text or not.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView interactionAssistant]):

2014-05-09  Simon Fraser  <simon.fraser@apple.com>

        Fix some issues with scrolling tree logging
        https://bugs.webkit.org/show_bug.cgi?id=132762

        Reviewed by Tim Horton.
        
        Only dump viewport constraints when they change, and dump the primary layer on
        scrolling nodes.
        
        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (WebKit::RemoteScrollingTreeTextStream::dump): Dump the primary layer.

2014-05-09  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fixed elements can go outside the document on pinching
        https://bugs.webkit.org/show_bug.cgi?id=132759
        <rdar://problem/16870835>

        Reviewed by Benjamin Poulain.
        
        Constrain the rect used to position fixed position objects when pinching (when
        the scale goes below the minimumScale). Do so in such a way that there's a smooth
        transition between rubber-banding and pinching.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _updateScrollViewBackground]): Use a nicer form for std::max<>.
        (-[WKWebView _updateVisibleContentRects]): Pass the minimum scale.
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView _updateVisibleContentRects]): Ditto.
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (adjustedUnexposedEdge): Helper to adjust the left/top.
        (adjustedUnexposedMaxEdge): Helper to adjust the right/bottom.
        (fixedPositionRectFromExposedRect):
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:minimumScale:inStableState:]):
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]): Deleted.

2014-05-09  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering[iOS]: Top bar on apple.com/support jiggles when the swoosh animates.
        https://bugs.webkit.org/show_bug.cgi?id=132750
        <rdar://problem/16803281>

        Reviewed by Simon Fraser.

        This patch ensures that GraphicsLayer and RemoteLayerBackingStore have the same dimensions.
        
        Remove integral enclosing when we set the size on RemoteLayerBackingStore. It makes the layer's size
        different from the backingstore when the passed value is fractional.
        We scale and integral round this value to size the shareable bitmap later. Rounding ensures that
        the final size value matches what we calculated at GraphicsLayerCA::updateGeometry()

        Currently not testable.

        * Shared/mac/RemoteLayerBackingStore.h:
        (WebKit::RemoteLayerBackingStore::size):
        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::ensureBackingStore):
        (WebKit::RemoteLayerBackingStore::setNeedsDisplay): use enclosing here to ensure we cover the entire backing store.
        (WebKit::RemoteLayerBackingStore::display):
        (WebKit::RemoteLayerBackingStore::drawInContext):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::updateBackingStore):

2014-05-09  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Set up the resize events
        https://bugs.webkit.org/show_bug.cgi?id=132726

        Reviewed by Darin Adler and Simon Fraser.

        Wire the UI Process updates to FrameView to send the resize events appropriately.

        * Shared/VisibleContentRectUpdateInfo.cpp:
        (WebKit::VisibleContentRectUpdateInfo::encode):
        (WebKit::VisibleContentRectUpdateInfo::decode):
        * Shared/VisibleContentRectUpdateInfo.h:
        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
        (WebKit::VisibleContentRectUpdateInfo::isChangingObscuredInsetsInteractively):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _updateVisibleContentRects]):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:isChangingObscuredInsetsInteractively:]):
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]): Deleted.
        Pass down the status of the content insets with the view update to main frame's FrameView
        when needed.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):
        On live resize, send the resize event, then the scroll events (if needed).

        Since JavaScript now gets two chances to change the content (resize event + scroll event),
        we query the actual scroll offset and scale for the DynamicViewportUpdateChangedTarget.

        (WebKit::WebPage::viewportConfigurationChanged):
        Define the custom size on load before the app gets a chance to send different rects.
        If for some reason the app changes its mind about the insets, the content will be notified with a resize event.

        (WebKit::WebPage::updateVisibleContentRects):
        Send the resize event when the insets are stable.
        Also move the scroll event after the resize event for consistency with live resize.

2014-05-09  Benjamin Poulain  <benjamin@webkit.org>

        [iOS] Switch geolocation to an explicit authorization query model
        https://bugs.webkit.org/show_bug.cgi?id=132717

        Reviewed by Sam Weinig.

        Switch WKGeolocationProviderIOS to use the new API of WebGeolocationCoreLocationProvider.

        On WebKit2, the whole logic to track requesters is in WebGeolocationManagerProxy.

        Without the warmup sequence, WKGeolocationProviderIOS becomes really dumb: it just provides
        the two step authorization and forward the start/stop messages to the WebGeolocationCoreLocationProvider.

        * UIProcess/ios/WKGeolocationProviderIOS.mm:
        (-[WKGeolocationProviderIOS _stopUpdating]):
        (-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:request:window:]):
        (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
        (-[WKGeolocationProviderIOS geolocationAuthorizationDenied]):
        (-[WKWebAllowDenyPolicyListener initWithPermissionRequestProxy:]):
        (-[WKWebAllowDenyPolicyListener deny]):
        (-[WKGeolocationProviderIOS _stopUpdatingIfPossible]): Deleted.
        (-[WKGeolocationProviderIOS geolocationDelegateStarted]): Deleted.
        (-[WKGeolocationProviderIOS geolocationDelegateUnableToStart]): Deleted.
        (-[WKGeolocationProviderIOS permissionDenied:]): Deleted.
        (-[WKWebAllowDenyPolicyListener initWithProvider:permissionRequestProxy:]): Deleted.

2014-05-09  Gordon Sheridan  <gordon_sheridan@apple.com>

        Expose functions necessary for copying favicon between IconDatabases.
        https://bugs.webkit.org/show_bug.cgi?id=132709

        Reviewed by Brady Eidson.

        * UIProcess/API/C/WKIconDatabase.cpp:
        (WKIconDatabaseSetIconURLForPageURL):
        Add C API wrapper for WebIconDatabase::setIconURLForPageURL().

        (WKIconDatabaseCopyIconURLForPageURL):
        Add C API wrapper for WebIconDatabase::synchronousIconURLForPageURL().

        * UIProcess/API/C/WKIconDatabase.h:
        Added declarations for wrapper functions above.

2014-05-09  Tim Horton  <timothy_horton@apple.com>

        Fix the iOS DRT build by including CG headers in WKPreferences.h, which uses CGFloat.

        * UIProcess/API/Cocoa/WKPreferences.h:

2014-05-09  Brent Fulgham  <bfulgham@apple.com>

        {TelephoneNumber, Selection}ControllerMac implementations dosn't handle tiled drawing properly.
        https://bugs.webkit.org/show_bug.cgi?id=132746
        <rdar://problem/16789588>

        Reviewed by Tim Horton.

        Don't try to draw the detector UI if no part of the selection bounds are inside
        the current tile. Don't limit the detector UI to the bounds of this tile, or else
        it will attempt to squeeze itself into the possibly small space available. Let it
        draw as if it had the whole screen, and rely on the context clip region to
        avoid overdrawing.

        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
        (WebKit::TelephoneNumberOverlayController::drawRect): Correct tiled drawing behavior.
        * WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm:
        (WebKit::SelectionOverlayController::drawRect): Ditto.

2014-05-09  Anders Carlsson  <andersca@apple.com>

        Production build fix.

        Reviewed by Dan Bernstein.

        * Configurations/BaseTarget.xcconfig:
        Add SDKROOT in front of UMBRELLA_FRAMEWORKS_DIR for OS X Production builds.

2014-05-09  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Flush RemoteLayerBackingStore contexts on a secondary queue
        https://bugs.webkit.org/show_bug.cgi?id=132667
        <rdar://problem/15349483>

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create):
        Address a missed review comment about a missing std::move.

2014-05-09  Anders Carlsson  <andersca@apple.com>

        Rename WebKit2.framework to WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=132743
        <rdar://problem/15920046>

        Reviewed by Dan Bernstein.

        * Configurations/BaseLegacyProcess.xcconfig:
        Change INSTALL_PATH to WebKit.framework.

        * Configurations/BaseTarget.xcconfig:
        Change WEBKIT2_FRAMEWORKS_DIR to WEBKIT_FRAMEWORKS_DIR and add WEBKIT_LEGACY_PRIVATE_HEADERS_DIR.

        * Configurations/BaseXPCService.xcconfig:
        Change WebKit2.framework to WebKit.framework.

        * Configurations/WebKit.xcconfig: Copied from Source/WebKit2/Configurations/WebKit2.xcconfig.
        New configuration file for WebKit.framework. Re-export WebKitLegacy.framework.

        * Configurations/WebKit2.xcconfig:
        New configuration file for the WebKit2 shim framework. Re-export WebKit.framework.

        * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist:
        Update DYLD_INSERT_LIBRARIES to refer to WebKit.framework.

        * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
        Update DYLD_INSERT_LIBRARIES to refer to WebKit.framework.
        
        * Shared/API/Cocoa/WKBrowsingContextHandle.h:
        * Shared/API/Cocoa/WKRenderingProgressEvents.h:
        Update header imports.

        * Shared/API/Cocoa/WebKit.h: Renamed from Source/WebKit/mac/WebKitLegacy/WebKit.h.
        New umbrella header. Imports the modern WebKit API as well as the legacy API.

        * Shared/API/Cocoa/WebKit.m: Renamed from Source/WebKit/mac/WebKitLegacy/WebKit.m.
        Export install name symbols on iOS.

        * Shared/API/Cocoa/WebKitPrivate.h: Renamed from Source/WebKit/mac/WebKitLegacy/WebKitPrivate.h.
        New umbrella SPI header. Imports the modern WebKit SPI.

        * Many headers:
        Change WebKit2 includes to WebKit includes.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
        (WebKit::XPCServiceEventHandler):
        Change bundle identifiers from com.apple.WebKit2 to com.apple.WebKit.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
        (WebKit::XPCServiceEventHandler):
        Change bundle identifier from com.apple.WebKit2 to com.apple.WebKit.
        
        * UIProcess/API/Cocoa/WKPreferences.h:
        Stop including WKPreferencesRef.h, we have a WebKit2 header that handles this workaround for us now.

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::addDYLDEnvironmentAdditions):
        (WebKit::connectToService):
        (WebKit::createProcess):
        (WebKit::ProcessLauncher::launchProcess):
        Change bundle identifiers from com.apple.WebKit2 to com.apple.WebKit.

        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
        (WebKit::PluginProcessProxy::createPropertyListFile):
        Change bundle identifiers from com.apple.WebKit2 to com.apple.WebKit.

        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformDefaultDiskCacheDirectory):
        Change bundle identifier from com.apple.WebKit2 to com.apple.WebKit.
        
        * WebKit2.xcodeproj/project.pbxproj:
        Copy the python message scripts to the WebKit2 framework.
        Rename WebKit2.framework to WebKit.framework everywhere.
        Add a new WebKit2 target that builds the shim WebKit2 framework.
        Move the build script phase that migrates WebKitLegacy headers to WebKit.
        Add a new build script phase that adds forwarding headers from WebKit2 to WebKit.

        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
        Update DYLD_INSERT_LIBRARIES to refer to WebKit.framework.

        * mac/MigrateHeadersFromWebKitLegacy.make: Renamed from Source/WebKit/mac/WebKitLegacy/MigrateHeadersFromWebKitLegacy.make.
        Move the makefile that migrates WebKitLegacy headers here. On OS X, it copies the header contents and on iOS it creates forarding headers.

        * mac/MigrateHeadersToWebKit2.make:
        New makefile that creates forwarding headers for the WebKit2 shim framework.

        * mac/WKPreferences.h: Added.
        Add WebKit2/WKPreferences.h header that imports WebKit2/WKPreferencesref.h.

        * mac/WebKit2.m:
        Skeleton for the WebKit2 shim framework.

        * mac/Info-WebKit2.plist: Added.
        New Info.plist file for the WebKit2 shim framework.

2014-05-09  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        [WK2] Make generate-forwarding-headers.pl work after WebKit2.framework -> WebKit.framework rename
        https://bugs.webkit.org/show_bug.cgi?id=132733

        Reviewed by Csaba Osztrogonác.

        Rewrite framework's directory name to WebKit2 if the framework is WebKit (former WebKit2)
        and then collect headers inside the fixed framework directory and generate forwarding
        headers point to the fixed directory.

        Leave WebKit2 in @frameworks list during the transition. It can be removed
        once <WebKit2/foo.h> style includes were renamed to <WebKit/foo.h> everywhere.

        * Scripts/generate-forwarding-headers.pl:
        (collectFameworkHeaderPaths):
        (createForwardingHeadersForFramework):

2014-05-08  Alexey Proskuryakov  <ap@apple.com>

        Automatically zip document bundles used via File API
        https://bugs.webkit.org/show_bug.cgi?id=132713
        <rdar://problem/13397892>

        Reviewed by Anders Carlsson.

        * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: NetworkProcess
        now uses FileCoordination (WebProcess already had this allowed).

        * Shared/BlobDataFileReferenceWithSandboxExtension.h: Added final to the class.

2014-05-08  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Bottom-relative position:fixed elements are misplaced on page load
        https://bugs.webkit.org/show_bug.cgi?id=132719
        <rdar://problem/16860837>

        Reviewed by Benjamin Poulain.
        
        If we haven't received visible rects from the web process, compute the
        fixed position rect, but only after scale has been set.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::viewportConfigurationChanged):

2014-05-08  Jer Noble  <jer.noble@apple.com>

        [Mac, iOS] Add source application accounting to AVURLAsset.
        https://bugs.webkit.org/show_bug.cgi?id=132637

        Reviewed by Eric Carlson.

        Add accessor for sourceApplicationIdentifier.

        * NetworkProcess/RemoteNetworkingContext.h:
        * NetworkProcess/mac/RemoteNetworkingContext.mm:
        (WebKit::RemoteNetworkingContext::sourceApplicationIdentifier):
        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
        (WebKit::WebFrameNetworkingContext::sourceApplicationIdentifier):

2014-05-08  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Flush RemoteLayerBackingStore contexts on a secondary queue
        ​https://bugs.webkit.org/show_bug.cgi?id=132667
        <rdar://problem/16861454>

        Rubber-stamped by Simon Fraser.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        Add a null check to fix a crash on layers which lose backing store.

2014-05-08  Beth Dakin  <bdakin@apple.com>

        REGRESSION (r168053): Phone number detection boxes are wrong when scrolled
        https://bugs.webkit.org/show_bug.cgi?id=132706
        -and corresponding-
        <rdar://problem/16787957>

        Reviewed by Tim Horton.

        We need to paint the boxes in Document coordinates. Range::boundingRect() was 
        giving us a point that took scroll position into account, and that’s not what we 
        want. Here we use Range::textQuads() instead so that we can get something in 
        Document coordinates, and then we need to convert that up to the main Document’s 
        coordinates.
        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
        (WebKit::textQuadsToBoundingRectForRange):
        (WebKit::TelephoneNumberOverlayController::drawRect):

        The telephone click function wants a point in Window coordinates.
        (WebKit::TelephoneNumberOverlayController::mouseEvent):

2014-05-08  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Flush RemoteLayerBackingStore contexts on a secondary queue
        https://bugs.webkit.org/show_bug.cgi?id=132667
        <rdar://problem/15349483>

        Reviewed by Darin Adler.

        * Shared/mac/RemoteLayerBackingStore.h:
        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::takeFrontContextPendingFlush):
        (WebKit::RemoteLayerBackingStore::flush): Deleted.
        Add takeFrontContextPendingFlush, which returns the painted-but-not-yet-flushed front context,
        and drops our reference to it. This needs to be called on all backing store between paints.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::hasFlushed):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
        (WebKit::RemoteLayerTreeDrawingArea::~RemoteLayerTreeDrawingArea):
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create):
        (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::BackingStoreFlusher):
        (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):
        (WebKit::flushBackingStoreChangesInTransaction): Deleted.
        Flush backing store and send the layer tree commit to the UI process from a dispatch queue.
        We will only ever have a single commit in flight at a time, and there's a new
        RELEASE_ASSERT to ensure that is the case.
        We package up the commit on the main thread; the queue calls CGContextFlush
        on all of the newly painted contexts and then tosses the commit over to the UI process.
        This is a win in many cases because the Web process main thread can go ahead
        and do other non-painting tasks while the queue is blocked on painting.

2014-05-08  Tim Horton  <timothy_horton@apple.com>

        [wk2] Don't use the XPC-based plugin process for Adobe Reader
        https://bugs.webkit.org/show_bug.cgi?id=132701
        <rdar://problem/16792692>

        Reviewed by Anders Carlsson.

        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
        (WebKit::shouldUseXPC):
        Rename the debugging default to a more modern and accurate name.
        Don't use XPC for Adobe Reader.

        (WebKit::PluginProcessProxy::platformGetLaunchOptions):
        Move the check for plugins that need an executable heap into shouldUseXPC.

2014-05-08  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Remove an incorrect assertion on asynchronous touch dispatch
        https://bugs.webkit.org/show_bug.cgi?id=132660

        Reviewed by Enrica Casucci.

        This assertion no longer make sense after r168393. Now the asynchronous behavior is maintained
        until the last finger leaves the screen.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::handleTouchEventAsynchronously):

2014-05-08  Alexey Proskuryakov  <ap@apple.com>

        Make BlobDataFileReference manage its sandbox extension
        https://bugs.webkit.org/show_bug.cgi?id=132689

        Reviewed by Anders Carlsson.

        * CMakeLists.txt:
        * PlatformGTK.cmake:
        * WebKit2.xcodeproj/project.pbxproj:
        Added BlobDataFileReferenceWithSandboxExtension.

        * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
        (WebKit::NetworkBlobRegistry::registerFileBlobURL):
        (WebKit::NetworkBlobRegistry::registerBlobURL):
        (WebKit::NetworkBlobRegistry::registerBlobURLForSlice):
        (WebKit::NetworkBlobRegistry::unregisterBlobURL):
        (WebKit::NetworkBlobRegistry::connectionToWebProcessDidClose):
        (WebKit::NetworkBlobRegistry::filesInBlob):
        (WebKit::NetworkBlobRegistry::sandboxExtensions): Deleted.
        * NetworkProcess/FileAPI/NetworkBlobRegistry.h:
        We no longer track sandbox extensions here. Instead, provide a way to get files
        for a blob, which contain extensions and can allow access to themselves.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::NetworkResourceLoader):
        (WebKit::NetworkResourceLoader::consumeSandboxExtensions):
        (WebKit::NetworkResourceLoader::invalidateSandboxExtensions):
        * NetworkProcess/NetworkResourceLoader.h:
        Allow/revoke access to files in blob, just like we do for explicitly passed extensions.

        * Shared/BlobDataFileReferenceWithSandboxExtension.cpp: Added.
        (WebKit::BlobDataFileReferenceWithSandboxExtension::BlobDataFileReferenceWithSandboxExtension):
        (WebKit::BlobDataFileReferenceWithSandboxExtension::~BlobDataFileReferenceWithSandboxExtension):
        (WebKit::BlobDataFileReferenceWithSandboxExtension::prepareForFileAccess):
        (WebKit::BlobDataFileReferenceWithSandboxExtension::revokeFileAccess):
        * Shared/BlobDataFileReferenceWithSandboxExtension.h: Added.
        (WebKit::BlobDataFileReferenceWithSandboxExtension::create):
        A subclass of BlobDataFileReference that also contains a sandbox extension. NetworkProcess
        always uses it in BlobRegistryImpl.

        * WebProcess/FileAPI/BlobRegistryProxy.cpp: (WebKit::BlobRegistryProxy::registerFileBlobURL):
        * WebProcess/FileAPI/BlobRegistryProxy.h:
        Updated for BlobRegistry interface changes. BlobRegistryProxy doesn't really need
        a BlobDataFileReference here, as it only uses a path, but it needs to implement the same interface
        as BlobRegistryImpl.

2014-05-08  Brady Eidson  <beidson@apple.com>

        "shouldKeepCurrentBackForwardListItemInList" API should pass clientInfo to the callback
        <rdar://problem/16855357> and https://bugs.webkit.org/show_bug.cgi?id=132692

        Reviewed by Tim Horton.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageLoaderClient):
        * UIProcess/API/C/WKPageLoaderClient.h:

2014-05-08  Antti Koivisto  <antti@apple.com>

        [iOS WebKit2] Can't activate text fields on Facebook
        https://bugs.webkit.org/show_bug.cgi?id=132682

        Reviewed by Enrica Casucci.

        * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
        (WebKit::WebChromeClient::observedContentChange):
        
            Implement content change observer callback.

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::handleSyntheticClick):
        
            If the event gets canceled by a potential change (a started short-duration timer)
            save the position and node so we can continue later.

        (WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):
        
            If it turns out the observed timer changed nothing continue the click event.

        (WebKit::WebPage::completeSyntheticClick):
        
            Factored click event dispatch part of handleSyntheticClick here.

2014-05-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CoordinatedGraphics][WK2] Scale factor and scroll position is not being restored properly in a back/forward load
        https://bugs.webkit.org/show_bug.cgi?id=126022

        Reviewed by Benjamin Poulain.

        Original author : Thiago de Barros Lacerda, and finished by Gyuyoung Kim.

        When user is navigating back/forward to a page that has been scrolled and/or scaled, that page must be shown
        with its last scroll position and scale factor. However, when fixed layout was enabled with CoordinatedGraphics
        and TILED_BACKING_STORE, Page::setPageScaleFactor() doesn't send previous scroll position since r165652 and r165913.

        This patch allows the Page::setPageScaleFactor() send stored position to WK2 implementation.

        * UIProcess/CoordinatedGraphics/WebView.cpp:
        (WebKit::WebView::didCommitLoadForMainFrame):

2014-05-07  Simon Fraser  <simon.fraser@apple.com>

        Put a better version of the assertion back, and add one when we ensureBackingStore.

        Reviewed by Tim Horton.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
        (WebKit::PlatformCALayerRemote::ensureBackingStore):

2014-05-07  Simon Fraser  <simon.fraser@apple.com>

        This assertion was wrong and fired every time. Remove it.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):

2014-05-07  Enrica Casucci  <enrica@apple.com>

        WK2: Programatic scroll requests during scroll or zoom animation to reveal focused element are ignored.
        https://bugs.webkit.org/show_bug.cgi?id=132657
        <rdar://problem/16468462>

        Reviewed by Benjamin Poulain.

        With the scrolling model we use on iOS, a programatic scroll
        request can be received while we are still animating to reveal
        the focused input element. Changing the scroll offset while animating
        leads to unpredictable results. We now cancel the animation if
        a programatic scroll request is received.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _scrollToContentOffset:WebCore::]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getAssistedNodeInformation):

2014-05-07  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Speculative fix for crash in PlatformCALayerRemote::recursiveBuildTransaction
        https://bugs.webkit.org/show_bug.cgi?id=132666

        Reviewed by Tim Horton.
        
        Crash reports suggest that owner() can be null. Assert and protect
        against this.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):

2014-05-07  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16831276> [iOS] Unparenting a WKWebView that’s loading pauses it
        https://bugs.webkit.org/show_bug.cgi?id=132659

        Reviewed by Tim Horton.

        * UIProcess/Cocoa/NavigationState.h: Added a member variable.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::didChangeIsLoading): When transitioning into loading state,
        acquire a background activity token. When transitioning out of loading state, dispose of
        the token.

2014-05-07  Jeremy Jones  <jeremyj@apple.com>

        HTMLMediaElement should exitFullscreen when view is removed from the window.
        https://bugs.webkit.org/show_bug.cgi?id=132506

        Reviewed by Tim Horton.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::viewStateDidChange):
        Request WebVideoFUllscreenManagerProxy to exitFullscreen when removed from the window.
        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        Make requestExitFullscreen() public instead of private.

2014-05-07  Alexey Proskuryakov  <ap@apple.com>

        Make blob size computation lazy
        https://bugs.webkit.org/show_bug.cgi?id=132653

        Reviewed by Anders Carlsson.

        * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
        (WebKit::NetworkBlobRegistry::registerBlobURL):
        (WebKit::NetworkBlobRegistry::registerBlobURLForSlice):
        (WebKit::NetworkBlobRegistry::blobSize):
        * NetworkProcess/FileAPI/NetworkBlobRegistry.h:
        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::registerBlobURL):
        (WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice):
        (WebKit::NetworkConnectionToWebProcess::blobSize):
        * NetworkProcess/NetworkConnectionToWebProcess.h:
        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
        * WebProcess/FileAPI/BlobRegistryProxy.cpp:
        (WebKit::BlobRegistryProxy::registerBlobURL):
        (WebKit::BlobRegistryProxy::registerBlobURLForSlice):
        (WebKit::BlobRegistryProxy::blobSize):
        * WebProcess/FileAPI/BlobRegistryProxy.h:

2014-05-06  Simon Fraser  <simon.fraser@apple.com>

        Add scrolling tree logging to RemoteLayerTree output
        https://bugs.webkit.org/show_bug.cgi?id=132640

        Reviewed by Beth Dakin.
        
        Support scrolling tree logging in the RemoteLayerTree log channel
        output.
        
        Encode/decode ScrollingStateTree::hasChangedProperties() so we can use
        it to avoid logging. Log all the things.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (WebKit::RemoteScrollingCoordinatorTransaction::encode):
        (WebKit::RemoteScrollingCoordinatorTransaction::decode):
        (WebKit::RemoteScrollingTreeTextStream::RemoteScrollingTreeTextStream):
        (WebKit::RemoteScrollingTreeTextStream::increaseIndent):
        (WebKit::RemoteScrollingTreeTextStream::decreaseIndent):
        (WebKit::RemoteScrollingTreeTextStream::writeIndent):
        (WebKit::dumpProperty):
        (WebKit::RemoteScrollingTreeTextStream::operator<<):
        (WebKit::RemoteScrollingTreeTextStream::dump):
        (WebKit::RemoteScrollingTreeTextStream::recursiveDumpNodes):
        (WebKit::RemoteScrollingCoordinatorTransaction::description):
        (WebKit::RemoteScrollingCoordinatorTransaction::dump):
        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

2014-05-07  Hyowon Kim  <hw1008.kim@samsung.com>

        GraphicsLayer::client() should return a reference.
        https://bugs.webkit.org/show_bug.cgi?id=126372

        Reviewed by Simon Fraser.

        GraphicsLayers always have a GraphicsLayerClient attached,
        so make client() a reference and remove some unnecessary branches.
        The author of the changes in the mac port is Andreas Kling <akling@apple.com>.

        * WebProcess/WebPage/PageOverlayController.cpp:
        (WebKit::PageOverlayController::initialize):
        (WebKit::PageOverlayController::installPageOverlay):
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
        (WebKit::LayerTreeHostGtk::initialize):
        (WebKit::LayerTreeHostGtk::createPageOverlayLayer):
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::createGraphicsLayer):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):

2014-05-07  Shivakumar JM  <shiva.jm@samsung.com>

        Cleanup the build from unused parameter in UIProcess Module
        https://bugs.webkit.org/show_bug.cgi?id=131969

        Reviewed by Csaba Osztrogonác.

        Fixed unused parameter by omitting the parameter name

        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageFindClient):
        * UIProcess/WebFindClient.cpp:
        (WebKit::WebFindClient::didFindString):

2014-05-07  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Remove runtime feature
        https://bugs.webkit.org/show_bug.cgi?id=132382

        Reviewed by Benjamin Poulain.

        Remove cssGridLayoutEnabled setting usage.

        * Shared/WebPreferencesStore.h:
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetCSSGridLayoutEnabled): Deleted.
        (WKPreferencesGetCSSGridLayoutEnabled): Deleted.
        * UIProcess/API/C/WKPreferencesRefPrivate.h:
        * UIProcess/API/gtk/WebKitSettings.cpp:
        (webKitSettingsConstructed):
        * UIProcess/gtk/ExperimentalFeatures.cpp:
        * UIProcess/gtk/ExperimentalFeatures.h:
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):
        * mac/WebKit2.order:

2014-05-07  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r168393 to fix !IOS builds.

        * Shared/WebEvent.h:

2014-05-06  Brady Eidson  <beidson@apple.com>

        Followup to "Add WK2 SPI to prevent the previous back/forward item from remaining in the list"
        <rdar://problem/16248710> and https://bugs.webkit.org/show_bug.cgi?id=132636

        Reviewed by NOBODY (My mistake while addressing previous review feedback)

        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageLoaderClient): During review feedback, this client switched from default negative to default
          positve, so when the client isn't implemented...  return true instead of false.

        * UIProcess/WebBackForwardList.cpp:
        (WebKit::WebBackForwardList::addItem): Fix nonsensical comments while I'm at it.

2014-05-06  Brady Eidson  <beidson@apple.com>

        Add WK2 SPI to prevent the previous back/forward item from remaining in the list
        <rdar://problem/16248710> and https://bugs.webkit.org/show_bug.cgi?id=132636

        Reviewed by Sam Weinig.

        Add new PageLoaderClient SPI to keep the current back/forward item from remaining in the list:
        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::shouldKeepCurrentBackForwardListItemInList):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageLoaderClient):
        * UIProcess/API/C/WKPageLoaderClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList):
        * UIProcess/WebPageProxy.h:

        * UIProcess/WebBackForwardList.cpp:
        (WebKit::WebBackForwardList::addItem): Use that SPI to determine whether we should insert the new item after
        the previous item, or simply replace the previous item.
        (WebKit::WebBackForwardList::goToItem): Use that SPI to determine whether the previous item stays or goes.

2014-05-06  Dan Bernstein  <mitz@apple.com>

        -[WKWebView isLoading] is NO immediately after -loadRequest: until the provisional load starts
        https://bugs.webkit.org/show_bug.cgi?id=132639

        Reviewed by Darin Adler.

        * UIProcess/PageLoadState.cpp:
        (WebKit::PageLoadState::commitChanges): Updated for change from isLoadingState to isLoading.
        (WebKit::PageLoadState::isLoading): Renamed from isLoadingState, changed to take Data and
        check whether there is a non-null pending API request URL. If so, return true.
        * UIProcess/PageLoadState.h:

2014-05-06  Dean Jackson  <dino@apple.com>

        [Mac] Allow focus rings to redraw themselves if necessary
        https://bugs.webkit.org/show_bug.cgi?id=132593

        Reviewed by Simon Fraser.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface): Add DrawFocusRingAtTime and DrawCellFocusRingWithFrameAtTime.

2014-05-06  Benjamin Poulain  <benjamin@webkit.org>

        <rdar://problem/16833442> [iOS WebKit2]: Keep the order of contentView in _scrollView after rotation
        https://bugs.webkit.org/show_bug.cgi?id=132634

        Reviewed by Enrica Casucci.

        Nice idea of Yongjun.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        (-[WKWebView _endAnimatedResize]):

2014-05-06  Timothy Hatcher  <timothy@apple.com>

        Take WKView's topContentInset into account when docking Web Inspector to the right.

        https://bugs.webkit.org/show_bug.cgi?id=132631

        Reviewed by Joseph Pecoraro.

        * UIProcess/mac/WebInspectorProxyMac.mm:
        (WebKit::WebInspectorProxy::inspectedViewFrameDidChange): Subtract topContentInset
        from the height of the frame for the Inspector.

2014-05-06  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] WebKit2 does not set CanPreventNativeGestures on the platform events
        https://bugs.webkit.org/show_bug.cgi?id=132594

        Reviewed by Simon Fraser.

        Set CanPreventNativeGestures on the plaform event.
        Change the tracking of WKContentView to be similar to WebPageProxy.

        * Shared/WebEvent.h:
        (WebKit::WebTouchEvent::WebTouchEvent):
        (WebKit::WebTouchEvent::canPreventNativeGestures):
        (WebKit::WebTouchEvent::setCanPreventNativeGestures):
        * Shared/WebEventConversion.cpp:
        (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
        * Shared/ios/WebTouchEventIOS.cpp:
        (WebKit::WebTouchEvent::encode):
        (WebKit::WebTouchEvent::decode):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _webTouchEventsRecognized:]):

2014-05-06  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Add tap highlight on the simple UITapGestureRecognizer
        https://bugs.webkit.org/show_bug.cgi?id=132623
        <rdar://problem/16709507>

        Reviewed by Enrica Casucci.

        Add a low latency highlight for tap/click.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::commitPotentialTapFailed):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView setupInteraction]):
        (-[WKContentView _showTapHighlightWithColor:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
        (-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
        (-[WKContentView _finishInteraction]):
        (-[WKContentView _highlightLongPressRecognized:]):
        (-[WKContentView _singleTapRecognized:]):
        (-[WKContentView _singleTapDidReset:]):
        (-[WKContentView _commitPotentialTapFailed]):
        (-[WKContentView _singleTapCommited:]):
        (-[WKContentView _attemptClickAtLocation:]):
        * UIProcess/ios/WKSyntheticClickTapGestureRecognizer.h: Added.
        * UIProcess/ios/WKSyntheticClickTapGestureRecognizer.m: Added.
        (-[WKSyntheticClickTapGestureRecognizer setGestureRecognizedTarget:action:]):
        (-[WKSyntheticClickTapGestureRecognizer setResetTarget:action:]):
        (-[WKSyntheticClickTapGestureRecognizer setState:]):
        (-[WKSyntheticClickTapGestureRecognizer reset]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::potentialTapAtPosition):
        (WebKit::WebPageProxy::commitPotentialTap):
        (WebKit::WebPageProxy::cancelPotentialTap):
        (WebKit::WebPageProxy::tapHighlightAtPosition):
        (WebKit::WebPageProxy::commitPotentialTapFailed):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::handleSyntheticClick):
        (WebKit::WebPage::handleTap):
        (WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
        (WebKit::WebPage::potentialTapAtPosition):
        (WebKit::WebPage::commitPotentialTap):
        (WebKit::WebPage::cancelPotentialTap):
        (WebKit::WebPage::tapHighlightAtPosition):

2014-05-06  Anders Carlsson  <andersca@apple.com>

        Put WebArchive and WebArchiveResource in the API namespace.

        Rubber-stamped by Dan Bernstein.

        * Shared/API/c/WKSharedAPICast.h:
        * Shared/API/c/mac/WKWebArchive.cpp:
        (WKWebArchiveGetTypeID):
        (WKWebArchiveCreate):
        (WKWebArchiveCreateWithData):
        (WKWebArchiveCreateFromRange):
        (WKWebArchiveCopyMainResource):
        * Shared/API/c/mac/WKWebArchiveResource.cpp:
        (WKWebArchiveResourceGetTypeID):
        (WKWebArchiveResourceCreate):
        * Shared/APIWebArchive.cpp: Renamed from Source/WebKit2/Shared/WebArchive.cpp.
        (API::WebArchive::create):
        (API::WebArchive::WebArchive):
        (API::WebArchive::~WebArchive):
        (API::WebArchive::mainResource):
        (API::WebArchive::subresources):
        (API::WebArchive::subframeArchives):
        (API::releaseCFData):
        (API::WebArchive::data):
        (API::WebArchive::coreLegacyWebArchive):
        * Shared/APIWebArchive.h: Renamed from Source/WebKit2/Shared/WebArchive.h.
        * Shared/APIWebArchiveResource.cpp: Renamed from Source/WebKit2/Shared/WebArchiveResource.cpp.
        (API::WebArchiveResource::create):
        (API::WebArchiveResource::WebArchiveResource):
        (API::WebArchiveResource::~WebArchiveResource):
        (API::releaseCFData):
        (API::WebArchiveResource::data):
        (API::WebArchiveResource::URL):
        (API::WebArchiveResource::MIMEType):
        (API::WebArchiveResource::textEncoding):
        (API::WebArchiveResource::coreArchiveResource):
        * Shared/APIWebArchiveResource.h: Renamed from Source/WebKit2/Shared/WebArchiveResource.h.
        * WebKit2.xcodeproj/project.pbxproj:

2014-05-06  Alex Christensen  <achristensen@webkit.org>

        Removed unnecessary notImplemented.h includes.
        https://bugs.webkit.org/show_bug.cgi?id=132587

        Reviewed by Anders Carlsson.

        * UIProcess/ios/WKContentViewInteraction.mm:
        * UIProcess/mac/WebContextMenuProxyMac.mm:
        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
        * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
        Removed notImplemented from list of includes.

2014-05-05  Jeremy Jones  <jeremyj@apple.com>

        Implement scan backward and forward in video fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=132517

        Reviewed by Simon Fraser.

        Plumb through scanning/seeking functions.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::fastSeek):
        (WebKit::WebVideoFullscreenManagerProxy::beginScanningForward):
        (WebKit::WebVideoFullscreenManagerProxy::beginScanningBackward):
        (WebKit::WebVideoFullscreenManagerProxy::endScanning):
        * WebProcess/ios/WebVideoFullscreenManager.messages.in:

2014-05-05  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Prefetch DNS hostnames on tap highlight
        https://bugs.webkit.org/show_bug.cgi?id=132509

        Reviewed by Alexey Proskuryakov.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::tapHighlightAtPosition):

2014-05-05  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Flickery scrolling inside overflow-scrolling: touch
        https://bugs.webkit.org/show_bug.cgi?id=132591
        <rdar://problem/16760466>

        Reviewed by Tim Horton.
        
        Avoid triggering layer tree commits that touch the layer's boundsOrigin
        while the user is scrolling in the UI process.
        
        Fix the WKOverflowScrollViewDelegate to pass along an "inUserInteration"
        flag to the ScrollingTree to say that we're in the middle of a user interaction
        (and also to send a final non-interactive update). That gets passed along
        to the web process, and turned into "SyncScrollingLayerPosition" update.
        AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll() consults
        this, and uses it to set a flag on the ScrollableArea to say that the scroll
        is a user scroll.
        
        RenderLayerBacking then makes use of this (in existing code, shared with WK1)
        to avoid triggering layer bounds setting. Instead, it now just calls syncBoundsOrigin(),
        which updates the GraphicsLayer without touching platform layers. This is necessary
        so that GraphicsLayer geometry is up-to-date (used for tiled layer visibility
        computations).
        
        Finally, a hack in GraphicsLayerCA::computeVisibleRect() is conditionalized
        for WebKit1 by checking the type of platform layer.

        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::rootScrollingNodeID):
        (WebKit::RemoteScrollingCoordinatorProxy::isPointInNonFastScrollableRegion):
        (WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling):
        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (-[WKOverflowScrollViewDelegate scrollViewDidScroll:]):
        (-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
        (-[WKOverflowScrollViewDelegate scrollViewDidEndDecelerating:]):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollViewDidScroll):
        * WebProcess/Scrolling/RemoteScrollingCoordinator.h:
        * WebProcess/Scrolling/RemoteScrollingCoordinator.messages.in:
        * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
        (WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):

2014-05-05  Alexey Proskuryakov  <ap@apple.com>

        Stop using BlobData on client side
        https://bugs.webkit.org/show_bug.cgi?id=132582

        Reviewed by Sam Weinig.

        Update for WebCore changes.

        * CMakeLists.txt:
        * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
        (WebKit::NetworkBlobRegistry::registerFileBlobURL):
        (WebKit::NetworkBlobRegistry::registerBlobURL):
        * NetworkProcess/FileAPI/NetworkBlobRegistry.h:
        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
        (WebKit::NetworkConnectionToWebProcess::registerBlobURL):
        * NetworkProcess/NetworkConnectionToWebProcess.h:
        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
        * Shared/FileAPI/BlobRegistrationData.cpp: Removed.
        * Shared/FileAPI/BlobRegistrationData.h: Removed.
        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<BlobPart>::encode):
        (IPC::ArgumentCoder<BlobPart>::decode):
        * Shared/WebCoreArgumentCoders.h:
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/FileAPI/BlobRegistryProxy.cpp:
        (WebKit::BlobRegistryProxy::registerFileBlobURL):
        (WebKit::BlobRegistryProxy::registerBlobURL):
        * WebProcess/FileAPI/BlobRegistryProxy.h:

2014-05-05  Beth Dakin  <bdakin@apple.com>

        Need a delegate that informs the UI process when the page's pin state changes
        https://bugs.webkit.org/show_bug.cgi?id=132583
        -and corresponding-
        <rdar://problem/16806231>

        Reviewed by Anders Carlsson.

        New UIClient function pinnedStateDidChange. 

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::pinnedStateDidChange):

        Create WKPageUIClientV3 to add this function.
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageUIClient):
        * UIProcess/API/C/WKPageUIClient.h:

        Change default initialization to true instead of false, which makes more sense for 
        this API.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::didCommitLoadForFrame):
        (WebKit::WebPageProxy::resetState):
        (WebKit::WebPageProxy::didChangeScrollOffsetPinningForMainFrame):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):

2014-05-05  Anders Carlsson  <andersca@apple.com>

        Add SPI to provide the WebCrypto master key
        https://bugs.webkit.org/show_bug.cgi?id=132586
        <rdar://problem/16091460>

        Reviewed by Dan Bernstein.

        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::webCryptoMasterKey):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageLoaderClient):
        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate):
        (WebKit::NavigationState::LoaderClient::webCryptoMasterKey):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::wrapCryptoKey):

2014-05-05  Gavin Barraclough  <baraclough@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=132522
        Clean up ProcessThrottler

        Unreviewed: bad build fix. Will work out what the right include is asap.

        * UIProcess/ios/WebProcessProxyIOS.mm:

2014-05-05  Sam Weinig  <sam@webkit.org>

        [Cocoa WebKit2] Add SPI to clear all visited links in a VisitedLinkProvider
        https://bugs.webkit.org/show_bug.cgi?id=132573

        Reviewed by Dan Bernstein.

        * Shared/VisitedLinkTable.cpp:
        (WebKit::VisitedLinkTable::VisitedLinkTable):
        (WebKit::VisitedLinkTable::clear):
        * Shared/VisitedLinkTable.h:
        Add functions to clear the visited link table.

        * UIProcess/API/Cocoa/_WKVisitedLinkProvider.h:
        * UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm:
        (-[_WKVisitedLinkProvider removeAll]):
        Add SPI.

        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::removeAll):
        * UIProcess/VisitedLinkProvider.h:
        A remove all resets the provider and notifies all the attached processes.

        * WebProcess/WebPage/VisitedLinkTableController.cpp:
        (WebKit::VisitedLinkTableController::removeAllVisitedLinks):
        * WebProcess/WebPage/VisitedLinkTableController.h:
        * WebProcess/WebPage/VisitedLinkTableController.messages.in:
        Add message to clear the visited links for a process.

2014-05-05  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Special case ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture() for image documents
        https://bugs.webkit.org/show_bug.cgi?id=132553

        Reviewed by Tim Horton.

        When collecting the geometry for the smart magnification gesture, always return the image of an image document
        on iOS. On iOS, it does not make much sense to return the whole document rect when the gesture is not over the image.

        * WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
        (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):

2014-05-02  Gavin Barraclough  <baraclough@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=132522
        Clean up ProcessThrottler

        Reviewed by Geoffrey Garen.

        The initial implementation of ProcessThrottler relied on the reply from the
        SetViewState message to ensure the page visibility notifications have a chance
        to be delivered. This resulted in:
            - unnecessarily complicated interface to ProcessThrottler (in VisibilityState class)
            - complexity bleeding out into WebPageProxy (handling 'hiding' state).
            - for cases other than view hiding, no suspension notification in the WebContent.

        To fix these issues add an explicit handshake from the ProcessThrottler to the WebPage.
        This gives us two things:
            - All previously posted messages (e.g. SetViewState) will be processed before suspension.
            - WebContent is always (bar timeout) notified before suspension.

        Since this interlock ensures the SetViewState message will be processed, the WKContentView no
        longer needs to request a reply from SetViewState, and WebPageProxy can lose all the 'hiding'
        state tracking. In turn, we can simplify VisibilityToken to a couple of simpler types, without
        the interface to change state - just acquire/release to keep the process runnable or permit
        suspension.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
            - VisibilityToken -> BackgroundActivityToken
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
            - m_visibilityToken -> m_activityToken, remove m_pendingViewStateUpdates
              updateVisibilityToken -> updateActivityToken
        (WebKit::WebPageProxy::reattachToWebProcess):
            - updateVisibilityToken -> updateActivityToken
        (WebKit::WebPageProxy::viewStateDidChange):
            - remove m_pendingViewStateUpdates, updateActivityToken after sending SetViewState
        (WebKit::WebPageProxy::updateActivityToken):
            - m_visibilityToken -> m_activityToken, no need to handle 'hiding' state.
        (WebKit::WebPageProxy::updateVisibilityToken): Deleted.
            - renamed to updateActivityToken
        (WebKit::WebPageProxy::didUpdateViewState): Deleted.
            - implementation moved back into header.
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::didUpdateViewState):
            - implementation moved back into header.
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::WebProcessProxy):
            - ProcessThrottler constructor now passed WebProcessProxy.
        * UIProcess/WebProcessProxy.h:
            - added ProcessWillSuspend/ProcessReadyToSuspend
        * UIProcess/WebProcessProxy.messages.in:
            - added ProcessWillSuspend/ProcessReadyToSuspend
        * UIProcess/ios/ProcessAssertion.h:
        (WebKit::ProcessAssertion::state):
            - accessor
        * UIProcess/ios/ProcessThrottler.h:
        (WebKit::ProcessThrottler::VisibilityToken::visibility): Deleted.
        (WebKit::ProcessThrottler::VisibilityToken::setVisibility): Deleted.
            - removed VisibilityToken class, replaced with ForegroundActivityToken/BackgroundActivityToken.
        (WebKit::ProcessThrottler::ProcessThrottler): Deleted.
        (WebKit::ProcessThrottler::visibilityToken): Deleted.
        (WebKit::ProcessThrottler::didConnnectToProcess): Deleted.
        (WebKit::ProcessThrottler::assertionState): Deleted.
        (WebKit::ProcessThrottler::updateAssertion): Deleted.
            - moved implementations to .mm.
        * UIProcess/ios/ProcessThrottler.mm:
        (WebKit::ProcessThrottler::ForegroundActivityToken::ForegroundActivityToken):
        (WebKit::ProcessThrottler::ForegroundActivityToken::~ForegroundActivityToken):
        (WebKit::ProcessThrottler::BackgroundActivityToken::BackgroundActivityToken):
        (WebKit::ProcessThrottler::BackgroundActivityToken::~BackgroundActivityToken):
            - new, simpler replacement for VisibilityToken. Instantiate to keep a processes running, release to suspend.
        (WebKit::ProcessThrottler::ProcessThrottler):
            - constructor, now initializes WebProcessProxy pointer & timer mechanism
        (WebKit::ProcessThrottler::assertionState):
            - select the appropriate AssertionState give current ActivityTokens.
        (WebKit::ProcessThrottler::updateAssertionNow):
            - update the current ProcessAssertion.
        (WebKit::ProcessThrottler::updateAssertion):
            - update the current ProcessAssertion, delay running->suspended transitions to give the process a chance to clean up.
        (WebKit::ProcessThrottler::didConnnectToProcess):
            - moved from header.
        (WebKit::ProcessThrottler::suspendTimerFired):
            - timeout to prevent processes from running in the background for too long.
        (WebKit::ProcessThrottler::processReadyToSuspend):
            - handshake from the WebContent process to acknowledge it is ready to suspend.
        (WebKit::ProcessThrottler::VisibilityToken::VisibilityToken): Deleted.
        (WebKit::ProcessThrottler::VisibilityToken::~VisibilityToken): Deleted.
        (WebKit::ProcessThrottler::VisibilityToken::hideTimerFired): Deleted.
        (WebKit::ProcessThrottler::VisibilityToken::setVisibilityInternal): Deleted.
            - removed VisibilityToken class, replaced with ForegroundActivityToken/BackgroundActivityToken.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didMoveToWindow]):
            - no longer necessary to request a response from SetViewState; this interlock is now managed by the ProcessThrottler.
        * UIProcess/ios/WebProcessProxyIOS.mm:
        (WebKit::WebProcessProxy::sendProcessWillSuspend):
        (WebKit::WebProcessProxy::processReadyToSuspend):
            - added ProcessWillSuspend/ProcessReadyToSuspend
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::processWillSuspend):
            - notification from the WebContent process that we will be suspended; for now just send back an ack.
        * WebProcess/WebProcess.h:
            - added ProcessWillSuspend/ProcessReadyToSuspend
        * WebProcess/WebProcess.messages.in:
            - added ProcessWillSuspend/ProcessReadyToSuspend

2014-05-05  Jeremy Jones  <jeremyj@apple.com>

        Implement beginScrubbing and endScrubbing for video fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=132520

        Reviewed by Eric Carlson.

        Plumb through beginScrubbing and endScrubbing.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::beginScrubbing):
        (WebKit::WebVideoFullscreenManagerProxy::endScrubbing):
        * WebProcess/ios/WebVideoFullscreenManager.messages.in:

2014-05-05  Tim Horton  <timothy_horton@apple.com>

        Use a layer delegate instead of web_disableAllActions wherever possible
        https://bugs.webkit.org/show_bug.cgi?id=132560
        <rdar://problem/16459284>

        Reviewed by Simon Fraser.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _setAcceleratedCompositingModeRootLayer:]):
        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (WebKit::RemoteLayerTreeHost::createLayer):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::createLayer):
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        Make use of WebActionDisablingCALayerDelegate where possible.
        Also, UIKit disables actions for us, so don't bother doing anything on iOS.

2014-05-05  Martin Hock  <mhock@apple.com>

        Session-aware plugin autostart data
        https://bugs.webkit.org/show_bug.cgi?id=131758
        <rdar://problem/15906540>

        Reviewed by Alexey Proskuryakov.

        * Shared/WebProcessCreationParameters.cpp:
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/Plugins/PlugInAutoStartProvider.cpp:
        (WebKit::PlugInAutoStartProvider::PlugInAutoStartProvider):
        (WebKit::PlugInAutoStartProvider::addAutoStartOriginHash):
        (WebKit::PlugInAutoStartProvider::autoStartOriginHashesCopy):
        (WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy):
        (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest):
        (WebKit::PlugInAutoStartProvider::setAutoStartOriginsArray):
        (WebKit::PlugInAutoStartProvider::didReceiveUserInteraction):
        * UIProcess/Plugins/PlugInAutoStartProvider.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::addPlugInAutoStartOriginHash):
        (WebKit::WebContext::plugInDidReceiveUserInteraction):
        * UIProcess/WebContext.h:
        * UIProcess/WebContext.messages.in:
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::pluginDidReceiveUserInteraction):
        * WebProcess/WebCoreSupport/WebPlugInClient.cpp:
        (WebKit::WebPlugInClient::didStartFromOrigin):
        * WebProcess/WebCoreSupport/WebPlugInClient.h:
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::WebProcess):
        (WebKit::WebProcess::isPlugInAutoStartOriginHash):
        (WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):
        (WebKit::WebProcess::plugInDidStartFromOrigin):
        (WebKit::WebProcess::didAddPlugInAutoStartOriginHash):
        (WebKit::WebProcess::resetPlugInAutoStartOriginDefaultHashes):
        (WebKit::WebProcess::resetPlugInAutoStartOriginHashes):
        (WebKit::WebProcess::plugInDidReceiveUserInteraction):
        * WebProcess/WebProcess.h:
        * WebProcess/WebProcess.messages.in:

2014-05-05  Andy Estes  <aestes@apple.com>

        Another iOS build fix after r168260.

        Removed an unnecessary 'using namespace WebCore'.

        * UIProcess/ios/WebMemoryPressureHandlerIOS.cpp:

2014-05-05  Tim Horton  <timothy_horton@apple.com>

        Fix the iOS build.

        * UIProcess/API/Cocoa/WKWebView.mm:

2014-05-05  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Refactor favicon database APIs
        https://bugs.webkit.org/show_bug.cgi?id=132519

        Reviewed by Gyuyoung Kim.

        ewebkit2 has two options to get favicon.

        The first option is ewk_view_favicon_get with "favicon,changed" signal.
        It's simple to use but it always adds the callback to EwkView although applications does not use favicon.

        The other option is ewk_favicon_database_icon_get with ewk_favicon_database_icon_change_callback_add API.
        But the callback doesn't have information about Ewk_Favicon_Database to call ewk_favicon_database_icon_get.

        This patch removed ewk_view_favicon_get and "favicon,changed" signal.
        In addition, improved ewk_favicon_database_icon_change_callback.

        * UIProcess/API/efl/EwkView.cpp: Remove ewk_favicon_database related code.
        (EwkView::EwkView):
        (EwkView::~EwkView):
        (EwkView::informURLChange):
        (EwkView::handleFaviconChanged):
        (EwkView::createFavicon): Deleted.
        * UIProcess/API/efl/EwkViewCallbacks.h:
        * UIProcess/API/efl/ewk_favicon_database.cpp:
        (EwkFaviconDatabase::iconDataReadyForPageURL):
        (EwkFaviconDatabase::didChangeIconForPageURL): Deleted. dead code.
        * UIProcess/API/efl/ewk_favicon_database.h:
        Refactor Ewk_Favicon_Database_Icon_Change_Cb and improve doxygen.
        * UIProcess/API/efl/ewk_favicon_database_private.h:
        * UIProcess/API/efl/ewk_view.cpp:
        (ewk_view_favicon_get): Deleted.
        * UIProcess/API/efl/ewk_view.h:
        * UIProcess/API/efl/tests/test_ewk2_favicon_database.cpp:
        (EWK2FaviconDatabaseTest::requestFaviconData):
        (TEST_F):

2014-05-05  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Swipe snapshots should be taken asynchronously
        https://bugs.webkit.org/show_bug.cgi?id=132417
        <rdar://problem/16535921>

        Reviewed by Anders Carlsson.

        Reorganize takeViewSnapshot to return a ViewSnaphot with the image
        filled in (the other properties are filled in by ViewSnapshotStore).

        Make ViewSnapshotStore use a fixed size instead of count for the snapshot cache.
        iOS doesn't use purgeable snapshots, so make the cache much smaller there.

        Use CARenderServerCaptureLayerWithTransform to achieve async snapshotting.

        Rename WebKit::ViewSnapshotStore::Snapshot to WebKit::ViewSnapshot so that
        it can be forward-declared in a bunch of places.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _takeViewSnapshot:]):
        Use CARenderServerCaptureLayerWithTransform.

        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/mac/WKView.mm:
        (createIOSurfaceFromImage):
        (-[WKView _takeViewSnapshot:]):
        Adjust to the new push model.

        * UIProcess/API/mac/WKViewInternal.h:
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::takeViewSnapshot):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::takeViewSnapshot):
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::takeViewSnapshot):
        Plumbing.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::endSwipeGesture):
        Realize an object that can be used as the layer contents from the slot ID.

        * UIProcess/ios/WebMemoryPressureHandlerIOS.cpp:
        (WebKit::WebMemoryPressureHandler::sharedHandler):
        (WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler):
        * UIProcess/WebMemoryPressureHandlerIOS.h:
        Add a memory pressure handler for the UI process. This does not use
        WebCore's platform independent memory pressure handler because that
        mechanism only allows for one handler per process, and we don't want to
        stomp on any handlers installed by WebKit1 in a process where the WebKits coexist.

        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _takeViewSnapshot]): Deleted.
        Get rid of an unnecessary bounce through WKContentView.

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::retrieveSnapshotForItem):
        (WebKit::ViewGestureController::endSwipeGesture):
        Use the new name, ViewSnapshot.

        * UIProcess/mac/ViewSnapshotStore.h:
        (WebKit::ViewSnapshot::ViewSnapshot):
        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::ViewSnapshotStore):
        (WebKit::ViewSnapshotStore::~ViewSnapshotStore):
        (WebKit::ViewSnapshotStore::snapshottingContext):
        Use a custom CAContext for snapshotting so that snapshots don't
        disappear when the main context is destroyed on hibernation.

        (WebKit::ViewSnapshotStore::removeSnapshotImage):
        (WebKit::ViewSnapshotStore::pruneSnapshots):
        (WebKit::ViewSnapshotStore::recordSnapshot):
        (WebKit::ViewSnapshotStore::getSnapshot):
        (WebKit::ViewSnapshotStore::discardSnapshots):
        (WebKit::ViewSnapshot::clearImage):
        (WebKit::ViewSnapshot::hasImage):
        (WebKit::createIOSurfaceFromImage): Deleted.
        (WebKit::ViewSnapshotStore::Snapshot::clearImage): Deleted.
        (WebKit::ViewSnapshotStore::Snapshot::hasImage): Deleted.
        Cache by image size instead of counts.

        * WebKit2.xcodeproj/project.pbxproj:

2014-05-04  Pratik Solanki  <psolanki@apple.com>

        Reduce calls to CFURLCacheCopySharedURLCache
        https://bugs.webkit.org/show_bug.cgi?id=132464
        <rdar://problem/16806694>

        Address review comments by collapsing multi-line code into a single ASSERT.

        * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
        (WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer):

2014-05-04  Pratik Solanki  <psolanki@apple.com>

        Shortcircuit shouldUseCredentialStorage callback
        https://bugs.webkit.org/show_bug.cgi?id=132308
        <rdar://problem/16806708>

        Reviewed by Alexey Proskuryakov.

        If we are going to return true from the shouldUseCredentialStorage callback then we don't
        really need to have CFNetwork/Foundation call us. We can just disable the callback and
        CFNetwork will assume true. Add a separate subclass that implements this callback when we
        need to return false. We can also eliminate the corresponding async callbacks. This avoids
        pingponging between dispatch queue and main thread in the common case.

        No new tests because no change in functionality.

        * NetworkProcess/NetworkResourceLoader.cpp: Remove shouldUseCredentialStorageAsync() callbacks.
        * NetworkProcess/NetworkResourceLoader.h:

2014-05-04  Beth Dakin  <bdakin@apple.com>

        Top content inset: Margin tiles should not display in the inset area when pinned 
        to the top of the page
        https://bugs.webkit.org/show_bug.cgi?id=132535
        -and corresponding-
        <rdar://problem/16613039>

        Reviewed by Simon Fraser.

        Encode and decode the ScrollingStateScrollingNode’s m_topContentInset even though 
        we don’t use it for anything yet. Since the headerLayer and footerLayer are not 
        encoded or decoded yet, I did not encode/decode the insetClipLayer yet, which, 
        like the header and footer layers, would not yet be used. 
        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (ArgumentCoder<ScrollingStateScrollingNode>::encode):
        (ArgumentCoder<ScrollingStateScrollingNode>::decode):

2014-05-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r168232.
        https://bugs.webkit.org/show_bug.cgi?id=132543

        broke ~15 tests on WK2 debug (Requested by kling on #webkit).

        Reverted changeset:

        "Shortcircuit shouldUseCredentialStorage callback"
        https://bugs.webkit.org/show_bug.cgi?id=132308
        http://trac.webkit.org/changeset/168232

2014-05-03  Tim Horton  <timothy_horton@apple.com>

        [iOS] REGRESSION (WebKit2): Page isn't clipped properly during back/forward swipe
        https://bugs.webkit.org/show_bug.cgi?id=132538
        <rdar://problem/16266027>

        Reviewed by Simon Fraser.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::endSwipeGesture):
        * UIProcess/mac/ViewGestureController.h:
        Add a clipping layer above the live swipe layer, which explicitly clips to bounds.

2014-05-02  Pratik Solanki  <psolanki@apple.com>

        Shortcircuit shouldUseCredentialStorage callback
        https://bugs.webkit.org/show_bug.cgi?id=132308
        <rdar://problem/16806708>

        Reviewed by Alexey Proskuryakov.

        If we are going to return true from the shouldUseCredentialStorage callback then we don't
        really need to have CFNetwork/Foundation call us. We can just disable the callback and
        CFNetwork will assume true. Add a separate subclass that implements this callback when we
        need to return false. We can also eliminate the corresponding async callbacks. This avoids
        pingponging between dispatch queue and main thread in the common case.

        No new tests because no change in functionality.

        * NetworkProcess/NetworkResourceLoader.cpp: Remove shouldUseCredentialStorageAsync() callbacks.
        * NetworkProcess/NetworkResourceLoader.h:

2014-05-02  Pratik Solanki  <psolanki@apple.com>

        Reduce calls to CFURLCacheCopySharedURLCache
        https://bugs.webkit.org/show_bug.cgi?id=132464
        <rdar://problem/16806694>

        Reviewed by Alexey Proskuryakov.

        CFURLCacheCopySharedURLCache grabs a mutex and can sometimes block. Avoid that by stashing
        the cache reference in a static.

        * NetworkProcess/NetworkResourceLoader.h: Coalesce ifdef'd code.
        * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
        (WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer):
        (WebKit::NetworkResourceLoader::willCacheResponseAsync): Use more correct ifdef for
        Foundation based callback.

2014-05-03  Sam Weinig  <sam@webkit.org>

        [Cocoa WebKit2] Add basic _WKWebsiteDataStore implementation
        https://bugs.webkit.org/show_bug.cgi?id=132526

        Reviewed by Anders Carlsson.

        - Renames WKSession to _WKWebsiteDataStore to better reflect its intended use (renaming
          the implementation object will come later).
        - Makes _WKWebsiteDataStore work as a wrapped Objective-C object.
        - Adds the ability to set a _WKWebsiteDataStore on the WKWebViewConfiguration.

        * Shared/Cocoa/APIObject.mm:
        (API::Object::newObject):
        * UIProcess/API/Cocoa/WKSession.h:
        * UIProcess/API/Cocoa/WKSession.mm:
        (-[WKSession dealloc]): Deleted.
        (-[WKSession ephemeral]): Deleted.
        (-[WKSession API::]): Deleted.
        * UIProcess/API/Cocoa/WKSessionInternal.h:
        (WebKit::wrapper): Deleted.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration copyWithZone:]):
        (-[WKWebViewConfiguration _websiteDataStore]):
        (-[WKWebViewConfiguration _setWebsiteDataStore:]):
        * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
        * UIProcess/API/Cocoa/_WKWebsiteDataStore.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKSession.h.
        * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKSession.mm.
        (+[_WKWebsiteDataStore nonPersistentDataStore]):
        (-[_WKWebsiteDataStore isNonPersistentDataStore]):
        (-[WKSession ephemeral]): Deleted.
        * UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKSessionInternal.h.
        * WebKit2.xcodeproj/project.pbxproj:

2014-05-03  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Assertion in PlatformCAFilters::setFiltersOnLayer with animated reference filter
        https://bugs.webkit.org/show_bug.cgi?id=132528
        <rdar://problem/16671660>

        Reviewed by Tim Horton.
        
        Allow PASSTHROUGH filters to be encoded and sent to the UI process; they can be set
        on layers as the result of a filter animation using a reference filter, and just get
        ignored anyway, but encoding them maintains consistency of the filters list.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<FilterOperation>::encode): Assert during encoding if
        we try to encode a NONE or REFERENCE filter (to match the decoding assertions).
        (IPC::decodeFilterOperation): Allow decoding of PASSTHROUGH filters. Have
        trying to decode a NONE or REFERENCE filter mark the message as invalid.
        (IPC::ArgumentCoder<IDBKeyData>::decode): Mark the message invalid when receiving
        unexpected key types.
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTextStream::operator<<): Have the logging not crash if
        a filter is null (should never happen).

2014-05-02  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Remove unused WKErrorRecoveryAttempting
        https://bugs.webkit.org/show_bug.cgi?id=132503

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
        (didFailProvisionalLoadWithErrorForFrame):
        (didFailLoadWithErrorForFrame):
        (createErrorWithRecoveryAttempter): Deleted.
        (-[WKBrowsingContextController attemptRecoveryFromError:]): Deleted.
        * UIProcess/API/Cocoa/WKErrorRecoveryAttempting.m: Removed.
        * UIProcess/API/Cocoa/_WKFormDelegate.h:
        * WebKit2.xcodeproj/project.pbxproj:

2014-05-02  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2) Need to support reanalyze button for Chinese Traditional.
        https://bugs.webkit.org/show_bug.cgi?id=132504
        <rdar://problem/16778862>

        Reviewed by Benjamin Poulain.

        For traditional Chinese we support reanalyzing of the text to perform
        transformations on the text based on the selected language and keyboard.
        This is done by pressing the Reanalyze button on the system
        menu. This patch adds the necessary code to canPerformAction to enable
        the button when appropriate as well as the implementation of the action
        itself.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _reanalyze:]):
        (-[WKContentView canPerformAction:withSender:]):

2014-05-02  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2) Need to support transliterate chinese button (简⇄繁) for Traditional Chinese.
        https://bugs.webkit.org/show_bug.cgi?id=132500
        <rdar://problem/16778870>

        Reviewed by Benjamin Poulain.

        For traditional Chinese we support the transliterate to simplified Chinese.
        This is done by pressing the 简⇄繁 button on the system
        menu. This patch adds the necessary code to canPerformAction to enable
        the button when appropriate as well as the implementation of the action
        itself.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _transliterateChinese:]):
        (-[WKContentView canPerformAction:withSender:]):

2014-05-02  Jeremy Jones  <jeremyj@apple.com>

        Fullscreen UI does not appear after WebProcess has crashed
        https://bugs.webkit.org/show_bug.cgi?id=132442

        Reviewed by Darin Adler.

        Cleanup WebVideoFullscreenManagerProxy after a WebProcess crash.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::reattachToWebProcess):
        recreate WebVideoFullscreenManagerProxy after a WebProcess crash.

        (WebKit::WebPageProxy::resetState):
        invalidate and release WebVideoFullscreenManagerProxy on crash.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy):
        don't assume m_page is valid.

        (WebKit::WebVideoFullscreenManagerProxy::invalidate):
        do cleanup invalidation in reponse to a WebProcess crash.

2014-05-02  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] More animation madness for when the extendedBackground is modified in an animation block
        https://bugs.webkit.org/show_bug.cgi?id=132497

        Reviewed by Beth Dakin.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (updateTopAndBottomExtendedBackgroundExclusionIfNecessary):
        Do not early return when _extendedBackgroundExclusionInsets.left is empty. That way, if executed in an animation block,
        the top of bottom view will animate from their current size to an empty width.

        When creating the layer, set up their height without animation. Otherwise it is possible to see the height animating
        while the left inset is animating.

        (-[WKWebView _setExtendedBackgroundExclusionInsets:]):
        When replacing the scrollview, make sure the frame and color are not animated. Otherwise the transition between
        scrollView and _mainExtendedBackgroundView can be visible if _setExtendedBackgroundExclusionInsets: is invoked
        in an animation block.

        (-[WKWebView _endAnimatedResize]):
        Nuke the top and bottom insets when possible. [WKWebView _endAnimatedResize] is unfrequent, so it is a good opportunity
        to free the memory.

2014-05-02  Alexey Proskuryakov  <ap@apple.com>

        Remove Blob contentDisposition handling
        https://bugs.webkit.org/show_bug.cgi?id=132490

        Reviewed by Sam Weinig.

        * Shared/FileAPI/BlobRegistrationData.cpp:
        (WebKit::BlobRegistrationData::encode):
        (WebKit::BlobRegistrationData::decode):

2014-05-02  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Adapt the rubberband constraints when the page get smaller than the scrollview - insets
        https://bugs.webkit.org/show_bug.cgi?id=132457

        Reviewed by Enrica Casucci.

        It is quite common for us to have a WKContentView that is scalled smaller than the WKWebView, content
        insets included.

        In those cases, update the constraints to fit the content properly in the view.

        * UIProcess/ios/WKScrollView.mm:
        (valuesAreWithinOnePixel):
        (-[WKScrollView _rubberBandOffsetForOffset:maxOffset:minOffset:range:outside:]):

2014-05-02  Mark Rowe  <mrowe@apple.com>

        -[_WKThumbnailView _requestSnapshotIfNeeded] assumes that taking a snapshot will always succeed
        <https://webkit.org/b/132489> / <rdar://problem/16704660>

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/_WKThumbnailView.mm:
        (-[_WKThumbnailView _requestSnapshotIfNeeded]): Don't attempt to create a CGImageRef if we failed
        to create a ShareableBitmap. This handles both the callback receiving a null Handle and a failure
        within ShareableBitmap::create.

2014-05-02  Anders Carlsson  <andersca@apple.com>

        Clean up FormDataElement
        https://bugs.webkit.org/show_bug.cgi?id=132483

        Reviewed by Sam Weinig.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::NetworkResourceLoader):
        * Shared/Network/NetworkResourceLoadParameters.cpp:
        (WebKit::NetworkResourceLoadParameters::encode):

2014-05-02  Anders Carlsson  <andersca@apple.com>

        Add and implement KeyedDecoder::decodeBytes
        https://bugs.webkit.org/show_bug.cgi?id=132479

        Reviewed by Tim Horton.

        * Shared/cf/KeyedDecoder.cpp:
        (WebKit::KeyedDecoder::decodeBytes):
        * Shared/cf/KeyedDecoder.h:

2014-05-02  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] WebKit2 File Upload Support
        https://bugs.webkit.org/show_bug.cgi?id=132024

        Reviewed by Enrica Casucci.

        * Configurations/WebKit2.xcconfig:
        Include MobileCoreServices on iOS for kUTTypeImage/kUTTypeMovie.

        * WebKit2.xcodeproj/project.pbxproj:
        Add new files.

        * UIProcess/WebOpenPanelResultListenerProxy.h:
        * UIProcess/WebOpenPanelResultListenerProxy.cpp:
        (WebKit::filePathsFromFileURLs):
        (WebKit::WebOpenPanelResultListenerProxy::chooseFiles):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::runOpenPanel):
        (WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
        * WebProcess/WebPage/WebOpenPanelResultListener.h:
        * WebProcess/WebPage/WebOpenPanelResultListener.cpp:
        (WebKit::WebOpenPanelResultListener::didChooseFilesWithDisplayStringAndIcon):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
        Message forwarding for choosing files and providing a display string and icon,
        leading down to the existing WebCore FileChooser method.

        * UIProcess/PageClient.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::handleRunOpenPanel):
        Add a default handler for file open panel on iOS.
        Forwards to the content view.

        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView lastInteractionLocation]):
        (-[WKContentView _webTouchEventsRecognized:]):
        (-[WKContentView _highlightLongPressRecognized:]):
        (-[WKContentView _longPressRecognized:]):
        (-[WKContentView _singleTapRecognized:]):
        (-[WKContentView _doubleTapRecognized:]):
        (-[WKContentView _twoFingerDoubleTapRecognized:]):
        Keep track of the last interaction location. This matches previous behavior
        of showing the file upload popover where the user tapped, to handle
        cases where the <input> is hidden.

        (-[WKContentView _showRunOpenPanel:resultListener:]):
        (-[WKContentView fileUploadPanelDidDismiss:]):
        Handle showing the cleaning up after the file upload panel.

        * UIProcess/ios/forms/WKFileUploadPanel.h:
        * UIProcess/ios/forms/WKFileUploadPanel.mm: Added.
        (squareCropRectForSize):
        (squareImage):
        (thumbnailSizedImageForImage):
        (-[_WKFileUploadItem isVideo]):
        (-[_WKFileUploadItem fileURL]):
        (-[_WKFileUploadItem displayImage]):
        (-[_WKImageFileUploadItem initWithFilePath:originalImage:]):
        (-[_WKImageFileUploadItem isVideo]):
        (-[_WKImageFileUploadItem fileURL]):
        (-[_WKImageFileUploadItem displayImage]):
        (-[_WKVideoFileUploadItem initWithFilePath:mediaURL:]):
        (-[_WKVideoFileUploadItem isVideo]):
        (-[_WKVideoFileUploadItem fileURL]):
        (-[_WKVideoFileUploadItem displayImage]):
        Helper class for each image picker selection. Knows how to get
        a file URL and thumbnail display image for the item.

        (-[WKFileUploadPanel initWithView:]):
        (-[WKFileUploadPanel dealloc]):
        (-[WKFileUploadPanel _dispatchDidDismiss]):
        (-[WKFileUploadPanel _cancel]):
        (-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]):
        Lifetime of the upload panel requires that either cancel or choose
        must happen as we go through the file picking process.

        (-[WKFileUploadPanel presentWithParameters:WebKit::resultListener:WebKit::]):
        (-[WKFileUploadPanel dismiss]):
        API to show or dismiss the panel.

        (-[WKFileUploadPanel _dismissDisplayAnimated:]):
        Helper to clean up the UI as it progresses or completes no matter the device idiom.

        (-[WKFileUploadPanel _presentPopoverWithContentViewController:animated:]):
        (-[WKFileUploadPanel _presentFullscreenViewController:animated:]):
        UI presentation for the appropriate idiom.

        (-[WKFileUploadPanel _mediaTypesForPickerSourceType:]):
        (-[WKFileUploadPanel _showMediaSourceSelectionSheet]):
        (-[WKFileUploadPanel _showPhotoPickerWithSourceType:]):
        Showing the action sheet or image picker.

        (-[WKFileUploadPanel popoverControllerDidDismissPopover:]):
        (-[WKFileUploadPanel _willMultipleSelectionDelegateBeCalled]):
        (-[WKFileUploadPanel imagePickerController:didFinishPickingMediaWithInfo:]):
        (-[WKFileUploadPanel imagePickerController:didFinishPickingMultipleMediaWithInfo:]):
        (-[WKFileUploadPanel imagePickerControllerDidCancel:]):
        Action sheet or image picker handlers.

        (-[WKFileUploadPanel _processMediaInfoDictionaries:successBlock:failureBlock:]):
        (-[WKFileUploadPanel _processMediaInfoDictionaries:atIndex:processedResults:processedImageCount:processedVideoCount:successBlock:failureBlock:]):
        (-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):
        (-[WKFileUploadPanel _displayStringForPhotos:videos:]):
        Processing selections from the image picker to FileUploadItems.

2014-05-01  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Animations on vox.com look wrong
        https://bugs.webkit.org/show_bug.cgi?id=132462
        <rdar://problem/16731884>

        Reviewed by Sam Weinig.
        
        PlatformCALayerRemote was managing animations incorrectly; aninations
        would stick around in m_properties.addedAnimations and get added a second
        time by mistake.
        
        Animations have to be managed a little differently to other properties,
        since they are not steady-state things. A given commit has to send over
        the added and removed animations, and then clear the layer properties.
        
        Do this by adding PlatformCALayerRemote::didCommit(), which is called
        after the layer properties have been encoded, and have it clear the lists
        of added and removed animations.
        
        removeAnimationForKey() also has to remove the animation from addedAnimations
        so that an add/remove in the same commit doesn't send the animation to the
        UI process.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
        (WebKit::PlatformCALayerRemote::didCommit):
        (WebKit::PlatformCALayerRemote::removeAnimationForKey):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):

2014-05-01  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Can't scroll on gatesnotes.com 
        https://bugs.webkit.org/show_bug.cgi?id=132459
        <rdar://problem/16770909>

        Reviewed by Benjamin Poulain.
        
        The custom UIView hit-testing code was finding views that were created by
        the compositing code for clipping, above the UIScrollViews. We only ever
        need to find UIScrollViews here for touch overflow-scrolling, so constrain
        the hit-testing code to only return UIScrollViews.

        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (-[UIView _recursiveFindDescendantScrollViewAtPoint:withEvent:]):
        (-[UIView _findDescendantViewAtPoint:withEvent:]):
        (-[UIView _recursiveFindDescendantViewAtPoint:withEvent:]): Deleted.

2014-05-02  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        REGRESSION(r168118): [GTK] build broken due to shouldTrackVisitedLinks
        https://bugs.webkit.org/show_bug.cgi?id=132447

        Unreviewed GTK build fix.

        shouldTrackVisitedLinks was removed on r168118.
        Visited link coloring works as expected after this change.

        * UIProcess/gtk/WebContextGtk.cpp:
        (WebKit::WebContext::platformInitializeWebProcess): Remove
        shouldTrackVisitedLinks parameter.

2014-05-01  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2) Need to support Learn button.
        https://bugs.webkit.org/show_bug.cgi?id=132454
        <rdar://problem/16778889>

        Reviewed by Benjamin Poulain.

        For traditional Chinese we support the ability to add shortcuts
        for typing. This is done by pressing the Learn button on the system
        menu. This patch adds the necessary code to canPerformAction to enable
        the button when appropriate as well as the implementation of the action
        itself.
        It also adds a check for the Replace button not to be shown when the
        selection only contains CJ characters.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _addShortcut:]):
        (-[WKContentView canPerformAction:withSender:]):

2014-05-01  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Tweak the extended background exclusion for MobileSafari
        https://bugs.webkit.org/show_bug.cgi?id=132449

        Reviewed by Beth Dakin.

        Some tweaks for Mobile:
        -Use UIViews instead of CALayers to have the same animation timing as the top views.
        -The left extended background insets should not exclude the top and bottom insets.

        Since this code is in the middle of 2 hot paths, also added some performance tweaks.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        In the normal case, we do not have extended background exclusion. To avoid creating a background view, we use
        the scrollview to render the background.
        The separate background view is created lazily if needed.

        (-[WKWebView _updateScrollViewBackground]):
        (-[WKWebView _frameOrBoundsChanged]):
        (updateTopAndBottomExtendedBackgroundExclusionIfNecessary):
        This create the top and bottom extended background view as needed and update their frames for the current insets.

        (-[WKWebView _setObscuredInsets:]):
        (-[WKWebView _setExtendedBackgroundExclusionInsets:]):
        When an exclusion inset is needed, create a view for it, transfer the color from the ScrollView, and reset the color
        of the scrollview.

2014-05-01  Alexey Proskuryakov  <ap@apple.com>

        Move size computation for Blob constructor into BlobRegistryImpl
        https://bugs.webkit.org/show_bug.cgi?id=132439

        Reviewed by Sam Weinig.

        Plumbing to make this version of registerBlobURL synchronous for now.
        I expect to make it async again when data structures on client side are simplified.

        * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
        (WebKit::NetworkBlobRegistry::registerBlobURL):
        * NetworkProcess/FileAPI/NetworkBlobRegistry.h:
        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::registerBlobURL):
        * NetworkProcess/NetworkConnectionToWebProcess.h:
        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
        * WebProcess/FileAPI/BlobRegistryProxy.cpp:
        (WebKit::BlobRegistryProxy::registerBlobURL):
        * WebProcess/FileAPI/BlobRegistryProxy.h:

2014-05-01  Beth Dakin  <bdakin@apple.com>

        REGRESSION(168053): Repro crash navigating to another page after selecting phone 
        numbers on a page
        https://bugs.webkit.org/show_bug.cgi?id=132444
        -and corresponding-
        <rdar://problem/16787285>

        Reviewed by Darin Adler.

        Missing null-check.
        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
        (WebKit::TelephoneNumberOverlayController::drawRect):

2014-05-01  Anders Carlsson  <andersca@apple.com>

        Remove WKBundleSetShouldTrackVisitedLinks and associate code
        https://bugs.webkit.org/show_bug.cgi?id=132441

        Reviewed by Sam Weinig.

        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
        (WKBundleSetShouldTrackVisitedLinks): Deleted.
        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::setShouldTrackVisitedLinks): Deleted.
        * WebProcess/InjectedBundle/InjectedBundle.h:
        * WebProcess/WebPage/VisitedLinkTableController.cpp:
        (WebKit::VisitedLinkTableController::addVisitedLink):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::WebProcess):
        (WebKit::WebProcess::setShouldTrackVisitedLinks): Deleted.
        * WebProcess/WebProcess.h:
        (WebKit::WebProcess::shouldTrackVisitedLinks): Deleted.

2014-05-01  Anders Carlsson  <andersca@apple.com>

        window.testRunner.keepWebHistory() should update the UI process state
        https://bugs.webkit.org/show_bug.cgi?id=132440

        Reviewed by Dan Bernstein.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageGetAddsVisitedLinks):
        (WKPageSetAddsVisitedLinks):
        * UIProcess/API/C/WKPagePrivate.h:

2014-05-01  Filip Pizlo  <fpizlo@apple.com>

        Roll out r60161.

        Rubber stamped by Mark Hahnenberg.
        
        This breaks our debugging workflow.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::decode):
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::registerUserDefaultsIfNeeded):
        (WebKit::WebContext::platformInitializeWebProcess):

2014-05-01  Anders Carlsson  <andersca@apple.com>

        WKWebView doesn't track visited links (for visited link coloring)
        https://bugs.webkit.org/show_bug.cgi?id=132438
        <rdar://problem/16704519>

        Reviewed by Dan Bernstein.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/API/APIHistoryClient.h:
        (API::HistoryClient::addsVisitedLinks):
        (API::HistoryClient::shouldTrackVisitedLinks): Deleted.
        * UIProcess/API/C/WKContext.cpp:
        (WKContextSetHistoryClient):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _addsVisitedLinks]):
        (-[WKWebView _setAddsVisitedLinks:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/API/mac/WKView.mm:
        (-[WKView initWithFrame:context:configuration:webView:]):
        * UIProcess/Cocoa/HistoryClient.h:
        * UIProcess/Cocoa/HistoryClient.mm:
        (WebKit::HistoryClient::shouldTrackVisitedLinks): Deleted.
        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::addVisitedLinkHashFromPage):
        * UIProcess/VisitedLinkProvider.h:
        * UIProcess/VisitedLinkProvider.messages.in:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::setHistoryClient):
        (WebKit::WebContext::createNewWebProcess):
        * UIProcess/WebContext.h:
        (WebKit::WebContext::processes):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::addsVisitedLinks):
        (WebKit::WebPageProxy::setAddsVisitedLinks):
        * WebProcess/WebPage/VisitedLinkTableController.cpp:
        (WebKit::VisitedLinkTableController::addVisitedLink):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::initializeWebProcess):
        * WebProcess/WebProcess.h:
        * WebProcess/WebProcess.messages.in:

2014-05-01  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] The highlight view needs to be in WKWebView coordinates
        https://bugs.webkit.org/show_bug.cgi?id=132435
        <rdar://problem/16708861>

        Reviewed by Tim Horton.

        _UIHighlightView needs to be in WKWebView coordinates so that it render unscaled for any page scale factor.
        The view needs to be a child of WKContentView so that it moves/scales with the page.

        To fix the issue, add an inverse transform root layer for the hightlight, and scale the coordinates to their
        inverse scaled counterpart.

        The scale is not updated live with the scaling of WKContentView but that should be fine since the view disappear
        on any scaling operation (and I would prefer not add live painting during scaling animation).

        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView cleanupInteraction]):
        (-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
        (-[WKContentView _cancelInteraction]):

2014-05-01  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] There are many warnings with software backend
        https://bugs.webkit.org/show_bug.cgi?id=132422

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::updateCursor):
        (EwkView::transformToScreen):

2014-04-30  Alexey Proskuryakov  <ap@apple.com>

        Roll out fix for https://bugs.webkit.org/show_bug.cgi?id=131637:
        Clean up unnecessary methods in the BackForwardClient interface

        It broke a regression test and an API test.

        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
        (WebKit::InjectedBundleBackForwardList::clear):
        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
        (WebKit::WebBackForwardListProxy::WebBackForwardListProxy):
        (WebKit::WebBackForwardListProxy::addItem):
        (WebKit::WebBackForwardListProxy::goToItem):
        (WebKit::WebBackForwardListProxy::itemAtIndex):
        (WebKit::WebBackForwardListProxy::backListCount):
        (WebKit::WebBackForwardListProxy::forwardListCount):
        (WebKit::WebBackForwardListProxy::close):
        (WebKit::WebBackForwardListProxy::clear):
        * WebProcess/WebPage/WebBackForwardListProxy.h:
        (WebKit::WebBackForwardListProxy::create):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm: Copied from Source/WebKit2/WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm.

2014-04-30  Brady Eidson  <beidson@apple.com>

        Only reveal selection service UI after a short delay.
        <rdar://problem/16777346> and https://bugs.webkit.org/show_bug.cgi?id=132418

        Reviewed by Sam Weinig.

        * WebProcess/WebPage/SelectionOverlayController.cpp:
        (WebKit::SelectionOverlayController::SelectionOverlayController):
        (WebKit::SelectionOverlayController::destroyOverlay): Also stop the hover timer.
        (WebKit::SelectionOverlayController::selectionRectsDidChange): Mark the highlight as dirty.
        (WebKit::SelectionOverlayController::hoverTimerFired): If the mouse is still over the highlight,
          set the visible flag and setNeedsDisplay().
        * WebProcess/WebPage/SelectionOverlayController.h:

        * WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm:
        (WebKit::SelectionOverlayController::drawRect): Recreate the highlight if it exists but
          is marked as dirty. After doing that, possibly reset the hover timer.
          Also, only performing the actual drawing if the visible flag is set.
        (WebKit::SelectionOverlayController::mouseEvent): If the mouse moves on or off the highlight,
          start or stop the hover timer accordingly.
        (WebKit::SelectionOverlayController::mouseHoverStateChanged): Handle starting/stopping the
          hover timer.
        (WebKit::SelectionOverlayController::clearHighlight): Deleted.

2014-04-30  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Animated resize incorrectly assumes the layout width is the same as the view width
        https://bugs.webkit.org/show_bug.cgi?id=132373
        <rdar://problem/16762178>

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        Fix a couple of bugs when the left/right obscured insets change, and/or when the minimum layout size
        is narrower than the view itself.

        In order:
        -We need to perfom and update if the insets change since the unobscuredRect will also change.
        -The min/max zoom scale should be based on the minimum layout size, that's the definition of minimum layout size
         in scrollview coordinate :)
        -The old web view width in content coordinate could be narrower than the old view bounds if there are left or right
         insets.

2014-04-30  Simon Fraser  <simon.fraser@apple.com>

        Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
        https://bugs.webkit.org/show_bug.cgi?id=132396

        Reviewed by Eric Carlson.
        
        Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.

        * Configurations/FeatureDefines.xcconfig:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::createMediaPlayerProxyPlugin): Deleted.
        (WebKit::WebFrameLoaderClient::hideMediaPlayerProxyPlugin): Deleted.
        (WebKit::WebFrameLoaderClient::showMediaPlayerProxyPlugin): Deleted.
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-04-30  Brady Eidson  <beidson@apple.com>

        If there are no services available, do not show the service controls UI
        <rdar://problem/16735665> and https://bugs.webkit.org/show_bug.cgi?id=132410

        Reviewed by Tim Horton.

        Add a lightweight class that lazily polls the appropriate APIs for whether or not appropriate services
        are installed and usable on the system:
        * UIProcess/mac/ServicesController.h: Added.
        (WebKit::ServicesController::imageServicesExist):
        (WebKit::ServicesController::selectionServicesExist):
        * UIProcess/mac/ServicesController.mm: Added.
        (WebKit::ServicesController::shared):
        (WebKit::ServicesController::ServicesController):
        (WebKit::ServicesController::refreshExistingServices):
        (WebKit::ServicesController::refreshExistingServicesTimerFired):

        Add "image services exist" and "selection services exist" parameters:
        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess):
        (WebKit::WebContext::refreshExistingServices): Called when the context menu proxy realizes that
          services no longer exist.
        * UIProcess/WebContext.h:

        Each WebProcess hangs on to its own copy of the flags for whether or not the services exist:
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::WebProcess):
        (WebKit::WebProcess::initializeWebProcess):
        (WebKit::WebProcess::setEnabledServices):
        * WebProcess/WebProcess.h:
        (WebKit::WebProcess::imageServicesExist):
        (WebKit::WebProcess::selectionServicesExist):

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::setupServicesMenu): If the menu creation failed, the set of services
          on the system must have changed. So ask the WebContext to refresh them.

        * WebProcess/WebPage/SelectionOverlayController.cpp:
        (WebKit::SelectionOverlayController::selectionRectsDidChange): If services don't exist, don't create an
          overlay (and destroy any existing overlay!)

        * WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm:
        (WebKit::SelectionOverlayController::drawRect): If services don't exist, don't draw, and destroy the overlay.

        * WebProcess/WebProcess.messages.in:
        * WebKit2.xcodeproj/project.pbxproj:

2014-04-30  Gavin Barraclough  <baraclough@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=132415
        Fix snapshotting on WebKit2

        Reviewed by Geoff Garen

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
            - Use a VisibilityToken to keep the process runnable.

2014-04-30  Gavin Barraclough  <baraclough@apple.com>

        Fix PageVisibility on iOS
        https://bugs.webkit.org/show_bug.cgi?id=132393

        Rubber stamped by Tim Horton

        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::isViewWindowActive):
        (WebKit::PageClientImpl::isViewFocused):
        (WebKit::PageClientImpl::isViewVisible):
        (WebKit::PageClientImpl::isViewVisibleOrOccluded):
        (WebKit::PageClientImpl::isVisuallyIdle):
            - m_contentView -> m_webView

2014-04-30  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Add a SPI to exclude the extended background from some areas of WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=132406
        <rdar://problem/16762197>

        Reviewed by Beth Dakin.

        Move the extended background to a separate layer bellow the UIScrollView.

        The geometry of that layer is then changed based on ExtendedBackgroundExclusionInsets
        as needed.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView _updateScrollViewBackground]):
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _setExtendedBackgroundExclusionInsets:]):
        (-[WKWebView _extendedBackgroundExclusionInsets]):
        (-[WKWebView pageExtendedBackgroundColor]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-04-30  Simon Fraser  <simon.fraser@apple.com>

        Fix build error when building for iOS simulator.

        * UIProcess/ios/ProcessAssertion.mm:

2014-04-30  Alexey Proskuryakov  <ap@apple.com>

        Move Blob.slice() implementation into BlobRegistryImpl
        https://bugs.webkit.org/show_bug.cgi?id=132402

        Reviewed by Anders Carlsson.

        * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
        (WebKit::NetworkBlobRegistry::registerBlobURLForSlice):
        * NetworkProcess/FileAPI/NetworkBlobRegistry.h:
        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice):
        * NetworkProcess/NetworkConnectionToWebProcess.h:
        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
        * WebProcess/FileAPI/BlobRegistryProxy.cpp:
        (WebKit::BlobRegistryProxy::registerBlobURLForSlice):
        * WebProcess/FileAPI/BlobRegistryProxy.h:

2014-04-30  Beth Dakin  <bdakin@apple.com>

        Phone number data detection UI is offset for iframes, pages with topContentInset
        https://bugs.webkit.org/show_bug.cgi?id=132372
        -and corresponding-
        <rdar://problem/16651235>

        Reviewed by Tim Horton.

        Make the overlay an OverlayType::Document, which will keep everything relative to 
        the main Document’s coordinates. 
        * WebProcess/WebPage/TelephoneNumberOverlayController.cpp:
        (WebKit::TelephoneNumberOverlayController::createOverlayIfNeeded):

        Make frames work by converting to the main  document’s coordinate space.
        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
        (WebKit::TelephoneNumberOverlayController::drawRect):

2014-04-30  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Unnecessary explicit initialization of LayoutUnit from r167985.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::determinePrimarySnapshottedPlugIn):
        Darin points out that I can just use “/2” instead of “/LayoutUnit(2.0)”.

2014-04-30 David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Enable new multi-column mode
        https://bugs.webkit.org/show_bug.cgi?id=131825

        Reviewed by Simon Fraser.

        * Shared/WebPreferencesStore.h:

2014-04-30  Brian J. Burg  <burg@cs.washington.edu>

        Clean up unnecessary methods in the BackForwardClient interface
        https://bugs.webkit.org/show_bug.cgi?id=131637

        Reviewed by Andreas Kling.

        Remove stubs for iOS-specific methods in the BackForwardClient interface.

        Construct a WebBackForwardListProxy directly, and make the WebCore page
        own the BackForwardClient instance. Convert uses of backForward().client()
        to accept references instead of raw pointers.

        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
        (WebKit::InjectedBundleBackForwardList::clear):
        * WebProcess/WebPage/WebBackForwardListProxy.cpp: Store a reference to
        WebCore::Page instead of a pointer.
        (WebKit::WebBackForwardListProxy::WebBackForwardListProxy):
        (WebKit::WebBackForwardListProxy::create): Deleted.
        (WebKit::WebBackForwardListProxy::addItem):
        (WebKit::WebBackForwardListProxy::goToItem):
        (WebKit::WebBackForwardListProxy::itemAtIndex):
        (WebKit::WebBackForwardListProxy::backListCount):
        (WebKit::WebBackForwardListProxy::forwardListCount):
        (WebKit::WebBackForwardListProxy::close):
        (WebKit::WebBackForwardListProxy::clear):
        (WebKit::WebBackForwardListProxy::isActive):
        * WebProcess/WebPage/WebBackForwardListProxy.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm: Removed.

2014-04-30  Gavin Barraclough  <baraclough@apple.com>

        Fix PageVisibility on iOS
        https://bugs.webkit.org/show_bug.cgi?id=132393

        Reviewed by Andreas Kling.

        Currently page visibility API doesn't work correctly on WK2 iOS for a few reasons,
        the most significant of which being that the moment a WKWebView leaves the window
        we'll suspend the content process, which removes the possibility for any notification
        to be delivered. This patch addresses this issue, by allowing the process to run for
        long enough for the notification to be delivered.

        1) Introduce a new class, ProcessThrottler, to encapsulate the process suspension logic.
        2) WebPageProxy uses ProcessThrottler::VisibilityToken to communicate visibility to the throttler.
        3) WebPageProxy tracks pending didUpdateViewState messages to detect when the view state update in
           the web content process has completed.
        4) Distiguish between 'Background' and 'Suspended' states in the ProcessAssertion.

        * Shared/ChildProcessProxy.h:
            - moved m_assertion to NetworkProcessProxy / WebProcessProxy.
        * UIProcess/Network/NetworkProcessProxy.h:
            - added m_assertion.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
            - initialize VisibilityToken state.
        (WebKit::WebPageProxy::reattachToWebProcess):
            - reinitialize VisibilityToken state.
        (WebKit::WebPageProxy::viewStateDidChange):
            - update VisibilityToken, increment m_pendingViewStateUpdates as necessary.
        (WebKit::WebPageProxy::updateVisibilityToken):
            - update the VisibiliyToken based on page visibility, and whether an update is still pending.
        (WebKit::WebPageProxy::didUpdateViewState):
            - detect when a view state change has completed in the web process, and update throttle state as necessary.
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::didUpdateViewState): Deleted.
            - moved to .cpp.
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::WebProcessProxy):
            - initialize m_throttler.
        (WebKit::WebProcessProxy::didFinishLaunching):
            - notify the PageThrottler of the new connection.
        * UIProcess/WebProcessProxy.h:
        (WebKit::WebProcessProxy::throttler):
            - added accessor.
        (WebKit::WebProcessProxy::updateProcessState): Deleted.
            - moved trottling login to ProcessThrottler.
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::isViewWindowActive):
        (WebKit::PageClientImpl::isViewFocused):
        (WebKit::PageClientImpl::isViewVisible):
        (WebKit::PageClientImpl::isViewVisibleOrOccluded):
            - these should only be true when the view is in a window.
        (WebKit::PageClientImpl::isVisuallyIdle):
            - this should only be true when the view is not in a window.
        * UIProcess/ios/ProcessAssertion.h:
        * UIProcess/ios/ProcessAssertion.mm:
        (WebKit::flagsForState):
            - map from enum -> BKSAssertion flags values.
        (WebKit::ProcessAssertion::ProcessAssertion):
            - use flagsForState (add support for Suspended state).
        (WebKit::ProcessAssertion::setState):
            - use flagsForState (add support for Suspended state).
        * UIProcess/ios/ProcessThrottler.h: Added.
        (WebKit::ProcessThrottler::VisibilityToken::visibility):
            - accessor.
        (WebKit::ProcessThrottler::VisibilityToken::setVisibility):
            - update Visibility value; update the token as necessary.
        (WebKit::ProcessThrottler::ProcessThrottler):
            - constructor; does not take an assention until didConnnectToProcess is called.
        (WebKit::ProcessThrottler::visibilityToken):
            - create a VisibilityToken.
        (WebKit::ProcessThrottler::didConnnectToProcess):
            - take an assertion.
        (WebKit::ProcessThrottler::weakPtr):
            - create a weak pointer, used for references from VisibilityToken to the throttler.
        (WebKit::ProcessThrottler::assertionState):
            - determine the correct AssertionState for the process, based on current visibility.
        (WebKit::ProcessThrottler::updateAssertion):
            - update assertion, called in response to visibility change.
        * UIProcess/ios/ProcessThrottler.mm: Added.
        (WebKit::ProcessThrottler::VisibilityToken::VisibilityToken):
            - constructor.
        (WebKit::ProcessThrottler::VisibilityToken::~VisibilityToken):
            - set visibility to hidden to reset.
        (WebKit::ProcessThrottler::VisibilityToken::hideTimerFired):
            - automatically decay from Hiding -> Hidden on a timeout.
        (WebKit::ProcessThrottler::VisibilityToken::setVisibilityInternal):
            - update counters tracking visibility in ProcessThrottler.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didMoveToWindow]):
            - This affects all view state flags, not just the 'InWindow' state.
              If the view moves out of a window request a reply from the WebContent - we use this
              to detect when the page visibility event has completed.
        * UIProcess/ios/WebProcessProxyIOS.mm:
        (WebKit::WebProcessProxy::updateProcessState): Deleted.
            - removed.
        * WebKit2.xcodeproj/project.pbxproj:
            - added new files.

2014-04-30  Anders Carlsson  <andersca@apple.com>

        Preemptive header fixes for when WebKit.framework is going to provide the modern API
        https://bugs.webkit.org/show_bug.cgi?id=132394

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKBrowsingContextPolicyDelegate.h:
        (NS_ENUM):
        Delete WKNavigationType for now. Ultimately the entire delegate should be removed.

        * UIProcess/API/Cocoa/WKPreferences.h:
        Add a header guard so we can avoid importing WKPreferences.h more than once.

        * WebKit2.xcodeproj/project.pbxproj:
        _WKScriptWorld.h should be private, not public.
        WKScriptMessagePrivate.h and WKUserContentControllerPrivate.h should be private, not project.

2014-04-30  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Ensure UIProcess checks in to webinspectord after spawning a WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=132389

        Reviewed by Timothy Hatcher.

        We aggregate WebProcess WebView's under the UIProcess. If the UIProcess
        didn't connect to webinspectord these WebViews would have remained
        hidden. Always have the UIProcess connect to webinspectord when it
        spawns a WebProcess and may have a child process holding views that
        it ultimately owns and should display under the UIProcess name.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcess):

2014-04-30  Zalan Bujtas  <zalan@apple.com>

        [iOS]Subpixel rendering: Extra line of pixels next to the YouTube loading indicator.
        https://bugs.webkit.org/show_bug.cgi?id=132391

        Reviewed by Simon Fraser.

        CG and GraphicsContext clipping should use the same coordinates. Snapping either one
        while leaving the other unsnapped results in clipping mismatch and that may produce
        unpainted areas.

        Not testable.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::drawInContext):

2014-04-30  Alexey Proskuryakov  <ap@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=132363
        Make Blob RawData immutable

        Reviewed by Anders Carlsson.

        * Shared/FileAPI/BlobRegistrationData.cpp: (WebKit::BlobRegistrationData::decode):
        Create RawData in one step.

2014-04-30  Brady Eidson  <beidson@apple.com>

        Followup to: Handle selection services menu.
        <rdar://problem/16727798> and https://bugs.webkit.org/show_bug.cgi?id=132362

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::setupServicesMenu): Remove an ASSERT from previous version of the patch
          that landed. I’d forgotten to add this stray change to my staging area.

2014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Enable runtime feature by default
        https://bugs.webkit.org/show_bug.cgi?id=132189

        Reviewed by Benjamin Poulain.

        * Shared/WebPreferencesStore.h: Remove unneeded changes that
        enable/disable the runtime feature depending on the compilation flag.
        And set it to true by default.
        * UIProcess/gtk/ExperimentalFeatures.cpp: Set it to true by default.

2014-04-30  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Wrong units used in offset calculation from r167961.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::determinePrimarySnapshottedPlugIn):
        I accidentally mixed and matches LayoutUnits with Ints in offset calculation here.
        It should all just be in LayoutUnits.

2014-04-29  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] When pageScaleFactor * deviceScaleFactor = 1, the tile grid is completely messed up
        https://bugs.webkit.org/show_bug.cgi?id=132368

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::PlatformCALayerRemote):
        PlatformCALayerRemote always initialized the content scale to 1. Since contentsScale is supposed to reflect
        zoomScale * deviceScaleFactor, the value should be 2.

        This was causing bugs whenever the page scale factor was 1/2 on retina device (device scale factor = 2).

        When the page is initialized, GraphicsLayerCA::updateContentsScale(0.5) computes a contentsScale of 1. There is an early
        return on if (contentsScale == m_layer->contentsScale()). Since PlatformCALayerRemote->contentsScale() was incorreclty
        returning one, we were leaving the tile backing unmodified.

        Later, when the transaction is commited, the tile backing would still be default initialized and would render everything
        at the wrong scale.

2014-04-29  Eric Carlson  <eric.carlson@apple.com>

        [Mac] tag the video layers with descriptive name to aid debugging
        https://bugs.webkit.org/show_bug.cgi?id=132371

        Reviewed by Darin Adler.

        * WebProcess/ios/WebVideoFullscreenManager.mm:
        (WebKit::WebVideoFullscreenManager::enterFullscreenForNode): Set the 
            fullscreen host layer name in a debug build.

2014-04-29  Brady Eidson  <beidson@apple.com>

        Handle selection services menu.
        <rdar://problem/16727798> and https://bugs.webkit.org/show_bug.cgi?id=132362

        Reviewed by Tim Horton.

        Add members for the relevant info for showing a service menu for a selection:
        * Shared/ContextMenuContextData.cpp:
        (WebKit::ContextMenuContextData::ContextMenuContextData):
        (WebKit::ContextMenuContextData::controlledDataIsEditable):
        * Shared/ContextMenuContextData.h:
        (WebKit::ContextMenuContextData::ContextMenuContextData):
        (WebKit::ContextMenuContextData::controlledSelectionData):
        (WebKit::ContextMenuContextData::needsServicesMenu):

        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::replaceSelectionWithPasteboardData): Changed to allow for multiple types on the overridden pasteboard.
        (WebKit::WebPageProxy::showSelectionServiceMenu):

        Update the services menu code to know the difference between an image service and a selection service:
        * UIProcess/mac/WebContextMenuProxyMac.h:
        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
        (-[WKSharingServicePickerDelegate sharingService:willShareItems:]):
        (-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
        (WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
        (WebKit::WebContextMenuProxyMac::setupServicesMenu):
        (WebKit::WebContextMenuProxyMac::clearServicesMenu):
        (WebKit::WebContextMenuProxyMac::populate):
        (WebKit::WebContextMenuProxyMac::showContextMenu):
        (WebKit::WebContextMenuProxyMac::setupImageServicesMenu): Deleted.
        (WebKit::WebContextMenuProxyMac::clearImageServicesMenu): Deleted.

        * WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp:
        (WebKit::WebPasteboardOverrides::getDataForOverride):

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::replaceSelectionWithPasteboardData): Changed to allow for multiple types on the overridden pasteboard.
        (WebKit::WebPage::handleSelectionServiceClick): Pass the relevant selection data through to the UIProcess as RTFD data.

        * WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm:
        (WebKit::SelectionOverlayController::handleClick): Notify the WebPage of the click.

2014-04-29  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16745596> [Cocoa] Crash when invoking a method with an unsigned parameter on a remote object
        https://bugs.webkit.org/show_bug.cgi?id=132366

        Reviewed by Anders Carlsson.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (encodeInvocation): Handle the 'I' type code. Interpret the 'q' and 'Q' type codes in an
        architecture-independent manner.
        (decodeInvocationArguments): Ditto.

2014-04-29  Roger Fong  <roger_fong@apple.com>

        Don't immediately snapshot plugin to allow for proper dominant plugin detection.
        https://bugs.webkit.org/show_bug.cgi?id=132294.
        <rdar://problem/16745679>

        Reviewed by Dean Jackson.

        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::didInitializePlugin):
        Instead of immediately setting the display state to DisplaySnapshot,
        put it on a timer to let the page fully layout and get hit test properly.

2014-04-28  Roger Fong  <roger_fong@apple.com>

        Plugins hidden by images should autoplay.
        https://bugs.webkit.org/show_bug.cgi?id=132222.
        <rdar://problem/16653536>

        Reviewed by Jon Lee and Darin Adler.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::determinePrimarySnapshottedPlugIn):
        If the image on top of the plugin is similarly sized and similarly positioned as the plugin rect,
        set the plugin to autoplay. This is assuming that the previous snapshot checks have passed as well.

2014-04-29  Filip Pizlo  <fpizlo@apple.com>

        Use LLVM as a backend for the fourth-tier DFG JIT (a.k.a. the FTL JIT)
        https://bugs.webkit.org/show_bug.cgi?id=112840

        Rubber stamped by Geoffrey Garen.

        * Configurations/FeatureDefines.xcconfig:

2014-04-29  Brady Eidson  <beidson@apple.com>

        Change Image Controls replacement to use selection and paste
        <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992

        Reviewed by Tim Horton.

        Add a "pasteboard override" mechanism which allows WebKit to keep pasteboard content local
        to the WebProcess and access it there without having to message up to the UI process:
        * WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp: Added.
        (WebKit::WebPasteboardOverrides::sharedPasteboardOverrides):
        (WebKit::WebPasteboardOverrides::WebPasteboardOverrides):
        (WebKit::WebPasteboardOverrides::addOverride):
        (WebKit::WebPasteboardOverrides::removeOverride):
        (WebKit::WebPasteboardOverrides::overriddenTypes):
        (WebKit::WebPasteboardOverrides::getDataForOverride):
        * WebProcess/WebCoreSupport/WebPasteboardOverrides.h: Added.

        Change the pasteboard strategy to consult the pasteboard overrides before consulting the native pasteboard:
        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        (WebKit::WebPlatformStrategies::getTypes):
        (WebKit::WebPlatformStrategies::bufferForType):

        Add "replaceSelectionWithPasteboardData" which uses the new pasteboard overrides mechanism
        and then has WebCore perform the replacement:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::replaceSelectionPasteboardName):
        (WebKit::WebPage::replaceSelectionWithPasteboardData):

        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::replaceSelectionWithPasteboardData):

        * UIProcess/mac/WebContextMenuProxyMac.h:
        (WebKit::WebContextMenuProxyMac::page):
        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (-[WKSharingServicePickerDelegate sharingService:didShareItems:]): Use "replaceSelectionWithPasteboardData".
        (WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac):
        (WebKit::WebContextMenuProxyMac::replaceControlledImage): Deleted.

        Remain other remnants of "replaceControlledImage":
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::replaceControlledImage): Deleted.
        * UIProcess/WebPageProxy.h:
        * WebProcess/WebPage/WebContextMenu.cpp:
        (WebKit::WebContextMenu::replaceControlledImage): Deleted.
        * WebProcess/WebPage/WebContextMenu.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::replaceControlledImage): Deleted.

        * WebKit2.xcodeproj/project.pbxproj:

2014-04-29  Tim Horton  <timothy_horton@apple.com>

        Build fix.

        * DatabaseProcess/ios/DatabaseProcessIOS.mm:

2014-04-29  Alexey Proskuryakov  <ap@apple.com>

        [WK2] DatabaseProcess should be sandboxed
        https://bugs.webkit.org/show_bug.cgi?id=132324
        <rdar://problem/15961708>

        Reviewed by Darin Adler.

        * Configurations/WebKit2.xcconfig: Added the profile to the list of files skipped
        on iOS.

        * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::initializeDatabaseProcess):
        Consume a sandbox extension for IndexedDB directory (which we get with initialization
        message after entering sandbox).

        * DatabaseProcess/ios: Added.
        * DatabaseProcess/ios/DatabaseProcessIOS.mm: Copied from Source/WebKit2/DatabaseProcess/mac/DatabaseProcessMac.mm.
        Separated from Mac version to match how other processes are implemented.

        * DatabaseProcess/mac/DatabaseProcessMac.mm: (WebKit::DatabaseProcess::initializeProcessName):
        Removed ifdefs.

        * DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in: Added.

        * DerivedSources.make: Generate the profile from .sb.in.

        * Shared/Databases/DatabaseProcessCreationParameters.cpp:
        (WebKit::DatabaseProcessCreationParameters::encode):
        (WebKit::DatabaseProcessCreationParameters::decode):
        * Shared/Databases/DatabaseProcessCreationParameters.h:
        Added a sandbox extension for indexedDatabaseDirectory.

        * Shared/SecurityOriginData.h: Added an unrelated FIXME.

        * UIProcess/WebContext.cpp: (WebKit::WebContext::ensureDatabaseProcess): Create
        a sandbox extension for indexedDatabaseDirectory.

        * WebKit2.xcodeproj/project.pbxproj: Added new files.

2014-04-28  Andy Estes  <aestes@apple.com>

        [iOS] Introduce -didNotHandleTapAsClickAtPoint: to WKUIDelegatePrivate
        https://bugs.webkit.org/show_bug.cgi?id=132316

        Reviewed by Darin Adler.

        One WebKit2 client is interested to know if a tap was not handled by an element that responds to clicks.
        Introduce a new, private WKUIDelegate method telling it that a tap at a location was not handled as a click on
        an element.

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::didNotHandleTapAsClick):
        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
        * UIProcess/Cocoa/UIDelegate.h:
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::setDelegate):
        (WebKit::UIDelegate::UIClient::didNotHandleTapAsClick):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::didNotHandleTapAsClick):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::handleTap): Sent Messages::WebPageProxy::DidNotHandleTapAsClick if the tap wasn't handled, no
        node responded to the click event, or the responding node wasn't an element.

2014-04-29  Zan Dobersek  <zdobersek@igalia.com>

        [GTK][WK2] Avoid Vector copies in WebViewBaseInputMethodFilter::setPreedit()
        https://bugs.webkit.org/show_bug.cgi?id=132323

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebViewBaseInputMethodFilter.cpp:
        (WebKit::WebViewBaseInputMethodFilter::setPreedit): Inline the Vector object construction into
        the WebPageProxy::setComposition() call to avoid extra Vector copies and moves.

2014-04-28  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16750708> REGRESSION (r159358): Crash in InjectedBundleHitTestResult::frame
        https://bugs.webkit.org/show_bug.cgi?id=132318

        Reviewed by Andy Estes.

        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction): Fixed a typo: set
        the source frame, not the destination frame.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Changed to get the
        frame for the action not from a hit test result, because some link activation actions are
        not mouse events, but rather from the event’s target.

2014-04-28  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Restore the scroll position and scale from the HistoryItem (mostly)
        https://bugs.webkit.org/show_bug.cgi?id=132307
        <rdar://problem/16031704>

        Reviewed by Simon Fraser.

        Restore the scroll position and scale on back-forward by restoring the values from HistoryItem.
        This covers the common cases, see <rdar://problem/16031704>.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView _didCommitLoadForMainFrame]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _didCommitLoadForMainFrame]):
        Get rid of the old code restoring the scroll position. This is now done by the WebProcess.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
        Update the scrolling tree after invoking didCommitLayerTree() on the WebPageProxy.

        WKContentView and WKWebView states are updated in response to didCommitLayerTree(), the content size
        and scale in particular are set there.

        After that, the content size/scale is in the same state as the layerTree update, and we can scroll
        the content as needed.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
        (WebKit::WebFrameLoaderClient::restoreViewState):
        iOS WebKit1 uses a custom restoreViewState(), do the same for WebKit2 since the generic code is #ifdefed out.
        This is also necessary for the main frame's state update.

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::restorePageState):
        Restore the scale and position of the main frame. For now, we assume m_userHasChangedPageScaleFactor is set otherwise
        the initial-scale would override the restored value. We will need to fix that, the value should probably be saved with
        the history.

2014-04-28  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] iOS fix after r167867
        https://bugs.webkit.org/show_bug.cgi?id=132302

        Reviewed by Simon Fraser.

        iOS Touch Points uses "phase" for describing the touch points state for historical reasons.
        This patch adds state() as a synonym for phase, and revert r167893.

        * Shared/WebEvent.h:
        (WebKit::WebPlatformTouchPoint::state):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::areAllTouchPointsReleased):

2014-04-28  Andy Estes  <aestes@apple.com>

        Fix a transcription error from r167901.

        When addressing Darin's review feedback, I moved the iteration of dataArray from
        QuickLookDocumentData::append() to WebQuickLookHandleClient::didReceiveDataArray(),
        but I forgot to update the context argument to CFArrayApplyFunction() accordingly.

        * WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.cpp:
        (WebKit::WebQuickLookHandleClient::didReceiveDataArray):

2014-04-28  Enrica Casucci  <enrica@apple.com>

        [WK2 iOS] Need to show title in the action sheet for images not inside an anchor element.
        https://bugs.webkit.org/show_bug.cgi?id=132304
        <rdar://problem/16535227>

        Reviewed by Benjamin Poulain.

        If the image in not inside an anchor tag, we must use the title attribute as
        title for the action sheet.

        * UIProcess/ios/WKActionSheetAssistant.mm:
        (-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):

2014-04-28  Tim Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures (Swipe): Discard snapshots made with a different view size/pixel density
        https://bugs.webkit.org/show_bug.cgi?id=132115

        Reviewed by Simon Fraser.

        We shouldn't try to use snapshots if they no longer match the destination view size.
        To do this, we need an accurate understanding of the topContentInset, both for the Web view,
        and for any custom views, because we don't want to include the inset area in the snapshot,
        and we don't want to reject snapshots that differ from the current view only because they have an inset or not.

        * UIProcess/API/Cocoa/WKViewPrivate.h:
        * UIProcess/API/mac/WKView.mm:
        (-[WKView _takeViewSnapshot]):
        (-[WKView _setCustomSwipeViewsTopContentInset:]):
        Add and plumb through a topContentInset property to apply to the custom swipe views.
        For simplicitly's sake in the multi-view case, it is applied in window coordinates,
        so clients will have to do conversions if necessary.
        Don't include the top content inset in the snapshot that is taken.

        * UIProcess/mac/ViewGestureController.h:
        (WebKit::ViewGestureController::setCustomSwipeViewsTopContentInset):
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::windowRelativeBoundsForCustomSwipeViews):
        Apply the aforementioned custom swipe view top content inset.

        (WebKit::ViewGestureController::determineSnapshotLayerParent):
        (WebKit::ViewGestureController::determineLayerAdjacentToSnapshotForParent):
        Factor these out of beginSwipeGesture.

        (WebKit::ViewGestureController::retrieveSnapshotForItem):
        Don't return a snapshot if the current deviceScaleFactor doesn't match that
        at which the snapshot was taken, or if the size of the snapshot doesn't match
        the unobscured part of the snapshot layer (the layer's size sans top content inset).

        (WebKit::layerGeometryFlippedToRoot): Added.
        Determine whether geometry flipping occurs between a layer and the root of the tree it is in.

        (WebKit::ViewGestureController::applyDebuggingPropertiesToSwipeViews):
        Factor out debugging layer properties, and add some borders and backgrounds to our layers.
        I switched to invert instead of blur because blur makes the borders hard to use.

        (WebKit::ViewGestureController::beginSwipeGesture):
        Add an additional layer, the swipeLayer, which is the parent of the swipeSnapshotLayer.
        We use this layer to compensate for geometry flipping, since we don't necessarily
        know the structure of the layer tree ahead of time when inserting snapshots into the
        client's layer tree, in the custom swipe view case.
        The swipe layer is always the full size of the view, including topContentInset, and
        has a white background in order to fill in that space. The snapshot layer is the size
        of the view *excluding* the topContentInset, which should match the size of the snapshot image
        itself (and we reject the image and just paint white if this is not the case).

        (WebKit::ViewGestureController::handleSwipeGesture):
        (WebKit::ViewGestureController::removeSwipeSnapshot):
        Move and remove the new swipeLayer.

        * UIProcess/mac/ViewSnapshotStore.h:
        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::recordSnapshot):
        Store the deviceScaleFactor at the time the snapshot was taken.
        Fix a bug where the count of snapshots with live images was too high
        because we were failing to decrement it when replacing a snapshot of
        an existing item with a fresh one.

2014-04-28  Enrica Casucci  <enrica@apple.com>

        WK2 iOS: crash when handling a synthetic keyboard event.
        https://bugs.webkit.org/show_bug.cgi?id=132296
        <rdar://problem/16469726>

        Reviewed by Benjamin Poulain.

        Adding a null check, since synthetic keyboard events do not
        have a corresponding platform event. We already do this on OS X.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::handleEditingKeyboardEvent):

2014-04-24  Andy Estes  <aestes@apple.com>

        [iOS] Implement WebQuickLookHandleClient for WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=132157

        Reviewed by Darin Adler.

        * Shared/API/Cocoa/_WKNSFileManagerExtras.h: Added.
        * Shared/API/Cocoa/_WKNSFileManagerExtras.mm: Added.
        (+[NSFileManager _web_createTemporaryFileForQuickLook:]): Called WebCore::createTemporaryFileForQuickLook().
        * Shared/ios/QuickLookDocumentData.cpp: Added.
        (WebKit::QuickLookDocumentData::QuickLookDocumentData):
        (WebKit::QuickLookDocumentData::append): Appened each CFDataRef to m_data and added their sizes to m_size.
        (WebKit::QuickLookDocumentData::decodedData): Returned the combined CFDataRef created by decode().
        Named this method 'decodedData' to indicate that it should only be called on objects populated by decode().
        (WebKit::QuickLookDocumentData::clear): Cleared m_data and reset m_size to 0.
        (WebKit::QuickLookDocumentData::encode): Implemented a custom encoding function to avoid having to combine
        m_data into contiguous memory at encoding time. Encoded m_size then sequentially encoded each member of m_data.
        (WebKit::QuickLookDocumentData::decode): Decoded the byte stream into a single CFDataRef. Eagerly copied the
        decoded data rather than using a DataReference since we know this will outlive the decoder.
        * Shared/ios/QuickLookDocumentData.h: Added.
        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::didStartLoadForQuickLookDocumentInMainFrame):
        (API::LoaderClient::didFinishLoadForQuickLookDocumentInMainFrame):
        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate):
        (WebKit::NavigationState::LoaderClient::didStartLoadForQuickLookDocumentInMainFrame):
        (WebKit::NavigationState::LoaderClient::didFinishLoadForQuickLookDocumentInMainFrame):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::didStartLoadForQuickLookDocumentInMainFrame):
        (WebKit::WebPageProxy::didFinishLoadForQuickLookDocumentInMainFrame):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
        * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
        (WebKit::WebFrameLoaderClient::didCreateQuickLookHandle):
        * WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.cpp: Added.
        (WebKit::WebQuickLookHandleClient::WebQuickLookHandleClient): Sent DidStartLoadForQuickLookDocumentInMainFrame
        to WebPageProxy.
        (WebKit::WebQuickLookHandleClient::didReceiveDataArray): Appended dataArray to m_data.
        (WebKit::WebQuickLookHandleClient::didFinishLoading): Sent DidFinishLoadForQuickLookDocumentInMainFrame to
        WebPageProxy and then cleared m_data.
        (WebKit::WebQuickLookHandleClient::didFail): Cleared m_data.
        * WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.h: Added.
        (WebKit::WebQuickLookHandleClient::create):

2014-04-28  Brady Eidson  <beidson@apple.com>

        Hide service controls for selection behind a runtime switch
        <rdar://problem/16736616> and https://bugs.webkit.org/show_bug.cgi?id=132291

        Reviewed by Tim Horton.

        * Shared/WebPreferencesStore.h:

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::selectionRectsDidChange): Do nothing if the UI is disabled.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::updatePreferences):

        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::serviceControlsEnabled):

2014-04-28  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167853.
        https://bugs.webkit.org/show_bug.cgi?id=132288

        caused crashes+timeouts+layout test failures described in the
        bug (Requested by thorton on #webkit).

        Reverted changeset:

        "Coalesce responses on network process side"
        https://bugs.webkit.org/show_bug.cgi?id=132229
        http://trac.webkit.org/changeset/167853

2014-04-28  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS buld.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::areAllTouchPointsReleased):

2014-04-24  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Make subview rebuilding more incremental
        https://bugs.webkit.org/show_bug.cgi?id=132162
        <rdar://problem/16718916>

        Reviewed by Sam Weinig.
        
        Previously we did bulk replacement of subviews, but that triggers
        UIKit to send spurious will/DidMoveToWindow messages, which can
        interfere with UIScrollView scrolling.
        
        Make _web_setSubviews more incremental, only removing
        deleted subviews, adding new ones, and moving existing ones
        into the correct order.

        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (-[UIView _web_setSubviews:]):

2014-04-24  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] flickery scrolling with overflow-scrolling:touch
        https://bugs.webkit.org/show_bug.cgi?id=132150
        <rdar://problem/16683006>

        Reviewed by Tim Horton.
        
        Maintain a flag that tells us if the user is interacting
        with the UIScrollView, and while set, don't clobber the contentOffset
        via scrolling tree updates.

        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (-[WKOverflowScrollViewDelegate initWithScrollingTreeNode:WebKit::]):
        (-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
        (-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
        (-[WKOverflowScrollViewDelegate scrollViewDidEndDecelerating:]): We need this one,
        not scrollViewDidEndScrollingAnimation:, to detect the end of decleration.
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
        (-[WKOverflowScrollViewDelegate scrollViewDidEndScrollingAnimation:]): Deleted.

2014-04-28  Krzysztof Wolanski  <k.wolanski@samsung.com>

        [X11] Add missing case for mime type application/x-webkit-test-netscape
        https://bugs.webkit.org/show_bug.cgi?id=132278

        Reviewed by Darin Adler.

        Case for x-webkit-test-netscape has been omitted along with r167759.

        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
        (WebKit::NetscapePlugin::initialize):

2014-04-28  Zan Dobersek  <zdobersek@igalia.com>

        [WK2][X11] NetscapePluginModule::scanPlugin() should write UTF-8 strings to stdout
        https://bugs.webkit.org/show_bug.cgi?id=132245

        Reviewed by Carlos Garcia Campos.

        NetscapePluginModule::scanPlugin(), in the helper writeLine function, takes each character
        of the given string and writes it out as a UChar, doing two fputc calls for each byte of the
        16-bit type.

        This fails badly with characters with integer value less than 256 as the most significant byte
        of the UChar is written out as a null character. This effectively chops the output that's gathered
        in the UIProcess and is parsed in PluginProcessProxy::scanPlugin().

        To avoid all this, the UTF-8 encoding of the string is written out in the PluginProcess, and
        String::fromUTF8() is called in the UIProcess to properly decode the received string.

        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
        (WebKit::writeCharacter):
        (WebKit::writeLine):
        (WebKit::writeByte): Deleted.
        * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
        (WebKit::PluginProcessProxy::scanPlugin):

2014-04-28  Zan Dobersek  <zdobersek@igalia.com>

        [GTK][WK2] Missing return statement in webkit_plugin_get_description()
        https://bugs.webkit.org/show_bug.cgi?id=132263

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitPlugin.cpp:
        (webkit_plugin_get_description): Actually return the data of the cached
        plugin description CString.

2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Crash in debug build with removing windowed plugin child widgets from the view
        https://bugs.webkit.org/show_bug.cgi?id=132252

        Reviewed by Philippe Normand.

        It crashes due to an assert in HashTable that checks the iterators
        validity. The problem is that we are iterating the children map
        and the callback called on every iteration might modify the map,
        making the iterators invalid. This happens when the WebView is
        destroyed, GtkContainer calls gtk_container_foreach() with
        gtk_widget_destroy as callback. When a widget inside a container
        is destroyed, it's removed from the container, and in our case,
        the child widget is removed from the map. This fixes several
        crashes when running layout tests in debug bot.

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseContainerForall): Use copyKeysToVector() instead
        of using a range iterator for the map keys and check in every
        iteration that the child widget from the keys vector is still
        present in the map before calling the callback.

2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] GObject introspection links to installed libs when using jhbuild
        https://bugs.webkit.org/show_bug.cgi?id=132220

        Reviewed by Martin Robinson.

        The problem is that gobject-introspection is linking the temporary
        binaries adding the library paths present LDFLAGS environment
        variable first, taking precedence over the libraries in the build
        dir. Since the libraries paths of the dependencies are already
        correctly deduced by gobject-introspection using ldd, we can
        just unset the LDFLAGS variable before calling g-ir-scanner to
        make sure the libraries in the build dir take predence.

        * PlatformGTK.cmake:

2014-04-27  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r164702): Double tap doesn't stay under the new element once the animation finishes
        https://bugs.webkit.org/show_bug.cgi?id=132239
        <rdar://problem/16192842>

        Reviewed by Darin Adler.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::scalePage):
        The change in r167864 broke iOS animated resize, because it was depending on
        the dynamic size update code not running if the scale wasn't going to change.
        So, as a band-aid we should bail from doing that work if the scales aren't different.
        In the long term we should try to untangle this code and make it less platform dependent.

2014-04-27  Eunmi Lee  <eunmi15.lee@samsung.com>

        TouchEvent is not handled after releasing any point among touched points.
        https://bugs.webkit.org/show_bug.cgi?id=132043

        Reviewed by Benjamin Poulain.

        Handle TouchEvent until all touched points are released by setting
        trackingTouchEvents variable to false when all points are released.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::areAllTouchPointsReleased):
        (WebKit::WebPageProxy::handleTouchEventSynchronously):
        (WebKit::WebPageProxy::handleTouchEventAsynchronously):
        (WebKit::WebPageProxy::handleTouchEvent):

2014-04-27  Alexey Proskuryakov  <ap@apple.com>

        Don't use DispatchMessageEvenWhenWaitingForSyncReply for messages from NetworkProcess
        https://bugs.webkit.org/show_bug.cgi?id=132144

        Reviewed by Darin Adler.

        * NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
        (WebKit::AsynchronousNetworkLoaderClient::willSendRequest):
        (WebKit::AsynchronousNetworkLoaderClient::canAuthenticateAgainstProtectionSpace):
        Dont use the IPC::DispatchMessageEvenWhenWaitingForSyncReply flag. It's not needed,
        almost never works in NetworkProcess, but may cause trouble if it did.

        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): Removed
        setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage()
        function call, because there are no more any messages in NetworkProcess it could affect.

        * Platform/IPC/Connection.cpp: (IPC::Connection::dispatchMessage): Added a FIXME
        for an unrelated bug Anders and myself noticed while looking into this.

2014-04-27  Dan Bernstein  <mitz@apple.com>

        [Cocoa] -[WKWebProcessPlugInController parameters] returns nil if no parameters have been set yet
        https://bugs.webkit.org/show_bug.cgi?id=132223

        Reviewed by Sam Weinig.

        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
        (WebKit::InjectedBundle::bundleParameters): Create the WKWebProcessBundleParameters if
        needed.

2014-04-27  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r164702): Double tap doesn't stay under the new element once the animation finishes
        https://bugs.webkit.org/show_bug.cgi?id=132239
        <rdar://problem/16192842>

        Reviewed by Sam Weinig.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::scalePage):
        The early-return added to WebPage::scalePage breaks callers who depend
        on being able to call scalePage() with the same scale but a different
        origin and having that change take effect.

        Page::setPageScaleFactor already has the requisite logic, so move
        the early return down after that call, and guard only notification
        of page scale changes.

2014-04-25  Andy Estes  <aestes@apple.com>

        [iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=132215

        Reviewed by Dan Bernstein.

        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): Called QuickLookHandle::create() directly.
        * WebProcess/Network/WebResourceLoader.h:
        * WebProcess/ios/WebResourceLoaderIOS.mm: Removed.

2014-04-27  Sam Weinig  <sam@webkit.org>

        [iOS WebKit2] Add support for text autosizing
        <rdar://problem/16545245>
        https://bugs.webkit.org/show_bug.cgi?id=132237

        Reviewed by Tim Horton.

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        * Shared/WebPageCreationParameters.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::creationParameters):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::textAutosizingWidth):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        Pass the text autosizing width from the UIProcess to WebProcess.

2014-04-27  Tim Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures (Zoom): Pages with 'background-attachment: fixed' don't behave correctly when zoomed
        https://bugs.webkit.org/show_bug.cgi?id=132225
        <rdar://problem/15729975>

        Reviewed by Darin Adler.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::layerForTransientZoom):
        (WebKit::TiledCoreAnimationDrawingArea::shadowLayerForTransientZoom):
        (WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
        (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
        (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
        Factor out code to choose which layer (and shadow layer) to apply the transient zoom to.
        If we have a contentsContainmentLayer (because we have composited background-attachment: fixed),
        it applies page scale, so we should apply the transient zoom to that layer
        instead of the RenderView's main GraphicsLayer.

2014-04-27  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. iOS build fix.

        * UIProcess/ios/SmartMagnificationController.h:

2014-04-27  Zan Dobersek  <zdobersek@igalia.com>

        Move cross-port WebKit2 code to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=129670

        Reviewed by Darin Adler.

        Replace uses of OwnPtr, PassOwnPtr in cross-port WebKit2 code with std::unique_ptr.

        * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
        (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):
        * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
        * NetworkProcess/NetworkProcess.h:
        (WebKit::NetworkProcess::addSupplement):
        * NetworkProcess/SynchronousNetworkLoaderClient.cpp:
        (WebKit::SynchronousNetworkLoaderClient::didReceiveBuffer):
        * NetworkProcess/SynchronousNetworkLoaderClient.h:
        * Platform/IPC/Connection.cpp:
        (IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
        * Platform/IPC/Connection.h:
        * Platform/IPC/MessageReceiver.h:
        * Platform/Module.h:
        * Platform/WorkQueue.h:
        * Platform/efl/ModuleEfl.cpp:
        (WebKit::Module::load):
        * Platform/mac/LayerHostingContext.mm:
        * Shared/APIURL.h:
        * Shared/Network/CustomProtocols/CustomProtocolManager.h:
        * Shared/Plugins/NPRemoteObjectMap.cpp:
        * Shared/ShareableBitmap.h:
        * UIProcess/DrawingAreaProxyImpl.h:
        * UIProcess/InspectorServer/WebSocketServer.cpp:
        (WebKit::WebSocketServer::didAcceptConnection):
        (WebKit::WebSocketServer::didCloseWebSocketServerConnection):
        * UIProcess/InspectorServer/WebSocketServer.h:
        * UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:
        (WebKit::connectionCallback):
        * UIProcess/Network/NetworkProcessProxy.cpp:
        (WebKit::NetworkProcessProxy::createDownloadProxy):
        * UIProcess/Network/NetworkProcessProxy.h:
        * UIProcess/Notifications/WebNotificationManagerProxy.h:
        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
        (WebKit::WebPluginSiteDataManager::getSitesWithData):
        (WebKit::WebPluginSiteDataManager::clearSiteData):
        (WebKit::WebPluginSiteDataManager::didGetSitesWithDataForAllPlugins):
        (WebKit::WebPluginSiteDataManager::didClearSiteDataForAllPlugins):
        * UIProcess/Plugins/WebPluginSiteDataManager.h:
        * UIProcess/Storage/StorageManager.cpp:
        (WebKit::callCallbackFunction):
        (WebKit::StorageManager::getOriginsInternal):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::ExceededDatabaseQuotaRecords::areBeingProcessed):
        (WebKit::ExceededDatabaseQuotaRecords::createRecord):
        (WebKit::ExceededDatabaseQuotaRecords::add):
        (WebKit::ExceededDatabaseQuotaRecords::next):
        (WebKit::WebPageProxy::handleMouseEvent):
        (WebKit::WebPageProxy::handleWheelEvent):
        (WebKit::WebPageProxy::processNextQueuedWheelEvent):
        (WebKit::WebPageProxy::internalShowContextMenu):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::createDownloadProxy):
        * UIProcess/WebProcessProxy.h:
        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
        (WebKit::PluginDestructionProtector::PluginDestructionProtector):
        * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
        (WebKit::NetscapePluginStream::deliverData):
        * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
        * WebProcess/Plugins/PluginProcessConnectionManager.h:
        * WebProcess/Plugins/PluginProxy.cpp:
        (WebKit::PluginProxy::initialize):
        (WebKit::PluginProxy::didCreatePluginInternal):
        (WebKit::PluginProxy::didFailToCreatePluginInternal):
        * WebProcess/Plugins/PluginProxy.h:
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::createWebEvent):
        (WebKit::PluginView::handleEvent):
        * WebProcess/Plugins/PluginView.h:
        * WebProcess/WebCoreSupport/WebPopupMenu.h:
        * WebProcess/WebPage/EventDispatcher.cpp:
        (WebKit::EventDispatcher::EventDispatcher):
        * WebProcess/WebPage/EventDispatcher.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::beginPrinting):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebProcess.h:
        (WebKit::WebProcess::addSupplement):

2014-04-27  Antti Koivisto  <antti@apple.com>

        Coalesce responses on network process side
        https://bugs.webkit.org/show_bug.cgi?id=132229

        Reviewed by Andreas Kling.
        
        To reduce IPC we should coalesce response data in the network process and send it over with single IPC call.

        * NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
        (WebKit::AsynchronousNetworkLoaderClient::AsynchronousNetworkLoaderClient):
        (WebKit::AsynchronousNetworkLoaderClient::didReceiveResponse):
        (WebKit::AsynchronousNetworkLoaderClient::didReceiveBuffer):
        (WebKit::AsynchronousNetworkLoaderClient::didFinishLoading):
        (WebKit::AsynchronousNetworkLoaderClient::didFail):
        (WebKit::AsynchronousNetworkLoaderClient::dispatchPartialCoalescedResponse):
        (WebKit::AsynchronousNetworkLoaderClient::clearCoalescedResponse):
        (WebKit::AsynchronousNetworkLoaderClient::responseCoalesceTimerFired):
        
            Coalesce the response. Completed response is sent on didFinishLoading. If the coalesce timer fires
            before that the data accumulated so far is dispatched.

        * NetworkProcess/AsynchronousNetworkLoaderClient.h:
        * NetworkProcess/NetworkResourceLoader.h:
        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::didReceiveCompleteResponse):
        * WebProcess/Network/WebResourceLoader.h:
        * WebProcess/Network/WebResourceLoader.messages.in:
        
            Add a new message type that covers didReceiveResponse, didReceiveBuffer and didFinishLoading in a single message.

2014-04-26  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r167775): Safari crashes in ViewSnapshotStore::pruneSnapshots after loading 20 pages
        https://bugs.webkit.org/show_bug.cgi?id=132204
        <rdar://problem/16735622>

        Reviewed by Dan Bernstein and Sam Weinig.

        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::pruneSnapshots):
        (WebKit::ViewSnapshotStore::recordSnapshot):
        Fix a bug where the count of snapshots with live images was too high
        because we were failing to decrement it when replacing a snapshot of
        an existing item with a fresh one.

2014-04-26  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Rename a bundle form delegate method
        https://bugs.webkit.org/show_bug.cgi?id=132221

        Reviewed by Adele Peterson.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Renamed.
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Check for the method
        under the old (“new”) name and under the new name.

2014-04-25  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Synthesized getter for WKNavigationAction's _userInitiated property has the wrong name
        https://bugs.webkit.org/show_bug.cgi?id=132219

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKNavigationActionInternal.h:

2014-04-25  Simon Fraser  <simon.fraser@apple.com>

        [iOS] getAssistedNodeInformation crashes getting the bounding box if it doesn't have a renderer
        https://bugs.webkit.org/show_bug.cgi?id=132217
        <rdar://problem/16671662>

        Reviewed by Dean Jackson.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getAssistedNodeInformation): Check that m_assistedNode has
        a renderer before asking for its bounding box.

2014-04-25  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Add an intermediary view to do the target transform and adjustment transform
        https://bugs.webkit.org/show_bug.cgi?id=132175

        Reviewed by Enrica Casucci.

        Some utility views of WKContentView account for the transforms between the content view
        and the utility view.

        Since the dynamic resize relies on setting subLayerTransforms, it is getting in the way.

        This patch adds a layer in between for the animation. That way the content view remains
        unscaled.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]):
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        (-[WKWebView _endAnimatedResize]):

2014-04-25  Enrica Casucci  <enrica@apple.com>

        REGRESSION (iOS WebKit2): Selection is not being repainted during live resize.
        https://bugs.webkit.org/show_bug.cgi?id=132216
        <rdar://problem/16628819>

        Reviewed by Benjamin Poulain.

        Since the selection is drawn in the UIProcess on iOS,
        we need to update the selection rects and force a repaint
        during a live resize.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDidLayout):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateSelectionAppearance):

2014-04-25  Brady Eidson  <beidson@apple.com>

        Add a selection overlay.
        <rdar://problem/16727797> and https://bugs.webkit.org/show_bug.cgi?id=132200

        Reviewed by David Hyatt.

        * WebKit2.xcodeproj/project.pbxproj:

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::selectionRectsDidChange): Pass the new selection rects on
          to the selection overlay controller.
        * WebProcess/WebCoreSupport/WebEditorClient.h:

        * WebProcess/WebPage/SelectionOverlayController.cpp: Added.
        (WebKit::SelectionOverlayController::SelectionOverlayController):
        (WebKit::SelectionOverlayController::createOverlayIfNeeded):
        (WebKit::SelectionOverlayController::destroyOverlay):
        (WebKit::SelectionOverlayController::pageOverlayDestroyed):
        (WebKit::SelectionOverlayController::willMoveToWebPage):
        (WebKit::SelectionOverlayController::didMoveToWebPage):
        (WebKit::SelectionOverlayController::selectionRectsDidChange):
        (WebKit::SelectionOverlayController::drawRect):
        (WebKit::SelectionOverlayController::mouseEvent):
        * WebProcess/WebPage/SelectionOverlayController.h: Added.
        (WebKit::SelectionOverlayController::create):
        * WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm: Added.
        (WebKit::SelectionOverlayController::drawRect):
        (WebKit::SelectionOverlayController::mouseEvent):
        (WebKit::SelectionOverlayController::handleClick):
        (WebKit::SelectionOverlayController::clearHighlight):

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::selectionOverlayController):
        * WebProcess/WebPage/WebPage.h:

2014-04-25  Enrica Casucci  <enrica@apple.com>

        Remove duplicate member variable in WKAutocorrectionRects and WKAutocorrectionContext.
        https://bugs.webkit.org/show_bug.cgi?id=132206

        Reviewed by Benjamin Poulain.

        * UIProcess/ios/WKContentViewInteraction.mm:

2014-04-25  Dean Jackson  <dino@apple.com>

        Allow a platform-specific size enumeration to be passed into popup-menu display
        https://bugs.webkit.org/show_bug.cgi?id=132195

        Reviewed by Brent Fulgham. With some in-person review comments from Sam Weinig.

        Platforms like OS X use a set of predefined sizes for built-in controls
        used for <select>: normal, small and mini. Expose that information to
        the PopupMenuClient via the PopupMenuStyle, allowing it to be passed
        into the platform code in WebKitSystemInterface.

        * Shared/PlatformPopupMenuData.cpp: Encode and decode the PopupMenuSize enum.
        (WebKit::PlatformPopupMenuData::encode):
        (WebKit::PlatformPopupMenuData::decode):
        * Shared/PlatformPopupMenuData.h: Add PopupMenuSize member variable.
        * UIProcess/mac/WebPopupMenuProxyMac.mm:
        (WebKit::WebPopupMenuProxyMac::showPopupMenu): Convert the PopupMenuSize
        into a WKControlSize, and pass that into WKPopupMenu.
        * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
        (WebKit::WebPopupMenu::setUpPlatformData): Add the PopupMenuSize to
        the PlatformPopupMenuData.

2014-04-25  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r167775): Safari crashes in ViewSnapshotStore::pruneSnapshots after loading 20 pages
        https://bugs.webkit.org/show_bug.cgi?id=132204
        <rdar://problem/16729123>

        Reviewed by Anders Carlsson.

        * UIProcess/mac/ViewSnapshotStore.h:
        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::ViewSnapshotStore):
        (WebKit::ViewSnapshotStore::pruneSnapshots):
        (WebKit::ViewSnapshotStore::recordSnapshot):
        Keep track of the number of snapshots that actually have live images; the
        size of the snapshot map no longer represents that.
        Also, fix the crash by using the UUID from the current item instead of from
        the (potentially null) most distant item; r167775 accidentally typo'd this.

2014-04-25  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Plugin process crashes with GTK2 windowed plugins
        https://bugs.webkit.org/show_bug.cgi?id=132127

        Reviewed by Martin Robinson.

        It happens sometimes because the socket is used before the plug
        has been added. A runtime critical warnings is shown and it
        sometimes ends up crashing.

        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
        (WebKit::NetscapePlugin::platformPostInitializeWindowed): Do not
        show the plug widget until the socket is connected.

2014-04-24  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
        <https://webkit.org/b/132171>
        <rdar://problem/16720733>

        Implement a CFNetwork-based version of NetworkResourceLoader::willCacheResponseAsync()
        and activate the DiskCacheMonitor code path. This means that once resources go into
        file system cache, we get notified and mmap them from disk, saving heaps of memory.

        Reviewed by Antti Koivisto.

        * NetworkProcess/NetworkResourceLoader.h:
        * NetworkProcess/mac/DiskCacheMonitor.mm:
        * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
        (WebKit::NetworkResourceLoader::willCacheResponseAsync):

2014-04-24  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] RemoteLayerTreeDrawingArea should force CA to garbage collect surfaces.
        <https://webkit.org/b/132160>
        <rdar://problem/16110687>

        Do an empty CATransaction at the end of RemoteLayerTreeDrawingArea::flushLayers()
        to get CA to garbage collect its IOSurfaces. This helps clean up unused surfaces
        that we'd otherwise end up hanging on to for a long time.

        Reviewed by Tim Horton.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::didUpdate):

2014-04-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167700.
        https://bugs.webkit.org/show_bug.cgi?id=132142

        Incorrectly reverted the change in r167547 for
        webkit.org/b/131898 (Requested by rniwa on #webkit).

        Reverted changeset:

        "Cursor doesn't change back to pointer when leaving the Safari
        window"
        https://bugs.webkit.org/show_bug.cgi?id=132038
        http://trac.webkit.org/changeset/167700

2014-04-24  Brady Eidson  <beidson@apple.com>

        Rename "IMAGE_CONTROLS" feature to "SERVICE_CONTROLS"
        https://bugs.webkit.org/show_bug.cgi?id=132155

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:
        * Shared/ContextMenuContextData.cpp:
        (WebKit::ContextMenuContextData::ContextMenuContextData):
        (WebKit::ContextMenuContextData::operator=):
        (WebKit::ContextMenuContextData::encode):
        (WebKit::ContextMenuContextData::decode):
        * Shared/ContextMenuContextData.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::internalShowContextMenu):
        * UIProcess/WebPageProxy.h:
        * UIProcess/mac/WebContextMenuProxyMac.h:
        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
        (WebKit::WebContextMenuProxyMac::populate):
        (WebKit::WebContextMenuProxyMac::showContextMenu):
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
        * WebProcess/WebPage/WebContextMenu.cpp:
        * WebProcess/WebPage/WebContextMenu.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-04-24  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] Add some missing overrides and remove unnecessary virtuals
        https://bugs.webkit.org/show_bug.cgi?id=132153

        Reviewed by Darin Adler.

        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:

2014-04-24  Tim Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures: Use a single struct for the snapshot, and pass it around
        https://bugs.webkit.org/show_bug.cgi?id=132114

        Reviewed by Simon Fraser.

        Have only a single map in ViewSnapshotStore, from back-forward item
        to ViewSnapshotStore::Snapshot, and return the Snapshot struct when looking
        up snapshots (via getSnapshot()), so that future patches can persist additional
        information along with the snapshot.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::endSwipeGesture):
        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::retrieveSnapshotForItem):
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::endSwipeGesture):
        Adopt getSnapshot() instead of snapshotAndRenderTreeSize().
        Move retrieveSnapshotForItem out into a separate function (for future use).

        * UIProcess/mac/ViewSnapshotStore.h:
        (WebKit::ViewSnapshotStore::disableSnapshotting):
        (WebKit::ViewSnapshotStore::enableSnapshotting):
        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::pruneSnapshots):
        (WebKit::ViewSnapshotStore::recordSnapshot):
        (WebKit::ViewSnapshotStore::getSnapshot):
        (WebKit::ViewSnapshotStore::snapshotAndRenderTreeSize): Deleted.
        Make Snapshot struct public.
        Get rid of the separate map of back-forward items to render tree sizes.
        When evicting, instead of removing the entry, clear out its snapshot image;
        this way, we can keep other snapshot metadata around.

2014-04-24  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Should properly handle focus redirect (keyboard state changes when focus changes).
        https://bugs.webkit.org/show_bug.cgi?id=132136
        <rdar://problem/16238336>

        Reviewed by Benjamin Poulain.

        Focusing a field from JavaScript should not make the keyboard or the select picker
        appear unless the user has already started interacting with one of the fields in the page.
        Adding a parameter to StartAssistingNode to indicate whether the focus change is a result
        of a user action.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::startAssistingNode):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _startAssistingNode:userIsInteracting:userObject:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::startAssistingNode):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::dispatchTouchEvent):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::handleTap):
        (WebKit::WebPage::elementDidFocus):

2014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>

        FontCache::fontCache() never returns nullptr so it can be made to return a reference instead
        https://bugs.webkit.org/show_bug.cgi?id=132110

        Reviewed by Tim Horton.

        Updates callers to use '.' instead of '->'.

        No new tests are necessary because there should be no behavior change.

        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::terminate):
        (WebKit::WebProcess::didClose):
        (WebKit::WebProcess::getWebCoreStatistics):

2014-04-24  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Manage AudioSession category according to media type
        https://bugs.webkit.org/show_bug.cgi?id=132096

        Reviewed by Jer Noble.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage): Tell WebCore to manage the AudioSession.

2014-04-24  Tim Horton  <timothy_horton@apple.com>

        [wk2] Provide SPI allowing clients to hand events directly to swipe code, bypassing scrolling
        https://bugs.webkit.org/show_bug.cgi?id=132092
        <rdar://problem/15948244>

        Reviewed by Darin Adler.

        * UIProcess/API/Cocoa/WKViewPrivate.h:
        * UIProcess/API/mac/WKView.mm:
        (-[WKView _tryToSwipeWithEvent:ignoringPinnedState:]):
        Added. Hand the event directly to ViewGestureController, optionally
        ignoring whether or not the WKView is scrollable (always pretending that it is not).

        * UIProcess/mac/ViewGestureController.h:
        (WebKit::ViewGestureController::shouldIgnorePinnedState):
        (WebKit::ViewGestureController::setShouldIgnorePinnedState):
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::scrollEventCanBecomeSwipe):
        (WebKit::ViewGestureController::handleScrollWheelEvent):
        (WebKit::ViewGestureController::wheelEventWasNotHandledByWebCore):
        (WebKit::scrollEventCanBecomeSwipe):
        If we're ignoring the view's pinned state, pretend that we're always pinned,
        and don't worry about sending events to WebCore.

2014-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] wmode='transparent' for flash plugin doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=120055

        Reviewed by Gustavo Noronha Silva.

        Force opaque window mode for flash plugin when wmode='transparent',
        since X11 backend doesn't support transparency. We should add
        proper transparency support because forcing opaque window mode
        doesn't really work. Handle this as a plugin quirk instead of
        adding X11 specific code to WebFrameLoaderClient::createPlugin().

        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
        (WebKit::NetscapePluginModule::determineQuirks): Add
        ForceFlashWindowlessMode quirk for flash in case of EFL platform
        because EFL port doesn't support windowed plugins.
        * Shared/Plugins/PluginQuirks.h: Add ForceFlashWindowlessMode X11
        plugin quirk.
        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
        (WebKit::NetscapePlugin::initialize): Modify or add wmode
        parameter for flash plugin, to force opaque window mode when
        transparent mode is specified or when ForceFlashWindowlessMode
        quirk is present.
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::createPlugin): Remove X11 specific code.

2014-04-23  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Missing content inside long overflow-scrolling:touch 
        https://bugs.webkit.org/show_bug.cgi?id=132105

        Reviewed by Tim Horton.
        
        PlatformCALayerRemote needs to track bounds origin as well as size,
        since iOS uses bounds origin for overflow scrolling.

        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::applyPropertiesToLayer):
        * Shared/mac/RemoteLayerTreeTransaction.h:
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
        (WebKit::dumpChangedLayers):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::updateBackingStore):
        (WebKit::PlatformCALayerRemote::bounds):
        (WebKit::PlatformCALayerRemote::setBounds):

2014-04-23  Andreas Kling  <akling@apple.com>

        Remove unused WKPageSetMemoryCacheClientCallsEnabled API.
        <https://webkit.org/b/132098>

        This API was added to WK2 back in 2011 but never actually used.

        Reviewed by Anders Carlsson.

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        * Shared/WebPageCreationParameters.h:
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetMemoryCacheClientCallsEnabled): Deleted.
        * UIProcess/API/C/WKPage.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::creationParameters):
        (WebKit::WebPageProxy::setMemoryCacheClientCallsEnabled): Deleted.
        * UIProcess/WebPageProxy.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::setMemoryCacheMessagesEnabled): Deleted.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-04-23  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Make -webkit-overflow-scrolling:touch work
        https://bugs.webkit.org/show_bug.cgi?id=132097

        Reviewed by Tim Horton.
        
        Scrolling of UIScrollViews in content (for -webkit-overflow-scrolling:touch)
        depends on them getting hit-tested correctly. UIKit hit testing assumes
        that subviews are enclosed by their ancestors, but this is not true of
        web content. In addition, we had a root layer that was zero sized.
        
        Fix by overriding hitTest:withEvent: on our content WKViews to hit
        test subviews even if they are not enclosed.

        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (-[UIView _recursiveFindDescendantViewAtPoint:withEvent:]):
        (-[UIView _findDescendantViewAtPoint:withEvent:]):
        (-[WKCompositingView hitTest:withEvent:]):
        (-[WKTransformView hitTest:withEvent:]):
        (-[WKRemoteView hitTest:withEvent:]):
        (WebKit::RemoteLayerTreeHost::createLayer):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::updatePreferences):
        Update debug borders on the root layer.
        (WebKit::RemoteLayerTreeDrawingArea::mainFrameContentSizeChanged):
        Size the root layer to the contents size. This isn't strictly necessary
        given the hit testing overrides, but seems sensible to do anyway.

2014-04-23  Simon Fraser  <simon.fraser@apple.com>

        Nonopaque layers double-paint with UI-side compositing
        https://bugs.webkit.org/show_bug.cgi?id=132101

        Reviewed by Tim Horton.
        
        The non-IOSurface code path was failing to clear the backing store
        before painting.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::display):
        (WebKit::RemoteLayerBackingStore::drawInContext):

2014-04-23  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Image and text documents sometime gets the webpage viewport configuration
        https://bugs.webkit.org/show_bug.cgi?id=132099

        Reviewed by Tim Horton.

        When didReceiveMobileDocType(), if the doctype was not XHTML mobile, we were setting
        the viewport configuration to webpageParameters(). This is obviously not correct for
        Image and Text documents.

        This patch moves the code deciding the default configuration out of WebPage::didCommitLoad()
        and use it from WebPage::didCommitLoad() and WebPage::didReceiveMobileDocType().

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::didCommitLoad):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::didReceiveMobileDocType):
        (WebKit::WebPage::resetViewportDefaultConfiguration):

2014-04-23  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix a few mistakes affecting the initial layout and the initial unobscured rect
        https://bugs.webkit.org/show_bug.cgi?id=132093
        <rdar://problem/16703237>

        Reviewed by Tim Horton.

        The user of WKWebView can setup a size on device pixels, which can add half a point to the minimum
        layout size. By rounding this up before applying the page scale, we ended up with rounding errors
        on the layout size and the transitory unobscured content rect.

        This patch fixes changes the minimal layout size to float point values to reduce the rounding problems.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (setViewportConfigurationMinimumLayoutSize):
        (-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
        (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize):
        (WebKit::WebPageProxy::setMinimumLayoutSizeForMinimalUI):

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::didCommitLoad):
        Defaulting the content size to the minimum layout size only works if the initial-scale is 1.
        ViewportConfiguration knows exactly what to do before the first layout.

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setViewportConfigurationMinimumLayoutSize):
        (WebKit::WebPage::setMinimumLayoutSizeForMinimalUI):
        (WebKit::WebPage::dynamicViewportSizeUpdate):
        A few fixes here:
        -setZoomedOutPageScaleFactor() was incorrectly using the initial scale. 99% of the time, initial scale
         and minimum scale are equal, but the page can specify something different with the viewport meta tag.
        -Use floating point for manipulating the minimum layout sizes, then round the value.
        -minimumLayoutSizeInDocumentCoordinate was scaled the wrong way around.

        (WebKit::WebPage::viewportConfigurationChanged):

2014-04-23  Yongjun Zhang  <yongjun_zhang@apple.com>

        Support encoding/decoding NSUInteger arguments in WKRemoteObjectCoder.
        https://bugs.webkit.org/show_bug.cgi?id=132040

        Add support for encoding/decoding NSUInteger arguments.

        Reviewed by Sam Weinig.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (encodeInvocation):
        (decodeInvocationArguments):

2014-04-22  Ryosuke Niwa  <rniwa@webkit.org>

        Cursor doesn't change back to pointer when leaving the Safari window
        https://bugs.webkit.org/show_bug.cgi?id=132038

        Reviewed by Alexey Proskuryakov.

        Since the cursor type is now updated asynchronously after r147739,
        [window windowNumber] != [NSWindow windowNumberAtPoint:[NSEvent mouseLocation] belowWindowWithWindowNumber:0]
        evalutes to false depending on how fast cursor is moving.

        Instead, check whether the NSWindow of the WebView is the key window or not since
        key window appears to control the cursor style in Cocoa as far as I've tested:
        https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/WinPanel/Concepts/ChangingMainKeyWindow.html

        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::setCursor):

2014-04-22  Yongjun Zhang  <yongjun_zhang@apple.com>

        Add SPI to expose provisional URL from Frame.
        https://bugs.webkit.org/show_bug.cgi?id=132014

        Add methods to return the provisional URL from WKWebProcessPlugInFrame.

        Reviewed by Dan Bernstein.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
        (-[WKWebProcessPlugInFrame _provisionalURL]):
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:

2014-04-22  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Split iOS touch event dispatch for the regular touch event dispatch
        https://bugs.webkit.org/show_bug.cgi?id=132033

        Reviewed by Simon Fraser.

        The generic touch event dispatching does not work well with iOS gesture recognizers.
        Some events are required to be synchronous, while other needs can be asynchronous and
        can even use event coalescing. We only need UI callback for the synchronous events.

        Previously, that was implemented by changing the property ShouldSendEventsSynchronously
        on WebPageProxy. That is causing issues when synchronous events are sent right after asynchronous
        events because the responses in WebPageProxy::didReceiveEvent() easily get out of order.

        This patch completely split the UIGestureRecognizerDispatching from the normal asynchronous event dispatching.

        Synchronous events are sent directly to the WebProcess and report the result to the PageClient right away.

        Asynchronous events are sent to the EventDispatcher where they are coalesced until the main thread is free
        to process events.

        There can be a race where a synchronous event comes before the asynchronous events are processed. In that case,
        the synchronous event handler starts by getting the events out of the EventDispatcher and dispatch them first.

        * Shared/NativeWebTouchEvent.h:
        (WebKit::NativeWebTouchEvent::uniqueId): Deleted.
        * Shared/ios/NativeWebTouchEventIOS.mm:
        (WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::handleSynchronousTouchEvent):
        (WebKit::WebPageProxy::sendAsynchronousTouchEvent):
        (WebKit::WebPageProxy::didReceiveEvent):
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _webTouchEventsRecognized:]):
        (-[WKContentView _webTouchEvent:WebKit::preventsNativeGestures:]):
        * WebProcess/WebPage/EventDispatcher.cpp:
        (WebKit::EventDispatcher::EventDispatcher):
        (WebKit::EventDispatcher::clearQueuedTouchEventsForPage):
        (WebKit::EventDispatcher::getQueuedTouchEventsForPage):
        (WebKit::EventDispatcher::touchEvent):
        (WebKit::EventDispatcher::dispatchTouchEvents):
        * WebProcess/WebPage/EventDispatcher.h:
        * WebProcess/WebPage/EventDispatcher.messages.in:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::dispatchTouchEvent):
        (WebKit::WebPage::touchEventSync):
        (WebKit::WebPage::touchEvent):
        (WebKit::WebPage::touchEventSyncForTesting):
        (WebKit::WebPage::didCommitLoad):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dispatchAsynchronousTouchEventsQueue):

2014-04-22  Chris Fleizach  <cfleizach@apple.com>

        AX: iOS hit-testing does not work when page is zoomed
        https://bugs.webkit.org/show_bug.cgi?id=132013

        Reviewed by Simon Fraser.

        Implement accessibilityHitTest so that the point can be converted correctly.

        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):

2014-04-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167674.
        https://bugs.webkit.org/show_bug.cgi?id=132025

        Going a different way with this (Requested by bradee-oh on
        #webkit).

        Reverted changeset:

        "Change Image Controls replacement to use selection and paste"
        https://bugs.webkit.org/show_bug.cgi?id=131992
        http://trac.webkit.org/changeset/167674

2014-04-22  Joseph Pecoraro  <pecoraro@apple.com>

        Remove unused local variable
        https://bugs.webkit.org/show_bug.cgi?id=132020

        Reviewed by Alexey Proskuryakov.

        * UIProcess/ios/forms/WKFormSelectPopover.mm:
        (-[WKSelectPopover initWithView:hasGroups:]):

2014-04-22  Brady Eidson  <beidson@apple.com>

        Change Image Controls replacement to use selection and paste
        <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992

        Reviewed by Tim Horton.

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (-[WKSharingServicePickerDelegate sharingService:didShareItems:]): Write the
          replacement data to a special pasteboard, then replace the current selection from
          that pasteboard.

        Remove all other code used to support the old replacement mechanism:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::replaceControlledImage): Deleted.
        * UIProcess/WebPageProxy.h:
        * UIProcess/mac/WebContextMenuProxyMac.h:
        (WebKit::WebContextMenuProxyMac::page):
        (WebKit::WebContextMenuProxyMac::replaceControlledImage): Deleted.
        * WebProcess/WebPage/WebContextMenu.cpp:
        (WebKit::WebContextMenu::replaceControlledImage): Deleted.
        * WebProcess/WebPage/WebContextMenu.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::replaceControlledImage): Deleted.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-04-22  Eunmi Lee  <eunmi15.lee@samsung.com>

        [EFL][WK2] Remove duplicated code to set size to the DrawingArea.
        https://bugs.webkit.org/show_bug.cgi?id=131972

        Reviewed by Andreas Kling.

        DrawingArea's size is set in the WebView.cpp when EwkView's size is
        changed, so we don't have to set again in the PageViewportController.

        * UIProcess/CoordinatedGraphics/PageViewportController.cpp:
        (WebKit::PageViewportController::didChangeViewportSize):

2014-04-22  Tim Horton  <timothy_horton@apple.com>

        WKThumbnailView doesn't quite work with topContentInset
        https://bugs.webkit.org/show_bug.cgi?id=131976
        <rdar://problem/16642127>

        Reviewed by Darin Adler.

        * UIProcess/API/Cocoa/_WKThumbnailView.mm:
        (-[_WKThumbnailView initWithFrame:fromWKView:]):
        _WKThumbnailView always needs a layer.
        We don't want to use snapshots by default, this was debugging accidentally landed in the last change.

        (-[_WKThumbnailView _requestSnapshotIfNeeded]):
        Don't request a new snapshot if the scale is the same as the existing one.
        Reduce the height of the snapshot by the topContentInset.
        Having the origin at (0, 0) is still correct, as the inset content is in negative Y space,
        and (0, 0) is the true origin of the content.

        (-[_WKThumbnailView setScale:]):
        When not snapshotting, we've decided that WKThumbnailView should apply the scale to the WKView layer tree,
        instead of depending on clients to do so.

        (-[_WKThumbnailView setUsesSnapshot:]):
        We *do* need to apply thumbnail scale in the web process even when snapshotting,
        because we use the live layer tree temporarily while waiting for the asynchronous
        snapshot to return. This was a misstep in the last thumbnail view patch.

2014-04-22  Shivakumar JM  <shiva.jm@samsung.com>

        [WebKit2] Cleanup the build from unused parameter in WebProcess Module 
        https://bugs.webkit.org/show_bug.cgi?id=131970

        Reviewed by Darin Adler.

        Fix a build warning by removing the parameters in function paintLayerContents() to fix build warning.

        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
        (WebKit::CoordinatedLayerTreeHost::paintLayerContents):

2014-04-22  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Crash after getting web view context property with g_object_get
        https://bugs.webkit.org/show_bug.cgi?id=131983

        Reviewed by Philippe Normand.

        The problem is that the getter is using g_value_take_object() and
        the default context is destroyed when the caller releases its ref.

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkitWebViewGetProperty): Use g_value_set_object() instead of
        g_value_take_object().

2014-04-22  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Remove unnecessary includes in files of Source/WebKit2/UIProcess/API/efl
        https://bugs.webkit.org/show_bug.cgi?id=131979

        Reviewed by Gyuyoung Kim.

        Removed unnecessary includes of header files.
        In addition, tried to use forward declarations.

        * UIProcess/API/efl/EwkView.cpp:
        * UIProcess/API/efl/EwkView.h:
        * UIProcess/API/efl/EwkViewCallbacks.h:
        * UIProcess/API/efl/GestureRecognizer.h:
        * UIProcess/API/efl/ewk_context_menu_item_private.h:
        * UIProcess/API/efl/ewk_context_menu_private.h:
        * UIProcess/API/efl/ewk_download_job.cpp:
        * UIProcess/API/efl/ewk_download_job_private.h:
        * UIProcess/API/efl/ewk_form_submission_request.cpp:
        * UIProcess/API/efl/ewk_form_submission_request_private.h:
        * UIProcess/API/efl/ewk_navigation_data.cpp:
        * UIProcess/API/efl/ewk_navigation_data_private.h:
        * UIProcess/API/efl/ewk_page_group_private.h:
        * UIProcess/API/efl/ewk_popup_menu_private.h:
        * UIProcess/API/efl/ewk_view.cpp:
        * UIProcess/API/efl/ewk_window_features_private.h:
        * UIProcess/efl/PageUIClientEfl.cpp:
        * UIProcess/efl/ViewClientEfl.cpp:

2014-04-21  Tim Horton  <timothy_horton@apple.com>

        [wk2] Don't send intrinsic content size updates with dirty layout
        https://bugs.webkit.org/show_bug.cgi?id=131964
        <rdar://problem/14292718>

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
        (WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
        (WebKit::TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeIfNeeded):
        (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
        (WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
        (WebKit::TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeTimerFired): Deleted.
        Instead of using a timer (which can fire while layout is dirty) to coalesce
        intrinsic content size changes, send them only from flushLayers, just after updating layout.
        This ensures that we never get intermediate intrinsic content sizes that won't be painted.

2014-04-21  Tim Horton  <timothy_horton@apple.com>

        Remove a unnecessary forward-declared class from TiledCoreAnimationDrawingArea.

        Rubber-stamped by Simon Fraser.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:

2014-04-21  Simon Fraser  <simon.fraser@apple.com>

        Don't try to use a null connection()->xpcConnection()
        https://bugs.webkit.org/show_bug.cgi?id=131961

        Reviewed by Dan Bernstein.
        
        If running with -WebKit2UseXPCServiceForWebProcess NO, connection()->xpcConnection()
        is null and xpc_connection_get_pid() would crash, so null-check the xpcConnection.

        * UIProcess/Network/NetworkProcessProxy.cpp:
        (WebKit::NetworkProcessProxy::didFinishLaunching):

2014-04-21  Dan Bernstein  <mitz@apple.com>

        WebKit part of <rdar://problem/16631323> Page::setDefersLoading doesn’t do anything when using the Network process
        https://bugs.webkit.org/show_bug.cgi?id=131939

        Reviewed by David Kilzer.

        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::setDefersLoading): Added. Forwards the message to
        the NetworkResourceLoader. 
        * NetworkProcess/NetworkConnectionToWebProcess.h:

        * NetworkProcess/NetworkConnectionToWebProcess.messages.in: Added SetDefersLoading message.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::NetworkResourceLoader): Initialize new member variable
        m_defersLoading from the new field in the loader parameters.
        (WebKit::NetworkResourceLoader::start): Added. Like WebCore::ResourceLoader, if loading is
        deferred, keep the request in m_deferredRequest and bail out.
        (WebKit::NetworkResourceLoader::setDefersLoading): Added. Similar to
        WebCore::ResourceLoader::setDefersLoading.
        * NetworkProcess/NetworkResourceLoader.h:
        (WebKit::NetworkResourceLoader::defersLoading): 

        * Shared/Network/NetworkResourceLoadParameters.cpp:
        (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters): Initialize new field
        defersLoading to false.
        (WebKit::NetworkResourceLoadParameters::encode): Encode new field.
        (WebKit::NetworkResourceLoadParameters::decode): Decode new field.
        * Shared/Network/NetworkResourceLoadParameters.h: Added defersLoading field.

        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::WebResourceLoadScheduler::scheduleLoad): Populate defersLoading field in the load
        parameters.
        (WebKit::WebResourceLoadScheduler::setDefersLoading): Send a message to the Network process.
        * WebProcess/Network/WebResourceLoadScheduler.h:

2014-04-21  Anders Carlsson  <andersca@apple.com>

        Errors passed to delegate methods should have recovery attempters
        https://bugs.webkit.org/show_bug.cgi?id=131957
        <rdar://problem/16642539>

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/_WKErrorRecoveryAttempting.h: Added.
        * UIProcess/API/Cocoa/_WKErrorRecoveryAttempting.mm: Added.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::createErrorWithRecoveryAttempter):
        (WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
        (WebKit::NavigationState::LoaderClient::didFailLoadWithErrorForFrame):
        * UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.h: Added.
        * UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm: Added.
        (-[WKReloadFrameErrorRecoveryAttempter initWithWebView:frameHandle:urlString:]):
        (-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-04-21  Eric Carlson  <eric.carlson@apple.com>

        [Mac] implement WebKitDataCue
        https://bugs.webkit.org/show_bug.cgi?id=131799

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.

2014-04-21  Beth Dakin  <bdakin@apple.com>

        topContentInset does not play well with fullscreen elements
        https://bugs.webkit.org/show_bug.cgi?id=131955
        -and corresponding-
        <rdar://problem/16651925>

        Reviewed by Sam Weinig.

        If you take an element (such as a <video>) fullscreen when you have a 
        topContentInset set, there will be an inset-sized gap at the top of the fullscreen 
        video.

        Save and restore the topContentInset whenever the scroll position is saved and 
        restored.
        * WebProcess/FullScreen/WebFullScreenManager.cpp:
        (WebKit::WebFullScreenManager::WebFullScreenManager):
        (WebKit::WebFullScreenManager::saveScrollPosition):
        (WebKit::WebFullScreenManager::restoreScrollPosition):
        * WebProcess/FullScreen/WebFullScreenManager.h:

2014-04-21  Gavin Barraclough  <baraclough@apple.com>

        Don't use ProcessAssertion on simulator
        https://bugs.webkit.org/show_bug.cgi?id=131950

        Rubber stamped by Enrica Casucci

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):
        * UIProcess/ios/ProcessAssertion.h:

2014-04-21  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] support replacements for misspelled words.
        https://bugs.webkit.org/show_bug.cgi?id=131827
        <rdar://problem/16319657>

        Reviewed by Darin Adler.

        This is the second a final piece to support replacements.
        It adds some entrypoints used by the keyboard code to perform
        replacement when reaching the edge of a word using backspace.
        I've modified the behavior of replaceSelectedText to work both
        with caret or range selections.

        * Shared/EditorState.cpp:
        (WebKit::EditorState::encode):
        (WebKit::EditorState::decode):
        * Shared/EditorState.h:
        (WebKit::EditorState::EditorState):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView isReplaceAllowed]):
        (-[WKContentView _characterBeforeCaretSelection]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::editorState):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::replaceSelectedText):

2014-04-21  Gavin Barraclough  <baraclough@apple.com>

        Don't use ProcessAssertion on simulator
        https://bugs.webkit.org/show_bug.cgi?id=131950

        Rubber stamped by Benjamin Poulain

        * UIProcess/ios/ProcessAssertion.mm:
        (WebKit::ProcessAssertion::ProcessAssertion):
        (WebKit::ProcessAssertion::setState):

2014-04-21  Anders Carlsson  <andersca@apple.com>

        Another build fix.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
        (WebKit::XPCServiceInitializerDelegate::checkEntitlements):

2014-04-21  Anders Carlsson  <andersca@apple.com>

        Build fix.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
        (WebKit::XPCServiceInitializer):

2014-04-21  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Implement CSS viewport units
        https://bugs.webkit.org/show_bug.cgi?id=131863
        <rdar://problem/16279088>

        Reviewed by Darin Adler.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (setMinimumLayoutSizeForMinimalUI):
        (-[WKWebView _minimumLayoutSizeOverrideForMinimalUI]):
        (-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
        Add _setMinimumLayoutSizeOverrideForMinimalUI:, which pushes said size
        down from the client to WebPageIOS, below.

        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::setMinimumLayoutSizeForMinimalUI):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setMinimumLayoutSizeForMinimalUI):
        (WebKit::WebPage::viewportConfigurationChanged):
        Update FrameView's viewport size based on the minimum layout size for minimal UI (if we have it)
        or the normal minimum layout size, scaled to the page's initial scale.

2014-04-21  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix the dynamic viewport update when the viewport's max-scale conflict with the transition
        https://bugs.webkit.org/show_bug.cgi?id=131884

        Reviewed by Darin Adler.

        <rdar://problem/16667291>

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        It is fairly common to have a viewport configuration with min-scale=1 and max-scale=1.
        Since we were only changing the minimumScale for the transition, the target scale was affected
        by max-scale. This was breaking the transition from portrait to landscale.

2014-04-21  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Make dynamic viewport size update content aware
        https://bugs.webkit.org/show_bug.cgi?id=131874

        Reviewed by Tim Horton.

        When possible, adjust the scroll position based on the content on dynamic viewport resize.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::scalePage):
        (WebKit::WebPage::pageDidScroll):
        * WebProcess/WebPage/WebPage.h:
        The scrolling heuristic are not invertible, especially the content heuristic. To have the right
        behavior when doing resize without changing the page, we save the old scroll position and restore
        it when the content size and scale is restored.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):
        On dynamic update, start by finding what node is at the center of the screen. After the layout, put that
        node back in the center.

        (WebKit::WebPage::updateVisibleContentRects):

2014-04-21  Anders Carlsson  <andersca@apple.com>

        Need default WKNavigationDelegate behavior
        https://bugs.webkit.org/show_bug.cgi?id=131944
        <rdar://problem/15949822>

        Reviewed by Dan Bernstein.

        Port the WebKit1 default delegate behavior over.

        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
        (WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

2014-04-21  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Expose WebPage::setDefersLoading
        https://bugs.webkit.org/show_bug.cgi?id=131943

        Reviewed by Anders Carlsson, but he doesn’t like this.

        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _defersLoading]): Added this accessor.
        (-[WKWebProcessPlugInBrowserContextController _setDefersLoading:]): Ditto.
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
        Declared new property _defersLoading.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::defersLoading): Added this getter.
        * WebProcess/WebPage/WebPage.h:

2014-04-21  Joseph Pecoraro  <pecoraro@apple.com>

        Remove unused WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=131938

        Reviewed by Alexey Proskuryakov.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface):

2014-04-21  Anders Carlsson  <andersca@apple.com>

        Check the com.apple.security.network.client entitlement for all processes
        https://bugs.webkit.org/show_bug.cgi?id=131942
        <rdar://problem/12354188>

        Reviewed by Dan Bernstein.

        * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
        (WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate):
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
        (WebKit::XPCServiceInitializerDelegate::checkEntitlements):

2014-04-20  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Remove interfaces in the To Be Removed groups
        https://bugs.webkit.org/show_bug.cgi?id=131925

        Reviewed by Darin Adler.

        * Shared/API/Cocoa/WKRemoteObjectInterface.h: Removed.
        * Shared/API/Cocoa/WKRemoteObjectInterface.mm: Removed.
        * Shared/API/Cocoa/WKRemoteObjectRegistry.h: Removed.
        * Shared/API/Cocoa/WKRemoteObjectRegistry.mm: Removed.
        * UIProcess/API/Cocoa/WKProcessPool.mm:
        * UIProcess/API/Cocoa/WKProcessPoolConfiguration.h: Removed.
        * UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm: Removed.
        * UIProcess/API/Cocoa/WKProcessPoolConfigurationPrivate.h: Removed.
        * UIProcess/API/Cocoa/WKProcessPoolToBeRemoved.mm: Removed.
        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInBrowserContextControllerToBeRemoved.mm: Removed.
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:

2014-04-20  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Crash when setting a bundle parameter to nil
        https://bugs.webkit.org/show_bug.cgi?id=131917

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _setObject:forBundleParameter:]): If the object is nil, use
        -[NSMutableDictionary removeObjectForKey:] rather than -setObject:forKey:.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm:
        (-[WKWebProcessBundleParameters setParameter:forKey:]): Ditto.

        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
        (WebKit::InjectedBundle::setBundleParameter): Unrelatedly, create m_bundleParameters if
        needed, as it may have not been created on intialization if no bundle parameters were set
        at the time.

2014-04-20  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Remove unused -webView:didFinishLoadingNavigation: delegate method
        https://bugs.webkit.org/show_bug.cgi?id=131914

        Reviewed by Sam Weinig.

        * UIProcess/Cocoa/NavigationState.h: Removed flag from m_navigationDelegateMethods struct.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate): Removed check for whether the method is
        implemented.
        (WebKit::NavigationState::LoaderClient::didFinishLoadForFrame): Stopped calling the method
        if implemented.

2014-04-19  Anders Carlsson  <andersca@apple.com>

        Plug-in process crashes if NP_Initialize returns an error the second time it's called
        https://bugs.webkit.org/show_bug.cgi?id=131903
        <rdar://problem/14355462>

        Reviewed by Sam Weinig.

        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
        (WebKit::NetscapePluginModule::decrementLoadCount):
        Don't try to unload the plug-in if it hasn't been initialized.

2014-04-19  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Implement blend modes
        https://bugs.webkit.org/show_bug.cgi?id=131891
        <rdar://problem/16490085>

        Reviewed by Tim Horton.

        Implement blend modes with UI-side compositing.
        
        PlatformCALayer::setBlendMode() becomes pure virtual, and overridden in
        PlatformCALayerMac and PlatformCALayerRemote.
        PlatformCAFilters::setBlendingFiltersOnLayer() now takes a raw platform
        layer, so it can be called from the UI process on a CALayer*.
        
        Add BlendMode to LayerProperties, and initialize, encode and decode it,
        as well as adding dumping support for blend modes.
        
        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::applyPropertiesToLayer):
        * Shared/mac/RemoteLayerTreeTransaction.h:
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
        (WebKit::RemoteLayerTreeTextStream::operator<<):
        (WebKit::dumpChangedLayers):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::setBlendMode):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:

2014-04-19  Joseph Pecoraro  <pecoraro@apple.com>

        Fix leak of UIScreenEdgePanGestureRecognizer in WKSwipeTransitionController
        https://bugs.webkit.org/show_bug.cgi?id=131877

        Reviewed by Darin Adler.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]):

2014-04-19  Dan Bernstein  <mitz@apple.com>

        Don’t install a source file inside WebProcess.app.

        * WebKit2.xcodeproj/project.pbxproj: Removed ViewUpdateDispatcher.messages.in from
        WebProcess’s Copy Bundle Resources build phase.

2014-04-19  Darin Adler  <darin@apple.com>

        [Mac] WebView adjusts the cursor even when another window is in front
        https://bugs.webkit.org/show_bug.cgi?id=131898
        rdar://problem/14619911

        Reviewed by Dan Bernstein.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _setCursor:]): Deleted. Moved the code all into PageClientImpl, since none of it
        interacts with anything special about a WKView.

        * UIProcess/API/mac/WKViewInternal.h: Deleted the _setCursor: method.

        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::setCursor): Added a check that the window is under the cursor
        and do nothing if it's not.

2014-04-19  Dan Bernstein  <mitz@apple.com>

        Use XPC services in the iOS Simulator, but not in Mountain Lion
        https://bugs.webkit.org/show_bug.cgi?id=131894

        Reviewed by Anders Carlsson.

        * Configurations/NetworkService.Development.xcconfig: Defined INFOPLIST_FILE for the
        Simulator.
        * Configurations/NetworkService.xcconfig: Ditto.
        * Configurations/WebContentService.Development.xcconfig: Ditto.
        * Configurations/WebContentService.xcconfig: Ditto.
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::systemDirectoryPath): Added this helper function that returns a slash-terminated
        path to the System directory in the current runtime.
        (WebKit::ProcessLauncher::launchProcess): Changed to use the above function to tell whether
        a development version of WebKit2 is being used.
        * WebKit2Prefix.h: Set WTF_USE_XPC_SERVICES to 1 when targeting the iOS Simulator, but not
        when targeting Mountain Lion.

2014-04-19  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Crash in -[WKWebProcessPlugInHitTestResult nodeHandle] when nodeHandle() is null
        https://bugs.webkit.org/show_bug.cgi?id=131888

        Reviewed by Jon Honeycutt.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm:
        (-[WKWebProcessPlugInHitTestResult nodeHandle]): Added a null check.

2014-04-19  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fuzzy layers on sites using perspective and transforms
        https://bugs.webkit.org/show_bug.cgi?id=131873
        <rdar://problem/16540576>

        Reviewed by Sam Weinig.
        
        Always set rasterizationScale on CALayers in the UI process
        (as we do for WK1) so that layers are rasterized taking the
        device scale into account. We can do unconditionally; this
        is benign on layers that CA doesn't rasterize.

        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::applyPropertiesToLayer):

2014-04-18  Simon Fraser  <simon.fraser@apple.com>

        Use 'override' in GraphicsLayerCA
        https://bugs.webkit.org/show_bug.cgi?id=131882

        Reviewed by Tim Horton.
        
        Add an 'override'.

        * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:

2014-04-19  Darin Adler  <darin@apple.com>

        Assertion in WebPage::runModal accesses object after it may have been destroyed
        https://bugs.webkit.org/show_bug.cgi?id=131875

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::runModal): Ref the WebPage so it's still around so we can
        check the m_isRunningModal flag.

2014-04-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167527.
        https://bugs.webkit.org/show_bug.cgi?id=131883

        Broke 32-bit build (Requested by ap on #webkit).

        Reverted changeset:

        "[Mac] implement WebKitDataCue"
        https://bugs.webkit.org/show_bug.cgi?id=131799
        http://trac.webkit.org/changeset/167527

2014-04-18  Eric Carlson  <eric.carlson@apple.com>

        [Mac] implement WebKitDataCue
        https://bugs.webkit.org/show_bug.cgi?id=131799

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.

2014-04-18  Anders Carlsson  <andersca@apple.com>

        Keep the WebPageProxy alive for the lifetime of all PageLoadState::Transaction objects
        https://bugs.webkit.org/show_bug.cgi?id=131872
        <rdar://problem/15758414>

        Reviewed by Dan Bernstein.

        * UIProcess/PageLoadState.cpp:
        (WebKit::PageLoadState::PageLoadState):
        (WebKit::PageLoadState::Transaction::Transaction):
        (WebKit::PageLoadState::Transaction::~Transaction):
        * UIProcess/PageLoadState.h:
        (WebKit::PageLoadState::Transaction::Transaction): Deleted.
        (WebKit::PageLoadState::Transaction::~Transaction): Deleted.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):

2014-04-18  Stephanie Lewis  <slewis@apple.com>

        We shouldn’t create page throttlers for other pages than WebKit2 pages.
        Part of <rdar://problem/16473045> Visibility state counters are often incorrect.
        https://bugs.webkit.org/show_bug.cgi?id=131696

        Reviewed by Gavin Barraclough.

        Page throttlers were being created for SVG images and other page instances that
        were not accurately tracking the states that enable and disable page throttling.
        Make the throttler an unique ptr and only initialize it for WebKit2.

        This also fixes  an inefficiency where we would throttle a new page on creation because 
        we assumed it was visible even if that was not the case.

        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: Check page throttler exists.
        (WebKit::NPRuntimeObjectMap::evaluate):
        * WebProcess/WebPage/WebPage.cpp: 
        (WebKit::WebPage::WebPage): Initialize page throttler for WebKit2 views.
        (WebKit::WebPage::mouseEvent): Check page throttler exists.
        (WebKit::WebPage::wheelEvent): ditto
        (WebKit::WebPage::keyEvent): ditto

2014-04-18  Anders Carlsson  <andersca@apple.com>

        Don't allow app sandboxed apps without the network client entitlement to launch the network process
        https://bugs.webkit.org/show_bug.cgi?id=131868
        <rdar://problem/12354188>

        Reviewed by Dan Bernstein.

        * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
        (WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate):
        Add a new delegate that implements checkEntitlements().

        (NetworkServiceInitializer):
        Pass the new delegate to XPCServiceInitializer.

        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
        * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
        Call checkEntitlements.

        (WebKit::XPCServiceInitializerDelegate::checkEntitlements):
        Return true.

        (WebKit::XPCServiceInitializerDelegate::hasEntitlement):
        Helper function that returns whether a client has the given entitlement.

        (WebKit::XPCServiceInitializerDelegate::isClientSandboxed):
        Helper function that checks whether the client is sandboxed.

2014-04-18  Alice Barraclough  <alice.barraclough@webkit.org>

        Find on page - extend API by providing highlighted match index
        https://bugs.webkit.org/show_bug.cgi?id=131776

        Reviewed by Tim Horton.

        * Shared/WebFindOptions.h: Add an option for determining match index.

        Plumb through the API layers the addition of a parameter for match index.
        * UIProcess/API/APIFindClient.h:
        (API::FindClient::didFindString):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageFindClient):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (toFindOptions):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        (NS_OPTIONS):
        * UIProcess/API/Cocoa/_WKFindDelegate.h:
        * UIProcess/Cocoa/FindClient.h:
        * UIProcess/Cocoa/FindClient.mm:
        (WebKit::FindClient::setDelegate):
        (WebKit::FindClient::didFindString):
        * UIProcess/WebFindClient.cpp:
        (WebKit::WebFindClient::didFindString):
        * UIProcess/WebFindClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didFindString):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:

        The actual tracking of the match index is contained in FindController class.
        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::FindController): Start out as -1, understood to be an undefined index in this context.
        (WebKit::FindController::updateFindUIAfterPageScroll): 
            Perform the calculation of matchCount if the flag for DetermineMatchIndex is on.
        If matchCount exceeds max, keep the match index undefined because otherwise the finding could advance
        to a point where the index exceeds the match count, legitimately. If matchCount doesn't exceed the max, then make
        sure the match index, which had been being incremented or decremented blindly back in findString(), is normalized
        to be less than match count.
        (WebKit::FindController::findString): 
            If there is a user selection existing on the page, the next occurence of the string will be found after that
        selection. In that case we still want the index to properly reflect its ordinal  position within the entire document.
        Use findStringMatchingRanges to provide the match index, and set a flag that prevents the match index from being
        blindly incremented or decremented later. After findString() is actually called on the page, increment or decrement
        the find index under specific conditions. 
        (WebKit::FindController::hideFindIndicator): Reset match index when find UI goes away.
        * WebProcess/WebPage/FindController.h: Add m_foundStringMatchIndex to private variables.
        * WebProcess/WebPage/ios/FindControllerIOS.mm:
        (WebKit::FindController::hideFindIndicator): Reset match index when find UI goes away.

2014-04-18  Joseph Pecoraro  <pecoraro@apple.com>

        Correct some issues small issues in WK2 file upload InjectedBundle APIs
        https://bugs.webkit.org/show_bug.cgi?id=131852

        Reviewed by Dan Bernstein.

        * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
        (API::InjectedBundle::PageUIClient::shouldGenerateFileForUpload):
        The default return value, meaning no, should return the null string. The
        result is checked later, and null string is a special value meaning no.

        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
        (WebKit::InjectedBundlePageUIClient::generateFileForUpload):
        Pre-check for the correct client function we will use.

2014-04-18  Andy Estes  <aestes@apple.com>

        [iOS] REGRESSION (r167039): WebKit incorrectly sets a background process assertion state when displaying a PDF
        https://bugs.webkit.org/show_bug.cgi?id=131860
        <rdar://problem/16631282>

        Reviewed by Tim Horton.

        We were basing our process assertion state on whether or not the
        process had a WKContentView in a window, but when displaying a PDF
        we've removed the WKContentView from the window. Base this decision
        instead on whether or not the WKWebView is in the window.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView didMoveToWindow]):
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::isViewInWindow):

2014-04-18  Anders Carlsson  <andersca@apple.com>

        Address a couple of review comments
        https://bugs.webkit.org/show_bug.cgi?id=131856

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKNavigationAction.h:
        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
        * UIProcess/API/Cocoa/WKWebView.h:

2014-04-18  Anders Carlsson  <andersca@apple.com>

        Handle pluginOrigin being null
        https://bugs.webkit.org/show_bug.cgi?id=131849
        <rdar://problem/16655898>

        Reviewed by Alexey Proskuryakov.

        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):

2014-04-18  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add a navigation delegate method corresponding to didFinishDocumentLoadForFrame for the main frame
        https://bugs.webkit.org/show_bug.cgi?id=131847

        Reviewed by Anders Carlsson.

        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::didFinishDocumentLoadForFrame): Added a navigationID parameter.
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageLoaderClient): Updated for the above change in paramerers.
        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.
        * UIProcess/Cocoa/NavigationState.h: Declare override of didFinishDocumentLoadForFrame.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate): Initialize
        webViewNavigationDidFinishDocumentLoad flag in the delegate methods struct.
        (WebKit::NavigationState::LoaderClient::didFinishDocumentLoadForFrame): Added override
        of the client function which calls the delegate.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): Get and pass the navigation ID to
        the client.
        * UIProcess/WebPageProxy.h: Added navigationID parameter.
        * UIProcess/WebPageProxy.messages.in: Ditto.
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad): Get and send the navigation
        ID to the UI process.

2014-04-18  Philippe Normand  <pnormand@igalia.com>

        Remove NETWORK_INFO support
        https://bugs.webkit.org/show_bug.cgi?id=131841

        Reviewed by Gyuyoung Kim.

        * CMakeLists.txt:
        * PlatformEfl.cmake:
        * Shared/API/c/WKBase.h:
        * Shared/APIObject.h:
        * Shared/WebNetworkInfo.cpp: Removed.
        * Shared/WebNetworkInfo.h: Removed.
        * UIProcess/API/C/WKAPICast.h:
        * UIProcess/API/C/WKContext.cpp:
        (WKContextGetNetworkInfoManager): Deleted.
        * UIProcess/API/C/WKContext.h:
        * UIProcess/API/C/WKNetworkInfo.cpp: Removed.
        * UIProcess/API/C/WKNetworkInfo.h: Removed.
        * UIProcess/API/C/WKNetworkInfoManager.cpp: Removed.
        * UIProcess/API/C/WKNetworkInfoManager.h: Removed.
        * UIProcess/API/efl/ewk_context.cpp:
        (EwkContext::EwkContext):
        * UIProcess/API/efl/ewk_context_private.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::WebContext):
        * UIProcess/WebContext.h:
        * UIProcess/WebNetworkInfoManagerProxy.cpp: Removed.
        * UIProcess/WebNetworkInfoManagerProxy.h: Removed.
        * UIProcess/WebNetworkInfoManagerProxy.messages.in: Removed.
        * UIProcess/WebNetworkInfoProvider.cpp: Removed.
        * UIProcess/WebNetworkInfoProvider.h: Removed.
        * UIProcess/efl/NetworkInfoProvider.cpp: Removed.
        * UIProcess/efl/NetworkInfoProvider.h: Removed.
        * WebProcess/NetworkInfo/WebNetworkInfoManager.cpp: Removed.
        * WebProcess/NetworkInfo/WebNetworkInfoManager.h: Removed.
        * WebProcess/NetworkInfo/WebNetworkInfoManager.messages.in: Removed.
        * WebProcess/WebCoreSupport/WebNetworkInfoClient.cpp: Removed.
        * WebProcess/WebCoreSupport/WebNetworkInfoClient.h: Removed.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::WebProcess):

2014-04-17  Daniel Bates  <dabates@apple.com>

        [iOS] Hook up screen.{availHeight, availWidth, height, width}
        https://bugs.webkit.org/show_bug.cgi?id=131821
        <rdar://problem/16413795>

        Reviewed by Benjamin Poulain and Tim Horton.

        Implement WebKit2-specific support infrastructure.

        Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode): Modified to encode the available screen size
        creation parameter.
        (WebKit::WebPageCreationParameters::decode): Modified to decode the available screen size
        creation parameter.
        * Shared/WebPageCreationParameters.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::creationParameters): Initialize the available screen size
        parameter.
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::screenSize): Renamed; formerly named viewportScreenSize.
        (WebKit::WebPageProxy::availableScreenSize): Added.
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::screenSize): Renamed; formerly named viewportScreenSize.
        (WebKit::WebChromeClient::availableScreenSize): Added; turns around and calls WebPage::availableScreenSize().
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface): Hook up WebKit System Interface function WKGetAvailableScreenSize.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage): Initialize available screen size instance variable.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::screenSize):
        (WebKit::WebPage::availableScreenSize):

2014-04-17  Anders Carlsson  <andersca@apple.com>

        Remove unused API enums
        https://bugs.webkit.org/show_bug.cgi?id=131836

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        (NS_ENUM):
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
        (WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

2014-04-17  Brent Fulgham  <bfulgham@apple.com>

        Make RenderLayerBacking get the timingFunction of the correct animation.
        https://bugs.webkit.org/show_bug.cgi?id=100632

        Reviewed by Simon Fraser.

        * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
        (IPC::ArgumentCoder<GraphicsLayerAnimation>::decode): Update for new signatures for
        FloatAnimationValue, TransformAnimationValue, etc.

2014-04-17  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] support replacements for misspelled words.
        https://bugs.webkit.org/show_bug.cgi?id=131827
        <rdar://problem/16319657>

        Reviewed by Benjamin Poulain.

        This is the first part of the work to add support for replacements.
        It handles _promptForReplace in canPerformAction to decide
        whether to show the Replace button in the menu and add the
        implementation of the replace action.

        * Shared/EditorState.cpp:
        (WebKit::EditorState::encode):
        (WebKit::EditorState::decode):
        * Shared/EditorState.h:
        (WebKit::EditorState::EditorState):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView selectedText]):
        (-[WKContentView replaceText:withText:]):
        (-[WKContentView _promptForReplace:]):
        (-[WKContentView replace:]):
        (-[WKContentView canPerformAction:withSender:]):
        (-[WKContentView selectWordForReplacement]): This is called
        by UIKit when the user taps on a mispelled word to select it.
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::replaceSelectedText):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::editorState):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::selectWithGesture): Removed m_shouldReturnWordForSelection.
        We now return always the word corresponding to the caret selection or
        the selected text up to a maximum of 200 characters.
        (WebKit::WebPage::extendSelection):
        (WebKit::WebPage::replaceSelectedText):

2014-04-17  Tim Horton  <timothy_horton@apple.com>

        [iOS] REGRESSION (r166975): WKPDFView is broken
        https://bugs.webkit.org/show_bug.cgi?id=131828

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        Bail from updating the scroll view parameters from the layer tree update
        while it's being managed by a custom content view.
        We'll get any changes again in the next commit after removing the custom
        content view (and painting the new page) anyway, so this should be OK.

2014-04-17  Pratik Solanki  <psolanki@apple.com>

        _webProcessIdentifier should return 0 if the web process crashed
        https://bugs.webkit.org/show_bug.cgi?id=131813
        <rdar://problem/16650605>

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _hasWebProcess]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-04-17  Darin Adler  <darin@apple.com>

        Remove use of deprecatedDeleteAllValues in NPRemoteObjectMap::pluginDestroyed
        https://bugs.webkit.org/show_bug.cgi?id=122496

        Reviewed by Brent Fulgham.

        * Shared/Plugins/NPRemoteObjectMap.cpp:
        (WebKit::NPRemoteObjectMap::pluginDestroyed): Use new-style code and write the
        deprecatedDeleteAllValues function out using a loop. Might be nice to return here
        and use unique_ptr instead some day, but I tried that before and got it wrong, so
        lets do that another time.

2014-04-17  Darin Adler  <darin@apple.com>

        Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
        https://bugs.webkit.org/show_bug.cgi?id=131785
        rdar://problem/16003108

        Reviewed by Brady Eidson.

        * Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.

2014-04-17  Dan Bernstein  <mitz@apple.com>

        WebKit2 part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
        https://bugs.webkit.org/show_bug.cgi?id=131783

        Reviewed by Tim Horton.

        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::createWindow): Set the isProcessingUserGesture field of
        the NavigationActionData to the corresponding value in the NavigationAction.
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Ditto.
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto.

2014-04-16  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix the DidCommitLoad initial scrolling position
        https://bugs.webkit.org/show_bug.cgi?id=131780

        Reviewed by Jon Honeycutt.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:]):
        That code is older than _obscuredInsets and used the contentInsets as a workaround.

2014-04-16  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix annoying scrolling bugs
        https://bugs.webkit.org/show_bug.cgi?id=131722

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _scrollToContentOffset:WebCore::]):
        We are scrolling at the wrong position when we have the "small obscured insets".

2014-04-16  Gavin Barraclough  <baraclough@apple.com>

        On iOS keep network process running using a process assertion rather than a boost
        https://bugs.webkit.org/show_bug.cgi?id=131779

        Reviewed by Benjamin Poulain.

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):
            - No need to leak a boost onto the NetworkProcess on iOS.
        * UIProcess/Network/NetworkProcessProxy.cpp:
        (WebKit::NetworkProcessProxy::didFinishLaunching):
            - Take a ProcessAssertion on the NetworkProcess.
        * UIProcess/Shared/ChildProcessProxy.h:
            - Added m_assertion.
        * UIProcess/WebProcessProxy.h:
            - Removed m_assertion.
        * UIProcess/ios/ProcessAssertion.h: Added.
            - Added - refactored from WebProcessProxy.h.
        * UIProcess/ios/ProcessAssertion.mm: Added.
        (WebKit::ProcessAssertion::ProcessAssertion):
        (WebKit::ProcessAssertion::setState):
            - Added - refactored from WebProcessProxyIOS.mm.
        * UIProcess/ios/WebProcessProxyIOS.mm:
        (WebKit::WebProcessProxy::updateProcessState):
            - Code refactored out to ProcessAssertion.mm.
        * WebKit2.xcodeproj/project.pbxproj:
            - Added files.

2014-04-16  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Improve the approximation of the scroll position of the dynamic viewport size updates
        https://bugs.webkit.org/show_bug.cgi?id=131720

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _scrollToContentOffset:]):
        The scrolling tree was forcing scroll at the wrong scale during the transition. 

        (-[WKWebView _setMinimumLayoutSizeOverride:]):
        This was left out by accident. The WebProcess was getting the new layout size twice, making
        WebPage::dynamicViewportSizeUpdate() very confused when the content size changes.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):
        Add scrolling adjustment for the dynamic relayout case:
        -Sticky top and bottom like the UIProcess.
        -Keep the same relative position of the unobscured rect's center.

        Also fix a bug in the horizontal and vertical adjustments: the code was using the exposed rect
        instead of the unobscured rect, which made the adjustments off by the size of the obscured insets.

        The type is changed from double to float since ARMv7 has a grudge against double.

2014-04-16  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Do not update the visible content rects when setting the same obscured insets multiple times
        https://bugs.webkit.org/show_bug.cgi?id=131633

        Reviewed by Darin Adler.

        We should avoid computing the visible content rects when not needed.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _setObscuredInsets:]):

2014-04-16  Zan Dobersek  <zdobersek@igalia.com>

        Make IPC::Arguments a variadic template
        https://bugs.webkit.org/show_bug.cgi?id=131684

        Reviewed by Darin Adler.

        Make IPC::Arguments a variadic template that uses the template parameter pack to further
        define the std::tuple ValueType and is used to define the std::tuple container of the
        values passed into the container.

        * Platform/IPC/Arguments.h:
        (IPC::Arguments::Arguments):
        (IPC::Arguments::encode):
        (IPC::Arguments::decode):
        (IPC::Arguments0::encode): Deleted.
        (IPC::Arguments0::decode): Deleted.
        (IPC::Arguments1::Arguments1): Deleted.
        (IPC::Arguments1::encode): Deleted.
        (IPC::Arguments1::decode): Deleted.
        (IPC::Arguments2::Arguments2): Deleted.
        (IPC::Arguments2::encode): Deleted.
        (IPC::Arguments2::decode): Deleted.
        (IPC::Arguments3::Arguments3): Deleted.
        (IPC::Arguments3::encode): Deleted.
        (IPC::Arguments3::decode): Deleted.
        (IPC::Arguments4::Arguments4): Deleted.
        (IPC::Arguments4::encode): Deleted.
        (IPC::Arguments4::decode): Deleted.
        (IPC::Arguments5::Arguments5): Deleted.
        (IPC::Arguments5::encode): Deleted.
        (IPC::Arguments5::decode): Deleted.
        (IPC::Arguments6::Arguments6): Deleted.
        (IPC::Arguments6::encode): Deleted.
        (IPC::Arguments6::decode): Deleted.
        (IPC::Arguments7::Arguments7): Deleted.
        (IPC::Arguments7::encode): Deleted.
        (IPC::Arguments7::decode): Deleted.
        (IPC::Arguments8::Arguments8): Deleted.
        (IPC::Arguments8::encode): Deleted.
        (IPC::Arguments8::decode): Deleted.
        (IPC::Arguments10::Arguments10): Deleted.
        (IPC::Arguments10::encode): Deleted.
        (IPC::Arguments10::decode): Deleted.
        * Scripts/webkit2/LegacyMessages-expected.h:
        * Scripts/webkit2/Messages-expected.h:
        * Scripts/webkit2/messages.py: Clean up the code a bit.
        (reply_parameter_type):
        (arguments_type):
        (reply_type):
        (decode_type):
        (arguments_type_old): Deleted.
        (base_class): Deleted.
        (delayed_reply_type): Deleted.

2014-04-16  Tim Horton  <timothy_horton@apple.com>

        Deduplicate LayerTreeContext
        https://bugs.webkit.org/show_bug.cgi?id=131773

        Reviewed by Simon Fraser.

        There are three identical implementations, one for each platform, for no reason.

        * CMakeLists.txt:
        * PlatformEfl.cmake:
        * PlatformGTK.cmake:
        * Shared/LayerTreeContext.cpp: Renamed from Source/WebKit2/Shared/mac/LayerTreeContextMac.mm.
        (WebKit::LayerTreeContext::LayerTreeContext):
        (WebKit::LayerTreeContext::~LayerTreeContext):
        (WebKit::LayerTreeContext::encode):
        (WebKit::LayerTreeContext::decode):
        (WebKit::LayerTreeContext::isEmpty):
        (WebKit::operator==):
        * Shared/LayerTreeContext.h:
        (WebKit::operator!=): Deleted.
        * Shared/efl/LayerTreeContextEfl.cpp: Removed.
        * Shared/gtk/LayerTreeContextGtk.cpp: Removed.
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
        (WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
        (WebKit::LayerTreeHostGtk::initialize):

2014-04-16  Tim Horton  <timothy_horton@apple.com>

        Don't build LayerTreeHost on Mac (and clean it up)
        https://bugs.webkit.org/show_bug.cgi?id=131769

        Reviewed by Simon Fraser.

        * WebKit2.xcodeproj/project.pbxproj:
        Don't include it in the project.

        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
        (WebKit::CoordinatedDrawingArea::updatePreferences):
        * WebProcess/WebPage/DrawingAreaImpl.cpp:
        (WebKit::DrawingAreaImpl::updatePreferences):
        * WebProcess/WebPage/LayerTreeHost.h:
        (WebKit::LayerTreeHost::setLayerHostingMode): Deleted.
        (WebKit::LayerTreeHost::supportsAcceleratedCompositing): Deleted.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        Get rid of LayerTreeHost::supportsAcceleratedCompositing, which always returns true everywhere.
        Remove some LayerTreeHost.h includes.
        Remove LayerTreeHost::setLayerHostingMode, which is PLATFORM(COCOA) and not needed.

2014-04-16  Simon Fraser  <simon.fraser@apple.com>

        Failing to decode a layer tree commit message resulted in silent and mysterious failure
        https://bugs.webkit.org/show_bug.cgi?id=131766
        <rdar://problem/16520894>

        Reviewed by Sam Weinig.
        
        If the message decode failed, we should have already marked the message as invalid.
        Failing to do so indicates in a decode code coding error.

        * Platform/IPC/HandleMessage.h:
        (IPC::handleMessage):
        (IPC::handleMessageVariadic):
        (IPC::handleMessageDelayed):

2014-04-16  Tim Horton  <timothy_horton@apple.com>

        Minor include sanity in WebPage.h
        https://bugs.webkit.org/show_bug.cgi?id=131752

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/WebPage.h:
        Remove a bunch of unnecessary includes.
        Un-indent some stuff.

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        * WebProcess/WebPage/FindController.cpp:
        * WebProcess/WebPage/WebPage.cpp:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        Add back more specific includes, into implementation files.
        
        * WebProcess/WebPage/WebUndoStep.cpp:
        (WebKit::WebUndoStep::~WebUndoStep):
        * WebProcess/WebPage/WebUndoStep.h:
        Add an out-of-line destructor.

2014-04-16  Gavin Barraclough  <baraclough@apple.com>

        REGRESSION: PCE.js is 20x slower in WebKit2 because timers are throttled
        https://bugs.webkit.org/show_bug.cgi?id=131189

        Unreviewed rollout of r166754

        This change is no longer necessary.

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):

2014-04-16  Alexey Proskuryakov  <ap@apple.com>

        Updating tests after bug 131721, [GTK] Fix unused parameter warnings.

        * Scripts/webkit2/LegacyMessageReceiver-expected.cpp:
        (WebKit::WebPage::didReceiveWebPageMessage):
        (WebKit::WebPage::didReceiveSyncWebPageMessage):
        * Scripts/webkit2/MessageReceiver-expected.cpp:
        (WebKit::WebPage::didReceiveMessage):
        (WebKit::WebPage::didReceiveSyncMessage):

2014-04-16  Brendan Long  <b.long@cablelabs.com>

        [GTK] Fix unused parameter warnings
        https://bugs.webkit.org/show_bug.cgi?id=131721

        Reviewed by Darin Adler.

        * Scripts/webkit2/messages.py:
        (generate_message_handler): Add UNUSED_PARAM() for a couple parameters which aren't always used.
        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<LinearTimingFunction>::decode): Remove unused parameters.
        * WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
        (API::InjectedBundle::FormClient::textDidChangeInTextField): Same.
        (API::InjectedBundle::FormClient::willSubmitForm): Same.
        (API::InjectedBundle::FormClient::willSendSubmitEvent): Same.
        * WebProcess/Network/NetworkProcessConnection.cpp:
        (WebKit::NetworkProcessConnection::didReceiveSyncMessage): Same.

2014-04-16  Tim Horton  <timothy_horton@apple.com>

        Accidentally included some style-checker-testing changes in the last commit.

        * WebProcess/Plugins/PDF/PDFPlugin.mm:
        (WebKit::PDFPlugin::attemptToUnlockPDF):
        (WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):

2014-04-16  Tim Horton  <timothy_horton@apple.com>

        Fix some style checker complaints in PDFPlugin
        https://bugs.webkit.org/show_bug.cgi?id=131706

        Reviewed by Darin Adler.

        * WebProcess/Plugins/PDF/PDFPlugin.mm:
        (-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]):
        (-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:forParameter:]):
        (-[WKPDFPluginAccessibilityObject accessibilityAttributeNames]):
        (WebKit::PDFPlugin::attemptToUnlockPDF):
        (WebKit::PDFPlugin::updatePageAndDeviceScaleFactors):
        (WebKit::PDFPlugin::isEditingCommandEnabled):
        (WebKit::PDFPlugin::nextMatchForString):
        (WebKit::PDFPlugin::handleWheelEvent):
        (WebKit::PDFPlugin::liveData):

2014-04-15  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add a form delegate method corresponding to willSubmitForm
        https://bugs.webkit.org/show_bug.cgi?id=131718

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _setFormDelegate:]): Changed to define and create a FormClient (which derives
        from API::FormClient and messages a delegate), and set it as the form client.

        * UIProcess/API/Cocoa/_WKFormDelegate.h: Declared new delegate method.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added a
        variant of willSubmitForm that returs a user object to pass to the delegate in the UI
        process, giving it a temporary name with “new”.

        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Changed willSubmitForm()
        to check for the new bundle delegate method first and encode the user object as user data.
        Moved the encoding of an NSObject <NSSecureCoding> as user data into a helper function.

2014-04-15  Hyowon Kim  <hw1008.kim@samsung.com>

        Make page overlay functionality working on coordinated graphics.
        https://bugs.webkit.org/show_bug.cgi?id=131425

        Reviewed by Darin Adler.

        Page overlay functionality did not work on coordinated graphics since r166975.
        This patch removes deprecated code related to the PageOverlay GraphicsLayer management.
        and makes CoordinatedLayerTreeHost use PageOverlayController.

        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
        (WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged):
        (WebKit::CoordinatedDrawingArea::didInstallPageOverlay): Deleted.
        (WebKit::CoordinatedDrawingArea::didUninstallPageOverlay): Deleted.
        (WebKit::CoordinatedDrawingArea::setPageOverlayNeedsDisplay): Deleted.
        (WebKit::CoordinatedDrawingArea::setPageOverlayOpacity): Deleted.
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
        (WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
        (WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
        (WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
        (WebKit::CoordinatedLayerTreeHost::didInstallPageOverlay): Deleted.
        (WebKit::CoordinatedLayerTreeHost::didUninstallPageOverlay): Deleted.
        (WebKit::CoordinatedLayerTreeHost::setPageOverlayNeedsDisplay): Deleted.
        (WebKit::CoordinatedLayerTreeHost::setPageOverlayOpacity): Deleted.
        (WebKit::CoordinatedLayerTreeHost::createPageOverlayLayer): Deleted.
        (WebKit::CoordinatedLayerTreeHost::destroyPageOverlayLayer): Deleted.
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
        * WebProcess/WebPage/LayerTreeHost.h:
        (WebKit::LayerTreeHost::didInstallPageOverlay):
        (WebKit::LayerTreeHost::didUninstallPageOverlay):
        (WebKit::LayerTreeHost::setPageOverlayNeedsDisplay):

2014-04-15  Dan Bernstein  <mitz@apple.com>

        Introduce API::FormClient
        https://bugs.webkit.org/show_bug.cgi?id=131714

        Reviewed by Tim Horton.

        * UIProcess/API/APIFormClient.h: Added.
        (API::FormClient::~FormClient):
        (API::FormClient::willSubmitForm):

        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageFormClient): Changed to create a WebFormClient and call
        WebPageProxy::setFormClient.

        * UIProcess/WebFormClient.cpp:
        (WebKit::WebFormClient::WebFormClient): Added a constructor from WKPageFormClientBase.
        * UIProcess/WebFormClient.h: Added inheritance from API::FormClient, marked overrides as
        such.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy): Initialize m_formClient member.
        (WebKit::WebPageProxy::setFormClient): Added. Updates m_formClient.
        (WebKit::WebPageProxy::close): Updated code to clear m_formClient.
        (WebKit::WebPageProxy::willSubmitForm): Updated for type change.
        (WebKit::WebPageProxy::initializeFormClient): Deleted.
        * UIProcess/WebPageProxy.h:

        * WebKit2.xcodeproj/project.pbxproj: Added reference to new file.

2014-04-15  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Pages often blank on first load if page loaded by typing the URL
        https://bugs.webkit.org/show_bug.cgi?id=131665

        Reviewed by Tim Horton.

        The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
        was triggering a compositing layer flush when called with a null rootLayer, which happens
        for pages going into the page cache. This would trigger a layer flush that would clobber
        the root layer for the visible page, resulting in missing content.
        
        Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
        was being added to (and then removed from) every single compositing layers.
        
        Fix both these by changing to a pull model, where RenderLayerCompositor requests
        the overlay layer via ChromeClient, and gets it at the end of every flush,
        adding to the children of the root layer.

        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::documentOverlayLayerForFrame):
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):

2014-04-15  Jinwoo Song  <jinwoo7.song@samsung.com>

        [EFL][WK2] Pass Mouse movement data to WebMouseEvent
        https://bugs.webkit.org/show_bug.cgi?id=131663

        Reviewed by Gyuyoung Kim.

        Currently mouse movement data are not passed to WebMouseEvent. Instead, they are set to 0 as default.
        EFL port needs to send the deltaX and deltaY for PointerLock API which will be implemented later.

        * Shared/efl/WebEventFactory.cpp:
        (WebKit::WebEventFactory::createWebMouseEvent):

2014-04-15  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167298.
        https://bugs.webkit.org/show_bug.cgi?id=131670

        Broke CSS filters (17 test crashes) (Requested by ap on
        #webkit).

        Reverted changeset:

        "[iOS WK2] Pages often blank on first load if page loaded by
        typing the URL"
        https://bugs.webkit.org/show_bug.cgi?id=131665
        http://trac.webkit.org/changeset/167298

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Pages often blank on first load if page loaded by typing the URL
        https://bugs.webkit.org/show_bug.cgi?id=131665

        Reviewed by Tim Horton.

        The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
        was triggering a compositing layer flush when called with a null rootLayer, which happens
        for pages going into the page cache. This would trigger a layer flush that would clobber
        the root layer for the visible page, resulting in missing content.
        
        Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
        was being added to (and then removed from) every single compositing layers.
        
        Fix both these by changing to a pull model, where RenderLayerCompositor requests
        the overlay layer via ChromeClient, and gets it at the end of every flush,
        adding to the children of the root layer.

        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::documentOverlayLayerForFrame):
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):

2014-04-14  Tim Horton  <timothy_horton@apple.com>

        Fix the 32-bit build.

        * UIProcess/mac/ViewGestureControllerMac.mm:

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (WebKit2): Programmatic scrolls in overflow-scrolling:touch don't work
        https://bugs.webkit.org/show_bug.cgi?id=131649

        Reviewed by Tim Horton.
        
        Update the UIScrollView's contentOffset when we're told that the scroll position
        changed.
        
        Also refactor slightly to have a single exception-protected block.

        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):

2014-04-14  Tim Horton  <timothy_horton@apple.com>

        Fix the 32-bit build.

        * UIProcess/mac/ViewGestureControllerMac.mm:

2014-04-14  Tim Horton  <timothy_horton@apple.com>

        Sometimes-crash under handleSwipeGesture after closing a window or quitting
        https://bugs.webkit.org/show_bug.cgi?id=131648
        <rdar://problem/15966106>

        Reviewed by Simon Fraser.

        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::~ViewGestureController):
        (WebKit::ViewGestureController::trackSwipeGesture):
        Keep a Objective C object with a single boolean property, isCancelled, on
        the ViewGestureController, and also retained by the swipe-tracking block.
        When the ViewGestureController is destroyed, we set isCancelled to YES,
        and the next time the block is invoked, we will cancel the swipe without
        touching the destroyed ViewGestureController.

        (WebKit::ViewGestureController::handleSwipeGesture):
        Don't try to handle a swipe gesture if the drawing area is missing.

        (WebKit::ViewGestureController::endSwipeGesture):
        Clear the swipe cancellation tracker when the gesture completes.

2014-04-14  Enrica Casucci  <enrica@apple.com>

        REGRESSION(r166027) Menu is shown and immediately hidden after doubletap gesture.
        https://bugs.webkit.org/show_bug.cgi?id=131646
        <rdar://problem/16614374>

        Reviewed by Benjamin Poulain.

        This is a problem with every gesture that changes the selection
        We don't need to delay updating the selection if the selection is
        being changed with a gesture.

        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]):
        (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
        (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
        (-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
        (-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
        (-[WKContentView _selectionChanged]):

2014-04-14  Dan Bernstein  <mitz@apple.com>

        Let the bundle form client know whether a change in a text field was initiated by user typing
        https://bugs.webkit.org/show_bug.cgi?id=131643

        Reviewed by Sam Weinig.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added
        initiatedByUserTyping parameter to the delegate method.

        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Updated overload of
        textDidChangeInTextField to take the initiatedByUserTyping parameter and pass it along to
        the delegate.

        * WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
        (API::InjectedBundle::FormClient::textDidChangeInTextField): Added initiatedByUserTyping
        parameter.

        * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
        (WebKit::InjectedBundlePageFormClient::textDidChangeInTextField): Maintained the existing
        behavior of not calling the C SPI client if the change was not initiated by user typing.
        * WebProcess/InjectedBundle/InjectedBundlePageFormClient.h: Updated for added parameter.

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::textDidChangeInTextField): Changed to call the bundle client
        function unconditionally, but pass along whether the change was initiated by user typing.

2014-04-14  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add a WKWebProcessPlugInFormDelegate method corresponding to willSendSubmitEvent
        https://bugs.webkit.org/show_bug.cgi?id=131639

        Reviewed by Tim Horton.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared
        new delegate method.
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added an override
        of API::InjectedBundle::FormClient::willSendSubmitEvent which calls the new delegate
        method.

2014-04-14  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Change the SPI used when starting the rotation animation
        https://bugs.webkit.org/show_bug.cgi?id=131638

        Reviewed by Tim Horton.

        Having an update block where all the properties are changed is more convenient for Safari.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
        (-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Hash table assertion closing a tab
        https://bugs.webkit.org/show_bug.cgi?id=131640

        Reviewed by Tim Horton.
        
        Have RemoteLayerTreeContext keep track of all PlatformCALayerRemotes,
        and clear their context pointer when it is being destroyed to avoid
        calling into a deleted object later.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::~PlatformCALayerRemote):
        (WebKit::PlatformCALayerRemote::addAnimationForKey):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        (WebKit::PlatformCALayerRemote::clearContext):
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::~RemoteLayerTreeContext):
        (WebKit::RemoteLayerTreeContext::layerWasCreated):
        (WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):

2014-04-14  Tim Horton  <timothy_horton@apple.com>

        Allow dynamic changes of WKThumbnailView snapshot scale
        https://bugs.webkit.org/show_bug.cgi?id=131628
        <rdar://problem/16584156>

        Reviewed by Beth Dakin.

        * UIProcess/API/Cocoa/_WKThumbnailView.mm:
        (-[_WKThumbnailView _requestSnapshotIfNeeded]):
        Don't bail from requesting a snapshot just because we already had one; we want to resnapshot.
        Keep track of when we bail from requesting a snapshot because we have one in-flight, so we can request it later.

        (-[_WKThumbnailView _didTakeSnapshot:]):
        Apply the scale to the bitmap size (whoops!).
        Make CA always resize the content to fill the thumbnail view's layer, respecting aspect ratio.
        Re-snapshot if we previously deferred a snapshot.

        (-[_WKThumbnailView setScale:]):
        If we get a scale change, request a new snapshot.

        (-[_WKThumbnailView setUsesSnapshot:]):
        Never apply thumbnail scale to the page if we're using snapshots. It's unnecessary,
        because scale will be applied simply when painting the software snapshot.
        Apply the thumbnail scale if we're going from usesSnapshot -> !usesSnapshot.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::snapshotAtSize):
        Snapshots should use the greater of the two scales, so as to never leave a portion of the snapshot unpainted.

2014-04-14  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (WebKit2 View Gestures): Double-tap doesn't work properly when there's no element underneath the cursor
        https://bugs.webkit.org/show_bug.cgi?id=131629
        <rdar://problem/16192821>

        Reviewed by Dan Bernstein.

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
        If there's nothing under the cursor, zoom towards the cursor instead of towards 0,0.

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        Run filter animations in the UI process with UI-side compositing
        https://bugs.webkit.org/show_bug.cgi?id=131199
        <rdar://problem/16479487>

        Reviewed by Sam Weinig.
        
        * Shared/WebCoreArgumentCoders.cpp: Removed lots of WebCore::
        (IPC::ArgumentCoder<SelectionRect>::decode):
        (IPC::ArgumentCoder<PasteboardWebContent>::encode):
        (IPC::ArgumentCoder<PasteboardWebContent>::decode):
        (IPC::ArgumentCoder<PasteboardImage>::encode):
        (IPC::ArgumentCoder<PasteboardImage>::decode):
        (IPC::ArgumentCoder<URL>::decode):
        (IPC::ArgumentCoder<UserStyleSheet>::encode):
        (IPC::ArgumentCoder<UserStyleSheet>::decode):
        (IPC::ArgumentCoder<UserScript>::encode):
        (IPC::ArgumentCoder<UserScript>::decode):
        (IPC::ArgumentCoder<ScrollableAreaParameters>::encode):
        (IPC::ArgumentCoder<ScrollableAreaParameters>::decode):
        (IPC::ArgumentCoder<FixedPositionViewportConstraints>::encode):
        (IPC::ArgumentCoder<FixedPositionViewportConstraints>::decode):
        (IPC::ArgumentCoder<StickyPositionViewportConstraints>::encode):
        (IPC::ArgumentCoder<StickyPositionViewportConstraints>::decode):
        (IPC::ArgumentCoder<FilterOperation>::encode):
        (IPC::decodeFilterOperation):
        (IPC::ArgumentCoder<FilterOperations>::encode):
        (IPC::ArgumentCoder<WebCore::UserStyleSheet>::encode): Deleted.
        (IPC::ArgumentCoder<WebCore::UserStyleSheet>::decode): Deleted.
        (IPC::ArgumentCoder<WebCore::UserScript>::encode): Deleted.
        (IPC::ArgumentCoder<WebCore::UserScript>::decode): Deleted.
        (IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::encode): Deleted.
        (IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::decode): Deleted.
        (IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::encode): Deleted.
        (IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::decode): Deleted.
        (IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::encode): Deleted.
        (IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::decode): Deleted.
        (IPC::encodeFilterOperation): Deleted.
        Add encoding/decoding support for FilterOperation.
        decodeFilterOperation() has to be a bare function because of the RefPtr
        out parameter.
        REFERENCE filters should never be encoded, since they have CachedSVGDocumentReferences.

        * Shared/WebCoreArgumentCoders.h:

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTextStream::operator<<):
        Add logging for filter animations to the RemoteLayerTree log output.

        * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
        (WebKit::GraphicsLayerCARemote::addAnimation): Deleted. We can run
        filter animations now.

        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
        KeyValues have a RefPtr<WebCore::FilterOperation> now (which can't be part of
        the union because we need its constructor to get called).
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
        (WebKit::PlatformCAAnimationRemote::KeyframeValue::encode): Encode the filter.
        (WebKit::PlatformCAAnimationRemote::KeyframeValue::decode): Decode the filter.
        (WebKit::PlatformCAAnimationRemote::setFromValue): Implement.
        (WebKit::PlatformCAAnimationRemote::setToValue): Implement.
        (WebKit::PlatformCAAnimationRemote::setValues): Implement.
        (WebKit::animationValueFromKeyframeValue): Handle filters.

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        Fix the build.

        * UIProcess/mac/PageClientImpl.h:

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        [WK2 iOS] Scrolling to anchor links is broken
        https://bugs.webkit.org/show_bug.cgi?id=131618
        <rdar://problem/16599144>

        Reviewed by Tim Horton.
        
        The RemoteScrollingTree implements scrollingTreeNodeRequestsScroll
        to get informed about requested scroll position updates, and passes
        them along via the RemoteScrollingCoordinatorProxy, WebPageProxy and PageClient
        to the WKWebView, which performs a scroll.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _scrollToContentOffset:WebCore::]): Scroll to content offset,
        taking page scale and insets into account.
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/CoordinatedGraphics/WebView.cpp:
        (WebKit::WebView::requestScroll):
        * UIProcess/CoordinatedGraphics/WebView.h:
        * UIProcess/PageClient.h:
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
        Pass scrolls along to the WebPageProxy for the root node. We will also need
        to handle programmatic scrolls for overflow soon.
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::scrollingTreeNodeRequestsScroll):
        * UIProcess/Scrolling/RemoteScrollingTree.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::requestScroll):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::canScrollView):
        (WebKit::PageClientImpl::requestScroll):
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::requestScroll):

2014-04-12  Antti Koivisto  <antti@apple.com>

        Keep secondary tile grid for zoomed-out scale
        https://bugs.webkit.org/show_bug.cgi?id=131586

        Reviewed by Darin Adler.

        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
        (WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
        (WebKit::PlatformCALayerRemoteTiledBacking::customSublayers):
        
            Always request new sublayer list from tile controller.

        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:

2014-04-14  Tim Horton  <timothy_horton@apple.com>

        Make WK(Web)View magnification setters actually use view-relative positions
        https://bugs.webkit.org/show_bug.cgi?id=131611
        <rdar://problem/15965239>

        Reviewed by Darin Adler.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView setMagnification:centeredAtPoint:]):
        (-[WKView setMagnification:]):
        Use scalePageInViewCoordinates instead.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::scalePageInViewCoordinates):
        * UIProcess/WebPageProxy.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::scalePageInViewCoordinates):
        (WebKit::WebPage::pageScaleFactor):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        Add scalePageInViewCoordinates, which turns the scale centerpoint within the view
        into what scalePage expects: a post-scale scroll offset.

2014-04-14  Tim Horton  <timothy_horton@apple.com>

        Support setting a background color on page overlays
        https://bugs.webkit.org/show_bug.cgi?id=131600

        Reviewed by Darin Adler.

        * WebProcess/WebPage/PageOverlay.cpp:
        (WebKit::PageOverlay::PageOverlay):
        (WebKit::PageOverlay::bounds):
        (WebKit::PageOverlay::startFadeInAnimation):
        (WebKit::PageOverlay::startFadeOutAnimation):
        (WebKit::PageOverlay::startFadeAnimation):
        (WebKit::PageOverlay::fadeAnimationTimerFired):
        Minor style adjustments.
        Use more references everywhere.

        (WebKit::PageOverlay::setBackgroundColor):
        (WebKit::PageOverlay::setNeedsDisplay):
        * WebProcess/WebPage/PageOverlay.h:
        (WebKit::PageOverlay::backgroundColor):
        Keep track of our background color, and push it down to the page overlay controller if we have one.

        * WebProcess/WebPage/PageOverlayController.cpp:
        (WebKit::updateOverlayGeometry):
        (WebKit::PageOverlayController::clearPageOverlay):
        Page overlays will always have the right size, and just use drawsContents to determine
        whether or not they should tile/have backing store/etc.

        (WebKit::PageOverlayController::installPageOverlay):
        (WebKit::PageOverlayController::didChangeOverlayBackgroundColor):
        Set the background color of the layer.

        * WebProcess/WebPage/PageOverlayController.h:

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        References!

2014-04-13  Andy Estes  <aestes@apple.com>

        [QuickLook] Move file system-related code into WebKit
        https://bugs.webkit.org/show_bug.cgi?id=131597

        Reviewed by Dan Bernstein.

        * WebProcess/Network/WebResourceLoader.h: Made m_quickLookHandle a unique_ptr.
        * WebProcess/ios/WebResourceLoaderIOS.mm:
        (WebKit::WebResourceLoader::setUpQuickLookHandleIfNeeded):

2014-04-13  Andy Estes  <aestes@apple.com>

        REGRESSION (r167164): -[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:] _block_invoke can access a deallocated completionHandler
        https://bugs.webkit.org/show_bug.cgi?id=131595

        Reviewed by Dan Bernstein.

        Make a copy of completionHandler and release it after we're done with it.

        * Shared/mac/CookieStorageShim.mm:
        (-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

2014-04-13  Pratik Solanki  <psolanki@apple.com>

        Don't use ImportanceAssertion on iOS
        https://bugs.webkit.org/show_bug.cgi?id=131481
        <rdar://problem/16575830>

        Reviewed by Darin Adler.

        We have other API to mark processes as being in use on iOS. No need to use ImportanceAssertion.

        * Platform/IPC/MessageDecoder.cpp:
        * Platform/IPC/MessageDecoder.h:
        * Platform/IPC/mac/ConnectionMac.cpp:
        (IPC::Connection::receiveSourceEventHandler):
        * Platform/IPC/mac/ImportanceAssertion.h:

2014-04-13  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167168 and r167194.
        https://bugs.webkit.org/show_bug.cgi?id=131589

        Caused massive ASSERTION failures on the GTK Debug bot
        (Requested by philn on #webkit).

        Reverted changesets:

        "[GTK] Add HighDPI support for non-accelerated compositing
        contents"
        https://bugs.webkit.org/show_bug.cgi?id=131562
        http://trac.webkit.org/changeset/167168

        "Unreviewed. Fix GTK+ build with recent cairo and GTK+ after
        r167168."
        http://trac.webkit.org/changeset/167194

2014-04-13  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build with recent cairo and GTK+ after r167168.

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseCreateWebPage):

2014-04-12  Andy Estes  <aestes@apple.com>

        [iOS] Move QuickLookHandle from ResourceLoader to WebResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=131580

        Reviewed by Darin Adler.

        There's no need to bloat WebKit1's ResourceLoader with a pointer that
        only WebKit2's WebResourceLoader cares about.

        * WebProcess/Network/WebResourceLoader.cpp:
        (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
        (WebKit::WebResourceLoader::didReceiveData):
        (WebKit::WebResourceLoader::didFinishResourceLoad):
        (WebKit::WebResourceLoader::didFailResourceLoad):
        * WebProcess/Network/WebResourceLoader.h:
        * WebProcess/ios/WebResourceLoaderIOS.mm:
        (WebKit::WebResourceLoader::setUpQuickLookHandleIfNeeded):

2014-04-11  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Crashes when copying or pasting huge images
        https://bugs.webkit.org/show_bug.cgi?id=131576
        <rdar://problem/12131833>
        <rdar://problem/14427398>

        Reviewed by Darin Adler.

        Added a few null checks for SharedMemory::create() return value in pasteboard code.
        Error handling feels a bit sketchy, but
        - I'm not sure what it should look like ideally;
        - it matches the kind of error handling we already have in these functions;
        - it appears to work reasonably well in practice. We get empty content, which
        is not nice, but not particularly problematic either. When copying an animated GIF,
        we also get the GIF in RTFD flavor, so even pasting into NSTextViews works!

        * Platform/mac/SharedMemoryMac.cpp:
        (WebKit::SharedMemory::createFromVMBuffer):
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::getPasteboardBufferForType):
        (WebKit::WebContext::readBufferFromPasteboard):
        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        (WebKit::WebPlatformStrategies::setBufferForType):

        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: (WebKit::WebDragClient::declareAndWriteDragImage):
        Also renamed some variables to prevent name collisions with with nested scope.

2014-04-11  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed build fix on the EFL port after r167152

        * WebProcess/WebPage/PageOverlay.cpp:
        (WebKit::PageOverlay::bounds):

2014-04-11  Hyowon Kim  <hw1008.kim@samsung.com>

        [WK2] WebProcess crashes, when closing window after opening page by means of context menu
        https://bugs.webkit.org/show_bug.cgi?id=131439

        Reviewed by Tim Horton.

        CoordinatedGraphicsLayer calls notifyFlushRequired() through its client when destroyed.
        When PageOverlayController::notifyFlushRequired() is called, the DrawingArea could be null
        because it's destoryed in WebPage::close().

        * WebProcess/WebPage/PageOverlayController.cpp:
        (WebKit::PageOverlayController::notifyFlushRequired): Add null check of m_webPage->drawingArea().

2014-04-11  Tim Horton  <timothy_horton@apple.com>

        Lots of compositing test failures after r167152
        https://bugs.webkit.org/show_bug.cgi?id=131574

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/PageOverlayController.h:
        Skip page overlay layers in layer tree dumps, for consistency between platforms.

2014-04-11  Beth Dakin  <bdakin@apple.com>

        Need WK2 API to disable rubber-banding
        https://bugs.webkit.org/show_bug.cgi?id=131567

        Reviewed by Simon Fraser.

        New API allows the client to enable/disable horizontal or vertical rubber-banding. 
        By default, rubber-banding is enabled.
        * UIProcess/API/C/WKPage.cpp:
        (WKPageVerticalRubberBandingIsEnabled):
        (WKPageSetEnableVerticalRubberBanding):
        (WKPageHorizontalRubberBandingIsEnabled):
        (WKPageSetEnableHorizontalRubberBanding):
        * UIProcess/API/C/WKPage.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::setEnableVerticalRubberBanding):
        (WebKit::WebPageProxy::verticalRubberBandingIsEnabled):
        (WebKit::WebPageProxy::setEnableHorizontalRubberBanding):
        (WebKit::WebPageProxy::horizontalRubberBandingIsEnabled):
        * UIProcess/WebPageProxy.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::setEnableVerticalRubberBanding):
        (WebKit::WebPage::setEnableHorizontalRubberBanding):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-04-11  Tim Horton  <timothy_horton@apple.com>

        Fix the Mac build.

        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::updateFindIndicator):

2014-04-11  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Find-in-page indicator
        https://bugs.webkit.org/show_bug.cgi?id=131510
        <rdar://problem/16547777>

        Reviewed by Simon Fraser and Enrica Casucci.

        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::updateFindUIAfterPageScroll):
        WebKit2 will clear the selection if we reveal it while not enabling selection painting.
        So, avoid revealing it.

        (WebKit::FindController::findString):
        (WebKit::FindController::hideFindIndicator):
        (WebKit::FindController::willFindString):
        (WebKit::FindController::didFailToFindString):
        (WebKit::FindController::didHideFindIndicator):
        #if out the cross-platform find indicator code on iOS; it will be replaced
        by the code in FindControllerIOS.

        * WebProcess/WebPage/FindController.h:

        * WebProcess/WebPage/ios/FindControllerIOS.mm: Added.
        (highlightColor):
        (WebKit::FindIndicatorOverlayClientIOS::drawRect):
        Paint the selection (with black text forced on), and the yellow rounded rect
        into the indicator page overlay.

        (WebKit::FindController::updateFindIndicator):
        Create or update a small document-relative page overlay in the selection rect.

        (WebKit::FindController::hideFindIndicator):
        (WebKit::FindController::willFindString):
        (WebKit::FindController::didFailToFindString):
        (WebKit::FindController::didHideFindIndicator):
        Add willFindString, didFailToFindString, and didHideFindIndicator functions.
        They do nothing, except on iOS where they are used to prevent selection change
        messages from being dispatched while using find-in-page, and to force
        WebCore to compute a selection rect (via updateAppearance) despite the selection not being painted.

        * WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h:
        (WebKit::FindIndicatorOverlayClientIOS::setFrame):

2014-04-11  Owen Taylor  <otaylor@redhat.com>

        [GTK] Add HighDPI support for non-accelerated compositing contents
        https://bugs.webkit.org/show_bug.cgi?id=131562

        Reviewed by Martin Robinson.

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (scaleFactorChanged): Added this callback to pass scale changes to the page proxy.
        (webkitWebViewBaseCreateWebPage): Attach the callback to the notify signal.
        * UIProcess/cairo/BackingStoreCairo.cpp:
        (WebKit::createBackingStoreForGTK): Pass the scale factor to the WebCore backing store.
        (WebKit::BackingStore::incorporateUpdate): Ditto.

2014-04-10  Jer Noble  <jer.noble@apple.com>

        [WK2] Dispatch to main thread's run loop to handle cookie requests.
        https://bugs.webkit.org/show_bug.cgi?id=131524

        Reviewed by Brady Eidson.

        When using synchronous network APIs from the main thread (e.g., -[NSImage
        initWithContentsOfURL:]) our cookie shim would attempt to dispath_async
        to the main thread to handle the cookie request, and block against the original
        request. CFNetwork is still servicing the run loop however, so rather than
        dispatch_async to the main queue, use the RunLoop to dispatch to the main thread.

        * Shared/mac/CookieStorageShim.mm:
        (-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

2014-04-11  Tim Horton  <timothy_horton@apple.com>

        Make the stylebot happier with r167154.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/PageClientImplIOS.h:

2014-04-11  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Expose a simplified zoom-to-rect to the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=131563

        Reviewed by Simon Fraser.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::zoomToRect):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::zoomToRect):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::zoomToRect):
        Add a simple message that calls WKContentView's zoom-to-rect code given just a rect and min/max scale.
        We will use the center of the rect as the zoom origin, and will try to show the whole rect.

2014-04-10  Jer Noble  <jer.noble@apple.com>

        [iOS][WK2] Videos should animate into and out of fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=131497

        Reviewed by Simon Fraser.

        Pass a starting rect for the enterFullscreen animation and an ending rect
        for the exitFullscreen animation.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::enterFullscreenWithID): Pass initialFrame.
        * WebProcess/ios/WebVideoFullscreenManager.mm:
        (WebKit::screenRectOfContents): Casts node -> element and returns its screenRect().
        (WebKit::WebVideoFullscreenManager::enterFullscreenForNode): Pass initialFrame.
        (WebKit::WebVideoFullscreenManager::exitFullscreenForNode): Pass finalFrame.

2014-04-11  Tim Horton  <timothy_horton@apple.com>

        Support document-relative and custom-frame page overlays
        https://bugs.webkit.org/show_bug.cgi?id=131560
        <rdar://problem/16595556>

        Reviewed by Simon Fraser.

        Add "document-relative" overlays, which attach to (and scroll with) the document,
        and can be given a frame rect within the document to avoid overallocation of backing store.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::didChangeScrollOffset):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::mainFrame):
        (WebKit::WebPage::mainFrameView):
        (WebKit::WebPage::didChangeScrollOffsetForFrame):
        * WebProcess/WebPage/WebPage.h:
        Let the PageOverlayController know *which* frame scrolled, instead of "any frame".

        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::updateFindUIAfterPageScroll):
        Factor out shared code.

        (WebKit::FindController::willMoveToWebPage):
        (WebKit::FindController::drawRect):
        We can use clearRect() instead of a transparency layer and fillRect().
        I've looked through all the other overlay clients I know of and none of them
        depend on having a transparency layer at the overlay level.

        * WebProcess/WebPage/PageOverlay.cpp:
        (WebKit::PageOverlay::create):
        (WebKit::PageOverlay::PageOverlay):
        (WebKit::PageOverlay::bounds):
        (WebKit::PageOverlay::frame):
        (WebKit::PageOverlay::setFrame):
        (WebKit::PageOverlay::drawRect):
        Add OverlayType, which allows creation of Document or View relative overlays.
        All overlays up to this point are View relative, so we default to that.
        Document-relative overlays scroll with the page instead of repainting as
        the page scrolls. They can also be given an explicit frame, allowing them
        to be smaller than the entire document.

        * WebProcess/WebPage/PageOverlay.h:
        (WebKit::PageOverlay::overlayType):
        (WebKit::PageOverlay::webPage):
        (WebKit::PageOverlay::client): Deleted.
        * WebProcess/WebPage/PageOverlayController.cpp:
        (WebKit::PageOverlayController::initialize):
        (WebKit::PageOverlayController::installPageOverlay):
        (WebKit::PageOverlayController::uninstallPageOverlay):
        (WebKit::PageOverlayController::updateForceSynchronousScrollLayerPositionUpdates):
        (WebKit::updateOverlayGeometry):
        (WebKit::PageOverlayController::setPageOverlayNeedsDisplay):
        (WebKit::PageOverlayController::didChangeViewSize):
        (WebKit::PageOverlayController::didChangeDocumentSize):
        (WebKit::PageOverlayController::didChangeDeviceScaleFactor):
        (WebKit::PageOverlayController::didScrollFrame):
        (WebKit::PageOverlayController::flushPageOverlayLayers):
        (WebKit::PageOverlayController::didChangeOverlayFrame):
        Keep two overlay root layers - one for view-relative
        and one for document-relative overlays.
        Don't force synchronous scrolling if we only have document-relative overlays.
        Update the overlay's position as well as its size whenever necessary.
        Update document-relative overlay geometry when the document size changes.
        Only explicitly flush view-relative overlays; document-relative ones
        are plugged into the WebCore layer tree and flushed along with the page.

        * WebProcess/WebPage/PageOverlayController.h:
        (WebKit::PageOverlayController::documentOverlayRootLayer):
        (WebKit::PageOverlayController::viewOverlayRootLayer):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
        (WebKit::RemoteLayerTreeDrawingArea::mainFrameContentSizeChanged):
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
        (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
        Let the PageOverlay controller know when the document size changes.
        When we set up compositing, push the document overlay root layer
        down into WebCore.

2014-04-11  Pratik Solanki  <psolanki@apple.com>

        [iOS WebKit2]: Share NSURLCache directory for webkit processes
        https://bugs.webkit.org/show_bug.cgi?id=131513
        <rdar://problem/16420859>

        Reviewed by Alexey Proskuryakov.

        Use iOS specific NSURLCache API to share the cache directory used by the networking process,
        web process and Safari.

        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
        (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-04-11  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Add IconServices to WebProcess sandbox profile
        https://bugs.webkit.org/show_bug.cgi?id=131558
        <rdar://problem/16552397>

        Reviewed by Brady Eidson.

        * WebProcess/com.apple.WebProcess.sb.in:

2014-04-11  Antti Koivisto  <antti@apple.com>

        Pipe initial scale factor to TileController
        https://bugs.webkit.org/show_bug.cgi?id=131521

        Reviewed by Tim Horton.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::viewportConfigurationChanged):

2014-04-10  Chris Fleizach  <cfleizach@apple.com>

        AX: WebProcess at com.apple.WebCore: WebCore::AXObjectCache::rootObject + 18
        https://bugs.webkit.org/show_bug.cgi?id=131522

        Reviewed by Anders Carlsson.

        Protect against documents that have had their render tree destroyed, and no longer return a valid cache.

        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

2014-04-11  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Prevent crash when exiting fullscreen mode
        https://bugs.webkit.org/show_bug.cgi?id=131528

        Reviewed by Jer Noble.

        * UIProcess/mac/WKFullScreenWindowController.mm:
        (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
        Clean up the _scaleAnimation controller, not just the _fadeAnimation controller.
        (-[WKFullScreenWindowController close]): If we are doing an immediate
        close of the view, we need to stop animations so we avoid any
        final timer events from interacting with invalid window handles.

2014-04-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        wk2-gtk does not display anything
        https://bugs.webkit.org/show_bug.cgi?id=125558

        Reviewed by Martin Robinson.

        Remove fcntl call to set access mode flags on the duplicated files
        descriptor. Those flags are ignored in Linux and make fcntl to
        fail in FreeBSD. We should handle the case where the passed
        protection is ReadOnly.
        Thanks to Raphael Kubo da Costa who proposed the solution.

        * Platform/unix/SharedMemoryUnix.cpp:
        (WebKit::SharedMemory::createHandle):
        (WebKit::accessModeFile): Deleted.

2014-04-11  Zan Dobersek  <zdobersek@igalia.com>

        [GTK][WK2] Move Vector objects into WebEditorClient::executePendingEditorCommands() invocations
        https://bugs.webkit.org/show_bug.cgi?id=131454

        Reviewed by Carlos Garcia Campos.

        * WebProcess/WebCoreSupport/WebEditorClient.h:
        * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
        (WebKit::WebEditorClient::executePendingEditorCommands): Take a const reference of the Vector
        object to avoid unnecessary copies. Also deploy two range-based for loops and efficiently move
        the Editor::Command objects into the other Vector.

2014-04-10  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16582465> [Cocoa] Avoid casts from CF types to unrelated Objective-C types
        https://bugs.webkit.org/show_bug.cgi?id=131529

        Reviewed by Mark Rowe.

        * Shared/API/c/cf/WKStringCF.mm:
        (WKStringCreateWithCFString): Cast the CFStringRef into its toll-free-bridged counterpart,
        NSString, then cast the NSString into a WKNSString.
        * Shared/API/c/cf/WKURLCF.mm:
        (WKURLCreateWithCFURL): Cast the CFURLRef into its toll-free-bridged counterpart, NSURL,
        then cast the NSURL into a WKNSURL.

2014-04-10  Dan Bernstein  <mitz@apple.com>

        BundlePageDiagnosticLoggingClient leaks every string passing through it.
        https://bugs.webkit.org/show_bug.cgi?id=130140

        Reviewed by Brent Fulgham.

        * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp:
        (WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage): Don’t copy the
        strings passed into the bundle client.

2014-04-10  Benjamin Poulain  <bpoulain@apple.com>

        Try to fix the debug bots after r167102

        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-04-10  Gavin Barraclough  <barraclough@apple.com>

        Add user default for FTL JIT
        https://bugs.webkit.org/show_bug.cgi?id=131520

        Reviewed by Benjamin Poulain.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::decode):
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::registerUserDefaultsIfNeeded):
        (WebKit::WebContext::platformInitializeWebProcess):
            - D'oh, whitespace.

2014-04-10  Gavin Barraclough  <barraclough@apple.com>

        Add user default for FTL JIT
        https://bugs.webkit.org/show_bug.cgi?id=131520

        Reviewed by Benjamin Poulain.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
            - pass setting to WebContent process.
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::registerUserDefaultsIfNeeded):
        (WebKit::WebContext::platformInitializeWebProcess):
            - read user default.
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):
            - set JSC::Option.

2014-04-10  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Notify the form delegate when the custom button in the form accessory view is tapped
        https://bugs.webkit.org/show_bug.cgi?id=131518

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/_WKFormDelegate.h: Declared new delegate method.
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView accessoryAutoFill]): Call the new delegate method.

2014-04-10  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167097.
        https://bugs.webkit.org/show_bug.cgi?id=131519

        there was already a mechanism for this, and this was
        incomplete anyway (Requested by thorton on #webkit).

        Reverted changeset:

        "[iOS WebKit2] Disable the find overlay for now"
        https://bugs.webkit.org/show_bug.cgi?id=131509
        http://trac.webkit.org/changeset/167097

2014-04-10  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Disable the find overlay for now
        https://bugs.webkit.org/show_bug.cgi?id=131509

        Reviewed by Adele Peterson.

        * Shared/WebPreferencesStore.h:
        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::FindController):
        (WebKit::FindController::hideFindOverlay):
        (WebKit::FindController::hideFindUI):
        (WebKit::FindController::setShouldShowOverlay):
        * WebProcess/WebPage/FindController.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):
        Add a setting allowing us to turn off the find-in-page overlay on iOS.

2014-04-10  Sergio Villar Senin  <svillar@igalia.com>

        Unreviewed GTK build fix after r167074.

        This involves replacing resetDragSession() by
        resetCurrentDragInformation() and dragSession().operation by
        currentDragOperation().

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseDragDataReceived):
        (webkitWebViewBaseDragMotion):
        (dragExitedCallback):

2014-04-10  Owen Taylor  <otaylor@redhat.com>

        [Cairo] Implement ShareableBitmap::paint() with scale factor
        https://bugs.webkit.org/show_bug.cgi?id=64665

        Reviewed by Martin Robinson.

        * Shared/cairo/ShareableBitmapCairo.cpp (WebKit::ShareableBitmap::paint):

2014-04-10  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Support phraseboundary gesture recognizer for CJK.
        https://bugs.webkit.org/show_bug.cgi?id=131493
        <rdar://problem/16319583>

        Reviewed by Benjamin Poulain.

        On iOS it is possible with a gesture to change the selection
        within the marked text.
        Changing the selection triggers also the update of the inline candidates
        over the keyboard area.
        The patch adds the logic to decide whether the gesture can begin
        as well as the code for the movement of
        the selection within the marked range.
        The gesture is allowed to start within a given radius from the marked
        area.

        * Shared/InteractionInformationAtPosition.cpp:
        (WebKit::InteractionInformationAtPosition::encode):
        (WebKit::InteractionInformationAtPosition::decode):
        * Shared/InteractionInformationAtPosition.h:
        (WebKit::InteractionInformationAtPosition::InteractionInformationAtPosition):
        * Shared/ios/GestureTypes.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::editorStateChanged):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView pointIsNearMarkedText:]):
        (toGestureType):
        (toUIWKGestureType):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::selectWithGesture):
        (WebKit::WebPage::getPositionInformation):

2014-04-10  Enrica Casucci  <enrica@apple.com>

        Unreviewed iOS build fix after http://trac.webkit.org/changeset/167074

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):

2014-04-10  Alexey Proskuryakov  <ap@apple.com>

        Gtk build fix.

        * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::performDragControllerAction):

2014-04-09  Alexey Proskuryakov  <ap@apple.com>

        Eliminate DragSession structure
        https://bugs.webkit.org/show_bug.cgi?id=131465

        Reviewed by Benjamin Poulain.

        * Scripts/webkit2/messages.py:
        (struct_or_class):
        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<DragSession>::encode): Deleted.
        (IPC::ArgumentCoder<DragSession>::decode): Deleted.
        * Shared/WebCoreArgumentCoders.h:
        * UIProcess/API/mac/WKView.mm:
        (-[WKView draggingEntered:]):
        (-[WKView draggingUpdated:]):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::didPerformDragControllerAction):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::currentDragOperation):
        (WebKit::WebPageProxy::currentDragIsOverFileInput):
        (WebKit::WebPageProxy::currentDragNumberOfFilesToBeAccepted):
        (WebKit::WebPageProxy::resetCurrentDragInformation):
        (WebKit::WebPageProxy::dragSession): Deleted.
        (WebKit::WebPageProxy::resetDragSession): Deleted.
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::performDragControllerAction):

2014-04-10  Martin Robinson  <mrobinson@igalia.com>

        [GTK] LayerTreeHostGtk is creating a software scene graph
        https://bugs.webkit.org/show_bug.cgi?id=131471

        Reviewed by Sergio Villar Senin.

        At some point, a regression was introduced that sent the GTK+ WebKit2 scenegraph down the
        software route. The rest of the file depends on the fact that the TextureMapper is the OpenGL
        variety, so we should force that explicitly. This is causing crashes locally and soon we
        should be able to test this directly.

        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
        (WebKit::LayerTreeHostGtk::initialize): Force the use of the OpenGL scenegraph.

2014-04-09  Jeremy Jones  <jeremyj@apple.com>

        Fix build failure when #if USE(XPC_SERVICES) is false.
        https://bugs.webkit.org/show_bug.cgi?id=131474

        Reviewed by Dan Bernstein.

        Fix build. 

        * UIProcess/ios/WebProcessProxyIOS.mm:
        Add #if around BackgroundTabFlags ForegroundTabFlags to prevent unused variable error.

2014-04-09  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Add API to set preferred languages
        https://bugs.webkit.org/show_bug.cgi?id=131435

        Reviewed by Gyuyoung Kim.

        Add ewk_context_preferred_languages_set to change the list of "Accept-Language".
        This list is used to receive alternative version of contents, which is related
        to specified languages from the contents provider.

        * UIProcess/API/efl/ewk_context.cpp:
        (ewk_context_preferred_languages_set):
        * UIProcess/API/efl/ewk_context.h:
        * UIProcess/API/efl/tests/test_ewk2_context.cpp:
        (serverCallback):
        (TEST_F): Added test case for ewk_context_preferred_languages_set

2014-04-09  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Add the initial WebProcess handling of animated resize for rotation
        https://bugs.webkit.org/show_bug.cgi?id=131469

        Reviewed by Tim Horton.

        Add the basic handling of dynamic resize from the WebProcess.

        On animated resize, the UIProcess decides new target rects and scale. The information
        is then passed to the WebProcess to update the content.

        For various reason, the target rects and scale computed by the UIProcess can be incorrect
        (for example, if viewport constraints limit the scale).

        In those cases, the WebProcess has all the information to compute a better target. This patch
        adds such a basic update mechanism.

        Once the new values are computed, they are sent back to the UIProcess. If the rotation animation
        is still ongoing, we do not want mess with it. What we do is set a temporary transform on the subviews
        and restore the real value after the animation. The key is to have the two matrix multiplying to the end
        value so that there is no visual difference.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:]):
        (setViewportConfigurationMinimumLayoutSize):
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _setMinimumLayoutSizeOverride:]):
        (-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]):
        (-[WKWebView _endAnimatedResize]):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView _frameOrBoundsChanged]):
        (-[WKView setMinimumLayoutSizeOverride:]):
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::dynamicViewportUpdateChangedTarget):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView setMinimumLayoutSize:]): Deleted.
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
        (WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::dynamicViewportSizeUpdate):

2014-04-09  Martin Robinson  <mrobinson@igalia.com>

        Try to fix the GTK+ build after resetDragOperation rename

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseDragDataReceived): Rename resetDragOperation to resetDragSession.
        (dragExitedCallback): Ditto.

2014-04-09  Jeremy Jones  <jeremyj@apple.com>

        Enable fullscreen captions selection
        https://bugs.webkit.org/show_bug.cgi?id=131069

        Reviewed by Eric Carlson.

        Enable media selection in fullscreen.
        setLegibleMediaSelectionOptions/setAudioMediaSelectionOptions provide a list of options.
        selectAudioMediaOption/selectLegibleMediaOption change the selected option.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        Add selectAudioMediaOption/selectLegibleMediaOption

        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
        Add selectAudioMediaOption/selectLegibleMediaOption

        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::selectAudioMediaOption):
        Add selectAudioMediaOption

        (WebKit::WebVideoFullscreenManagerProxy::selectLegibleMediaOption):
        Add selectLegibleMediaOption

        * WebProcess/ios/WebVideoFullscreenManager.h:
        Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions

        * WebProcess/ios/WebVideoFullscreenManager.messages.in:
        Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions

        * WebProcess/ios/WebVideoFullscreenManager.mm:
        (WebKit::WebVideoFullscreenManager::setAudioMediaSelectionOptions):
        Add setAudioMediaSelectionOptions

        (WebKit::WebVideoFullscreenManager::setLegibleMediaSelectionOptions):
        Add setLegibleMediaSelectionOptions

2014-04-09  Alexey Proskuryakov  <ap@apple.com>

        Rename some dragging functions
        https://bugs.webkit.org/show_bug.cgi?id=131460

        Reviewed by Tim Horton.

        Renamed performDrag to performDragOperation.

        Also renamed resetDragOperation to resetDragSession, because it's m_dragSession
        that it resets.

        * Shared/DragControllerAction.h:
        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseDragDrop):
        * UIProcess/API/mac/WKView.mm:
        (-[WKView draggingEntered:]):
        (-[WKView draggingExited:]):
        (-[WKView performDragOperation:]):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::performDragOperation):
        (WebKit::WebPageProxy::performDrag): Deleted.
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::resetDragSession):
        (WebKit::WebPageProxy::resetDragOperation): Deleted.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::performDragControllerAction):

2014-04-09  Gavin Barraclough  <baraclough@apple.com>

        Update SPI for managing tabs
        https://bugs.webkit.org/show_bug.cgi?id=131453

        Reviewed by Alexey Proskuryakov.

        * Configurations/WebKit2.xcconfig:
            - added AssertionServices
        * UIProcess/WebProcessProxy.h:
            - added m_assertion, m_assertionState.
        * UIProcess/ios/WebProcessProxyIOS.mm:
        (WebKit::WebProcessProxy::updateProcessState):
            - create BKSProcessAssertion to take an assertion.

2014-04-09  Enrica Casucci  <enrica@apple.com>

        WK2: Dictated words disappear after being inserted.
        https://bugs.webkit.org/show_bug.cgi?id=131458
        <rdar://problem/16395011>

        Reviewed by Benjamin Poulain.

        The dictation engine treats selected text as text to be
        removed. We need to ensure that the range selected to insert the
        new text isn't reflected in the UI process until we are done
        inserting the text.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::replaceDictatedText):

2014-04-09  Brady Eidson  <beidson@apple.com>

        Don't offer "contact" actions in telephone number menus
        <rdar://problem/16556907> and https://bugs.webkit.org/show_bug.cgi?id=131451

        Reviewed by Tim Horton.

        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::showTelephoneNumberMenu): Skip actions that have to do with contacts,
          and skip separators too!

2014-04-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build after r166975.

        Do not use WebPage removed API to fix the build. Page overlays are
        no broken, see https://bugs.webkit.org/show_bug.cgi?id=131433.

        * WebProcess/WebPage/DrawingAreaImpl.cpp:
        (WebKit::DrawingAreaImpl::display):
        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
        (WebKit::LayerTreeHostGtk::initialize):
        (WebKit::LayerTreeHostGtk::paintContents):

2014-04-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build after r166965.

        * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
        (WebKit::WebDragClient::startDrag): Rename Clipboard to DataTransfer.

2014-04-08  Hyowon Kim  <hw1008.kim@samsung.com>

        Fix EFL Build errors since r166975.
        https://bugs.webkit.org/show_bug.cgi?id=131421

        Reviewed by Gyuyoung Kim.

        This patch is just for fixing EFL build errors.
        The page overlay functionality is not working yet.

        * CMakeLists.txt:
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
        (WebKit::CoordinatedDrawingArea::display):
        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
        (WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
        (WebKit::CoordinatedLayerTreeHost::paintLayerContents):
        * WebProcess/WebPage/PageOverlayController.cpp:
        * WebProcess/WebPage/TapHighlightController.cpp:
        (WebKit::TapHighlightController::hideHighlight):

2014-04-08  Jon Lee  <jonlee@apple.com>

        Turn MSE on by default
        https://bugs.webkit.org/show_bug.cgi?id=131313
        <rdar://problem/16525223>

        Reviewed by Jer Noble.

        * Configurations/FeatureDefines.xcconfig:
        * Shared/WebPreferencesStore.h: Set default to true.
        * UIProcess/API/C/WKPreferencesRefPrivate.h:

2014-04-08  Ryosuke Niwa  <rniwa@webkit.org>

        Fix the typo in the previous commit.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::close):

2014-04-08  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r 166890): Crash inside WebKit::WebEditorClient::textFieldDidEndEditing
        https://bugs.webkit.org/show_bug.cgi?id=131409

        Reviewed by Anders Carlsson.

        Create an empty API::InjectedBundle::FormClient to avoid crashing inside
        m_mainFrame->coreFrame()->loader().detachFromParent().

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::close):

2014-04-08  Tim Horton  <timothy_horton@apple.com>

        Unify and factor out page overlay implementations
        https://bugs.webkit.org/show_bug.cgi?id=131353

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/PageOverlayController.cpp:
        (WebKit::PageOverlayController::uninstallPageOverlay):
        Don't turn fast scrolling back off unless the last overlay is removed.

2014-04-08  Anders Carlsson  <andersca@apple.com>

        Add a WKNavigationAction property indicating whether it resulted from processing a user gesture
        https://bugs.webkit.org/show_bug.cgi?id=131405
        <rdar://problem/16535453>

        Reviewed by Tim Horton.

        * Shared/NavigationActionData.cpp:
        (WebKit::NavigationActionData::NavigationActionData):
        (WebKit::NavigationActionData::encode):
        (WebKit::NavigationActionData::decode):
        * Shared/NavigationActionData.h:
        * UIProcess/API/Cocoa/WKNavigationActionInternal.h:
        * UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::UIClient::createNewPage):
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::createWindow):
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

2014-04-08  Tim Horton  <timothy_horton@apple.com>

        Unify and factor out page overlay implementations
        https://bugs.webkit.org/show_bug.cgi?id=131353

        Reviewed by Anders Carlsson.

        Bring all of the PageOverlay code together in a single cross-platform
        PageOverlayController, including hit-testing code from WebPage and painting
        and layer-tree manipulation code from the DrawingArea.

        This also makes all PageOverlays a single GraphicsLayer tree which can be
        flushed and plugged into any DrawingArea in a straightforward manner.
        We no longer have to watch for individual layers flipping into/out of tiling,
        because they're hidden underneath the root PageOverlay GraphicsLayer.
        Additionally, because GraphicsLayer is cross-platform, we can share
        all of the fairly trivial but oft-repeated overlay management code.

        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/PageOverlayController.cpp: Added.
        * WebProcess/WebPage/PageOverlayController.h: Added.
        (WebKit::PageOverlayController::rootLayer):
        Add PageOverlayController.

        * WebProcess/WebPage/DrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        Remove PageOverlay-related code from the DrawingAreas.

        * WebProcess/WebPage/PageOverlay.cpp:
        (WebKit::PageOverlay::setNeedsDisplay):
        (WebKit::PageOverlay::fadeAnimationTimerFired):
        (WebKit::PageOverlay::clear):
        * WebProcess/WebPage/PageOverlay.h:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::didChangeScrollOffset):
        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
        (-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]):
        (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
        Use PageOverlayController instead of the DrawingArea/WebPage to manipulate page overlays.

        * WebProcess/WebPage/WebPage.cpp:
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::pageOverlayController):
        Remove PageOverlay-related code from WebPage.

        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::outOfTreeLayerWasAdded): Deleted.
        (WebKit::RemoteLayerTreeContext::outOfTreeLayerWillBeRemoved): Deleted.
        (WebKit::RemoteLayerTreeContext::flushOutOfTreeLayers): Deleted.
        Remove the no-longer-necessary out-of-tree layer code.

        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
        (WKBundlePageInstallPageOverlayWithAnimation):
        (WKBundlePageUninstallPageOverlayWithAnimation):
        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
        (WebKit::WebInspectorClient::highlight):
        (WebKit::WebInspectorClient::hideHighlight):
        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::updateFindUIAfterPageScroll):
        (WebKit::FindController::hideFindUI):
        * WebProcess/WebPage/TelephoneNumberOverlayController.cpp:
        (WebKit::TelephoneNumberOverlayController::createOverlayIfNeeded):
        (WebKit::TelephoneNumberOverlayController::destroyOverlay):
        Make use of the FadeMode enum.

2014-04-08  Anders Carlsson  <andersca@apple.com>

        Change WebPageProxy::CreateNewPage to take a NavigationActionData object
        https://bugs.webkit.org/show_bug.cgi?id=131401

        Reviewed by Dan Bernstein.

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::createNewPage):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageUIClient):
        * UIProcess/API/Cocoa/WKNavigationAction.mm:
        (toWKNavigationType):
        * UIProcess/API/Cocoa/WKNavigationActionInternal.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::toWKNavigationType): Deleted.
        * UIProcess/Cocoa/UIDelegate.h:
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::UIClient::createNewPage):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::createNewPage):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::createWindow):

2014-04-08  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * WebKit2Prefix.h:

2014-04-08  Anders Carlsson  <andersca@apple.com>

        Use an explicit class when decoding individual bundle parameters
        https://bugs.webkit.org/show_bug.cgi?id=131392
        <rdar://problem/16213914>

        Reviewed by Dan Bernstein.

        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
        (WebKit::InjectedBundle::setBundleParameter):

2014-04-08  Anders Carlsson  <andersca@apple.com>

        Move a Mountain Lion declaration to the WebKit2 prefix header
        https://bugs.webkit.org/show_bug.cgi?id=131391

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        * UIProcess/ios/PageClientImplIOS.mm:
        * UIProcess/mac/WebContextMac.mm:
        * WebKit2Prefix.h:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

2014-04-08  Antti Koivisto  <antti@apple.com>

        Remove exposedRect from TileController
        https://bugs.webkit.org/show_bug.cgi?id=131378

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect):
        
            Update the visible rect for pageOverlayLayers by calling flushCompositingState. This way
            tile controller visible rect updates always happens via compositing flush (we assert
            for this in TileController::setVisibleRect).

2014-04-08  Alexey Proskuryakov  <ap@apple.com>

        Rename Clipboard to DataTransfer
        https://bugs.webkit.org/show_bug.cgi?id=131371

        Reviewed by Anders Carlsson.

        * WebProcess/WebCoreSupport/WebDragClient.cpp:
        (WebKit::WebDragClient::willPerformDragSourceAction):
        (WebKit::WebDragClient::startDrag):
        * WebProcess/WebCoreSupport/WebDragClient.h:
        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
        (WebKit::WebDragClient::startDrag):

2014-04-08  Alexey Proskuryakov  <ap@apple.com>

        FlagsChanged events are not delivered to input methods when using async text input
        https://bugs.webkit.org/show_bug.cgi?id=131383

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm: (-[WKView _interpretKeyEvent:completionHandler:]):
        The early return is no longer needed.

2014-04-08  Tim Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures (Swipe): Swipe-start hysteresis
        https://bugs.webkit.org/show_bug.cgi?id=127393
        <rdar://problem/15876822>

        Reviewed by Anders Carlsson.

        We shouldn't start a swipe immediately upon very small scrolls in the correct direction,
        because we don't want to get the user trapped in a swipe when they want to scroll.

        We'll accumulate the scroll deltas and wait until the user has scrolled at least 15px horizontally.
        In addition, we'll drop the swipe completely if any event has a vertical delta equal to half (or more)
        of the horizontal delta.

        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::ViewGestureController):
        (WebKit::ViewGestureController::deltaIsSufficientToBeginSwipe):
        (WebKit::ViewGestureController::handleScrollWheelEvent):
        (WebKit::ViewGestureController::wheelEventWasNotHandledByWebCore):

2014-04-07  Jer Noble  <jer.noble@apple.com>

        [Mac][WK2] Videos do not have access to session cookies
        https://bugs.webkit.org/show_bug.cgi?id=129687

        Reviewed by Eric Carlson.

        Update the CookieStorageShim to track changes in underlying networking stack.

        * Shared/mac/CookieStorageShim.mm:
        (WebKit::CookieStorageShim::initialize):
        (-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

2014-04-08  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add a way to tell whether a WKWebProcessPlugInNodeHandle is a text-type HTML input element
        https://bugs.webkit.org/show_bug.cgi?id=131374

        Reviewed by Anders Carlsson.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
        (-[WKWebProcessPlugInNodeHandle isTextField]): Added this getter. Calls
        InjectedBundleNodeHandle::isTextField.
        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::InjectedBundleNodeHandle::isTextField): Added. Uses
        WebCore::HTMLInputElement::isText, which is consistent with what
        WebChromeClient::focusedElementChanged uses to decide whether to call didFocusTextField.
        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:

2014-04-08  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add a _certificateChain property to WKWebProcessPlugInFrame
        https://bugs.webkit.org/show_bug.cgi?id=131370

        Reviewed by Anders Carlsson.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
        (-[WKWebProcessPlugInFrame _certificateChain]): Added this getter, which uses the new
        WebFrame::certificateInfo.
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::certificateInfo): Added this getter.
        * WebProcess/WebPage/WebFrame.h:

2014-04-08  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add a bundle form delegate method corresponding to textDidChangeInTextField
        https://bugs.webkit.org/show_bug.cgi?id=131369

        Reviewed by Anders Carlsson.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared
        new delegate method.
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added an override
        of API::InjectedBundle::FormClient::textDidChangeInTextField which calls the new delegate
        method.

2014-04-08  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add WKFormDelegate
        https://bugs.webkit.org/show_bug.cgi?id=131343

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _formDelegate]): Added this accessor.
        (-[WKWebView _setFormDelegate:]): Ditto.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared _formDelegate property.

        * UIProcess/API/Cocoa/_WKFormDelegate.h: Added.

        * UIProcess/API/Cocoa/_WKFormInputSession.h: Added.

        * UIProcess/ios/WKContentView.h: Moved _webView ivar into the @interface…
        * UIProcess/ios/WKContentView.mm: …from the @implementation.

        * UIProcess/ios/WKContentViewInteraction.h: Added _formInputSession ivar and
        formAccessoryView property.
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKFormInputSession initWithContentView:userObject:]): Added.
        (-[WKFormInputSession dealloc]): Added.
        (-[WKFormInputSession userObject]): Added.
        (-[WKFormInputSession isValid]): Added.
        (-[WKFormInputSession accessoryViewCustomButtonTitle]): Added.
        (-[WKFormInputSession setAccessoryViewCustomButtonTitle:]): Added.
        (-[WKFormInputSession invalidate]): Added.
        (-[WKContentView cleanupInteraction]): Invalidate and release the input session.
        (-[WKContentView formAccessoryView]): Added this accessor.
        (-[WKContentView _startAssistingNode:userObject:]): Create an input session and message the
        form delegate.
        (-[WKContentView _stopAssistingNode]): Invalidate and release the input session.

        * WebKit2.xcodeproj/project.pbxproj: Added references to new files.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Added
        comment.

2014-04-08  Daniel Bates  <dabates@apple.com>

        Fallback to default storage session when there isn't a valid session ID
        https://bugs.webkit.org/show_bug.cgi?id=131326
        <rdar://problem/16231679>

        Reviewed by Alexey Proskuryakov.

        Fixes and issue where we may use the wrong storage session after disabling
        a private browsing session.

        Currently WebKit1 and WebKit2 without NetworkProcess assume that there
        is always a non-null private browsing storage session so long as the page
        has a non-default session ID. Instead we should only use the private browsing
        storage session when it's non-null and the page has a non-default session ID;
        otherwise, we should use the default storage session. This change will make
        the behavior in WebKit1 and WebKit2 without NetworkProcess consistent with
        the behavior in WebKit2 with NetworkProcess.

        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
        (WebKit::WebFrameNetworkingContext::storageSession):

2014-04-08  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [SOUP] Control cookie management according ResourceRequest.allowCookies()
        https://bugs.webkit.org/show_bug.cgi?id=131026

        Reviewed by Sergio Villar Senin.

        Added setting of accept cookies policy for the current soup network session cookie jar and all tracked sessions.
        Moved the implementation of cookie policy setting from WebCookieManager to WebFrameNetworkingContext.

        * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
        (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Moved implementation to WebCookieManager::platformSetHTTPCookieAcceptPolicy.
        * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
        (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Moved implementation from WebCookieManager::platformSetHTTPCookieAcceptPolicy and set the cookie jar accept policy to the cookie jars of all sessions in addition to the default cookie jar.
        * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h: Added method prototype.

2014-04-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [WK2] Fix unused parameter compile warning
        https://bugs.webkit.org/show_bug.cgi?id=131260

        Reviewed by Darin Adler.

        Remove the arguments name without UNUSED_PARAM().

        * UIProcess/API/APIDownloadClient.h:
        (API::DownloadClient::didReceiveData):
        (API::DownloadClient::shouldDecodeSourceDataOfMIMEType):
        (API::DownloadClient::decideDestinationWithSuggestedFilename):
        (API::DownloadClient::didCreateDestination):
        * UIProcess/API/APIFindClient.h:
        (API::FindClient::didCountStringMatches):
        (API::FindClient::didFindString):
        * UIProcess/API/APIHistoryClient.h:
        (API::HistoryClient::didPerformClientRedirect):
        (API::HistoryClient::didPerformServerRedirect):
        (API::HistoryClient::didUpdateHistoryTitle):
        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::didStartProvisionalLoadForFrame):
        (API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
        (API::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
        (API::LoaderClient::didCommitLoadForFrame):
        (API::LoaderClient::didFinishLoadForFrame):
        (API::LoaderClient::didFailLoadWithErrorForFrame):
        (API::LoaderClient::didChangeBackForwardList):
        * UIProcess/API/APIPolicyClient.h:
        (API::PolicyClient::decidePolicyForNavigationAction):
        (API::PolicyClient::decidePolicyForNewWindowAction):
        (API::PolicyClient::decidePolicyForResponse):
        (API::PolicyClient::unableToImplementPolicy):

2014-04-07  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Allow com.apple.ViewBridge preferences reading in plug-in sandbox profile
        https://bugs.webkit.org/show_bug.cgi?id=131306
        <rdar://problem/16359865>

        Reviewed by Sam Weinig.

        * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb: Do it.

2014-04-07  Stephanie Lewis  <slewis@apple.com>

        Crash in com.apple.WebKit.Plugin.Development at com.apple.WebKit2: WebKit::PluginControllerProxy::pluginInstanceID
        <rdar://problem/16479432>
        https://bugs.webkit.org/show_bug.cgi?id=131203

        Reviewed by Geoff Garen.

        pluginController was being removed before accessing the pluginInstanceID.

        * PluginProcess/WebProcessConnection.cpp:
        (WebKit::WebProcessConnection::removePluginControllerProxy):

2014-04-07  Dan Bernstein  <mitz@apple.com>

        More Mountain Lion build fix.

        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

2014-04-07  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Implement the update of content offset on animated resize
        https://bugs.webkit.org/show_bug.cgi?id=131329

        Reviewed by Tim Horton.

        Compute a reasonable target offset on rotation. This goes in 3 steps:
        1) Move the page so that the center does not move during scaling.
        2) Limit the range to keep the page in scrollview without rubberbanding.
        3) The horizontal content stays the same but the vertical area changes. When on the top or bottom
           edge, stick to the edge.

        The code is moved inside _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride: so that we can tell
        the WebProcess where the scroll position will be at the end of the animation.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _frameOrBoundsChangedFrom:]):
        (-[WKWebView _updateVisibleContentRects]):
        (-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]):

2014-04-07  Dan Bernstein  <mitz@apple.com>

        Mountain Lion build fix.

        * UIProcess/ios/PageClientImplIOS.mm:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

2014-04-07  Anders Carlsson  <andersca@apple.com>

        Handle decoding of nil invocation arguments
        https://bugs.webkit.org/show_bug.cgi?id=131335
        <rdar://problem/16528449>

        Reviewed by Tim Horton.

        * Shared/APIArray.h:
        Don't crash if the array element is null.

2014-04-07  Dan Bernstein  <mitz@apple.com>

        Add bundle client function corresponding to startAssistingNode
        https://bugs.webkit.org/show_bug.cgi?id=131332

        Reviewed by Anders Carlsson.

        * UIProcess/PageClient.h: Added userData parameter to startAssistingNode.

        * UIProcess/WebPageProxy.h: Added message decoder parameter to startAssistingNode.
        * UIProcess/WebPageProxy.messages.in: Added message decoder parameter to StartAssistingNode.

        * UIProcess/ios/PageClientImplIOS.h: Updated startAssistingNode override.
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::startAssistingNode): Decode the user data into an NSObject and pass
        it on to the content view.

        * UIProcess/ios/WKContentViewInteraction.h: Added userObject parameter to
        -_startAssitingNode:.
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _startAssistingNode:userObject:]): Added userObject parameter. We will pass
        it to a future delegate method.

        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::startAssistingNode): Decode the user data and pass it to the client.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared new
        delegate method.
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added an implementation
        of API::InjectedBundle::FormClient::willBeginInputSession which calls the new delegate
        method, and encodes the user object into userData.

        * WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
        (API::InjectedBundle::FormClient::willBeginInputSession): Added willBeginInputSession.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::elementDidFocus): Call willBeginInputSession and send the user data along
        with the StartAssistingNode message to the UI process.

2014-04-07  Jinwoo Song  <jinwoo7.song@samsung.com>

        Unreviewed. Fixing the EFL build.

        * WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp: Include the Document header from WebCore
        to avoid operating on an incomplete type.

2014-04-07  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] WKPDFView fades in tiles, PDFs load very flashily
        https://bugs.webkit.org/show_bug.cgi?id=131325
        <rdar://problem/16382960>

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView scrollViewDidScroll:]):
        Forward scroll events to the current custom content provider.

        * UIProcess/Cocoa/WKWebViewContentProvider.h:
        Make content providers UIScrollViewDelegates (though we only forward didScroll for now).

        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView web_setContentProviderData:suggestedFilename:]):
        (-[WKPDFView web_setMinimumSize:]):
        (-[WKPDFView web_setScrollView:]):
        (-[WKPDFView scrollViewDidScroll:]):
        (-[WKPDFView _revalidateViews]):
        (-[WKPDFView _computePageAndDocumentFrames]):
        (-[WKPDFView layoutViews]): Deleted.
        Keep track of each UIPDFPage, UIPDFPageView, and its frame (in unscaled/document coordinates).
        Compute all the rects up front (and re-compute upon rotation, loading, etc.).
        When scrolling, find all the pages that intersect the view (inflated by 1.5x in each
        vertical direction), and ensure that pages that are inside that rect have
        UIPDFPageViews installed, and ones that are outside that rect do not.
        Use setUseBackingLayer to ensure that we have a low-resolution layer behind the
        tiled layer to avoid flashiness.

2014-04-07  Dan Bernstein  <mitz@apple.com>

        Add API::InjectedBundle::FormClient
        https://bugs.webkit.org/show_bug.cgi?id=131317

        Reviewed by Anders Carlsson.

        * WebKit2.xcodeproj/project.pbxproj: Added reference to new file.

        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
        (WKBundlePageSetFormClient):
        * WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Changed to define and
        create a FormClient (which derives from API::InjectedBundle::FormClient and messages a
        delegate), and set it as the form client.
        (didFocusTextField): Deleted.
        (willSubmitForm): Deleted.
        (setUpFormClient): Deleted.

        * WebProcess/InjectedBundle/APIInjectedBundleFormClient.h: Added.
        (API::InjectedBundle::FormClient::~FormClient):
        (API::InjectedBundle::FormClient::didFocusTextField):
        (API::InjectedBundle::FormClient::textFieldDidBeginEditing):
        (API::InjectedBundle::FormClient::textFieldDidEndEditing):
        (API::InjectedBundle::FormClient::textDidChangeInTextField):
        (API::InjectedBundle::FormClient::textDidChangeInTextArea):
        (API::InjectedBundle::FormClient::shouldPerformActionInTextField):
        (API::InjectedBundle::FormClient::willSubmitForm):
        (API::InjectedBundle::FormClient::willSendSubmitEvent):
        (API::InjectedBundle::FormClient::didAssociateFormControls):
        (API::InjectedBundle::FormClient::shouldNotifyOnFormChanges):

        * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
        (WebKit::InjectedBundlePageFormClient::InjectedBundlePageFormClient): Added a constructor
        from WKBundlePageFormClientBase.
        (WebKit::toWKInputFieldActionType): Added helper to convert from internal enum to C SPI
        enum.
        (WebKit::InjectedBundlePageFormClient::shouldPerformActionInTextField): Use helper.
        * WebProcess/InjectedBundle/InjectedBundlePageFormClient.h: Added inheritance from
        API::InjectedBundle::FormClient, marked overrides as such.

        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Removed unused forward
        declarations.

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::toInputFieldAction): Added helper to convert from C SPI enum to internal enum.
        (WebKit::WebEditorClient::doTextFieldCommandFromEvent): Use helper.
        (WebKit::WebEditorClient::textWillBeDeletedInTextField): Ditto.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage): Initialize m_formClient member.
        (WebKit::WebPage::setInjectedBundleFormClient): Added. Updates m_formClient. 
        (WebKit::WebPage::close): Updated code to clear m_formClient.
        (WebKit::WebPage::initializeInjectedBundleFormClient): Deleted.
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::injectedBundleFormClient): Updated return type.

2014-04-07  Hyowon Kim  <hw1008.kim@samsung.com>

        Move to using std::unique_ptr for opengl, texmap, transforms and efl in WebCore/platform/graphics.
        https://bugs.webkit.org/show_bug.cgi?id=131276

        Reviewed by Darin Adler.

        Replace uses of OwnPtr for TextureMapper in LayerTreeHostGtk with std::unique_ptr.

        * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:

2014-04-07  Joseph Pecoraro  <pecoraro@apple.com>

        Make Mac only parts of TelephoneNumberOverlayController PLATFORM(MAC).

        Unreviewed build fix for r166881.

        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::showTelephoneNumberMenu): Deleted.
        * WebProcess/WebPage/TelephoneNumberOverlayController.cpp:
        (WebKit::TelephoneNumberOverlayController::drawRect):
        (WebKit::TelephoneNumberOverlayController::mouseEvent):
        * WebProcess/WebPage/TelephoneNumberOverlayController.h:
        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:

2014-04-07  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Fixing the GTK build.

        * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: Include the Document header from WebCore
        to avoid operating on an incomplete type.
        * WebProcess/WebPage/TapHighlightController.cpp: Include the RenderElement instead of RenderObject
        to make the RenderObject::style() inline accessible.
        * WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp: Include the Document header from WebCore

2014-04-07  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Make back-buffers purgeable when possible
        https://bugs.webkit.org/show_bug.cgi?id=131213
        <rdar://problem/15373906>

        Reviewed by Simon Fraser.

        We should make back-buffers volatile when their owning
        layer falls out of use (either stops being repainted or
        is unparented), as they are inherently recreatable.

        * Shared/mac/RemoteLayerBackingStore.h:
        (WebKit::RemoteLayerBackingStore::volatility):
        (WebKit::RemoteLayerBackingStore::lastDisplayTime):
        Add storage and a getter for the backing store's last paint time.
        Add setter/getter for volatility of backing store.
        Add RemoteLayerTreeContext param to constructor.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore):
        (WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore):
        Inform the RemoteLayerTreeContext when backing store
        is created and destroyed. Since we only have a Context in
        the Web process, this will only happen there.

        (WebKit::RemoteLayerBackingStore::encode):
        (WebKit::RemoteLayerBackingStore::decode):
        Move some assertions out of #else blocks which are preceded by returns.

        (WebKit::RemoteLayerBackingStore::display):
        Update the last display time.
        If the backing store was volatile, make it non-volatile.

        (WebKit::RemoteLayerBackingStore::setVolatility):
        Mark the relevant surfaces as volatile or not.
        setVolatility:
            - fails and returns false if any surfaces weren't marked
              volatile because they were in use
            - marks the whole backing store for repaint if the front
              surface was purged

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
        Make it possible to remove the RemoteLayerBackingStore on layers
        that went from drawing contents to not drawing contents.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::removeSwipeSnapshot):
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::removeSwipeSnapshot):
        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::ViewSnapshotStore::recordSnapshot):
        Adopt the new names from WebCore.

        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
        Clear the backing store if the layer doesn't want to draw contents anymore.

        (WebKit::PlatformCALayerRemote::ensureBackingStore):

        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        (WebKit::RemoteLayerTreeContext::backingStoreCollection):
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::RemoteLayerTreeContext):
        (WebKit::RemoteLayerTreeContext::backingStoreWasCreated):
        (WebKit::RemoteLayerTreeContext::backingStoreWillBeDestroyed):
        Keep a RemoteLayerBackingStoreCollection, which just keeps track
        of all backing store (even unparented) created for layers in a
        particular context. Forward backing store creation/deletion to it.
        Remove a unused m_rootLayer member.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        If any layers had backing store changes, start the timer
        on the RemoteLayerBackingStoreCollection that will mark them
        purgeable once they are no longer needed.

        * Shared/mac/RemoteLayerBackingStoreCollection.mm:
        * Shared/mac/RemoteLayerBackingStoreCollection.h:
        Keep track of all backing store for our context.
        When the timer fires, run through the backing store, finding
        backing store that was last painted more than 1 second ago,
        and mark them purgeable. If there was more recently-painted
        backing store, let the timer fire again in another second;
        otherwise, stop it.

2014-04-07  Ryosuke Niwa  <rniwa@webkit.org>

        Another build fix after r166879.

        * WebProcess/WebPage/mac/WebPageMac.mm:

2014-04-07  Dan Bernstein  <mitz@apple.com>

        Tried to fix the Mac build.

        * WebProcess/Plugins/PDF/PDFPlugin.mm:

2014-04-07  Brady Eidson  <beidson@apple.com>

        Handle clicks on DataDetectors UI for scanned phone numbers
        <rdar://problem/16379588> and https://bugs.webkit.org/show_bug.cgi?id=131309

        Reviewed by Tim Horton.

        WebContextMenuItemDatas never need to know about a ContextMenu, so remove that concept.
        Also add the concept of a selection handler for UIProcess-native menu items.
        * Shared/WebContextMenuItemData.cpp:
        (WebKit::WebContextMenuItemData::WebContextMenuItemData): 
        (WebKit::WebContextMenuItemData::encode):
        (WebKit::kitItems):
        (WebKit::WebContextMenuItemData::decode):
        * Shared/WebContextMenuItemData.h:
        (WebKit::WebContextMenuItemData::selectionHandler):

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::showContextMenu):
        (WebKit::WebPageProxy::internalShowContextMenu): Make the decoder argument optional. Make consulting the client optional.
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::showTelephoneNumberMenu):

        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (-[WKSelectionHandlerWrapper initWithSelectionHandler:std::]):
        (-[WKSelectionHandlerWrapper executeSelectionHandler]):
        (-[WKMenuTarget forwardContextMenuAction:]):
        (WebKit::nsMenuItemVector):
        (WebKit::WebContextMenuProxyMac::contextMenuItemSelected): If the represented object is a WKSelectionHandlerWrapper,
          execute the selection handler. Do nothing else.

        Instead of getting rects from ranges, creating highlights, and storing those highlights,
        work in terms of a TelephoneNumberData object that wraps both a range and a highlight.
        This makes it easier to track where the mouse is down and to know what phone number we should act on when clicked.
        * WebProcess/WebPage/TelephoneNumberOverlayController.cpp:
        (WebKit::TelephoneNumberOverlayController::rectsForDrawing): Deleted.
        * WebProcess/WebPage/TelephoneNumberOverlayController.h:
        (WebKit::TelephoneNumberData::create):
        (WebKit::TelephoneNumberData::range):
        (WebKit::TelephoneNumberData::highlight):
        (WebKit::TelephoneNumberData::TelephoneNumberData):
        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
        (WebKit::TelephoneNumberOverlayController::drawRect):
        (WebKit::TelephoneNumberOverlayController::handleTelephoneClick): Pass the phone number text and the point to WebPage.
        (WebKit::TelephoneNumberOverlayController::mouseEvent):
        (WebKit::TelephoneNumberOverlayController::clearMouseDownInformation):
        (WebKit::TelephoneNumberOverlayController::clearHighlights):

        * WebProcess/WebPage/WebContextMenu.cpp:
        (WebKit::WebContextMenu::menuItemsWithUserData):

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::handleTelephoneNumberClick): Message the phone number and coordinate to the UIProcess.

2014-04-07  Dan Bernstein  <mitz@apple.com>

        Introduce API::InjectedBundle::PageUIClient
        https://bugs.webkit.org/show_bug.cgi?id=131310

        Reviewed by Anders Carlsson.

        * WebKit2.xcodeproj/project.pbxproj: Added references to new files.

        * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: Added #include that
        became necessary.

        * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: Added.
        (API::InjectedBundle::PageUIClient::~PageUIClient):
        (API::InjectedBundle::PageUIClient::willAddMessageToConsole):
        (API::InjectedBundle::PageUIClient::willSetStatusbarText):
        (API::InjectedBundle::PageUIClient::willRunJavaScriptAlert):
        (API::InjectedBundle::PageUIClient::willRunJavaScriptConfirm):
        (API::InjectedBundle::PageUIClient::willRunJavaScriptPrompt):
        (API::InjectedBundle::PageUIClient::mouseDidMoveOverElement):
        (API::InjectedBundle::PageUIClient::pageDidScroll):
        (API::InjectedBundle::PageUIClient::shouldGenerateFileForUpload):
        (API::InjectedBundle::PageUIClient::generateFileForUpload):
        (API::InjectedBundle::PageUIClient::statusBarIsVisible):
        (API::InjectedBundle::PageUIClient::menuBarIsVisible):
        (API::InjectedBundle::PageUIClient::toolbarsAreVisible):
        (API::InjectedBundle::PageUIClient::didReachApplicationCacheOriginQuota):
        (API::InjectedBundle::PageUIClient::didExceedDatabaseQuota):
        (API::InjectedBundle::PageUIClient::plugInStartLabelTitle):
        (API::InjectedBundle::PageUIClient::plugInStartLabelSubtitle):
        (API::InjectedBundle::PageUIClient::plugInExtraStyleSheet):
        (API::InjectedBundle::PageUIClient::plugInExtraScript):

        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
        (WKBundlePageSetUIClient): Changed to create an InjectedBundlePageUIClient and set it on
        the WebPage.

        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
        (WebKit::InjectedBundlePageUIClient::InjectedBundlePageUIClient): Added constructor from
        WKBundlePageUIClient.
        (WebKit::toUIElementVisibility): Added helper to convert from C SPI enum to internal enum.
        (WebKit::InjectedBundlePageUIClient::statusBarIsVisible): Changed to use the above.
        (WebKit::InjectedBundlePageUIClient::menuBarIsVisible): Ditto.
        (WebKit::InjectedBundlePageUIClient::toolbarsAreVisible): Ditto.
        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Added inheritance from
        API::InjectedBundle::PageUIClient, marked overrides as such.

        * WebProcess/Storage/StorageAreaMap.cpp: Added #include that became necessary.
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::toolbarsVisible): Updated to use new internal enum.
        (WebKit::WebChromeClient::statusbarVisible): Ditto.
        (WebKit::WebChromeClient::menubarVisible): Ditto.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage): Initialized m_uiClient member.
        (WebKit::WebPage::setInjectedBundleUIClient): Added. Updates m_uiClient.
        (WebKit::WebPage::close): Updated for change in m_uiClient.
        (WebKit::WebPage::pageDidScroll): Ditto.
        (WebKit::WebPage::initializeInjectedBundleUIClient): Deleted.
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::injectedBundleUIClient): Updated return type.

        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: Added #include that became
        necessary.

2014-04-06  Dan Bernstein  <mitz@apple.com>

        Clean up WKGestureTypes.h
        https://bugs.webkit.org/show_bug.cgi?id=131286

        Reviewed by Sam Weinig.

        Renamed WKGestureTypes.h to GestureTypes.h, dropped the useless “WK” prefixes and changed
        into scoped enums, with the exception of SelectionFlags.

        * Shared/ios/GestureTypes.h: Copied from Source/WebKit2/Shared/ios/WKGestureTypes.h.
        * Shared/ios/WKGestureTypes.h: Removed.
        * UIProcess/API/Cocoa/_WKElementAction.mm:
        (copyElement):
        (saveImage):
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::didUpdateBlockSelectionWithTouch):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _performAction:]):
        (toGestureType):
        (toUIWKGestureType):
        (toSelectionTouch):
        (toUIWKSelectionTouch):
        (toGestureRecognizerState):
        (toUIGestureRecognizerState):
        (toUIWKSelectionFlags):
        (toSelectionHandlePosition):
        (selectionChangedWithGesture):
        (selectionChangedWithTouch):
        (-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]):
        (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
        (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
        (-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
        (-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::rangeForWebSelectionAtPosition):
        (WebKit::WebPage::selectWithGesture):
        (WebKit::distanceBetweenRectsForPosition):
        (WebKit::computeEdgeCenter):
        (WebKit::WebPage::expandedRangeFromHandle):
        (WebKit::WebPage::contractedRangeFromHandle):
        (WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):
        (WebKit::shouldExpand):
        (WebKit::WebPage::changeBlockSelection):
        (WebKit::WebPage::updateBlockSelectionWithTouch):
        (WebKit::WebPage::updateSelectionWithTouches):
        (WebKit::WebPage::performActionOnElement):

2014-04-06  Sam Weinig  <sam@webkit.org>

        Document user content related APIs..

        Reviewed by Anders Carlsson.

        - Also demote WKScriptWorld to SPI.

        * UIProcess/API/Cocoa/WKScriptMessage.h:
        * UIProcess/API/Cocoa/WKScriptMessage.mm:
        (-[WKScriptMessage _scriptWorld]):
        (-[WKScriptMessage scriptWorld]): Deleted.
        * UIProcess/API/Cocoa/WKScriptMessageHandler.h:
        * UIProcess/API/Cocoa/WKScriptMessagePrivate.h: Added.
        * UIProcess/API/Cocoa/WKScriptWorld.h: Removed.
        * UIProcess/API/Cocoa/WKScriptWorld.mm: Removed.
        * UIProcess/API/Cocoa/WKUserContentController.h:
        * UIProcess/API/Cocoa/WKUserContentController.mm:
        (-[WKUserContentController addScriptMessageHandler:name:]):
        (-[WKUserContentController removeScriptMessageHandlerForName:]):
        (-[WKUserContentController _addScriptMessageHandler:name:world:]):
        (-[WKUserContentController _removeScriptMessageHandlerForName:world:]):
        (-[WKUserContentController addScriptMessageHandler:name:world:]): Deleted.
        (-[WKUserContentController removeScriptMessageHandlerForName:world:]): Deleted.
        * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: Added.
        * UIProcess/API/Cocoa/_WKScriptWorld.h: Copied from WebKit2/UIProcess/API/Cocoa/WKScriptWorld.h.
        * UIProcess/API/Cocoa/_WKScriptWorld.mm: Copied from WebKit2/UIProcess/API/Cocoa/WKScriptWorld.mm.
        (+[_WKScriptWorld defaultWorld]):
        (+[WKScriptWorld defaultWorld]): Deleted.
        * WebKit2.xcodeproj/project.pbxproj:

2014-04-04  Brian J. Burg  <burg@cs.washington.edu>

        Enable WEB_REPLAY for PLATFORM(MAC)
        https://bugs.webkit.org/show_bug.cgi?id=130700

        Reviewed by Timothy Hatcher.

        * Configurations/FeatureDefines.xcconfig:

2014-04-05  Miyoung Shin  <myid.m.shin@gmail.com>

        [WK2] Fix unused parameter compile warning.
        https://bugs.webkit.org/show_bug.cgi?id=131260

        Reviewed by Gyuyoung Kim.

        fix unused parameter warning in the WebKit2 build.

        * UIProcess/API/APIDownloadClient.h:
        (API::DownloadClient::didReceiveData):
        (API::DownloadClient::shouldDecodeSourceDataOfMIMEType):
        (API::DownloadClient::decideDestinationWithSuggestedFilename):
        (API::DownloadClient::didCreateDestination):

2014-04-05  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (NetworkProcess): Subresources fail to load from AppCache
        https://bugs.webkit.org/show_bug.cgi?id=131262
        <rdar://problem/15370653>

        Reviewed by Sam Weinig.

        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::WebResourceLoadScheduler::scheduleLoad): Check application cache,
        as done in ResourceLoader::start() for in-process loads.

2014-04-05  Alexey Proskuryakov  <ap@apple.com>

        Frequent PluginProcess crashes at libsqlite3.dylib: openDatabase
        https://bugs.webkit.org/show_bug.cgi?id=131264
        <rdar://problem/14165329>

        Reviewed by Sam Weinig.

        Don't create NSURLCache until after having called setenv.

        * PluginProcess/PluginProcess.h: Added m_nsurlCacheDirectory.

        * PluginProcess/mac/PluginProcessMac.mm:
        (WebKit::PluginProcess::platformInitializePluginProcess): Compute NSURL cache path
        on our own. This does not match CFNetwork's result in most cases, but should work
        equally well.
        (WebKit::PluginProcess::initializeSandbox): Create a cache with our path and best
        guess for capacity.

2014-04-04  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed. iOS Build fix after r166818.

        These member variables / declarations are accessed by iOS
        in shared code in TelephoneNumberOverlayControllerMac.

        * WebProcess/WebPage/TelephoneNumberOverlayController.h:

2014-04-04  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed. Rollout r166812, breaks 32-bit Mavericks build.

        * Shared/mac/CookieStorageShim.mm:
        (WebKit::CookieStorageShim::initialize):
        (-[WKNSURLSessionLocal _copyCookiesForRequestUsingAllAppropriateStorageSemantics:]):

2014-04-04  Brady Eidson  <beidson@apple.com>

        Show DataDetector UI on scanned phone numbers.
        <rdar://problem/16379588> and https://bugs.webkit.org/show_bug.cgi?id=131247

        Reviewed by Tim Horton.

        Add a new PageOverlay for telephone number UI, handle drawing the UI, and
        handle mouse clicks on the button in that UI.

        Even though clicks are detected, they aren’t acted upon yet.

        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::selectedTelephoneNumberRangesChanged): Pass ranges to
          the TelephoneNumberController.
        * WebProcess/WebCoreSupport/WebEditorClient.h:

        This controller handles installing/removing the PageOverlay, drawing the UI elements,
        and handling mouse events while any of the UI elements are shown.
        There’s also a clumsy attempt to keep platform-specific parts separated out.
        * WebProcess/WebPage/TelephoneNumberOverlayController.cpp: Added.
        (WebKit::TelephoneNumberOverlayController::TelephoneNumberOverlayController):
        (WebKit::TelephoneNumberOverlayController::createOverlayIfNeeded):
        (WebKit::TelephoneNumberOverlayController::destroyOverlay):
        (WebKit::TelephoneNumberOverlayController::pageOverlayDestroyed):
        (WebKit::TelephoneNumberOverlayController::willMoveToWebPage):
        (WebKit::TelephoneNumberOverlayController::didMoveToWebPage):
        (WebKit::TelephoneNumberOverlayController::rectsForDrawing):
        (WebKit::TelephoneNumberOverlayController::selectedTelephoneNumberRangesChanged):

        * WebProcess/WebPage/TelephoneNumberOverlayController.h: Added.
        (WebKit::TelephoneNumberOverlayController::create):

        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm: Added.
        (WebKit::TelephoneNumberOverlayController::drawRect):
        (WebKit::TelephoneNumberOverlayController::handleTelephoneClick):
        (WebKit::TelephoneNumberOverlayController::mouseEvent):
        (WebKit::TelephoneNumberOverlayController::clearMouseDownInformation):
        (WebKit::TelephoneNumberOverlayController::clearHighlights):

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::telephoneNumberOverlayController):
        * WebProcess/WebPage/WebPage.h:

        * WebKit2.xcodeproj/project.pbxproj:

2014-04-04  Martin Hock  <mhock@apple.com>

        Include Session ID in WebPageCreationParameters.
        https://bugs.webkit.org/show_bug.cgi?id=131239

        <rdar://problem/16175483>

        Reviewed by Sam Weinig.

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        * Shared/WebPageCreationParameters.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::creationParameters):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):

2014-04-04  Jer Noble  <jer.noble@apple.com>

        [Mac][WK2] Videos do not have access to session cookies
        https://bugs.webkit.org/show_bug.cgi?id=129687

        Reviewed by Eric Carlson.

        Update the CookieStorageShim to track changes in underlying networking stack.

        * Shared/mac/CookieStorageShim.mm:
        (WebKit::CookieStorageShim::initialize):
        (-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):

2014-04-04  Alexey Proskuryakov  <ap@apple.com>

        Improve error checking in WebPageProxy::didReceiveEvent
        https://bugs.webkit.org/show_bug.cgi?id=131243
        <rdar://problem/16529207>

        Reviewed by Anders Carlsson.

        * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didReceiveEvent):

2014-04-04  Anders Carlsson  <andersca@apple.com>

        More documentation
        https://bugs.webkit.org/show_bug.cgi?id=131238

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:

2014-04-04  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>

        [GTK][CMake] Use a stricter check for the HAVE_GTK_UNIX_PRINTING define
        https://bugs.webkit.org/show_bug.cgi?id=131226

        Reviewed by Carlos Garcia Campos.

        #cmakedefine01 will define HAVE_GTK_UNIX_PRINTING to 0 instead of #undef'ining it. This
        means that simple checks like #ifdef HAVE_GTK_UNIX_PRINTING will always be true -- we
        actually need to check if the value is set to 1, which is precisely what the HAVE() macro
        does, so start using it.

        * UIProcess/API/gtk/WebKitPrintOperation.cpp:
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::print):
        * WebProcess/WebPage/gtk/PrinterListGtk.cpp:
        * WebProcess/WebPage/gtk/PrinterListGtk.h:
        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
        (WebKit::WebPrintOperationGtk::create):

2014-04-03  Chris Fleizach  <cfleizach@apple.com>

        AX: iOS does not need to spin the run loop on synchronous message calls
        https://bugs.webkit.org/show_bug.cgi?id=131195

        Reviewed by Dan Bernstein.

        On the Mac platform, we need to spin the run loop while making synchronous calls to avoid VoiceOver hanging.
        On iOS, this not needed due to architectural differences.

        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::runJavaScriptAlert):
        (WebKit::WebChromeClient::runJavaScriptConfirm):
        (WebKit::WebChromeClient::runJavaScriptPrompt):
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::synchronousMessagesShouldSpinRunLoop):
        * WebProcess/WebPage/WebPage.h:

2014-04-03 Andy Estes <aestes@apple.com>

        [Cocoa] Add additional WKWebView SPI for clients that interact with PDFs
        https://bugs.webkit.org/show_bug.cgi?id=131206

        Reviewed by Dan Bernstein.

        Add _dataForDisplayedPDF and _suggestedFilenameForDisplayedPDF to
        support clients that wish to save a copy of the currently displayed PDF
        to disk. Ultimately we should support this use case by exposing something
        like WKWebViewContentProvider, but for now let's do something simple.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:data:]):
        (-[WKWebView _dataForDisplayedPDF]):
        (-[WKWebView _suggestedFilenameForDisplayedPDF]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/Cocoa/WKWebViewContentProvider.h:
        * UIProcess/ios/WKPDFView.h:
        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView documentData]):
        (-[WKPDFView suggestedFilename]):
        (-[WKPDFView web_setContentProviderData:suggestedFilename:]):

2014-04-03  Eunmi Lee  <eunmi15.lee@samsung.com>

        [EFL][WK2] Add API to get contents size of current web page.
        https://bugs.webkit.org/show_bug.cgi?id=131148

        Reviewed by Gyuyoung Kim.

        Application can want to get contents size of current web page without
        monitoring "contents,size,changed" signal, so I add API to get contents
        size directly.

        * UIProcess/API/C/CoordinatedGraphics/WKView.cpp:
        (WKViewGetContentsSize): WK API to get contents size from WebView.
        * UIProcess/API/C/CoordinatedGraphics/WKView.h:
        * UIProcess/API/efl/ewk_view.cpp:
        (ewk_view_contents_size_get): new API to get contents size.
        * UIProcess/API/efl/ewk_view.h:
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F):

2014-04-03  Jinwoo Song  <jinwoo7.song@samsung.com>

        [WK2][EFL] Use template method in creating NativeWebMouseEvent
        https://bugs.webkit.org/show_bug.cgi?id=131152

        Reviewed by Anders Carlsson.

        There are three EFL mouse events, such as Evas_Event_Mouse_Down, Evas_Event_Mouse_Up,
        and Evas_Event_Mouse_Move. They can be defined as a template method.

        * PlatformEfl.cmake: Remove NativeWebMouseEventEfl.cpp
        * Shared/NativeWebMouseEvent.h:
        (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Add a template method.
        * Shared/efl/NativeWebMouseEventEfl.cpp: Removed.

2014-04-03  Anders Carlsson  <andersca@apple.com>

        Add WKWebView documentation
        https://bugs.webkit.org/show_bug.cgi?id=131190

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
        * UIProcess/API/Cocoa/WKNavigationAction.h:
        * UIProcess/API/Cocoa/WKWebView.h:

2014-04-03  Michael Saboff  <msaboff@apple.com>

        REGRESSION: PCE.js is 20x slower in WebKit2 because timers are throttled
        https://bugs.webkit.org/show_bug.cgi?id=131189

        Reviewed by Geoffrey Garen.

        Elevate the priority of all WebKit2 service processes on iOS, not just the network process.

        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):

2014-04-03  Simon Fraser  <simon.fraser@apple.com>

        ASSERT(m_children.isEmpty()) in PlatformCALayerRemote::removeAllSublayers() on time.com
        https://bugs.webkit.org/show_bug.cgi?id=131187

        Reviewed by Maciej Stachowiak.
        
        After a call to PlatformCALayerRemote::adoptSublayers() when a layer
        toggles between tiled and non-tiled, we'd assert in PlatformCALayerRemote::removeAllSublayers()
        that not all sublayers had been removed (there was one with a null superlayer).
        
        Fix by ensuring that we don't copy over custom subviews when adoptSublayers()
        is called; they'll get added as we update children anyway.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::adoptSublayers):

2014-04-03  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Add SPI to handle animated resize
        https://bugs.webkit.org/show_bug.cgi?id=131141

        Reviewed by Simon Fraser.

        Set up a basic API to handle animated resize. The code does not do much at the moment,
        it is mostly to have an interface we can implement later.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView setFrame:]):
        (-[WKWebView setBounds:]):
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView _frameOrBoundsChangedFrom:]):
        (-[WKWebView _beginAnimatedResizeToSize:obscuredInsets:minimumLayoutSizeOverride:]):
        (-[WKWebView _endAnimatedResize]):
        (-[WKWebView _frameOrBoundsChanged]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-04-03  Simon Fraser  <simon.fraser@apple.com>

        Pixelated WebView when display is changed from hiDPI to regularDPI
        https://bugs.webkit.org/show_bug.cgi?id=131185
        <rdar://problem/16512184&16503714>

        Reviewed by Tim Horton.
        
        TileController function was renamed.

        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
        (WebKit::PlatformCALayerRemoteTiledBacking::setContentsScale):

2014-04-03  Sam Weinig  <sam@webkit.org>

        [WebKit2] Promote user script SPI to API
        https://bugs.webkit.org/show_bug.cgi?id=131181

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKScriptMessage.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptMessage.h.
        * UIProcess/API/Cocoa/WKScriptMessage.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptMessage.mm.
        (-[WKScriptMessage scriptWorld]):
        (-[_WKScriptMessage scriptWorld]): Deleted.
        * UIProcess/API/Cocoa/WKScriptMessageHandler.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptMessageHandler.h.
        * UIProcess/API/Cocoa/WKScriptWorld.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
        * UIProcess/API/Cocoa/WKScriptWorld.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.mm.
        (+[WKScriptWorld defaultWorld]):
        (+[_WKScriptWorld defaultWorld]): Deleted.
        * UIProcess/API/Cocoa/WKUserContentController.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentController.h.
        * UIProcess/API/Cocoa/WKUserContentController.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentController.mm.
        (-[WKUserContentController addScriptMessageHandler:name:world:]):
        (-[WKUserContentController removeScriptMessageHandlerForName:world:]):
        (-[_WKUserContentController addScriptMessageHandler:name:world:]): Deleted.
        (-[_WKUserContentController removeScriptMessageHandlerForName:world:]): Deleted.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration copyWithZone:]):
        (-[WKWebViewConfiguration userContentController]):
        (-[WKWebViewConfiguration setUserContentController:]):
        (-[WKWebViewConfiguration _userContentController]): Deleted.
        (-[WKWebViewConfiguration _setUserContentController:]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/API/Cocoa/_WKScriptMessage.h: Removed.
        * UIProcess/API/Cocoa/_WKScriptMessage.mm: Removed.
        * UIProcess/API/Cocoa/_WKScriptMessageHandler.h: Removed.
        * UIProcess/API/Cocoa/_WKScriptWorld.h: Removed.
        * UIProcess/API/Cocoa/_WKScriptWorld.mm: Removed.
        * UIProcess/API/Cocoa/_WKUserContentController.h: Removed.
        * UIProcess/API/Cocoa/_WKUserContentController.mm: Removed.
        * WebKit2.xcodeproj/project.pbxproj:

2014-04-03  Anders Carlsson  <andersca@apple.com>

        Make download policy decisions SPI for now
        https://bugs.webkit.org/show_bug.cgi?id=131179

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
        (NS_ENUM):
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
        (WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

2014-04-02  Simon Fraser  <simon.fraser@apple.com>

        Harden FilterOperation type casting
        https://bugs.webkit.org/show_bug.cgi?id=131142

        Reviewed by Sam Weinig.

        DefaultFilterOperation had an error-prone behavior where it set the base class
        OperationType to the type of some other filter class, but overrode isDefault(). 
        This made it very easy to write incorrect code that casted incorrectly based on type().
        
        Fix by making adding a DEFAULT filter operation type, and storing the represented
        type on DefaultFilterOperation().
        
        Also remove the OperationType argument for constructors of FilterOperations that
        can only be of one type, to avoid possible mistakes.
        
        Make the type cast macros a bit more normal, and use them in a few places.
        
        Fixed PlatformCAFiltersMac to handle the default filter case more cleanly.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::encodeFilterOperation):
        (IPC::decodeFilterOperation):
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTextStream::operator<<):

2014-04-03  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (Async text input): Controls become unresponsive to mouse events
        https://bugs.webkit.org/show_bug.cgi?id=131176
        <rdar://problem/16507932>

        Reviewed by Tim Horton.

        * UIProcess/API/mac/WKView.mm: (NATIVE_MOUSE_EVENT_HANDLER):
        Don't confuse event handling machinery by sending events to WebProcess twice.

2014-04-03  Anders Carlsson  <andersca@apple.com>

        WKWebView should always have a UIDelegate, even when closed
        https://bugs.webkit.org/show_bug.cgi?id=131174
        <rdar://problem/16389248>

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView UIDelegate]):
        (-[WKWebView setUIDelegate:]):
        * UIProcess/Cocoa/UIDelegate.h:
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIDelegate::UIDelegate):
        (WebKit::UIDelegate::~UIDelegate):
        (WebKit::UIDelegate::createUIClient):
        (WebKit::UIDelegate::delegate):
        (WebKit::UIDelegate::setDelegate):
        (WebKit::UIDelegate::UIClient::UIClient):
        (WebKit::UIDelegate::UIClient::~UIClient):
        (WebKit::UIDelegate::UIClient::createNewPage):
        (WebKit::UIDelegate::UIClient::runJavaScriptAlert):
        (WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
        (WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
        (WebKit::UIDelegate::UIClient::actionsForElement):
        (WebKit::UIClient::UIClient): Deleted.
        (WebKit::UIClient::~UIClient): Deleted.
        (WebKit::UIClient::delegate): Deleted.
        (WebKit::UIClient::setDelegate): Deleted.
        (WebKit::UIClient::createNewPage): Deleted.
        (WebKit::UIClient::runJavaScriptAlert): Deleted.
        (WebKit::UIClient::runJavaScriptConfirm): Deleted.
        (WebKit::UIClient::runJavaScriptPrompt): Deleted.
        (WebKit::UIClient::actionsForElement): Deleted.
        * UIProcess/ios/WKActionSheetAssistant.mm:

2014-04-02  Anders Carlsson  <andersca@apple.com>

        Document WKNavigationAction and WKNavigationResponse
        https://bugs.webkit.org/show_bug.cgi?id=131138

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKFrameInfo.h:
        * UIProcess/API/Cocoa/WKNavigationAction.h:
        * UIProcess/API/Cocoa/WKNavigationResponse.h:

2014-04-03  Anders Carlsson  <andersca@apple.com>

        Make actionsForElement a proper API::UIClient member function
        https://bugs.webkit.org/show_bug.cgi?id=131171

        Reviewed by Sam Weinig.

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::actionsForElement):
        * UIProcess/Cocoa/UIDelegate.h:
        * UIProcess/Cocoa/UIDelegate.mm:
        (WebKit::UIClient::actionsForElement):
        * UIProcess/ios/WKActionSheetAssistant.mm:
        (-[WKActionSheetAssistant showImageSheet]):
        (-[WKActionSheetAssistant showLinkSheet]):

2014-04-03  Martin Hodovan  <mhodovan@inf.u-szeged.hu>

        [WK2] Fix !ENABLE(BLOB) build
        https://bugs.webkit.org/show_bug.cgi?id=131164

        Reviewed by Alexey Proskuryakov.

        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::didClose):
        * NetworkProcess/NetworkConnectionToWebProcess.h:
        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:

2014-04-03  Anders Carlsson  <andersca@apple.com>

        Fix iOS build.

        * UIProcess/ios/WKActionSheetAssistant.mm:

2014-04-03  Anders Carlsson  <andersca@apple.com>

        Rename UIClient.{h, mm} to UIDelegate.{h, mm}.

        Rubber-stamped by Dan Bernstein.

        * UIProcess/API/Cocoa/WKWebView.mm:
        * UIProcess/Cocoa/UIDelegate.h: Renamed from Source/WebKit2/UIProcess/Cocoa/UIClient.h.
        * UIProcess/Cocoa/UIDelegate.mm: Renamed from Source/WebKit2/UIProcess/Cocoa/UIClient.mm.
        * WebKit2.xcodeproj/project.pbxproj:

2014-04-03  Andrzej Badowski  <a.badowski@samsung.com>

        [EFL][WK2] Replacing zoom functionality of MiniBrowser from scale_set to page_zoom_set.
        https://bugs.webkit.org/show_bug.cgi?id=130391

        Reviewed by Gyuyoung Kim.

        Change the implementation of the zoom functionality from ewk_view_scale_set
        to ewk_view_page_zoom_set. Adding to the API functions: ewk_view_page_zoom_set and
        ewk_view_page_zoom_get to call appropriate WK functions.

        * UIProcess/API/efl/ewk_view.cpp:
        (ewk_view_page_zoom_set):
        (ewk_view_page_zoom_get):
        * UIProcess/API/efl/ewk_view.h:
        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F):

2014-04-02  Alexey Proskuryakov  <ap@apple.com>

        Sandbox violation in NetworkProcess when uploading a bundle
        https://bugs.webkit.org/show_bug.cgi?id=131133

        Reviewed by Brady Eidson.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::cleanup):
        (WebKit::NetworkResourceLoader::didReceiveResponseAsync):
        Don't delete the files. It can't work.

2014-04-02  Jinwoo Song  <jinwoo7.song@samsung.com>

        [WK2][EFL] Remove unnecessary reinterpret_cast<> in unit testcase
        https://bugs.webkit.org/show_bug.cgi?id=131143

        Reviewed by Gyuyoung Kim.

        Ecore_Timer callback requires *Eina_Bool* return type instead of *bool*.
        Also, WebKit/EFL port coding style recommends to use *Eina_Bool* in the
        callback function for EFL event handler. Additionally, replaced 0 to nullptr.

        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
        (EWK2UnitTest::CallbackDataTimer::CallbackDataTimer):
        (EWK2UnitTest::CallbackDataTimer::setDone):
        (EWK2UnitTest::CallbackDataTimer::timeOutCallback):
        (EWK2UnitTest::CallbackDataTimer::setTimedOut):
        * UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
        (EWK2StorageManagerTest::timerCallback):
        (TEST_F):

2014-04-02  Tim Horton  <timothy_horton@apple.com>

        Remove a FIXME that happened.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::display):

2014-04-02  Tim Horton  <timothy_horton@apple.com>

        Fix the !USE(IOSURFACE) build... again.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):

2014-04-02  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/131135> Introduce LockHistory and LockBackForwardList enums to use in place of bools.

        These arguments are often passed using literals at the call site, where the use of bools severely hinders
        the readability of the code.

        Reviewed by Andreas Kling.

        * WebProcess/Plugins/PDF/PDFPlugin.mm:
        (WebKit::PDFPlugin::clickedLink):

2014-04-02  Tim Horton  <timothy_horton@apple.com>

        Pool IOSurfaces to help with allocation cost
        https://bugs.webkit.org/show_bug.cgi?id=131096
        <rdar://problem/15373942>

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerBackingStore.h:
        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore):
        (WebKit::RemoteLayerBackingStore::clearBackingStore):
        (WebKit::RemoteLayerBackingStore::display):
        When RemoteLayerBackingStore discards a layer, throw it into the pool.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        Disable the pool in the UI process.

2014-04-02  Alice Barraclough  <alice.barraclough@apple.com>

        Fix a typo causing TestWebKitAPI to timeout when testing Find.

        Reviewed by Dan Bernstein.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageFindClient): Test for !functionPointer like
        all the other implementations do.

2014-04-02  Dean Jackson  <dino@apple.com>

        [iOS] Expose geolocation provider on the process pool
        https://bugs.webkit.org/show_bug.cgi?id=131125

        Reviewed by Dan Bernstein.

        Followup comments from Dan Bernstein. Use a class
        extension rather than a new category.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _geolocationProvider]):
        * UIProcess/API/Cocoa/WKProcessPoolInternal.h:

2014-04-02  Tim Horton  <timothy_horton@apple.com>

        RemoteLayerBackingStore doesn't need to clear opaque layers
        https://bugs.webkit.org/show_bug.cgi?id=131134

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::display):
        We don't need to clear opaque layers, because we'll paint
        over the whole area. In addition, we should fill opaque layers
        with a bright color in debug builds to make it very clear
        that we've made a mistake (similar to what FrameView does).

2014-04-02  Anders Carlsson  <andersca@apple.com>

        Document WKBackForwardList, WKBackForwardListItem and WKWebViewConfiguration
        https://bugs.webkit.org/show_bug.cgi?id=131131

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:

2014-04-02  Anders Carlsson  <andersca@apple.com>

        Document WKUIDelegate and WKWindowFeatures
        https://bugs.webkit.org/show_bug.cgi?id=131124

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKProcessPool.h:
        * UIProcess/API/Cocoa/WKUIDelegate.h:
        * UIProcess/API/Cocoa/WKWindowFeatures.h:

2014-04-02  Dean Jackson  <dino@apple.com>

        [iOS] Expose geolocation provider on the process pool
        https://bugs.webkit.org/show_bug.cgi?id=131125

        Patch by Sam Weinig.
        Reviewed by Dean Jackson.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _geolocationProvider]): Create and initialize WKGeolocationProviderIOS if necessary.
        * UIProcess/API/Cocoa/WKProcessPoolInternal.h: Expose _geolocationProvider.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]): Call into WKProcessPool.

2014-04-02  Martin Hock  <mhock@apple.com>

        Unify private browsing with sessions.
        https://bugs.webkit.org/show_bug.cgi?id=130099

        Reviewed by Alexey Proskuryakov.

        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: Change WebPage::isUsingEphemeralSession() to WebPage::usesEphemeralSession().
        (WKBundlePageIsUsingEphemeralSession):
        * WebProcess/InjectedBundle/InjectedBundle.cpp: Change Settings::setPrivateBrowsingEnabled() to Page::enableLegacyPrivateBrowsing().
        (WebKit::InjectedBundle::setPrivateBrowsingEnabled):
        * WebProcess/Plugins/PluginView.cpp: Change Settings::privateBrowsingEnabled() to Page::usesEphemeralSession().
        (WebKit::PluginView::isPrivateBrowsingEnabled):
        * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp: Ditto.
        (WebKit::WebFrameNetworkingContext::storageSession):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::usesEphemeralSession): Renamed from isUsingEphemeralSession.
        (WebKit::WebPage::setSessionID): Ensure session before setting.
        (WebKit::WebPage::updatePreferences): Set session to legacy private session if needed.
        (WebKit::WebPage::sessionID): Moved to header.
        (WebKit::WebPage::isUsingEphemeralSession): Renamed to usesEphemeralSession.
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::sessionID): Just call down to m_page.

2014-04-02  Alice Barraclough  <alice.liu@apple.com>

        Adding Objective-C SPI for Find in Page.
        https://bugs.webkit.org/show_bug.cgi?id=131000 Need an Objective-C API or SPI for Find in Page

        Reviewed by Dan Bernstein.

        Find-on-page SPI added to WKWebView, which funnels the messages through the WebPageProxy.
        Returning messages are designated by _WKFindDelegate protocol.
        Also provide FindDelegate access on WKWebView.
        WebPageProxy gets a new-style API::FindClient.
        Also had to replicate WKFindOptions as _WKFindOptions in Cocoa SPI. This is unfortunate, but it 
        does follow the pattern of other options & enums related to classes that are SPI-for-now.
        
        PageClientImplIOS handles setFindIndicator function by forwarding to its WKContentView, 
        but WKContentView _setFindIndicator remains unimplemented for now.
        
        * UIProcess/API/APIFindClient.h: Added.
        (API::FindClient::~FindClient):
        (API::FindClient::didCountStringMatches):
        (API::FindClient::didFindString):
        (API::FindClient::didFailToFindString):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageFindClient):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView _findDelegate]):
        (-[WKWebView _setFindDelegate:]):
        (toFindOptions):
        (-[WKWebView _countStringMatches:options:maxCount:]):
        (-[WKWebView _findString:options:maxCount:]):
        (-[WKWebView _hideFindUI]):
        (-[WKWebView _hostForFindUI]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        (NS_OPTIONS):
        * UIProcess/API/Cocoa/_WKFindDelegate.h: Added.
        * UIProcess/Cocoa/FindClient.h: Added.
        * UIProcess/Cocoa/FindClient.mm: Added.
        (WebKit::FindClient::FindClient):
        (WebKit::FindClient::delegate):
        (WebKit::FindClient::setDelegate):
        (WebKit::FindClient::didCountStringMatches):
        (WebKit::FindClient::didFindString):
        (WebKit::FindClient::didFailToFindString):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::setFindClient):
        (WebKit::WebPageProxy::close):
        (WebKit::WebPageProxy::didCountStringMatches):
        (WebKit::WebPageProxy::didFindString):
        (WebKit::WebPageProxy::didFailToFindString):
        (WebKit::WebPageProxy::initializeFindClient): Deleted.
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::findClient):
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::setFindIndicator):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _setFindIndicator:WebKit::fadeOut:animate:]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-04-02  Anders Carlsson  <andersca@apple.com>

        Rename -[WKBackForwardListItem originalURL] to -[WKBackForwardListItem initialURL]
        https://bugs.webkit.org/show_bug.cgi?id=131116

        Reviewed by Antti Koivisto.

        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
        * UIProcess/API/Cocoa/WKBackForwardListItem.mm:
        (-[WKBackForwardListItem initialURL]):
        (-[WKBackForwardListItem originalURL]): Deleted.

2014-04-02  Antti Koivisto  <antti@apple.com>

        Split tile grid out from TileController
        https://bugs.webkit.org/show_bug.cgi?id=131102

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
        (WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:

2014-04-02  Anders Carlsson  <andersca@apple.com>

        Try a workaround for a crash
        https://bugs.webkit.org/show_bug.cgi?id=131112

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView UIDelegate]):
        (-[WKWebView setUIDelegate:]):

2014-04-02  Martin Robinson  <mrobinson@igalia.com>

        REGRESSION(r165704): [GTK] Inspector resources not correctly generated
        https://bugs.webkit.org/show_bug.cgi?id=130343

        Reviewed by Gustavo Noronha Silva.

        * PlatformGTK.cmake: Pass all appropriate directories to the
        GResources XML generation script.

2014-04-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Move NEWS file to a new location
        https://bugs.webkit.org/show_bug.cgi?id=130901

        Reviewed by Brent Fulgham.

        * gtk/NEWS: Renamed from Source/WebKit/gtk/NEWS.

2014-04-01  Benjamin Poulain  <bpoulain@apple.com>

        <rdar://problem/16294704> Remove _pageExtendedBackgroundColor entirely
        https://bugs.webkit.org/show_bug.cgi?id=131075

        Reviewed by Beth Dakin.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _pageExtendedBackgroundColor]): Deleted.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-04-01  Anders Carlsson  <andersca@apple.com>

        Stub out more WKNavigation properties
        https://bugs.webkit.org/show_bug.cgi?id=131080

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigation.mm:
        (-[WKNavigation initialRequest]):
        (-[WKNavigation response]):
        (-[WKNavigation error]):

2014-04-01  Anders Carlsson  <andersca@apple.com>

        Rename -[WKWebView activeURL] to -[WKWebView URL]
        https://bugs.webkit.org/show_bug.cgi?id=131077

        Reviewed by Tim Horton.

        Keep -[WKWebView activeURL] as SPI until no clients depend on it.

        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView URL]):
        (-[WKWebView activeURL]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::willChangeActiveURL):
        (WebKit::NavigationState::didChangeActiveURL):

2014-04-01  Anders Carlsson  <andersca@apple.com>

        Move -[WKWebView stopLoading:] back to WKIBActions
        https://bugs.webkit.org/show_bug.cgi?id=131072

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView stopLoading:]):

2014-04-01  Anders Carlsson  <andersca@apple.com>

        Migrate more headers
        https://bugs.webkit.org/show_bug.cgi?id=131068

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKBackForwardList.h:
        Remove a newline.

        * WebKit2.xcodeproj/project.pbxproj:
        Move files from the "Deprecated" group.

2014-04-01  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Enable runtime feature if feature flag is enabled
        https://bugs.webkit.org/show_bug.cgi?id=130013

        Reviewed by Simon Fraser.

        Enable CSS Grid Layout runtime feature when ENABLE_CSS_GRID_LAYOUT flag is true.

        * Shared/WebPreferencesStore.h:

2014-04-01  Anders Carlsson  <andersca@apple.com>

        Demote WKBackForwardListDidChangeNotification to SPI
        https://bugs.webkit.org/show_bug.cgi?id=131059

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardList.mm:
        * UIProcess/API/Cocoa/WKBackForwardListInternal.h:
        * UIProcess/API/Cocoa/WKBackForwardListPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListInternal.h.
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::LoaderClient::didChangeBackForwardList):
        * WebKit2.xcodeproj/project.pbxproj:

2014-04-01  Andy Estes  <aestes@apple.com>

        [Cocoa] Add SPI to determine if a WKWebView is displaying a PDF
        https://bugs.webkit.org/show_bug.cgi?id=131063

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _isDisplayingPDF]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-04-01  Simon Fraser  <simon.fraser@apple.com>

        Remove some explicit template instantiations from logging code
        https://bugs.webkit.org/show_bug.cgi?id=131065

        Reviewed by Tim Horton.
        
        No need to explicitly state template types.

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::dumpChangedLayers):

2014-04-01  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Partial repaint is broken
        https://bugs.webkit.org/show_bug.cgi?id=131056

        Reviewed by Dean Jackson.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (WebKit::RemoteLayerBackingStore::display):
        We need to check if the repaint rects themselves cover the whole
        layer's surface, not just their bounds. Otherwise, we'll optimize
        out the back->front copy and end up not painting the whole layer.

2014-04-01  Anders Carlsson  <andersca@apple.com>

        Pass a WKNavigationAction to the create UIDelegate method
        https://bugs.webkit.org/show_bug.cgi?id=131053

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKUIDelegate.h:
        * UIProcess/Cocoa/UIClient.h:
        * UIProcess/Cocoa/UIClient.mm:
        (WebKit::UIClient::setDelegate):
        (WebKit::UIClient::createNewPage):

2014-04-01  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Remove the two finger pan gesture recognizer until it is actually implemented
        https://bugs.webkit.org/show_bug.cgi?id=131009

        Reviewed by Sam Weinig.

        The two finger pan should not block the pinch gesture recognizer.

        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView setupInteraction]):
        (-[WKContentView cleanupInteraction]):
        (-[WKContentView gestureRecognizerShouldBegin:]):
        (-[WKContentView _twoFingerPanRecognized:]): Deleted.

2014-04-01  Anders Carlsson  <andersca@apple.com>

        Remove limits from WKBackForwardList getters
        https://bugs.webkit.org/show_bug.cgi?id=131052

        Reviewed by Beth Dakin.

        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardList.mm:
        (-[WKBackForwardList backList]):
        (-[WKBackForwardList forwardList]):
        (-[WKBackForwardList backListCount]): Deleted.
        (-[WKBackForwardList forwardListCount]): Deleted.
        (-[WKBackForwardList backListWithLimit:]): Deleted.
        (-[WKBackForwardList forwardListWithLimit:]): Deleted.
        * UIProcess/WebBackForwardList.cpp:
        (WebKit::WebBackForwardList::backList):
        (WebKit::WebBackForwardList::forwardList):
        * UIProcess/WebBackForwardList.h:

2014-04-01  Anders Carlsson  <andersca@apple.com>

        Stub out the web process -> UI process message SPI
        https://bugs.webkit.org/show_bug.cgi?id=131048

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration copyWithZone:]):
        (-[WKWebViewConfiguration _userContentController]):
        (-[WKWebViewConfiguration _setUserContentController:]):
        * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/API/Cocoa/_WKScriptMessage.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
        * UIProcess/API/Cocoa/_WKScriptMessage.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
        (-[_WKScriptMessage body]):
        (-[_WKScriptMessage originatingWebView]):
        * UIProcess/API/Cocoa/_WKScriptMessageHandler.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
        * UIProcess/API/Cocoa/_WKScriptWorld.h:
        * UIProcess/API/Cocoa/_WKUserContentController.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
        * UIProcess/API/Cocoa/_WKUserContentController.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h.
        (-[_WKUserContentController addScriptMessageHandler:name:world:]):
        (-[_WKUserContentController removeScriptMessageHandler:]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-04-01  Andreas Kling  <akling@apple.com>

        Invalidate CFNetwork connection cache on memory pressure.
        <https://webkit.org/b/131038>

        Stop holding on to cached HTTP connections if we come under memory pressure.

        Reviewed by Geoff Malloc-Garen.

        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
        (WebKit::NetworkProcess::platformLowMemoryHandler):

2014-04-01  Anders Carlsson  <andersca@apple.com>

        Tweak WKPreferences API
        https://bugs.webkit.org/show_bug.cgi?id=131047

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences init]):
        (-[WKPreferences initWithUserDefaultsKeyPrefix:]):
        (-[WKPreferences userDefaultsKeyPrefix]):
        (-[WKPreferences initWithUserDefaultsPrefixKey:]): Deleted.
        (-[WKPreferences userDefaultsPrefixKey]): Deleted.

2014-03-31  Simon Fraser  <simon.fraser@apple.com>

        Enable WEB_TIMING on Mac and iOS
        https://bugs.webkit.org/show_bug.cgi?id=128064

        Reviewed by Sam Weinig, Brent Fulgham.
        
        Enable WEB_TIMING.

        * Configurations/FeatureDefines.xcconfig:

2014-03-31  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Fix animations, and add logging
        https://bugs.webkit.org/show_bug.cgi?id=131011

        Reviewed by Tim Horton.
        
        UI-side animations were broken because GraphicsLayerCARemote::addAnimation()
        never called the superclass, so fix.
        
        Add logging for animations to the layer tree commit output.

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::dumpProperty):
        (WebKit::RemoteLayerTreeTextStream::operator<<):
        (WebKit::dumpChangedLayers):
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
        (WebKit::GraphicsLayerCARemote::addAnimation):

2014-04-01  Zalan Bujtas  <zalan@apple.com>

        Build fix after r166582.

        * Shared/ContextMenuContextData.cpp:
        (WebKit::ContextMenuContextData::ContextMenuContextData):

2014-04-01  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Transition class Image (and its dependencies) from int to float to enable subpixel positioned/sized images.
        https://bugs.webkit.org/show_bug.cgi?id=130643

        Reviewed by Simon Fraser.

        This is in preparation to support subpixel positioned/sized background images. While 1x bitmap images can't take
        subpixel sizing on hidpi resolutions, both generated and hidpi images can.
        This patch does not change Image behavior in general as both position and size are still snapped to integral values.  

        No change in behavior.

        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::encodeImage):
        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::updateCursor):

2014-04-01  Joonghun Park  <jh718.park@samsung.com>

        [EFL][WK2] Fix and update the existing test case for ewk_database_manager_origins_async_get API
        https://bugs.webkit.org/show_bug.cgi?id=131017

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/efl/tests/test_ewk2_database_manager.cpp:
        Fix memory leaks and errors caused by duplication of Ecore_Timer deletion
        as well as update a naming style of local variable.
        (EWK2DatabaseManagerTest::databaseOriginsCallback):
        (TEST_F):

2014-04-01  Zan Dobersek  <zdobersek@igalia.com>

        Don't copy the children map in webkitWebViewBaseContainerForall
        https://bugs.webkit.org/show_bug.cgi?id=131016

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseContainerForall): Avoid copying the GtkWidget-to-IntRect HashMap object
        by transforming the iteration to a range-based for-loop over that HashMap's keys.

2014-04-01  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Don't copy the ResourceResponse object in webkitWebViewDecidePolicy
        https://bugs.webkit.org/show_bug.cgi?id=131015

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkitWebViewDecidePolicy): Avoid copying the ResourceResponce object returned by webkitURIResponseGetResourceResponse.
        That function already returns a reference, so the return value should be stored accordingly.

2014-04-01  Eunmi Lee  <eunmi15.lee@samsung.com>

        [CoordinatedGraphics] Content scale factor should not be applied to draw contents when fixed layout is not used.
        https://bugs.webkit.org/show_bug.cgi?id=130962

        Reviewed by Gyuyoung Kim.

        Delegating scaling is turned off when fixed layout is not used in the
        coordinated graphics, so page scale factor is applied to the contents
        directly.
        In that case, we should not apply page scale factor to coordinated
        graphics to draw contents and calculate visible content rect.

        Currently, page scale factor is applied twice to the coordinated
        graphics and contents, so result of scaling is abnormal.

        * UIProcess/CoordinatedGraphics/WebView.cpp:
        (WebKit::WebView::transformToScene):
        (WebKit::WebView::visibleContentsSize):

2014-04-01  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Rename ewk_application_cache_manager_delete{_all}
        https://bugs.webkit.org/show_bug.cgi?id=131012

        Reviewed by Gyuyoung Kim.

        While discussing Bug 130577, we resulted that _clear and _xxx_del is better name for the EFL.
        This patch will rename similar API in ewk_application_cache_manager.

        In addition, fixed some typos in doxygen.

        * UIProcess/API/efl/ewk_application_cache_manager.cpp:
        (ewk_application_cache_manager_clear): Renamed from ewk_application_cache_manager_delete_all
        (ewk_application_cache_manager_entries_for_origin_del): Renamed from ewk_application_cache_manager_delete
        (ewk_application_cache_manager_delete_all): Deleted.
        (ewk_application_cache_manager_delete): Deleted.
        * UIProcess/API/efl/ewk_application_cache_manager.h:
        * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
        (TEST_F):

2014-03-31  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed GTK build fix after r166553.

        * UIProcess/API/gtk/WebKitSettings.cpp:
        (_WebKitSettingsPrivate::_WebKitSettingsPrivate): Pass 'WebKit2.' as the second argument to WebPreferences::create().

2014-03-31  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Extract the control of page background out of color_set
        https://bugs.webkit.org/show_bug.cgi?id=127539

        Reviewed by Gyuyoung Kim.

        EFL have a way to change the color using evas_object_color_set and we used it to change background.
        But, We should not use it because the alpha value of color_set is used
        for the transparancy of object itself including background and contents.

        This patch added ewk_view_bg_color_{get|set} to change the background color.

        * UIProcess/API/C/efl/WKViewEfl.cpp:
        Extracted controls of page background out of color_set.
        color_set will be only used for the opacity of whole contents.
        (WKViewSetBackgroundColor): Added to share page background color.
        (WKViewGetBackgroundColor):
        * UIProcess/API/C/efl/WKViewEfl.h:
        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::handleEvasObjectColorSet):
        * UIProcess/API/efl/ewk_view.cpp:
        Removed ewk_view_draws_page_background_set which just control whether to draw background.
        ewk_view_bg_color_set will conver it.
        (ewk_view_bg_color_set):
        (ewk_view_bg_color_get):
        * UIProcess/API/efl/ewk_view.h:
        * UIProcess/API/efl/tests/test_ewk2_view.cpp: Added simple test case.
        * UIProcess/efl/WebViewEfl.cpp:
        (WebKit::WebViewEfl::setViewBackgroundColor):
        (WebKit::WebViewEfl::viewBackgroundColor):
        * UIProcess/efl/WebViewEfl.h:

2014-03-31  Joonghun Park  <jh718.park@samsung.com>

        [EFL][WK2]Implement ewk APIs of web local storage which have deletion functions of the local storage entries
        https://bugs.webkit.org/show_bug.cgi?id=130577

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/efl/ewk_storage_manager.cpp:
        (ewk_storage_manager_entries_clear):
        (ewk_storage_manager_entries_for_origin_del):
        * UIProcess/API/efl/ewk_storage_manager.h:
        * UIProcess/API/efl/ewk_storage_manager_private.h:
        (EwkStorageManager::wkStorageManager):
        * UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
        adding and updating API unittest and fixing memory leak of the existing test case
        (EWK2StorageManagerTest::getStorageOriginsCallback):
        (EWK2StorageManagerTest::checkOrigin):
        (EWK2StorageManagerTest::getOrigin):
        (TEST_F):

2014-03-31  Anders Carlsson  <andersca@apple.com>

        Rename policy enums to match the delegate methods
        https://bugs.webkit.org/show_bug.cgi?id=131002

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        (NS_ENUM):
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
        (WebKit::NavigationState::PolicyClient::decidePolicyForResponse):

2014-03-31  Anders Carlsson  <andersca@apple.com>

        Add more preferences
        https://bugs.webkit.org/show_bug.cgi?id=131001

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences isJavaScriptEnabled]):
        (-[WKPreferences setJavaScriptEnabled:]):
        (-[WKPreferences javaScriptCanOpenWindowsAutomatically]):
        (-[WKPreferences setJavaScriptCanOpenWindowsAutomatically:]):
        (-[WKPreferences suppressesIncrementalRendering]):
        (-[WKPreferences setSuppressesIncrementalRendering:]):
        (-[WKPreferences isJavaEnabled]):
        (-[WKPreferences setJavaEnabled:]):
        (-[WKPreferences arePlugInsEnabled]):
        (-[WKPreferences setPlugInsEnabled:]):

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        Fix the build.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-03-31  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build.

        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (WebKit::RemoteLayerTreeHost::createLayer):
        * UIProcess/mac/RemoteLayerTreeHost.h:
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::setLayerID):
        (WebKit::RemoteLayerTreeHost::layerID):
        (WebKit::RemoteLayerTreeHost::createLayer):

2014-03-31  Anders Carlsson  <andersca@apple.com>

        Add a couple of iOS specific preferences
        https://bugs.webkit.org/show_bug.cgi?id=130999

        Reviewed by Simon Fraser.

        * Shared/WebPreferencesStore.h:
        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences allowsInlineMediaPlayback]):
        (-[WKPreferences setAllowsInlineMediaPlayback:]):
        (-[WKPreferences mediaPlaybackRequiresUserAction]):
        (-[WKPreferences setMediaPlaybackRequiresUserAction:]):
        (-[WKPreferences mediaPlaybackAllowsAirPlay]):
        (-[WKPreferences setMediaPlaybackAllowsAirPlay:]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-03-31  Anders Carlsson  <andersca@apple.com>

        Add a new -[WKPreferences initWithUserDefaultsPrefixKey:] initializer
        https://bugs.webkit.org/show_bug.cgi?id=130996

        Reviewed by Simon Fraser.

        Add a "key prefix" to the WebKit::WebPreferences create function, so we can use a different
        key prefix ("WebKit") for the modern API and not pollute the user defaults namespace with
        the old key prefix ("WebKit2.").
        
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesCreate):
        (WKPreferencesCreateWithIdentifier):
        * UIProcess/API/Cocoa/WKPreferences.h:
        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences init]):
        (-[WKPreferences initWithUserDefaultsPrefixKey:]):
        (-[WKPreferences userDefaultsPrefixKey]):
        * UIProcess/WebPageGroup.cpp:
        (WebKit::WebPageGroup::WebPageGroup):
        * UIProcess/WebPreferences.cpp:
        (WebKit::WebPreferences::WebPreferences):
        * UIProcess/WebPreferences.h:
        (WebKit::WebPreferences::create):
        * UIProcess/mac/WebPreferencesMac.mm:
        (WebKit::makeKey):
        (WebKit::setStringValueIfInUserDefaults):
        (WebKit::setBoolValueIfInUserDefaults):
        (WebKit::setUInt32ValueIfInUserDefaults):
        (WebKit::setDoubleValueIfInUserDefaults):
        (WebKit::WebPreferences::platformInitializeStore):
        (WebKit::WebPreferences::platformUpdateStringValueForKey):
        (WebKit::WebPreferences::platformUpdateBoolValueForKey):
        (WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
        (WebKit::WebPreferences::platformUpdateDoubleValueForKey):
        (WebKit::WebPreferences::platformUpdateFloatValueForKey):

2014-03-31  Pratik Solanki  <psolanki@apple.com>

        Remove duplicate entries in Derived Sources.

        Rubber-stamped by Anders Carlsson.

        * WebKit2.xcodeproj/project.pbxproj:

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        Fix the build.

        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::updateLayerTree):

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        Fix the build.

        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::updateLayerTree):

2014-03-31  Anders Carlsson  <andersca@apple.com>

        Rename -[WKNavigationAction destinationFrame] to -[WKNavigationAction targetFrame]
        https://bugs.webkit.org/show_bug.cgi?id=130994

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKNavigationAction.h:
        * UIProcess/API/Cocoa/WKNavigationAction.mm:
        (-[WKNavigationAction description]):
        (-[WKNavigationAction targetFrame]):
        (-[WKNavigationAction setTargetFrame:]):
        (-[WKNavigationAction destinationFrame]): Deleted.
        (-[WKNavigationAction setDestinationFrame:]): Deleted.
        * UIProcess/API/Cocoa/WKNavigationActionInternal.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
        https://bugs.webkit.org/show_bug.cgi?id=130768
        <rdar://problem/16421471>

        Reviewed by Benjamin Poulain.

        * Shared/mac/RemoteLayerBackingStore.h:
        Make RemoteLayerBackingStore noncopyable.
        Add flush(), which synchronously flushes painting operations on the underlying backing store.
        Add storage for the CGContext that needs to be flushed, and ensure that it is flushed before we paint again.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::display):

        (RemoteLayerBackingStore::drawInContext):
        Don't flush the context immediately after painting.

        (RemoteLayerBackingStore::flush):
        Flush the current front surface/buffer's context.
        Clear the new pending-flush members.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::flushBackingStoreChangesInTransaction):
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        Crawl through all of the valid changed backing stores in the transaction and flush them.
        Reset changed properties after encoding the commit.

        * Shared/mac/RemoteLayerTreeTransaction.h:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties):
        (WebKit::RemoteLayerTreeTransaction::changedLayers):
        (WebKit::RemoteLayerTreeTransaction::changedLayerProperties):
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
        (WebKit::RemoteLayerTreeTransaction::encode):
        (WebKit::RemoteLayerTreeTransaction::decode):
        (WebKit::RemoteLayerTreeTransaction::layerPropertiesChanged):
        (WebKit::dumpChangedLayers):
        Instead of storing a copy of the LayerProperties struct for each changed layer
        while building the transaction in the Web process, store a list of changed layers,
        and directly encode the commit from those layers' LayerProperties. This provides a few benefits:
                - We avoid copying LayerProperties for every changed layer, every commit
                - We can make RemoteLayerBackingStore noncopyable
                - We can walk the changed layers after building the transaction
                in order to flush backing store, and actually affect the layers'
                own RemoteLayerBackingStore instead of a copy.
        The UI process will still generate a LayerPropertiesMap at decode time.
        
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::updateLayerTree):
        Don't copy the LayerProperties struct for the debug overlay. Instead,
        adjust the properties which the debug overlay whacks directly on the layer,
        after applying the normal LayerProperties.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (PlatformCALayerRemote::recursiveBuildTransaction):
        Don't reset changed layer properties in the middle of building a transaction. Instead,
        RemoteLayerTreeDrawingArea::flushLayers() will reset all the flags on all changed layers
        after the commit is encoded.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        (WebKit::PlatformCALayerRemote::properties):

2014-03-31  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Proxy animations to the UI process
        https://bugs.webkit.org/show_bug.cgi?id=130946

        Reviewed by Tim Horton.
        
        Add encoding/decoding of TimingFunctions. Add encoding support
        for HashSet.
        
        Add PlatformCAAnimationRemote and have PlatformCALayerRemote allow
        animations now. PlatformCALayerRemote's properties are defined in the class,
        as is the encoding/decoding (much cleaner than having them in the transaction
        class I think).
        
        Add support for the "animationDidStart" callback and sending this back to the
        web process. This involves a HashMap of layerID->WKAnimationDelegate stored
        on the RemoteLayerTreeHost, and a message send via the DrawingArea. On the
        other side, RemoteLayerTreeContext stores a HashMap of layerID->PlatformCALayerRemote*
        for layers which have just started animations, which is used to get the
        PlatformCALayer* to call animationDidStart() on.
        
        This requires that the RemoteLayerTreeHost* be passed down into property application,
        and that the RemoteLayerTreeHost have a reference to the drawing area.
        
        To every CALayer in the UI process we -setValue:forKey: to track the PlatformLayerID,
        so we can get back to it in order to dispatch "animationDidStart".
        
        Replace some "using namespace WebKit" with "namespace WebKit { }".

        * Platform/IPC/ArgumentCoders.h:
        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<LinearTimingFunction>::encode):
        (IPC::ArgumentCoder<LinearTimingFunction>::decode):
        (IPC::ArgumentCoder<CubicBezierTimingFunction>::encode):
        (IPC::ArgumentCoder<CubicBezierTimingFunction>::decode):
        (IPC::ArgumentCoder<StepsTimingFunction>::encode):
        (IPC::ArgumentCoder<StepsTimingFunction>::decode):
        * Shared/WebCoreArgumentCoders.h:
        * Shared/mac/RemoteLayerBackingStore.mm:
        * Shared/mac/RemoteLayerTreePropertyApplier.h:
        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::applyPropertiesToLayer):
        (WebKit::RemoteLayerTreePropertyApplier::applyProperties):
        * Shared/mac/RemoteLayerTreeTransaction.h:
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
        (WebKit::dumpChangedLayers):
        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (WebKit::RemoteLayerTreeHost::layerID):
        (WebKit::RemoteLayerTreeHost::createLayer):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
        * UIProcess/mac/RemoteLayerTreeHost.h:
        (WebKit::RemoteLayerTreeHost::animationDelegates):
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::RemoteLayerTreeHost):
        (WebKit::RemoteLayerTreeHost::updateLayerTree):
        (WebKit::RemoteLayerTreeHost::layerWillBeRemoved):
        (WebKit::RemoteLayerTreeHost::animationDidStart):
        (WebKit::RemoteLayerTreeHost::layerID):
        (WebKit::RemoteLayerTreeHost::createLayer):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/DrawingArea.h:
        (WebKit::DrawingArea::acceleratedAnimationDidStart):
        * WebProcess/WebPage/DrawingArea.messages.in:
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
        (WebKit::GraphicsLayerCARemote::createPlatformCAAnimation):
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h: Added.
        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: Added.
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
        (WebKit::PlatformCALayerRemote::animationStarted):
        (WebKit::PlatformCALayerRemote::addAnimationForKey):
        (WebKit::PlatformCALayerRemote::removeAnimationForKey):
        (WebKit::PlatformCALayerRemote::animationForKey):
        (PlatformCALayerRemote::recursiveBuildTransaction): Deleted.
        (PlatformCALayerRemote::addAnimationForKey): Deleted.
        (PlatformCALayerRemote::removeAnimationForKey): Deleted.
        (PlatformCALayerRemote::animationForKey): Deleted.
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):
        (WebKit::RemoteLayerTreeContext::willStartAnimationOnLayer):
        (WebKit::RemoteLayerTreeContext::animationDidStart):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidStart):
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        Double-buffer RemoteLayerBackingStore
        https://bugs.webkit.org/show_bug.cgi?id=130990

        Reviewed by Simon Fraser.

        We'll keep a front and back buffer for each surface; the front is generally currently
        being displayed in the UI process, and the back is the one we'll paint into.

        Swap the two surfaces each time we paint; since we synchronize with the UI process,
        the old front surface will generally be out-of-use by the render server by the time
        we paint again. However, since render server commits are asynchronous and we have 
        no way to syncronize with them yet, we have to check if the (swapped to front) back buffer is in use,
        and create a new front buffer if it is.

        Triple-buffering would solve this problem, as would synchronization with the render server,
        as would a pool of surfaces - we will revisit these solutions in future patches.

        * Shared/mac/RemoteLayerBackingStore.h:
        * Shared/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::ensureBackingStore):
        (RemoteLayerBackingStore::clearBackingStore):
        Factor clearBackingStore() out of ensureBackingStore() and display().

        (RemoteLayerBackingStore::display):
        Swap buffers. Since m_backSurface will hold on to the back surface's CGContext,
        we don't need to worry about tearing down the image first anymore.
        Don't worry about creating a back image (nor copying it into the front image)
        if we're going to paint the whole layer.

        (RemoteLayerBackingStore::drawInContext):
        Fix some names.

        (RemoteLayerBackingStore::applyBackingStoreToLayer):
        Reduce duplication.

        (RemoteLayerBackingStore::createImageForFrontBuffer): Deleted.

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        Synchronize Web process remote layer tree commits with CoreAnimation commits in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=130984

        Reviewed by Simon Fraser.

        There's no reason for the Web process to paint faster than the UI process
        can apply to and commit the CoreAnimation layer tree.

        Also, once we get proper double-buffering and purgeable back buffers, we
        will need the ability to make some assumptions about in-use surfaces.

        Unfortunately, we can't actually tell when the render server commits, 
        as this is an asynchronous operation in a process we don't control, so
        for now, this is only an approximation.

        This also means that the assumptions we would like to make won't be
        strong guarantees yet.

        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
        When we commit, install a run loop observer to fire immediately after CoreAnimation commits.

        (WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
        Fix a typo ('cmponents').

        (WebKit::coreAnimationDidCommitLayersCallback):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::scheduleCoreAnimationLayerCommitObserver):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers):
        When CA commits, send a message to the Web process letting it know that we
        swapped to the new backing store.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
        Defer remote layer tree commits until we get didUpdate() from the UI process.

2014-03-31  Dean Jackson  <dino@apple.com>

        Remove WEB_ANIMATIONS
        https://bugs.webkit.org/show_bug.cgi?id=130989

        Reviewed by Simon Fraser.

        Remove this feature flag until we plan to implement.

        * Configurations/FeatureDefines.xcconfig:

2014-03-31  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Hook up scroll events for accelerated overflow:scroll
        https://bugs.webkit.org/show_bug.cgi?id=130976

        Reviewed by Tim Horton.
        
        When an accelerated overflow:scroll is scrolled in the UI process,
        tell the WebProcess that the scroll happened to update RenderLayer
        state and fire events.
        
        Add a WKOverflowScrollViewDelegate which is set as the delegate of
        UIScrollViews, owned by ScrollingTreeOverflowScrollingNodeIOS, and propagates
        -scrollViewDidScroll: messages to ScrollingTree::scrollPositionChangedViaDelegatedScrolling(),
        which updates child layers and then, via RemoteScrollingTree::scrollingTreeNodeDidScroll,
        tells the RemoteScrollingCoordinator which sends a message to the WebProcess.
        
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll): Name change
        to try to reduce confusion.
        (WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChanged): Deleted.
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):
        * UIProcess/Scrolling/RemoteScrollingTree.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (-[WKOverflowScrollViewDelegate initWithScrollingTreeNode:WebKit::]):
        (-[WKOverflowScrollViewDelegate scrollViewDidScroll:]):
        (-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
        (-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
        (-[WKOverflowScrollViewDelegate scrollViewDidEndScrollingAnimation:]):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateBeforeChildren):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollViewDidScroll):
        * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
        (WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode): No need for
        rounding.

2014-03-29  Simon Fraser  <simon.fraser@apple.com>

        Fix scrolling on OS X with UI-side compositing
        https://bugs.webkit.org/show_bug.cgi?id=130930

        Reviewed by Tim Horton.
        
        On iOS, we rely on visible rect updates to propagate scroll offset
        changes to the WebProcess. RemoteScrollingCoordinatorProxy was thus hardcoded
        to bail from scrollPositionChanged() when the scrolled node was the root node,
        but this broke OS X. Fix by adding a behavior flag to RemoteScrollingCoordinatorProxy.

        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::RemoteScrollingCoordinatorProxy):
        (WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChanged):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        (WebKit::RemoteScrollingCoordinatorProxy::setPropagatesMainFrameScrolls):
        (WebKit::RemoteScrollingCoordinatorProxy::propagatesMainFrameScrolls):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::initializeWebPage):

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Disable tile cohort retention for now
        https://bugs.webkit.org/show_bug.cgi?id=130926
        <rdar://problem/16465413>

        Reviewed by Simon Fraser.

        * Shared/WebPreferencesStore.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):
        Add a preference for temporary tile cohort retention (essentially, provide a setting
        that means that we will never retain tiles at all once they leave the tile coverage rect).
        Defaults to true to maintain existing behavior, except for iOS WebKit2, where
        it defaults to false because we don't have the requisite support for purgeable tiles yet.

        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
        (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):

2014-03-31  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        Buildfix after r166497.

        Reviewed by Csaba Osztrogonác.

        * UIProcess/API/efl/ewk_context.h: Missing EAPI added.

2014-03-31  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Use PROJECT_VERSION_* instead of WEBKIT_*_VERSION
        https://bugs.webkit.org/show_bug.cgi?id=130936

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitVersion.h.in: Use PROJECT_VERSION_* macros instead of the Autotools ones.

2014-03-31  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        [EFL][WK2] Add ewk APIs to control TLS error policy on WebContext.
        https://bugs.webkit.org/show_bug.cgi?id=129740

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake:
        Added the new SSL test.

        * UIProcess/API/efl/ewk_context.cpp:
        (EwkContext::ignoreTLSErrors):
        (EwkContext::setIgnoreTLSErrors):
        (ewk_context_ignore_tls_errors_get):
        (ewk_context_ignore_tls_errors_set):
        * UIProcess/API/efl/ewk_context.h:
        * UIProcess/API/efl/ewk_context_private.h:
        Added the API functions.

        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
        (EWK2UnitTestServer::EWK2UnitTestServer):
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:
        Extended the unit test server to handle TLS.

        * UIProcess/API/efl/tests/test_ewk2_ssl.cpp:
        Added tests to check the TLS policy API.

2014-03-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK2 plugin process binary name after r166492.

        * PlatformGTK.cmake: Fix typo.

2014-03-31  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>

        Remove hostThisRegister() and hostThisValue()
        https://bugs.webkit.org/show_bug.cgi?id=130895

        Reviewed by Geoffrey Garen.

        Removed hostThisRegister() and hostThisValue() and instead use thisArgumentOffset() and thisValue() respectively.

        * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
        (WebKit::callMethod):

2014-03-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add support for GTK3 plugins
        https://bugs.webkit.org/show_bug.cgi?id=130599

        Reviewed by Martin Robinson.

        We currently have a gtk2 based plugin process mainly for flash
        and a few other plugins that use GTK2, but many other plugins
        don't even use gtk at all. This patch builds a lighter plugin
        process based on GTK3, used by default for all the plugins expect
        the ones requiring GTK2. And of course the default plugin process
        supports GTK3 plugins.

        * CMakeLists.txt: Add common rules to build the default plugin process.
        * PlatformEfl.cmake: Remove common cmake code that is now in CMakeLists.txt.
        * PlatformGTK.cmake: Rename WebKitPluginProcess to
        WebKitPluginProcess2 and add the platform specific rules to build
        the default plugin process.
        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
        (WebKit::NetscapePluginModule::getPluginInfoForLoadedPlugin):
        Check if the loaded plugin module uses GTK2.
        (WebKit::NetscapePluginModule::getPluginInfo): Set requiresGtk2 accordingly.
        (WebKit::NetscapePluginModule::scanPlugin): Write "requires-gtk2"
        line to stdout if the plugin requires GTK2.
        * Shared/Plugins/PluginModuleInfo.h: Add requiresGtk2 boolean member.
        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
        (WebKit::ProcessLauncher::launchProcess): Use the
        WebKitPluginProcess2 executable when the plugin requires GTK2.
        * UIProcess/Plugins/PluginProcessProxy.h: Add requiresGtk2 boolean
        member to RawPluginMetaData struct.
        * UIProcess/Plugins/gtk/PluginInfoCache.cpp: Bump the cache schema version.
        (WebKit::PluginInfoCache::getPluginInfo): Read also requires-gtk2
        key from the cache.
        (WebKit::PluginInfoCache::updatePluginInfo): Save also
        requires-gtk2 key in the cache.
        * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
        (WebKit::PluginProcessProxy::platformGetLaunchOptions): Add an
        extra initialization data parameter if the plugin requires GTK2.
        (WebKit::PluginProcessProxy::scanPlugin): Check if "requires-gtk2"
        was written to stdout.

2014-03-30  Andy Estes  <aestes@apple.com>

        [Cocoa] Add an originatingWebView property to _WKDownload
        https://bugs.webkit.org/show_bug.cgi?id=130945

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]): Passed self to WKView's initializer.
        * UIProcess/API/Cocoa/_WKDownload.h: Declared originatingWebView as a weak, readonly property.
        * UIProcess/API/Cocoa/_WKDownload.mm:
        (-[_WKDownload originatingWebView]):
        (-[_WKDownload setOriginatingWebView:]):
        * UIProcess/API/Cocoa/_WKDownloadInternal.h: Re-declared originatingWebView as readwrite so that
        PageClientImpl can call setOriginatingWebView:. Removed some dead code.
        * UIProcess/API/mac/WKView.mm:
        (-[WKView initWithFrame:context:configuration:webView:]): Updated to accept a webView parameter.
        (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): Passed nil for the webView parameter.
        * UIProcess/API/mac/WKViewInternal.h:
        * UIProcess/Cocoa/DownloadClient.mm:
        (WebKit::DownloadClient::decideDestinationWithSuggestedFilename): Ensured allowOverwrite is initialized.
        * UIProcess/PageClient.h: Included handleDownloadRequest() on all platforms.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::receivedPolicyDecision): Ditto.
        (WebKit::WebPageProxy::handleDownloadRequest): Ditto.
        * UIProcess/WebPageProxy.h: Ditto.
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::handleDownloadRequest): Called -[_WKDownload setOriginatingWebView:].
        * UIProcess/mac/PageClientImpl.h: Added a m_webView member variable.
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::PageClientImpl): Asserted that m_webView is nil if WK API isn't enabled.
        (WebKit::PageClientImpl::handleDownloadRequest): Called -[_WKDownload setOriginatingWebView:].

2014-03-29  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166434.
        https://bugs.webkit.org/show_bug.cgi?id=130938

        Caused crashes and other failures on cache tests (Requested by
        ap on #webkit).

        Reverted changeset:

        "Web Replay: add page-level setting to bypass the MemoryCache"
        https://bugs.webkit.org/show_bug.cgi?id=130728
        http://trac.webkit.org/changeset/166434

2014-03-28  Anders Carlsson  <andersca@apple.com>

        Uncaught NSExceptions should crash the web process
        https://bugs.webkit.org/show_bug.cgi?id=130923
        <rdar://problem/16463751>

        Reviewed by Dan Bernstein.

        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-03-28  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed buildfix after r166441 and r166443.

        Missing PLATFORM(COCOA) guards added.

        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
        (WebKit::NPRuntimeObjectMap::evaluate):
        * WebProcess/Plugins/PluginProxy.cpp:
        * WebProcess/Plugins/PluginProxy.h:

2014-03-28  Stephanie Lewis  <slewis@apple.com>

        Don't prevent AppSleep from sync messages.
        https://bugs.webkit.org/show_bug.cgi?id=130747.

        Reviewed by Anders Carlsson.

        We think sync messages only need to happen full throttle when the plugin is visible,
        the user is interacting with the plugin, or audio is playing.  Since we already
        take assertions for all these cases the assertion in sync messages doesn’t provide
        any value.  Since it can keep the PluginProcess awake in other instances remove it.

        * PluginProcess/WebProcessConnection.cpp:
        (WebKit::WebProcessConnection::didReceiveSyncMessage):

2014-03-28  Stephanie Lewis  <slewis@apple.com>

        Stop waking up the web process in the background because of plugin activity.
        Part of <rdar://problem/16061257> PluginProcess should AppNap when no plugins on active tab.

        Reviewed by Anders Carlsson.

        Plugin activity in the background can constantly wake up web processes.  This is only
        necessary when audio is playing to support web apps like Pandora and youtube playing 
        in the background.  Use a new api in CoreAudio to see if there is audio playing in
        the PluginProcess.

        * PluginProcess/PluginProcess.cpp:
        (WebKit::PluginProcess::PluginProcess): Add a AudioHardwareListener
        (WebKit::PluginProcess::createWebProcessConnection): tell web process current state
        (WebKit::PluginProcess::audioHardwareDidBecomeActive): respond to audio hardware notifications
        (WebKit::PluginProcess::audioHardwareDidBecomeInactive):
        * PluginProcess/PluginProcess.h:
        * PluginProcess/WebProcessConnection.cpp: tell WebProcess when audio state in PluginProcess
             changes.
        (WebKit::WebProcessConnection::audioHardwareDidBecomeActive):
        (WebKit::WebProcessConnection::audioHardwareDidBecomeInactive):
        * PluginProcess/WebProcessConnection.h:
        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
             Only invoke pageThrottler activity when playing audio
        (WebKit::NPRuntimeObjectMap::evaluate):
        * WebProcess/Plugins/Plugin.h: add function to get audio state
        (WebKit::Plugin::audioIsPlayingInPluginProcess):
        * WebProcess/Plugins/PluginProcessConnection.cpp: store audio state
        (WebKit::PluginProcessConnection::PluginProcessConnection):
        (WebKit::PluginProcessConnection::didReceiveMessage):
        (WebKit::PluginProcessConnection::audioHardwareDidBecomeActive):
        (WebKit::PluginProcessConnection::audioHardwareDidBecomeInactive):
        * WebProcess/Plugins/PluginProcessConnection.h:
        (WebKit::PluginProcessConnection::audioIsPlaying):
        * WebProcess/Plugins/PluginProcessConnection.messages.in:
        * WebProcess/Plugins/PluginProxy.cpp:
        (WebKit::PluginProxy::audioIsPlayingInPluginProcess):
        * WebProcess/Plugins/PluginProxy.h:
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::audioIsPlayingInPluginProcess):
        * WebProcess/Plugins/PluginView.h:

2014-03-28  Stephanie Lewis  <slewis@apple.com>

        Have the plugin process track visibility of it’s plugin and sleep when none
        are visible.
        Part of <rdar://problem/16061257> PluginProcess should AppNap when no plugins on active tab.
        https://bugs.webkit.org/show_bug.cgi?id=130694

        Reviewed by Anders Carlsson.

        Currently AppSleep is enabled on the PluginProcess based on web page visibility.
        Add visibility tracking to plugins and move the decision to AppSleep into the the
        PluginProcess

        * PluginProcess/PluginProcess.cpp:
        (WebKit::PluginProcess::PluginProcess): Add a new activity for visible plugins
        (WebKit::PluginProcess::pluginsForWebProcessDidBecomeVisible): take an activity
             assertion if any web processes have a visible plugin.
        (WebKit::PluginProcess::pluginsForWebProcessDidBecomeHidden): 
        * PluginProcess/PluginProcess.h:
        * PluginProcess/WebProcessConnection.cpp: 
        (WebKit::WebProcessConnection::removePluginControllerProxy): remove plugin from 
            visible plugins when destroying it
        (WebKit::WebProcessConnection::pluginDidBecomeVisible):
        (WebKit::WebProcessConnection::pluginDidBecomeHidden): track which plugins are
            visible for each web process
        * PluginProcess/WebProcessConnection.h:
        * PluginProcess/mac/PluginControllerProxyMac.mm:
        (WebKit::PluginControllerProxy::windowVisibilityChanged): notify WebProcessConnection
            when visibility changed.
        * UIProcess/WebContext.h:
        * UIProcess/mac/WebContextMac.mm:  instead of tracking plugin app sleep state on the web pref.
            and visibility state, just use the web pref.
        (WebKit::WebContext::updateProcessSuppressionState):
        (WebKit::WebContext::processSuppressionPreferenceIsEnabledForAllContexts):

2014-03-28  Brian Burg  <bburg@apple.com>

        Web Replay: add page-level setting to bypass the MemoryCache
        https://bugs.webkit.org/show_bug.cgi?id=130728

        Reviewed by Timothy Hatcher.

        * UIProcess/APISession.cpp:
        (API::generateID): update the base ID for generating unique sessions.

2014-03-28  Cody Krieger  <cjk@apple.com>

        Add willSubmitForm callback support to WKWebProcessPlugInFormDelegatePrivate.

        https://bugs.webkit.org/show_bug.cgi?id=130875

        Reviewed by Anders Carlsson.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h:
        Add -_webProcessPlugInBrowserContextController:willSubmitForm:toFrame:fromFrame:withValues:
        to the WKWebProcessPlugInFormDelegatePrivate protocol.

        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        Wire up the willSubmitForm() callback to the new
        WKWebProcessPlugInFormDelegatePrivate method.

2014-03-28  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Enable async text input implementation
        https://bugs.webkit.org/show_bug.cgi?id=130856

        Reviewed by Sam Weinig.

        * UIProcess/API/mac/WKView.mm: (-[WKView _interpretKeyEvent:completionHandler:]):
        Temporarily work around <rdar://16393434>.

2014-03-28  Alexey Proskuryakov  <ap@apple.com>

        Move sync CancelComposition message under an ifdef
        https://bugs.webkit.org/show_bug.cgi?id=130908

        Reviewed by Enrica Casucci.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::cancelComposition): Deleted.
        * UIProcess/mac/WebPageProxyMac.mm:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/mac/WebPageMac.mm:

2014-03-28  Alexey Proskuryakov  <ap@apple.com>

        [iOS] Don't cancel composition on selection change
        https://bugs.webkit.org/show_bug.cgi?id=130909

        Reviewed by Enrica Casucci.

        Fixing a recent regression from bug 130727.

        * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection):

2014-03-28  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        [WK2] Removed unused method logChannelByName.
        https://bugs.webkit.org/show_bug.cgi?id=130897

        Reviewed by Anders Carlsson.

        * Platform/Logging.cpp:
        (WebKit::logChannelByName): Deleted.
        * Platform/Logging.h:

2014-03-28  Alexey Proskuryakov  <ap@apple.com>

        Eliminate a sync cancelComposition call in WebPageProxy::editorStateChanged
        https://bugs.webkit.org/show_bug.cgi?id=130727

        Reviewed by Enrica Casucci.

        Added a separate CompositionWasCanceled IPC call, with which WebProcess can tell
        UIProcess that it should notify an input method of canceled composition. There are
        a lot of incorrect edge cases where we don't call it correctly, but this was true
        in the old implementation too (for different edge cases).

        This change only affects iOS and async NSTextInputClient code path on Mac. I don't
        want to change sync NSTextInputClient code path unless absolutely necessary.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::editorStateChanged):
        (WebKit::WebPageProxy::compositionWasCanceled):
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::insertText):
        (WebKit::WebPageProxy::executeKeypressCommands):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::didChangeSelection):

2014-03-28  Mario Sanchez Prada  <mario.prada@samsung.com>

        [GTK] Running minibrowser with url crashes in debug build
        https://bugs.webkit.org/show_bug.cgi?id=130492

        Reviewed by Martin Robinson.

        Use the ResourceRequest(const URL& url) constructor, instead of the
        one taking a String, to call WebPageProxy::loadRequest(), so we
        ensure that the passed URI is correctly constructed.

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkit_web_view_load_uri): Create an URL out of a SoupURI and
        use that to create a ResourceRequest to pass to loadRequest().

2014-03-27  Pratik Solanki  <psolanki@apple.com>

        [iOS WebKit2] Tweak cache sizes for iOS
        https://bugs.webkit.org/show_bug.cgi?id=130871

        Reviewed by Sam Weinig.

        Bring over the tweaks we had made to memory cache size for WebKit1 on iOS to WebKit2. These
        were made per findings in <rdar://8611638>.

        * Shared/CacheModel.cpp:
        (WebKit::calculateCacheSizes):

2014-03-27  Jinwoo Song  <jinwoo7.song@samsung.com>

        [WK2][EFL] Fix wrong parameter name in ewk_view_user_agent_set()
        https://bugs.webkit.org/show_bug.cgi?id=130888

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/efl/ewk_view.h:

2014-03-27  Alexey Proskuryakov  <ap@apple.com>

        Confirm composition in resignFirstResponder, don't cancel it
        https://bugs.webkit.org/show_bug.cgi?id=130852

        Reviewed by Darin Adler.

        * UIProcess/API/mac/WKView.mm: (-[WKView resignFirstResponder]):

2014-03-27  Pratik Solanki  <psolanki@apple.com>

        [iOS WebKit2] Don't pass disk cache directory path on iOS
        https://bugs.webkit.org/show_bug.cgi?id=130862

        Reviewed by Sam Weinig.

        The diskPath passed to NSURLCache initializer is treated differently on Mac and iOS. Just
        pass nil for now until we sort out the API.

        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
        (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-03-27  Pratik Solanki  <psolanki@apple.com>

        [iOS WebKit2] Share network process code between iOS and Mac
        https://bugs.webkit.org/show_bug.cgi?id=130861

        Reviewed by Sam Weinig.

        Implement network process functions for iOS by moving common code from NetworkProcessMac.mm
        to a new shared file NetworkProcessCocoa.mm and sharing between iOS and Mac.

        * NetworkProcess/NetworkProcess.h:
        * NetworkProcess/cocoa/NetworkProcessCocoa.mm: Added.
        (WebKit::NetworkProcess::platformLowMemoryHandler):
        (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
        Common initialization code for iOS and Mac.
        (WebKit::memorySize):
        (WebKit::volumeFreeSize):
        (WebKit::NetworkProcess::platformSetCacheModel):
        * NetworkProcess/ios/NetworkProcessIOS.mm:
        (WebKit::NetworkProcess::initializeProcess):
        Remove unnecessary #if PLATFORM(IOS).
        (WebKit::NetworkProcess::platformInitializeNetworkProcess):
        * NetworkProcess/mac/NetworkProcessMac.mm:
        (WebKit::NetworkProcess::platformInitializeNetworkProcess):
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-27  Enrica Casucci  <enrica@apple.com>

        Add support for AirPlay picker in WK2 for iOS.
        https://bugs.webkit.org/show_bug.cgi?id=130855
        <rdar://problem/15349859>

        Reviewed by Joseph Pecoraro and Benjamin Poulain.

        Adds support to display the airplay picker for iPhone and iPad
        in WK2.
        The picker on iPad is displayed next to the airplay button.

        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::showAirPlayRoutePicker):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _showAirPlayRoutePicker:fromRect:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::showAirPlayRoutePicker):
        * UIProcess/ios/forms/WKAirPlayRoutePicker.h: Added.
        * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: Added.
        (-[WKAirPlayRoutePicker initWithView:]):
        (-[WKAirPlayRoutePicker dealloc]):
        (-[WKAirPlayRoutePicker popoverControllerDidDismissPopover:]):
        (-[WKAirPlayRoutePicker _presentAirPlayPopoverAnimated:fromRect:]):
        (-[WKAirPlayRoutePicker _windowWillRotate:]):
        (-[WKAirPlayRoutePicker _windowDidRotate:]):
        (-[WKAirPlayRoutePicker _dismissAirPlayRoutePickerIPad]):
        (-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]):
        (-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]):
        (-[WKAirPlayRoutePicker show:fromRect:]):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
        (WebKit::WebChromeClient::showAirPlayRoutePicker):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::touchEvent):
        (WebKit::WebPage::touchEventSyncForTesting):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::rectForElementAtInteractionLocation):
        (WebKit::WebPage::handleTap):

2014-03-27  Benjamin Poulain  <bpoulain@apple.com>

        [WK2][iOS] <rdar://problem/16414684> WKWebView should draw a white background before the page loads
        https://bugs.webkit.org/show_bug.cgi?id=130873

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):

2014-03-27  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Compute a good exposed rect when scaling WKContentView
        https://bugs.webkit.org/show_bug.cgi?id=130761

        Reviewed by Simon Fraser.

        Add a simple heuristic to improve tiling while zooming. In theory we could take the zoom
        center and scaleRate to split the speed between scrolling and pinching. In practice,
        zoom is transitory and is not as predictable as scrolling, so this patch just does a very
        simple heuristic:
        -When zooming in, do not expand coverage.
        -When zooming out, add half a tile size on every side.

        * Shared/VisibleContentRectUpdateInfo.cpp:
        (WebKit::VisibleContentRectUpdateInfo::encode):
        (WebKit::VisibleContentRectUpdateInfo::decode):
        * Shared/VisibleContentRectUpdateInfo.h:
        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
        (WebKit::VisibleContentRectUpdateInfo::timestamp):
        (WebKit::VisibleContentRectUpdateInfo::horizontalVelocity):
        (WebKit::VisibleContentRectUpdateInfo::verticalVelocity):
        (WebKit::VisibleContentRectUpdateInfo::scaleChangeRate):
        * UIProcess/ios/WKContentView.mm:
        (WebKit::HistoricalVelocityData::VelocityData::VelocityData):
        (WebKit::HistoricalVelocityData::velocityForNewData):
        (WebKit::HistoricalVelocityData::append):
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:

        (WebKit::adjustExposedRectForBoundedScale):
        When zooming past the maximum size, adjust the exposed rect to continue tiling the area
        at maximum size. Otherwise, we tile a tiny area, and have to retile larger when the animation
        pull back the view to maximum scale.

        (WebKit::adjustVelocityDataForBoundedScale):
        Since we do not split the velocity from scrolling from the scaling, just clear the velocity when zooming.
        Also clear the scaleChangeRate when the scale is out of bounds. There is no reason to add tiles for
        temporary state.

        (WebKit::WebPage::updateVisibleContentRects):

2014-03-27  Anders Carlsson  <andersca@apple.com>

        Add _ prefix to WKRemoteObjectRegistery and WKRemoteObjectInterface
        https://bugs.webkit.org/show_bug.cgi?id=130868

        Reviewed by Sam Weinig.

        * Shared/API/Cocoa/RemoteObjectRegistry.h:
        * Shared/API/Cocoa/RemoteObjectRegistry.mm:
        (WebKit::RemoteObjectRegistry::RemoteObjectRegistry):
        * Shared/API/Cocoa/WKRemoteObject.h:
        * Shared/API/Cocoa/WKRemoteObject.mm:
        (-[WKRemoteObject _initWithObjectRegistry:interface:]):
        * Shared/API/Cocoa/WKRemoteObjectCoder.h:
        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (-[WKRemoteObjectDecoder initWithInterface:rootObjectDictionary:WebKit::]):
        * Shared/API/Cocoa/WKRemoteObjectInterface.h:
        * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
        (isContainerClass): Deleted.
        (propertyListClasses): Deleted.
        (allowedArgumentClassesForMethod): Deleted.
        (initializeAllowedArgumentClasses): Deleted.
        (-[WKRemoteObjectInterface initWithProtocol:identifier:]): Deleted.
        (+[WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]): Deleted.
        (-[WKRemoteObjectInterface description]): Deleted.
        (classesForSelectorArgument): Deleted.
        (-[WKRemoteObjectInterface classesForSelector:argumentIndex:]): Deleted.
        (-[WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]): Deleted.
        (methodArgumentTypeEncodingForSelector): Deleted.
        (-[WKRemoteObjectInterface _methodSignatureForSelector:]): Deleted.
        (-[WKRemoteObjectInterface _allowedArgumentClassesForSelector:]): Deleted.
        * Shared/API/Cocoa/WKRemoteObjectRegistry.h:
        * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
        (-[WKRemoteObjectRegistry registerExportedObject:interface:]): Deleted.
        (-[WKRemoteObjectRegistry unregisterExportedObject:interface:]): Deleted.
        (-[WKRemoteObjectRegistry remoteObjectProxyWithInterface:]): Deleted.
        (-[WKRemoteObjectRegistry _initWithMessageSender:IPC::]): Deleted.
        (-[WKRemoteObjectRegistry _invalidate]): Deleted.
        (-[WKRemoteObjectRegistry _sendInvocation:interface:]): Deleted.
        (-[WKRemoteObjectRegistry WebKit::]): Deleted.
        (-[WKRemoteObjectRegistry _invokeMethod:]): Deleted.
        (-[WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]): Deleted.
        * Shared/API/Cocoa/_WKRemoteObjectInterface.h: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterface.h.
        * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterface.mm.
        (isContainerClass):
        (propertyListClasses):
        (allowedArgumentClassesForMethod):
        (initializeAllowedArgumentClasses):
        (-[_WKRemoteObjectInterface initWithProtocol:identifier:]):
        (+[_WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]):
        (-[_WKRemoteObjectInterface description]):
        (classesForSelectorArgument):
        (-[_WKRemoteObjectInterface classesForSelector:argumentIndex:]):
        (-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]):
        (methodArgumentTypeEncodingForSelector):
        (-[_WKRemoteObjectInterface _methodSignatureForSelector:]):
        (-[_WKRemoteObjectInterface _allowedArgumentClassesForSelector:]):
        * Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterfaceInternal.h.
        * Shared/API/Cocoa/_WKRemoteObjectRegistry.h: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectRegistry.h.
        * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectRegistry.mm.
        (-[_WKRemoteObjectRegistry registerExportedObject:interface:]):
        (-[_WKRemoteObjectRegistry unregisterExportedObject:interface:]):
        (-[_WKRemoteObjectRegistry remoteObjectProxyWithInterface:]):
        (-[_WKRemoteObjectRegistry _initWithMessageSender:IPC::]):
        (-[_WKRemoteObjectRegistry _invalidate]):
        (-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
        (-[_WKRemoteObjectRegistry WebKit::]):
        (-[_WKRemoteObjectRegistry _invokeMethod:]):
        (-[_WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]):
        * Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectRegistryInternal.h.
        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
        (-[WKBrowsingContextController _remoteObjectRegistry]):
        (-[WKBrowsingContextController remoteObjectRegistry]): Deleted.
        * UIProcess/API/Cocoa/WKBrowsingContextControllerPrivate.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _remoteObjectRegistry]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInBrowserContextControllerToBeRemoved.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObject.h.
        (-[WKWebProcessPlugInBrowserContextController remoteObjectRegistry]):
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (-[WKWebProcessPlugInBrowserContextController _remoteObjectRegistry]):
        (-[WKWebProcessPlugInBrowserContextController remoteObjectRegistry]): Deleted.
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:

2014-03-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166360.
        https://bugs.webkit.org/show_bug.cgi?id=130869

        Seems to have broken PLT (Requested by ap on #webkit).

        Reverted changeset:

        "Connection::dispatchOneMessage() can be re-entered while
        handling Cmd-key menu"
        https://bugs.webkit.org/show_bug.cgi?id=130767
        http://trac.webkit.org/changeset/166360

2014-03-27  Sam Weinig  <sam@webkit.org>

        Support dynamic layer hosting context changes
        <rdar://problem/16278019>
        https://bugs.webkit.org/show_bug.cgi?id=130863

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView addWindowObserversForWindow:]):
        (-[WKView removeWindowObservers]):
        (-[WKView _windowDidChangeLayerHosting:]):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::layerHostingModeDidChange):
        * UIProcess/WebPageProxy.h:

2014-03-27  Simon Fraser  <simon.fraser@apple.com>

        Don't leak the WKBrowsingContextController
        https://bugs.webkit.org/show_bug.cgi?id=130815

        Reviewed by Tim Horton.
        
        Use adoptNS to avoid leaking the WKBrowsingContextController.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView browsingContextController]):

2014-03-27  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Give WebProcess a proxy application entitlement
        https://bugs.webkit.org/show_bug.cgi?id=130806

        Reviewed by Timothy Hatcher.

        * Configurations/WebContent-iOS.entitlements:

2014-03-27  Anders Carlsson  <andersca@apple.com>

        Add reload and reloadFromOrigin as API
        https://bugs.webkit.org/show_bug.cgi?id=130858

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView reload]):
        (-[WKWebView reloadFromOrigin]):
        (-[WKWebView validateUserInterfaceItem:]):
        (-[WKWebView reload:]):
        (-[WKWebView reloadFromOrigin:]):

2014-03-27  Anders Carlsson  <andersca@apple.com>

        Rename WKFrameHandle to _WKFrameHandle
        https://bugs.webkit.org/show_bug.cgi?id=130847

        Reviewed by Tim Horton.

        * Shared/API/Cocoa/_WKFrameHandle.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKFrameHandle.h.
        * Shared/API/Cocoa/_WKFrameHandle.mm: Renamed from Source/WebKit2/Shared/API/Cocoa/WKFrameHandle.mm.
        (-[_WKFrameHandle dealloc]):
        (-[_WKFrameHandle isEqual:]):
        (-[_WKFrameHandle hash]):
        (-[_WKFrameHandle _frameID]):
        (-[_WKFrameHandle copyWithZone:]):
        (+[_WKFrameHandle supportsSecureCoding]):
        (-[_WKFrameHandle initWithCoder:]):
        (-[_WKFrameHandle encodeWithCoder:]):
        (-[_WKFrameHandle API::]):
        * Shared/API/Cocoa/_WKFrameHandleInternal.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKFrameHandleInternal.h.
        (WebKit::wrapper):
        * Shared/Cocoa/APIObject.mm:
        (API::Object::newObject):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
        (+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]):
        (-[WKWebProcessPlugInFrame handle]):
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:

2014-03-27  Alexey Proskuryakov  <ap@apple.com>

        Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu
        equivalents, ASSERT(!_data->_keyDownEventBeingResent)
        https://bugs.webkit.org/show_bug.cgi?id=130767
        <rdar://problem/16307487>

        Reviewed by Darin Adler.

        * Shared/WebKit2Initialize.cpp: (WebKit::InitializeWebKit2): Added NSModalPanelRunLoopMode
        to RunLoop event source and timer modes.

2014-03-27  Jae Hyun Park  <jaepark@webkit.org>

        Remove LayerTreeContextCairo.cpp
        https://bugs.webkit.org/show_bug.cgi?id=130807

        Reviewed by Martin Robinson.

        * Shared/cairo/LayerTreeContextCairo.cpp: Removed.

2014-03-27  Maciej Florek  <m.florek@samsung.com>

        [EFL][WK2] Add tests of the set process model API
        https://bugs.webkit.org/show_bug.cgi?id=130830

        Reviewed by Gyuyoung Kim.

        Implement unit tests to check, if process model API works
        properly. When process model is set to EWK_PROCESS_MODEL_SHARED_SECONDARY,
        there should be only one WebProcess. In case of EWK_PROCESS_MODEL_MULTIPLE_SECONDARY
        setting, each WebView should have own process, as well as the network process
        should exist.

        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
        (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
        (EWK2UnitTest::EWK2UnitTestBase::SetUp):
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
        * UIProcess/API/efl/tests/test_ewk2_context.cpp:
        (EWK2ContextTestMultipleProcesses::EWK2ContextTestMultipleProcesses):
        (TEST_F):

2014-03-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166296 and r166331.
        https://bugs.webkit.org/show_bug.cgi?id=130822

        caused some crashes and frequent assertion failures, and the
        fix is going to take a little while (Requested by thorton on
        #webkit).

        Reverted changesets:

        "[iOS WebKit2] Flush all surfaces after painting into all of
        them, instead of after painting into each one"
        https://bugs.webkit.org/show_bug.cgi?id=130768
        http://trac.webkit.org/changeset/166296

        "Assertion failure in RemoteLayerBackingStore::flush"
        https://bugs.webkit.org/show_bug.cgi?id=130810
        http://trac.webkit.org/changeset/166331

2014-03-26  Tim Horton  <timothy_horton@apple.com>

        Blind speculative iOS build fix.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::viewportConfigurationChanged):

2014-03-26  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] <rdar://problem/16265272> REGRESSION (WebKit2): Some pages appear blank until you scroll
        https://bugs.webkit.org/show_bug.cgi?id=130819

        Reviewed by Tim Horton.

        When loading a new page, we never define the unobscured rect and exposed rect on the new frame.
        As a result, there is nothing to render.

        It uses to work thanks to dumb luck and a bug in Safari updating the visibleContentRects from
        the UIProcess. Now that the bug is gone, "dumb luck" is not reliable enough to get the content rects :)

        What this patch does is save if we have ever received new rects from the UI. If we have not, create them
        based on the minimum layout size. This works because we know Safari shows the minimum layout size by default
        and will tell us if it changes the obscured rects.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::didCommitLoad):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::viewportConfigurationChanged):
        (WebKit::WebPage::updateVisibleContentRects):

2014-03-26  Anders Carlsson  <andersca@apple.com>

        Add a _WKScriptWorld class
        https://bugs.webkit.org/show_bug.cgi?id=130817

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/_WKScriptWorld.h: Added.
        * UIProcess/API/Cocoa/_WKScriptWorld.mm: Added.
        (generateWorldID):
        (+[_WKScriptWorld defaultWorld]):
        (-[_WKScriptWorld init]):
        (-[_WKScriptWorld _initWithWorldID:]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-26  Anders Carlsson  <andersca@apple.com>

        Rename a delegate method to -webView:didFinishNavigation:
        https://bugs.webkit.org/show_bug.cgi?id=130814

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        * UIProcess/Cocoa/NavigationState.h:
        * UIProcess/Cocoa/NavigationState.mm:
        (WebKit::NavigationState::setNavigationDelegate):
        (WebKit::NavigationState::LoaderClient::didFinishLoadForFrame):

2014-03-26  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Crashes on swipe
        <rdar://problem/16440867>

        Reviewed by Benjamin Poulain.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        Get the IOSurfaceRef from the WebCore::IOSurface.

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        Fix the build: include UIKit headers inside the iOS #ifdef.

        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        Hook up -webkit-overflow-scrolling:touch for iOS WK2
        https://bugs.webkit.org/show_bug.cgi?id=130809

        Reviewed by Tim Horton.

        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
        Set the content size of the UIScrollVIew based on the geometry.
        * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
        (WebKit::RemoteLayerTreeHost::createLayer): Make a UIScrollView if the
        layer properties tell us that we have the scrolling behavior.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
        We need to allow user interaction in the _rootContentView so that events get to
        nested UIScrollViews (this could be optimized in future).
        * UIProcess/mac/RemoteLayerTreeHost.h:
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::updateLayerTree):
        (WebKit::RemoteLayerTreeHost::createLayer): Need to pass RemoteLayerTreeTransaction::LayerProperties
        in so we can get at the custom behavior.

2014-03-26  Anders Carlsson  <andersca@apple.com>

        Add -[WKWebView stopLoading]
        https://bugs.webkit.org/show_bug.cgi?id=130812

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView stopLoading]):

2014-03-26  Tim Horton  <timothy_horton@apple.com>

        Assertion failure in RemoteLayerBackingStore::flush
        https://bugs.webkit.org/show_bug.cgi?id=130810
        <rdar://problem/16439276>

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::flush):
        We don't always have backing store to flush, if platformCALayerDrawsContent() is false.
        We also can't assert that we have a back surface, because the very first paint will not.

2014-03-26  Andy Estes  <aestes@apple.com>

        [Cocoa] Expose DownloadClient::didFail() and DownloadClient::didCancel()
        https://bugs.webkit.org/show_bug.cgi?id=130805

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/_WKDownloadDelegate.h:
        * UIProcess/Cocoa/DownloadClient.h:
        * UIProcess/Cocoa/DownloadClient.mm:
        (WebKit::DownloadClient::DownloadClient):
        (WebKit::DownloadClient::didFail):
        (WebKit::DownloadClient::didCancel):

2014-03-26  Cody Krieger  <cjk@apple.com>

        -[WKWebProcessPlugInNodeHandle HTMLInputElementIsUserEdited] and -HTMLTextAreaElementIsUserEdited do not return the correct values.

        https://bugs.webkit.org/show_bug.cgi?id=130804

        Reviewed by Dan Bernstein.

        The existing implementations of these methods are mis-cased
        ("HTMLInputELementIsUserEdited" and "HTMLTextAreaELementIsUserEdited" —
        note the "EL" in both cases). This results in us getting
        auto-synthesized getters for the HTMLInputElementIsUserEdited and
        HTMLTextAreaElementIsUserEdited properties, which will return NO
        unconditionally.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
        Fix the capitalization of -HTMLInputElementIsUserEdited and
        -HTMLTextAreaElementIsUserEdited.

2014-03-26  Andy Estes  <aestes@apple.com>

        [Cocoa] Expose DownloadProxy::cancel()
        https://bugs.webkit.org/show_bug.cgi?id=130799

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/_WKDownload.h:
        * UIProcess/API/Cocoa/_WKDownload.mm:
        (-[_WKDownload cancel]):

2014-03-26  Timothy Hatcher  <timothy@apple.com>

        Propagate the hiddenFromInspector flag on ResourceRequest in
        places when a new request a made or passed between processes.

        https://bugs.webkit.org/show_bug.cgi?id=130741

        Reviewed by Joseph Pecoraro.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::continueWillSendRequest): Use updateFromDelegatePreservingOldProperties.
        * Shared/WebCoreArgumentCoders.cpp:
        (IPC::ArgumentCoder<ResourceRequest>::encode): Added hiddenFromInspector support.
        (IPC::ArgumentCoder<ResourceRequest>::decode): Ditto.
        * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
        (WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame): Ditto.

2014-03-26  Andy Estes  <aestes@apple.com>

        [Cocoa] Expose DownloadProxy::request()
        https://bugs.webkit.org/show_bug.cgi?id=130796

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/_WKDownload.h:
        * UIProcess/API/Cocoa/_WKDownload.mm:
        (-[_WKDownload request]):

2014-03-26  Anders Carlsson  <andersca@apple.com>

        Pass a real FrameLoadRequest to Chrome::createWindow
        https://bugs.webkit.org/show_bug.cgi?id=130795

        Reviewed by Dan Bernstein.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchCreatePage):

2014-03-26  Jeremy Jones  <jeremyj@apple.com>

        Implement hasLiveStreamingContent property in WebAVPlayerController
        https://bugs.webkit.org/show_bug.cgi?id=128684

        Reviewed by Simon Fraser.

        Plumb through the seekable ranges to the fullscreen interface.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        Add declaration for setSeekableRangesVector()

        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
        Add interface SetSeekableRangesVector()

        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::setSeekableRangesVector):
        Add setSeekableRangesVector that translates the vector into a TimeRanges and calls setSeekableRanges()

        * WebProcess/ios/WebVideoFullscreenManager.h:
        Add setSeekableRanges()

        * WebProcess/ios/WebVideoFullscreenManager.mm:
        (WebKit::WebVideoFullscreenManager::setSeekableRanges):
        setSeekableRanges() converts TimeRanges to Vector and calls SetSeekableRangesVector()

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        Add a custom behavior flag to GraphicsLayer, piped down to PlatformCALayer, for scrolling layers
        https://bugs.webkit.org/show_bug.cgi?id=130778

        Reviewed by Tim Horton.

        Make it possible to put a "custom behavior" flag on a layer so that,
        with UI-side compositing, we know to create a specific type of
        layer or view for that GraphicsLayer.

        * Shared/mac/RemoteLayerTreeTransaction.h:
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
        (WebKit::dumpChangedLayers):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (PlatformCALayerRemote::customBehavior):
        (PlatformCALayerRemote::updateCustomBehavior):
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:

2014-03-26  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Remove shape-inside support
        https://bugs.webkit.org/show_bug.cgi?id=130698

        Reviewed by David Hyatt.

        * Configurations/FeatureDefines.xcconfig:

2014-03-26  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
        https://bugs.webkit.org/show_bug.cgi?id=130768
        <rdar://problem/16421471>

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerBackingStore.h:
        Add flush(), which synchronously flushes painting operations on the underlying backing store.
        Factor clearBackingStore() out of ensureBackingStore/display, which releases our reference to underlying backing store.
        Add two members for storing the back surface and front buffer context until flush() is called.
                - We need to keep the back surface alive because the CGImageRef created from it is referenced by
                the front surface's drawing queue, and won't be freed until said queue is flushed. If we release
                the back surface (and its associated CGContextRef) *before* the CGImageRef is freed, we will
                do an expensive readback of the surface.
                - When not using accelerated drawing, we need to keep the front buffer's CGContextRef around
                until the flush occurs so that we can avoid re-creating it in order to perform the flush. This
                happens automatically in the accelerated drawing case via WebCore::IOSurface.

        * Shared/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::ensureBackingStore):
        (RemoteLayerBackingStore::clearBackingStore):
        (RemoteLayerBackingStore::display):
        Factor clearBackingStore() out of ensureBackingStore() and display().
        Update a comment about the above performance gotcha.
        Store the current back surface/front buffer context.

        (RemoteLayerBackingStore::drawInContext):
        Don't flush the context immediately after painting.

        (RemoteLayerBackingStore::applyBackingStoreToLayer):
        Move things around to reduce duplicated code.

        (RemoteLayerBackingStore::flush):
        Flush the current front surface/buffer's context.
        Clear the new pending-flush members.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::flushBackingStoreChangesInTransaction):
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        Crawl through all of the valid changed backing stores in the transaction and flush them.
        Remove a completely useless assertion.

2014-03-25  Simon Fraser  <simon.fraser@apple.com>

        Add a new type of scrolling tree node for overflow scrolling
        https://bugs.webkit.org/show_bug.cgi?id=130763

        Reviewed by Tim Horton.

        Prepare for overflow scrolling via the scrolling tree by adding
        a new scrolling node type for overflow:scroll nodes. Mostly
        this is a new ScrollingNodeType that gets mapped to the same
        scrolling state nodes and scrolling nodes, but iOS creates
        state and scrolling nodes specific to overflow:scroll.
        
        Change the type checking on nodes to use virtual functions instead
        of just checking the node type, to allow the macros to work with
        the new scrolling node type.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (WebKit::encodeNodeAndDescendants):
        (WebKit::RemoteScrollingCoordinatorTransaction::decode):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
        * UIProcess/Scrolling/RemoteScrollingTree.cpp:
        (WebKit::RemoteScrollingTree::createNode):
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::create):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):
        (WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-26  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Removing the remaining Automake cruft.

        * GNUmakefile.list.am: Removed.

2014-03-25  Pratik Solanki  <psolanki@apple.com>

        Remove PLATFORM(IOS) from NetworkProcessMac.mm
        https://bugs.webkit.org/show_bug.cgi?id=130751

        Reviewed by Alexey Proskuryakov.

        Code in NetworkProcessMac.mm is guarded by PLATFORM(MAC) and so is not compiled on iOS.
        Having PLATFORM(IOS) code in this file is unnecessary and confusing.

        * NetworkProcess/mac/NetworkProcessMac.mm:
        (WebKit::NetworkProcess::initializeProcessName):
        (WebKit::overrideSystemProxies):
        (WebKit::NetworkProcess::platformInitializeNetworkProcess):

2014-03-25  Anders Carlsson  <andersca@apple.com>

        Add a UI delegate callback for handling window.open
        https://bugs.webkit.org/show_bug.cgi?id=130757

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKUIDelegate.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/Cocoa/UIClient.h:
        * UIProcess/Cocoa/UIClient.mm:
        (WebKit::UIClient::setDelegate):
        (WebKit::UIClient::createNewPage):

2014-03-25  Anders Carlsson  <andersca@apple.com>

        Move stopLoading: back for now.

        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView stopLoading:]):

2014-03-25  Anders Carlsson  <andersca@apple.com>

        Change toolbarVisibility back to toolbarsVisibility
        https://bugs.webkit.org/show_bug.cgi?id=130749

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWindowFeatures.h:
        * UIProcess/API/Cocoa/WKWindowFeatures.mm:
        (-[WKWindowFeatures _initWithWindowFeatures:WebCore::]):

2014-03-25  Anders Carlsson  <andersca@apple.com>

        Pass the source frame to the CreateNewPage message
        https://bugs.webkit.org/show_bug.cgi?id=130752

        Reviewed by Tim Horton.

        * UIProcess/API/APIUIClient.h:
        (API::UIClient::createNewPage):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageUIClient):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::createNewPage):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::createWindow):

2014-03-25  Anders Carlsson  <andersca@apple.com>

        Add a WebFrame::fromCoreFrame static member function and use it where possible
        https://bugs.webkit.org/show_bug.cgi?id=130744

        Reviewed by Tim Horton.

        * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
        (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
        (WebKit::InjectedBundleNodeHandle::documentFrame):
        (WebKit::InjectedBundleNodeHandle::htmlFrameElementContentFrame):
        (WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
        * WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
        (WebKit::InjectedBundleDOMWindowExtension::frame):
        * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
        (WebKit::InjectedBundleHitTestResult::frame):
        (WebKit::InjectedBundleHitTestResult::targetFrame):
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::webPage):
        (WebKit::PluginView::performFrameLoadURLRequest):
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::focusedElementChanged):
        (WebKit::WebChromeClient::focusedFrameChanged):
        (WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
        (WebKit::WebChromeClient::runJavaScriptAlert):
        (WebKit::WebChromeClient::runJavaScriptConfirm):
        (WebKit::WebChromeClient::runJavaScriptPrompt):
        (WebKit::WebChromeClient::print):
        (WebKit::WebChromeClient::exceededDatabaseQuota):
        (WebKit::WebChromeClient::runOpenPanel):
        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
        (WebKit::WebEditorClient::textFieldDidBeginEditing):
        (WebKit::WebEditorClient::textFieldDidEndEditing):
        (WebKit::WebEditorClient::textDidChangeInTextField):
        (WebKit::WebEditorClient::textDidChangeInTextArea):
        (WebKit::WebEditorClient::doTextFieldCommandFromEvent):
        (WebKit::WebEditorClient::textWillBeDeletedInTextField):
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
        (WebKit::WebFrameLoaderClient::dispatchWillSendSubmitEvent):
        (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
        * WebProcess/WebPage/WebFrame.cpp:
        (WebKit::WebFrame::fromCoreFrame):
        (WebKit::WebFrame::contentsAsString):
        (WebKit::WebFrame::parentFrame):
        (WebKit::WebFrame::childFrames):
        (WebKit::WebFrame::frameForContext):
        (WebKit::WebFrame::webArchiveData):
        * WebProcess/WebPage/WebFrame.h:

2014-03-25  Jeffrey Pfau  <jpfau@apple.com>

        [WK2] Schemes registered as cache partitioned are not properly registered in new web processes
        https://bugs.webkit.org/show_bug.cgi?id=130739

        Reviewed by Anders Carlsson.

        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::initializeWebProcess):

2014-03-25  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] Inspector View Indication Support
        https://bugs.webkit.org/show_bug.cgi?id=130709

        Reviewed by Simon Fraser.

        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKInspectorIndicationView initWithFrame:]):
        (-[WKContentView isShowingInspectorIndication]):
        (-[WKContentView setShowingInspectorIndication:]):
        (-[WKContentView _didCommitLayerTree:WebKit::]):
        When indicating include a simple tinted UIView over the content.

        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _showInspectorIndication]):
        (-[WKWebView _hideInspectorIndication]):
        Have the content view show or hide an indication.

        * UIProcess/PageClient.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::showInspectorIndication):
        (WebKit::PageClientImpl::hideInspectorIndication):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::showInspectorIndication):
        (WebKit::WebPageProxy::hideInspectorIndication):
        Pass WebProcess indication message up to the WKWebView.

        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
        (WebKit::WebInspectorClient::indicate):
        (WebKit::WebInspectorClient::hideIndication):
        * WebProcess/WebCoreSupport/WebInspectorClient.h:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::indicate):
        (WebKit::WebPage::hideIndication):
        Pass WebCore / remote inspector indication message up to UIProcess.

2014-03-25  Anders Carlsson  <andersca@apple.com>

        Add more properties to WKWindowFeatures
        https://bugs.webkit.org/show_bug.cgi?id=130738

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWindowFeatures.h:
        * UIProcess/API/Cocoa/WKWindowFeatures.mm:
        (-[WKWindowFeatures _initWithWindowFeatures:WebCore::]):
        (-[WKWindowFeatures menuBarVisibility]):
        (-[WKWindowFeatures statusBarVisibility]):
        (-[WKWindowFeatures toolbarsVisibility]):
        (-[WKWindowFeatures allowsResizing]):

2014-03-25  Anders Carlsson  <andersca@apple.com>

        Fix iOS build.

        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        Make WKIBActions OS X only for now.

2014-03-25  Anders Carlsson  <andersca@apple.com>

        Begin stubbing out a WKWindowFeatures class
        https://bugs.webkit.org/show_bug.cgi?id=130733

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKWindowFeatures.h: Added.
        * UIProcess/API/Cocoa/WKWindowFeatures.mm: Added.
        (-[WKWindowFeatures _initWithWindowFeatures:WebCore::]):
        (-[WKWindowFeatures x]):
        (-[WKWindowFeatures y]):
        (-[WKWindowFeatures width]):
        (-[WKWindowFeatures height]):
        * UIProcess/API/Cocoa/WKWindowFeaturesInternal.h: Added.
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-25  Anders Carlsson  <andersca@apple.com>

        Add goBack: and goForward: IBActions and move stopLoading: to a new WKIBActions category on WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=130732

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView goBack]):
        (-[WKWebView goForward]):
        (-[WKWebView validateUserInterfaceItem:]):
        (-[WKWebView goBack:]):
        (-[WKWebView goForward:]):
        (-[WKWebView stopLoading:]):

2014-03-25  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Remove the autotools build
        https://bugs.webkit.org/show_bug.cgi?id=130717

        Reviewed by Anders Carlsson.

        * GNUmakefile.am: Removed.
        * WebKit2Prefix.h: Removed references to the autotools configure file.
        * config.h: Ditto.

2014-03-25  Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        [EFL][WK2] Add NETWORK_PROCESS build option
        https://bugs.webkit.org/show_bug.cgi?id=130131

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Add file needed to build with NETWORK_PROCESS enabled.

2014-03-24 Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        [EFL][WK2] Add an API to set process model
        https://bugs.webkit.org/show_bug.cgi?id=130133

        Reviewed by Gyuyoung Kim.

        Implement an API to set and get process model in ewk_context.
        By default process model enum value is set to EWK_PROCESS_MODEL_SHARED_SECONDARY
        which keeps current behaviour. Setting EWK_PROCESS_MODEL_MULTIPLE_SECONDARY
        will make each web view use separate web process, also enables network process.

        * UIProcess/API/efl/ewk_context.cpp:
        (toWKProcessModel):
        (EwkContext::setProcessModel):
        (toEwkProcessModel):
        (EwkContext::processModel):
        (ewk_context_process_model_set):
        (ewk_context_process_model_get):
        * UIProcess/API/efl/ewk_context.h:
        * UIProcess/API/efl/ewk_context_private.h:
        * UIProcess/API/efl/tests/test_ewk2_context.cpp:
        (TEST_F):

2014-03-24  Chris Fleizach  <cfleizach@apple.com>

        AX: hit-testing doesn't always work correctly with WK2
        https://bugs.webkit.org/show_bug.cgi?id=130706

        Reviewed by Simon Fraser.

        Accessibility code was trying to do screenToRootView itself, and in 
        some cases with embedded WK2 views that did not work.

        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):

2014-03-24  Benjamin Poulain  <bpoulain@apple.com>

        [WK2] SpinLock are not initialized by default, ViewUpdateDispatcher is missing an initializer
        https://bugs.webkit.org/show_bug.cgi?id=130705

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/ViewUpdateDispatcher.cpp:
        (WebKit::ViewUpdateDispatcher::ViewUpdateDispatcher):

2014-03-24  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Dictation support.
        https://bugs.webkit.org/show_bug.cgi?id=130622
        <rdar://problem/15337316>

        Reviewed by Benjamin Poulain.

        Adding support for dictation on iOS. There are two main types of interactions
        with the dictation system:
        - initial request for context, which consists in retrieving the selected text
        and 5 words before the selection and 5 words after, if available.
        - insertion of recognized chunks of text, providing the text
        to replace.
    
        * UIProcess/AutoCorrectionCallback.h:
        (WebKit::DictationContextCallback::create):
        (WebKit::DictationContextCallback::~DictationContextCallback):
        (WebKit::DictationContextCallback::performCallbackWithReturnValue):
        (WebKit::DictationContextCallback::invalidate):
        (WebKit::DictationContextCallback::DictationContextCallback):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView replaceDictatedText:withText:]):
        (-[WKContentView requestDictationContext:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::dictationContextCallback):
        (WebKit::WebPageProxy::replaceDictatedText):
        (WebKit::WebPageProxy::requestDictationContext):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::requestDictationContext):
        (WebKit::WebPage::replaceDictatedText):

2014-03-24  Andy Estes  <aestes@apple.com>

        Yet another iOS build fix, for the 32-bit build this time.

        * Shared/Downloads/ios/DownloadIOS.mm:
        (WebKit::setUpDownloadClient):

2014-03-24  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r165872): Double-applying device scale to snapshots
        https://bugs.webkit.org/show_bug.cgi?id=130697
        <rdar://problem/16396629>

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::scaledSnapshotWithOptions):
        Drive-by, make scaledSnapshotWithOptions respect SnapshotOptionsExcludeDeviceScaleFactor.

        (WebKit::WebPage::snapshotAtSize):
        Divide the device scale out of the scale factor

        * WebProcess/WebPage/WebPage.h:
        Rename the scale argument to scaledSnapshotWithOptions to clarify
        that it is an additional scale on top of the device scale.

2014-03-24  Brent Fulgham  <bfulgham@apple.com>

        Activate WebVTT Tests Once Merging is Complete
        https://bugs.webkit.org/show_bug.cgi?id=130420

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig: Turn on ENABLE(WEBVTT_REGIONS)

2014-03-24  Andy Estes  <aestes@apple.com>

        Fix the iOS build.

        * Shared/Downloads/ios/DownloadIOS.mm:
        (WebKit::setUpDownloadClient):
        * UIProcess/Cocoa/DownloadClient.mm:

2014-03-24  Mark Rowe  <mrowe@apple.com>

        Build fix after r166186.

        * UIProcess/Cocoa/DownloadClient.mm:

2014-03-24  Benjamin Poulain  <bpoulain@apple.com>

        [WK2] Make updates on ViewUpdateDispatcher less heavy
        https://bugs.webkit.org/show_bug.cgi?id=130626

        Reviewed by Darin Adler.

        * WebProcess/WebPage/ViewUpdateDispatcher.cpp:
        (WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
        (WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
        * WebProcess/WebPage/ViewUpdateDispatcher.h:

2014-03-24  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Micro-optimize view state updates on the UIProcess side
        https://bugs.webkit.org/show_bug.cgi?id=130631

        Reviewed by Darin Adler.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (contentZoomScale):
        [UIScrollView zoomScale] is not fast enough for -[WKWebView _updateVisibleContentRects]. Since we know what the zoom view is,
        make a fast version hardcoding that.

        (-[WKWebView _updateScrollViewBackground]):
        (-[WKWebView _zoomToPoint:WebCore::atScale:]):
        (-[WKWebView _scrollToRect:WebCore::origin:WebCore::minimumScrollDistance:]):
        (-[WKWebView _zoomToRect:WebCore::withOrigin:WebCore::fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
        (-[WKWebView _updateVisibleContentRects]):
        * UIProcess/ios/WKContentView.mm:
        (fixedPositionRectFromExposedRect):
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):

2014-03-24  Dean Jackson  <dino@apple.com>

        Remove WebGL asset entitlement
        https://bugs.webkit.org/show_bug.cgi?id=130685

        Reviewed by Simon Fraser.

        No longer necessary on iOS.

        * Configurations/WebContent-iOS.entitlements:

2014-03-24  Andy Estes  <aestes@apple.com>

        [iOS] Download support by CFURLDownloadRef under USE(CFNETWORK).
        https://bugs.webkit.org/show_bug.cgi?id=129322

        Reviewed by Anders Carlsson.

        Based on an original patch by Yongjun Zhang  <yongjun_zhang@apple.com>.

        * Shared/Cocoa/APIObject.mm:
        (API::Object::newObject):
        * Shared/Downloads/ios/DownloadIOS.mm:
        (WebKit::dispatchOnMainThread):
        (WebKit::toDownload):
        (WebKit::setUpDownloadClient):
        (WebKit::Download::startWithHandle):
        * UIProcess/API/APIDownloadClient.h:
        (API::DownloadClient::~DownloadClient):
        * UIProcess/API/C/WKContext.cpp:
        (WKContextSetDownloadClient):
        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _downloadDelegate]):
        (-[WKProcessPool _setDownloadDelegate:]):
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
        * UIProcess/API/Cocoa/_WKDownload.h: Added.
        * UIProcess/API/Cocoa/_WKDownload.mm: Added.
        (WebKit::wrapper):
        (WebKit::createAPIDownloadClient):
        (-[_WKDownload dealloc]):
        (-[_WKDownload API::]):
        * UIProcess/API/Cocoa/_WKDownloadDelegate.h: Added.
        * UIProcess/API/Cocoa/_WKDownloadInternal.h: Added.
        * UIProcess/Cocoa/DownloadClient.h: Added.
        * UIProcess/Cocoa/DownloadClient.mm: Added.
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-24  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>

        [EFL][WK2] Buildfix after r166159.

        Reviewed by Csaba Osztrogonác.

        * UIProcess/API/efl/ewk_settings.cpp:
        (ewk_settings_file_access_from_file_urls_allowed_set):
        (ewk_settings_file_access_from_file_urls_allowed_get):

2014-03-24  Jinwoo Song  <jinwoo7.song@samsung.com>

        [EFL][WK2] Use C API inside ewk_settings
        https://bugs.webkit.org/show_bug.cgi?id=107820

        Reviewed by Gyuyoung Kim.

        Use C API inside ewk_settings instead of accessing directly
        internal C++ classes, to avoid violating API layering.

        Original-author: Christophe Dumez <ch.dumez@sisa.samsung.com>

        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::EwkView):
        * UIProcess/API/efl/ewk_settings.cpp:
        (ewk_settings_fullscreen_enabled_set):
        (ewk_settings_fullscreen_enabled_get):
        (ewk_settings_javascript_enabled_set):
        (ewk_settings_javascript_enabled_get):
        (ewk_settings_loads_images_automatically_set):
        (ewk_settings_loads_images_automatically_get):
        (ewk_settings_developer_extras_enabled_set):
        (ewk_settings_developer_extras_enabled_get):
        (ewk_settings_file_access_from_file_urls_allowed_set):
        (ewk_settings_file_access_from_file_urls_allowed_get):
        (ewk_settings_frame_flattening_enabled_set):
        (ewk_settings_frame_flattening_enabled_get):
        (ewk_settings_dns_prefetching_enabled_set):
        (ewk_settings_dns_prefetching_enabled_get):
        (ewk_settings_encoding_detector_enabled_set):
        (ewk_settings_encoding_detector_enabled_get):
        (ewk_settings_preferred_minimum_contents_width_set):
        (ewk_settings_preferred_minimum_contents_width_get):
        (ewk_settings_offline_web_application_cache_enabled_set):
        (ewk_settings_offline_web_application_cache_enabled_get):
        (ewk_settings_scripts_can_open_windows_set):
        (ewk_settings_scripts_can_open_windows_get):
        (ewk_settings_local_storage_enabled_set):
        (ewk_settings_local_storage_enabled_get):
        (ewk_settings_plugins_enabled_set):
        (ewk_settings_plugins_enabled_get):
        (ewk_settings_default_font_size_set):
        (ewk_settings_default_font_size_get):
        (ewk_settings_private_browsing_enabled_set):
        (ewk_settings_private_browsing_enabled_get):
        (ewk_settings_text_autosizing_enabled_set):
        (ewk_settings_text_autosizing_enabled_get):
        (ewk_settings_spatial_navigation_enabled_set):
        (ewk_settings_spatial_navigation_enabled_get):
        (EwkSettings::setDefaultTextEncodingName):
        * UIProcess/API/efl/ewk_settings_private.h:
        (EwkSettings::EwkSettings):
        (EwkSettings::preferences):

2014-03-24  Zan Dobersek  <zdobersek@igalia.com>

        [GTK][WK2] Guard NetscapePluginModule methods used in PluginInfoCache that are specific to X11 architecture
        https://bugs.webkit.org/show_bug.cgi?id=130663

        Reviewed by Carlos Garcia Campos.

        The two used methods are specific to the X11 plugin architecture and are not declared when building for a
        Wayland-only configuration. Guarding them prevents build failures, but does not ensure proper functionality
        which isn't a problem anyway since there's no support yet for Netscape plugins on Wayland.

        * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
        (WebKit::PluginInfoCache::getPluginInfo): Guard NetscapePluginModule::parseMIMEDescription with PLUGIN_ARCHITECTURE(X11).
        (WebKit::PluginInfoCache::updatePluginInfo): Ditto for NetscapePluginModule::buildMIMEDescription.

2014-03-24  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Convert some more OwnPtr/PassOwnPtr to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=130662

        Reviewed by Gyuyoung Kim.

        Replace uses of PassOwnPtr/OwnPtr with std::unique_ptr in remained WebKit2/Efl specific code.

        * UIProcess/API/efl/EwkView.h:
        * UIProcess/API/efl/ewk_cookie_manager.cpp:
        * UIProcess/API/efl/ewk_database_manager.cpp:
        (getDatabaseOriginsCallback):
        * UIProcess/API/efl/ewk_error_private.h:
        * UIProcess/efl/DownloadManagerEfl.cpp:
        (WebKit::DownloadManagerEfl::didFail):
        * UIProcess/efl/InputMethodContextEfl.h:
        (WebKit::InputMethodContextEfl::create):
        * UIProcess/efl/PageLoadClientEfl.cpp:
        (WebKit::PageLoadClientEfl::didFailLoadWithErrorForFrame):
        (WebKit::PageLoadClientEfl::didFailProvisionalLoadWithErrorForFrame):

2014-03-23  Hyowon Kim  <hw1008.kim@samsung.com>

        Move all EFL typedefs into EflTypedefs.h.
        https://bugs.webkit.org/show_bug.cgi?id=130511

        Reviewed by Gyuyoung Kim.

        * Shared/API/c/efl/WKArrayEfl.h: Remove EFL typedefs.
        * UIProcess/API/efl/EwkView.h: Ditto.

2014-03-23  Jinwoo Song  <jinwoo7.song@samsung.com>

        [WK2] Refine WebKit2 BatteryStatus code
        https://bugs.webkit.org/show_bug.cgi?id=130573

        Reviewed by Anders Carlsson.

        Refinements
         - Return PassRef instead of PassRefPtr in create methods
         - Use auto instead of iterator

        * UIProcess/WebBatteryManagerProxy.cpp:
        (WebKit::WebBatteryManagerProxy::create):
        * UIProcess/WebBatteryManagerProxy.h:
        * UIProcess/efl/BatteryProvider.cpp:
        (BatteryProvider::create):
        * UIProcess/efl/BatteryProvider.h:
        * WebProcess/Battery/WebBatteryManager.cpp:
        (WebKit::WebBatteryManager::didChangeBatteryStatus):
        (WebKit::WebBatteryManager::updateBatteryStatus):

2014-03-23  Sam Weinig  <sam@webkit.org>

        Simplify the HTMLConverter interface (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=130654

        Reviewed by Darin Adler.

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::performDictionaryLookupForRange):
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::getAttributedSubstringFromRange):
        (WebKit::WebPage::attributedSubstringForCharacterRangeAsync):
        (WebKit::WebPage::performDictionaryLookupAtLocation):
        (WebKit::WebPage::performDictionaryLookupForSelection):
        (WebKit::WebPage::performDictionaryLookupForRange):

2014-03-23  David Kilzer  <ddkilzer@apple.com>

        WebKit::resistanceForDelta() truncates 'scaleDistance' to integer value using abs()
        <http://webkit.org/b/130651>

        Reviewed by Darin Adler.

        Fixes the following build failure with trunk clang:

            WebKit2/UIProcess/mac/ViewGestureControllerMac.mm:112:28: error: using integer absolute value function 'abs' when argument is of floating point type [-Werror,-Wabsolute-value]
                double scaleDistance = abs(limit - currentScale);
                                       ^
            WebKit2/UIProcess/mac/ViewGestureControllerMac.mm:112:28: note: use function 'fabs' instead
                double scaleDistance = abs(limit - currentScale);
                                       ^~~
                                       fabs

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::resistanceForDelta): Use fabs() instead of abs().

2014-03-23  Simon Fraser  <simon.fraser@apple.com>

        Clean up #includes by geometry classes
        https://bugs.webkit.org/show_bug.cgi?id=130645

        Reviewed by Andreas Kling.

        Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
        classes brings in a lot of additional headers. Fix by adding a new
        GeometryUtilities file so that the basic files don't need Vector,
        and including GeometryUtilities.h where necessary.
        
        Also forward declare PrintStream.h and only bring in the header
        in implementation files.

        * Shared/UpdateInfo.h:
        * UIProcess/BackingStore.h:
        * UIProcess/CoordinatedGraphics/PageViewportController.h:
        * UIProcess/FindIndicator.cpp:
        * UIProcess/mac/WKPrintingView.h:

2014-03-23  Simon Fraser  <simon.fraser@apple.com>

        Clean up #includes by geometry classes
        https://bugs.webkit.org/show_bug.cgi?id=130645

        Reviewed by Andreas Kling.

        Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
        classes brings in a lot of additional headers. Fix by adding a new
        GeometryUtilities file so that the basic files don't need Vector,
        and including GeometryUtilities.h where necessary.
        
        Also forward declare PrintStream.h and only bring in the header
        in implementation files.

        * UIProcess/BackingStore.h:
        * UIProcess/FindIndicator.cpp:
        * UIProcess/mac/WKPrintingView.h:

2014-03-22  Alexey Proskuryakov  <ap@apple.com>

        Assertions in WebPage::rangeFromEditingRange when requested range location is NSNotFound
        https://bugs.webkit.org/show_bug.cgi?id=130633
        <rdar://problem/16397583>

        Reviewed by Darin Adler.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView firstRectForCharacterRange:completionHandler:]):
        (-[WKView firstRectForCharacterRange:actualRange:]):
        Return NSZeroRect, like NSTextView does for any locations that are out of bounds.
        There is no need for a round trip to WebProcess in this case.

2014-03-21  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Reduce the tiling coverage to the current rect and 1 tile size ahead
        https://bugs.webkit.org/show_bug.cgi?id=130555

        Reviewed by Simon Fraser.

        * Shared/VisibleContentRectUpdateInfo.cpp:
        (WebKit::VisibleContentRectUpdateInfo::encode):
        (WebKit::VisibleContentRectUpdateInfo::decode):
        * Shared/VisibleContentRectUpdateInfo.h:
        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
        (WebKit::operator==):
        * UIProcess/ios/WKContentView.mm:
        (WebKit::HistoricalKinematicData::HistoricalKinematicData):
        (WebKit::HistoricalKinematicData::velocityForNewData):
        (WebKit::HistoricalKinematicData::clear):
        (WebKit::HistoricalKinematicData::append):
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
        * WebProcess/WebPage/ViewUpdateDispatcher.cpp:
        (WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):

2014-03-21  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r165356): Predictive Chinese input is broken
        https://bugs.webkit.org/show_bug.cgi?id=130619

        Reviewed by Enrica Casucci.

        * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::executeKeypressCommands):
        Like after insertText, we are no longer in an intermediate state after executeKeypressCommands.
        Make sure that we don't call -discardMarkedText the next time we get a non-intermediate
        state with closed composition.

2014-03-21  Sam Weinig  <sam@webkit.org>

        [WebKit2] Implement NetworkingContext::sourceApplicationAuditData() for WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130528

        Reviewed by Tim Horton.

        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.cpp:
        (IPC::Connection::getAuditToken):
        Expose the audit data if available. 

        * NetworkProcess/mac/RemoteNetworkingContext.mm:
        (WebKit::RemoteNetworkingContext::sourceApplicationAuditData):
        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
        (WebKit::WebFrameNetworkingContext::sourceApplicationAuditData):
        Pass the audit data corresponding to the UIProcess.

        * Configurations/Network-iOS.entitlements: Copied from Configurations/WebContent-iOS.entitlements.
        * Configurations/NetworkProcess.xcconfig:
        * Configurations/NetworkService.Development.xcconfig:
        * Configurations/NetworkService.xcconfig:
        * Configurations/WebContent-iOS.entitlements:
        Add entitlement allowing the audit data to be used.

2014-03-21  Tim Horton  <timothy_horton@apple.com>

        Always retrieve the screen scale factor from WKSI
        <rdar://problem/16329679>

        Reviewed by Sam Weinig.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
        (-[WKContentView _updateForScreen:]):
        Use WKGetScreenScaleFactor/WKGetScaleFactorForScreen.

2014-03-21  Yongjun Zhang  <yongjun_zhang@apple.com>

        [Webkit2] Add APIDownloadClient for download support.
        https://bugs.webkit.org/show_bug.cgi?id=130484

        Add API::DownloadClient to WebContext and get rid of WebDownloadClient.

        Reviewed by Anders Carlsson.

        * UIProcess/API/APIDownloadClient.h: Added.
        (API::DownloadClient::~DownloadClient):
        (API::DownloadClient::didStart):
        (API::DownloadClient::didReceiveAuthenticationChallenge):
        (API::DownloadClient::didReceiveResponse):
        (API::DownloadClient::didReceiveData):
        (API::DownloadClient::shouldDecodeSourceDataOfMIMEType):
        (API::DownloadClient::decideDestinationWithSuggestedFilename):
        (API::DownloadClient::didCreateDestination):
        (API::DownloadClient::didFinish):
        (API::DownloadClient::didFail):
        (API::DownloadClient::didCancel):
        (API::DownloadClient::processDidCrash):
        * UIProcess/API/C/WKContext.cpp:
        (WKContextSetDownloadClient): Move the original WebDownloadClient methods to a local class
            DownloadClient and set up the downloadClient for WebContext.
        * UIProcess/Downloads/DownloadProxy.cpp:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::setDownloadClient):
        * UIProcess/WebContext.h:
        (WebKit::WebContext::downloadClient):
        * UIProcess/WebDownloadClient.cpp: Removed.
        * UIProcess/WebDownloadClient.h: Removed.
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-21  Alexey Proskuryakov  <ap@apple.com>

        ASSERTION FAILED: event == [NSApp currentEvent] hitting Command-+
        https://bugs.webkit.org/show_bug.cgi?id=130526
        <rdar://problem/16371612> 

        This was fixed yesterday for sync code path, landing the same this for async one.

        * UIProcess/API/mac/WKView.mm: (-[WKView performKeyEquivalent:]):

2014-03-21  Pratik Solanki  <psolanki@apple.com>

        Add callbacks in WebKit2 Cocoa API for page load testing
        https://bugs.webkit.org/show_bug.cgi?id=130569

        Reviewed by Anders Carlsson.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
        (didFirstVisuallyNonEmptyLayoutForFrame):
        (didHandleOnloadEventsForFrame):
        (setUpPageLoaderClient):
        (willSendRequestForFrame):
        (didInitiateLoadForResource):
        (didFinishLoadForResource):
        (didFailLoadForResource):
        (setUpResourceLoadClient):

2014-03-21  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Remove Ewk_Error parameter from some async callbacks
        https://bugs.webkit.org/show_bug.cgi?id=130567

        Reviewed by Gyuyoung Kim.

        WebKit2 internally uses GenericCallbacks for several APIs such as WKKeyValueStorageManagerGetKeyValueStorageOrigins.
        But only few callbacks really return errors.

        This patch removes Ewk_Error parameters from these callbacks not to make
        the confusion for application developers.

        * UIProcess/API/efl/ewk_cookie_manager.cpp:
        (getAcceptPolicyCallback):
        (getHostnamesWithCookiesCallback):
        * UIProcess/API/efl/ewk_cookie_manager.h:
        * UIProcess/API/efl/ewk_database_manager.cpp:
        (getDatabaseOriginsCallback):
        * UIProcess/API/efl/ewk_database_manager.h:
        * UIProcess/API/efl/ewk_storage_manager.cpp:
        (getStorageOriginsCallback):
        * UIProcess/API/efl/ewk_storage_manager.h:
        * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
        (EWK2CookieManagerTest::getAcceptPolicyCallback):
        (EWK2CookieManagerTest::getHostnamesWithCookiesCallback):
        * UIProcess/API/efl/tests/test_ewk2_database_manager.cpp:
        (EWK2DatabaseManagerTest::databaseOriginsCallback):
        * UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
        (EWK2StorageManagerTest::getStorageOriginsCallback):

2014-03-21  Darin Adler  <darin@apple.com>

        Improve idiom used for string building in a few places
        https://bugs.webkit.org/show_bug.cgi?id=130561

        Reviewed by Andreas Kling.

        * Shared/mac/ChildProcessMac.mm:
        (WebKit::ChildProcess::initializeSandbox): Use a more efficient idiom for string
        concatenation.

        * UIProcess/WebInspectorProxy.cpp:
        (WebKit::WebInspectorProxy::createInspectorPage): Use a StringBuilder.

2014-03-20  Hyowon Kim  <hw1008.kim@samsung.com>

        Move to using std::unique_ptr for EFL objects.
        https://bugs.webkit.org/show_bug.cgi?id=129853

        Reviewed by Gyuyoung Kim.

        EflUniquePtr is a template alias of std::unique_ptr
        with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
        This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.

        * Platform/Module.h:
        * Platform/efl/ModuleEfl.cpp:
        (WebKit::Module::load):
        * UIProcess/API/efl/EwkView.cpp:
        (EwkView::EwkView):
        * UIProcess/API/efl/EwkView.h:
        * UIProcess/efl/InputMethodContextEfl.cpp:
        (WebKit::InputMethodContextEfl::InputMethodContextEfl):
        (WebKit::InputMethodContextEfl::createIMFContext):
        * UIProcess/efl/InputMethodContextEfl.h:
        (WebKit::InputMethodContextEfl::create):

2014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [EFL][GTK] Get CMake to find Freetype2 properly
        https://bugs.webkit.org/show_bug.cgi?id=130150

        Reviewed by Martin Robinson.

        Newer versions of CMake are not able to find Freetype2 correctly.
        FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
        freetype2 repo, because a completely different version number is found in freetype2.pc.

        * PlatformEfl.cmake:

2014-03-20  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Suppress errors about using gdk_threads_enter gdk_threads_leave
        https://bugs.webkit.org/show_bug.cgi?id=130517

        Reviewed by Sergio Villar Senin.

        * UIProcess/API/gtk/WebKitWebView.cpp: Use GCC suppression to suppress errors about deprecations.
        * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: Ditto.

2014-03-20  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] tests of test_ewk2_cookie_manager are flaky
        https://bugs.webkit.org/show_bug.cgi?id=130498

        Reviewed by Gyuyoung Kim.

        Loaded web page before calling getAcceptPolicy() to guarantee that webprocess
        or networkprocess was launched and registered WebCookieManager.

        * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
        (TEST_F):

2014-03-20  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165985.
        https://bugs.webkit.org/show_bug.cgi?id=130551

        broke page loading on all cocoa platforms (Requested by
        thorton on #webkit).

        Reverted changeset:

        "[WebKit2] Implement
        NetworkingContext::sourceApplicationAuditData() for WebKit2"
        https://bugs.webkit.org/show_bug.cgi?id=130528
        http://trac.webkit.org/changeset/165985

2014-03-20  Alexey Proskuryakov  <ap@apple.com>

        Fix a long-standing typo that's now breaking USE(ASYNC_NSTEXTINPUTCLIENT) build.

        Rubber-stamped by Tim Horton.

        * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::cancelComposition):
        Use a correct type for reply (it's really the same type, but ConfirmComposition
        is behind an ifdef, and not available).

2014-03-20  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] typing and deleting text lags behind the caret movement on google.com.
        https://bugs.webkit.org/show_bug.cgi?id=130544
        <rdar://problem/16380296>

        Reviewed by Tim Horton.

        On iOS the selection is drawn in the UIProcess. If the WebProcess is
        processing multiple requests within the same runloop, the caret could be
        updated in the UIProcess before the WebProcess has had a chance to paint.
        This change synchronizes the selection drawing with the tile update.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _didCommitLayerTree:WebKit::]):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _selectionChanged]):
        (-[WKContentView _updateChangedSelection]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::didChangeSelection):

2014-03-20  Alexey Proskuryakov  <ap@apple.com>

        Generalize WebInspector check in maybeInitializeSandboxExtensionHandle().
        https://bugs.webkit.org/show_bug.cgi?id=130079
        <rdar://problem/16286683>

        Reviewed by Anders Carlsson.

        * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
        Perform an early return for all paths that don't need a sandbox extension due to
        access being assumed, not only for WebInspector pages.

        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::hasAssumedReadAccessToURL):
        (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
        * UIProcess/WebProcessProxy.h:
        Factored out m_localPathsWithAssumedReadAccess iteration to a public function.

2014-03-20  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed buildfix after r165983 for non Cocoa platforms.

        * UIProcess/API/C/WKAPICast.h:
        * UIProcess/API/C/WKPreferences.cpp:
        * UIProcess/efl/WebInspectorProxyEfl.cpp:

2014-03-20  Beth Dakin  <bdakin@apple.com>

        Implement contentInset for Mac WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130273

        Reviewed by Simon Fraser.

        This patch adds WKView API for setting a topContentInset(). All of this work gets 
        that number plumbed down to WebCore.

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        * Shared/WebPageCreationParameters.h:
        * UIProcess/API/Cocoa/WKViewPrivate.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _setTopContentInset:]):
        (-[WKWebView _topContentInset]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/API/mac/WKView.mm:
        (-[WKView _setTopContentInset:]):
        (-[WKView _topContentInset]):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::setTopContentInset):
        (WebKit::WebPageProxy::creationParameters):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::topContentInset):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::setTopContentInset):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-03-20  Anders Carlsson  <andersca@apple.com>

        Fix 32-bit build.

        * UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm:

2014-03-20  Anders Carlsson  <andersca@apple.com>

        Make WKProcessPoolConfiguration SPI
        https://bugs.webkit.org/show_bug.cgi?id=130537

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKProcessPool.h:
        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool init]):
        (-[WKProcessPool dealloc]):
        (-[WKProcessPool description]):
        (-[WKProcessPool _configuration]):
        (-[WKProcessPool API::]):
        (-[WKProcessPool _initWithConfiguration:]):
        * UIProcess/API/Cocoa/WKProcessPoolConfiguration.h:
        * UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm:
        (-[WKProcessPoolConfiguration _injectedBundleURL]):
        (-[WKProcessPoolConfiguration _setInjectedBundleURL:]):
        * UIProcess/API/Cocoa/WKProcessPoolConfigurationPrivate.h:
        * UIProcess/API/Cocoa/WKProcessPoolInternal.h:
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
        * UIProcess/API/Cocoa/WKProcessPoolToBeRemoved.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolPrivate.h.
        (-[WKProcessPool initWithConfiguration:]):
        (-[WKProcessPool configuration]):
        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolConfigurationPrivate.h.
        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm.
        (-[_WKProcessPoolConfiguration injectedBundleURL]):
        (-[_WKProcessPoolConfiguration setInjectedBundleURL:]):
        (-[_WKProcessPoolConfiguration description]):
        (-[_WKProcessPoolConfiguration copyWithZone:]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-20  Tim Horton  <timothy_horton@apple.com>

        Add WebCore::IOSurface wrapper
        https://bugs.webkit.org/show_bug.cgi?id=130529

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerBackingStore.h:
        * Shared/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::encode):
        (RemoteLayerBackingStore::decode):
        (RemoteLayerBackingStore::display):
        (RemoteLayerBackingStore::applyBackingStoreToLayer):
        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::removeSwipeSnapshot):
        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        (WebKit::ViewGestureController::removeSwipeSnapshot):
        * UIProcess/mac/ViewSnapshotStore.h:
        * UIProcess/mac/ViewSnapshotStore.mm:
        (WebKit::createIOSurfaceFromImage):
        (WebKit::ViewSnapshotStore::recordSnapshot):
        Adopt WebCore::IOSurface.

2014-03-20  Alexey Proskuryakov  <ap@apple.com>

        Update iOS input method code to use new cross-platform async functions
        https://bugs.webkit.org/show_bug.cgi?id=130530

        Reviewed by Enrica Casucci.

        Merge identical iOS and cross-platform functions.

        Also tightened up ifdefs, and removed stub iOS implementations of sync methods,
        which hopefully won't be ever needed. The only tricky case is sync cancelComposition,
        will I'll investigate separately.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView setMarkedText:selectedRange:]):
        (-[WKContentView unmarkText]):
        (-[WKContentView insertText:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::cancelComposition):
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::cancelComposition):
        (WebKit::WebPageProxy::insertDictatedTextAsync):
        (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
        (WebKit::WebPageProxy::attributedStringForCharacterRangeCallback):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::cancelComposition):
        (WebKit::WebPage::insertDictatedTextAsync):
        (WebKit::WebPage::attributedSubstringForCharacterRangeAsync):

2014-03-20  Alexey Proskuryakov  <ap@apple.com>

        ASSERTION FAILED: event == [NSApp currentEvent] hitting Command-+
        https://bugs.webkit.org/show_bug.cgi?id=130526
        <rdar://problem/16371612>

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm: (-[WKView performKeyEquivalent:]): Cut custom
        processing short whenever we are redispatching an event, not just when the event
        we are handling is the one being redispatched. There shouldn't be any other unrelated
        events here, just the one being redispatched and synthetic ones generated from it by AppKit.

2014-03-20  Anders Carlsson  <andersca@apple.com>

        Fix build.

        Rename WKPreferencesPrivate.h to WKPreferencesRefPrivate.h.

        * UIProcess/API/C/WKPreferencesRefPrivate.h: Renamed from Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h.
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-20  Gavin Barraclough  <barraclough@apple.com>

        Merge AtomicString, Identifier
        https://bugs.webkit.org/show_bug.cgi?id=128624

        Unreviewed build fix following r165982.

        * WebProcess/Plugins/Netscape/NPJSObject.cpp:
            - update includes.

2014-03-20  Sam Weinig  <sam@webkit.org>

        [WebKit2] Implement NetworkingContext::sourceApplicationAuditData() for WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130528

        Reviewed by Anders Carlsson.

        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.cpp:
        (IPC::Connection::getAuditToken):
        Expose the audit data if available. 

        * NetworkProcess/mac/RemoteNetworkingContext.mm:
        (WebKit::RemoteNetworkingContext::sourceApplicationAuditData):
        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
        (WebKit::WebFrameNetworkingContext::sourceApplicationAuditData):
        Pass the audit data corresponding to the UIProcess.

2014-03-20  Sam Weinig  <sam@webkit.org>

        [Cocoa] Expose preference to enable telephone number detection
        https://bugs.webkit.org/show_bug.cgi?id=130524

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKPreferences.mm:
        (-[WKPreferences _telephoneNumberDetectionIsEnabled]):
        (-[WKPreferences _setTelephoneNumberDetectionIsEnabled:]):
        * UIProcess/API/Cocoa/WKPreferencesInternal.h:
        * UIProcess/API/Cocoa/WKPreferencesPrivate.h: Added.
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-19  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Support asynchronous NSTextInputClient
        https://bugs.webkit.org/show_bug.cgi?id=130479

        Reviewed by Anders Carlsson.

        The implementation is currently disabled, pending lower level support.
        Most of the code is not under compile time guard however, to facilitate cross-platform
        reuse, or at least under a PLATFORM(COCOA) guard to share the code with iOS.

        * UIProcess/API/mac/WKView.mm: Added a compile time branch for USE(ASYNC_NSTEXTINPUTCLIENT).
        We still implement sync NSTextInputClient here, in order to get assertions when
        its methods are unexpectedly called.
        The new code first sends an event to input method asynchronously, handling any callbacks
        that may arrive. During this time, we no longer care about WKViewInterpretKeyEventsParameters
        at all. Once done, we interpret key bindings synchronously, collecting them into
        a vector.

        * UIProcess/API/mac/WKViewInternal.h: We no longer expose _interpretKeyEvent outside
        WKView.

        * UIProcess/WebPageProxy.cpp:
        * UIProcess/WebPageProxy.h:
        Added async calls and callbacks. Removed unnecessary and slightly harmful .get() when moving
        a callback pointer into map. Moved insertDictatedText() and getAttributedSubstringFromRange()
        from PLATFORM(COCOA) to PLATFORM(MAC), because they are unused and unimplemented on
        iOS, and unlikely to be needed any time soon. Changed USE(APPKIT) to PLATFORM(MAC),
        because that's more accurate in this case (nothing depends on AppKit, it's just code
        that we only need on Mac).

        * UIProcess/WebPageProxy.messages.in: Added messages for new async IM responses.

        * UIProcess/ios/WebPageProxyIOS.mm: Removed insertDictatedText() and getAttributedSubstringFromRange().

        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::insertDictatedTextAsync):
        (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
        (WebKit::WebPageProxy::attributedStringForCharacterRangeCallback):
        Added async calls and callbacks that are Mac only.

        * WebProcess/WebPage/WebPage.cpp:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        Added async implementations (which are essentially the same as sync ones, sadly).

        * WebProcess/WebPage/WebPage.messages.in: Added async messages, moved some messages
        under PLATFORM(MAC).

        * WebProcess/WebPage/ios/WebPageIOS.mm: More of deleting functions that are Mac only,
        and cannot be easily implemented in WebPage.cpp with shared code.

2014-03-20  Martin Robinson  <mrobinson@igalia.com>

        Remove remaining GTK+ unused parameter warnings from WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130518

        Reviewed by Sergio Villar Senin.

        Fix almost all unused parameter warnings in the WebKit2GTK+ build.

2014-03-20  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165962.
        https://bugs.webkit.org/show_bug.cgi?id=130512

        It broke the build (Requested by Ossy on #webkit).

        Reverted changeset:

        "[EFL][GTK] Get CMake to find Freetype2 properly"
        https://bugs.webkit.org/show_bug.cgi?id=130150
        http://trac.webkit.org/changeset/165962

2014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [EFL][GTK] Get CMake to find Freetype2 properly
        https://bugs.webkit.org/show_bug.cgi?id=130150

        Reviewed by Csaba Osztrogonác.

        Newer versions of CMake are not able to find Freetype2 correctly.
        FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
        freetype2 repo, because a completely different version number is found in freetype2.pc.

        * PlatformEfl.cmake:

2014-03-20  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] test_ewk2_application_cache_manager is flaky
        https://bugs.webkit.org/show_bug.cgi?id=130501

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
        (timerCallback): Return ECORE_CALLBACK_CANCEL to clear the timer.

2014-03-19  Tim Horton  <timothy_horton@apple.com>

        Address late review comment and style nit after r165934.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):

2014-03-19  Tim Horton  <timothy_horton@apple.com>

        [iOS][WebKit2] Back-forward swipe doesn't always complete with fingers down
        https://bugs.webkit.org/show_bug.cgi?id=130489
        <rdar://problem/16027007>

        Reviewed by Simon Fraser.

        * UIProcess/ios/ViewGestureControllerIOS.mm:
        (WebKit::ViewGestureController::beginSwipeGesture):
        In order to have fingers-down swipe completion work correctly, we need
        to give UIKit an empty interactive update block.

2014-03-19  Anders Carlsson  <andersca@apple.com>

        Get rid of two IPC::Connection functions by folding them into lambdas
        https://bugs.webkit.org/show_bug.cgi?id=130482

        Reviewed by Tim Horton.

        * Platform/IPC/Connection.cpp:
        (IPC::Connection::addWorkQueueMessageReceiver):
        (IPC::Connection::removeWorkQueueMessageReceiver):
        * Platform/IPC/Connection.h:

2014-03-19  Simon Fraser  <simon.fraser@apple.com>

        Expose text and page zoom in WK2 SPI, and hook them up in MiniBrowser
        https://bugs.webkit.org/show_bug.cgi?id=130476

        Reviewed by Anders Carlsson.
        
        Expose page and text zoom as SPI.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _supportsTextZoom]):
        (-[WKWebView _textZoomFactor]):
        (-[WKWebView _setTextZoomFactor:]):
        (-[WKWebView _pageZoomFactor]):
        (-[WKWebView _setPageZoomFactor:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-03-19  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Reduce the extended background's opacity when WKContentView is smaller than its WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=130436

        Reviewed by Beth Dakin.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _updateScrollViewBackground]):

2014-03-19  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WebKit2] <rdar://problem/16330387> Do not use the keyboard rect for computing the general unobscuredRect, only use it for centering
        https://bugs.webkit.org/show_bug.cgi?id=130382

        Reviewed by Simon Fraser.

        Always accumulating the keyboard rect out of the exposedRect caused some issues (see <rdar://problem/16330387>).
        This patch split the rect in two: unobscured rect for WebCore, and unobscuredContentRectIncludingKeyboard for centering
        UI Elements in view.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _zoomToRect:WebCore::atScale:origin:WebCore::]):
        (-[WKWebView _scrollToRect:WebCore::origin:WebCore::minimumScrollDistance:]):
        (-[WKWebView _zoomToRect:WebCore::withOrigin:WebCore::fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
        (-[WKWebView _contentRectForUserInteraction]):
        (-[WKWebView _updateVisibleContentRects]):

2014-03-19  Anders Carlsson  <andersca@apple.com>

        Get rid of WKProcessClass
        https://bugs.webkit.org/show_bug.cgi?id=130478

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKProcessClass.h: Removed.
        * UIProcess/API/Cocoa/WKProcessClass.mm: Removed.
        * UIProcess/API/Cocoa/WKProcessClassConfiguration.h: Removed.
        * UIProcess/API/Cocoa/WKProcessClassConfiguration.mm: Removed.
        * UIProcess/API/Cocoa/WKProcessClassConfigurationPrivate.h: Removed.
        * UIProcess/API/Cocoa/WKProcessClassPrivate.h: Removed.
        * UIProcess/API/Cocoa/WKWebViewConfigurationToBeRemoved.mm: Removed.
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-19  Jer Noble  <jer.noble@apple.com>

        [Mac][EME] Query whether decoder support exists before creating a new MediaKeys object.
        https://bugs.webkit.org/show_bug.cgi?id=130459

        Reviewed by Eric Carlson.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface): Initialize the new WCSI method.

2014-03-19  Brady Eidson  <beidson@apple.com>

        Filter out editable services from image menu for non-contenteditable images
        <rdar://problem/16319645> and https://bugs.webkit.org/show_bug.cgi?id=130437

        Reviewed by Tim Horton.

        * UIProcess/mac/WebContextMenuProxyMac.h:
        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (-[WKSharingServicePickerDelegate setIncludeEditorServices:]):
        (-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
          Filter out editing services based on the includeEditorServices flag.
        (WebKit::WebContextMenuProxyMac::setupImageServicesMenu):
        (WebKit::WebContextMenuProxyMac::populate):

2014-03-19  Yongjun Zhang  <yongjun_zhang@apple.com>

        [iOS] WebKit2 Quicklook.
        https://bugs.webkit.org/show_bug.cgi?id=130360

        For WebKit2 resource loads, if we detect a quicklook content that QLConverter is able to
        convert, handle the response data to QLConverter and use its delegate WKWebResourceQuickLookDelegate
        to rounte the converted results (HTML) back into WebCore.  Thie similiar logic has been in place
        for WebKit1.

        Reviewed by Tim Horton.

        * WebKit2.xcodeproj/project.pbxproj: Add WebResourceLoaderIOS.mm to the project.
        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        * WebProcess/ios/WebResourceLoaderIOS.mm: Added.
        (-[WKWebResourceQuickLookDelegate initWithWebResourceLoader:WebKit::]): WKWebResourceQuickLookDelegate holds
            the original WebResourceLoader so that we could send converted result to WebCore.
        (-[WKWebResourceQuickLookDelegate connection:didReceiveDataArray:]):
        (-[WKWebResourceQuickLookDelegate connection:didReceiveData:lengthReceived:]):
        (-[WKWebResourceQuickLookDelegate connectionDidFinishLoading:]):
        (-[WKWebResourceQuickLookDelegate connection:didFailWithError:]):
        (-[WKWebResourceQuickLookDelegate clearHandle]):
        (WebKit::WebResourceLoader::setUpQuickLookHandleIfNeeded):

2014-03-19  Tim Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures: Swipe gesture can track vertical movement instead of horizontal movement
        https://bugs.webkit.org/show_bug.cgi?id=130441
        <rdar://problem/16337279>

        Reviewed by Simon Fraser.

        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::scrollEventCanBecomeSwipe):
        Factor logic that determines if a scroll event can become a swipe
        out into scrollEventCanBecomeSwipe.
        Use <= instead of < when comparing the axes, because we don't want
        to start a swipe on a completely diagonal scroll either (because AppKit
        can start tracking a vertical swipe in that case).

        (WebKit::ViewGestureController::handleScrollWheelEvent):
        (WebKit::ViewGestureController::wheelEventWasNotHandledByWebCore):
        Make use of scrollEventCanBecomeSwipe.

2014-03-18  Anders Carlsson  <andersca@apple.com>

        Add new functionality that will be required by the history item decoding
        https://bugs.webkit.org/show_bug.cgi?id=130433

        Reviewed by Sam Weinig.

        * Shared/cf/KeyedDecoder.cpp:
        (WebKit::KeyedDecoder::decodeUInt32):
        (WebKit::KeyedDecoder::decodeInt32):
        (WebKit::KeyedDecoder::decodeFloat):
        * Shared/cf/KeyedDecoder.h:

2014-03-19  Tim Horton  <timothy_horton@apple.com>

        [iOS] WebPDFViewPlaceholder divides-by-zero with an empty document
        https://bugs.webkit.org/show_bug.cgi?id=130444
        <rdar://problem/15580682>

        Reviewed by Sam Weinig.

        * UIProcess/ios/WKPDFView.mm:
        (-[WKPDFView web_setContentProviderData:]):
        Don't make UIPDFPageViews for null pages.

2014-03-18  Tim Horton  <timothy_horton@apple.com>

        [iOS][WebKit2] Provide generic software-snapshotting API
        https://bugs.webkit.org/show_bug.cgi?id=130385
        <rdar://problem/16005957>

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/API/Cocoa/_WKThumbnailView.mm:
        (-[_WKThumbnailView initWithFrame:fromWKView:]):
        (-[_WKThumbnailView _requestSnapshotIfNeeded]):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::internalShowContextMenu):
        * UIProcess/WebPageProxy.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::takeSnapshot):
        (WebKit::WebPage::scaledSnapshotWithOptions):
        (WebKit::WebPage::snapshotAtSize):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        Rename TakeThumbnailSnapshot message to TakeSnapshot.

        Fill the snapshot image with the FrameView's background color, to avoid
        half-pixel alpha around the edges.

        Factor snapshotAtSize out of scaledSnapshotWithOptions.

        Don't apply both the custom and device scale factor to the base CTM,
        only the device scale factor. Custom scale factor should only be
        applied to the user CTM.

        * Shared/ImageOptions.h:
        Add a snapshot option, RespectDrawingAreaTransform, that maps
        the rect through the drawing area's root layer transform.
        Use this in place of the thumbnail-specific code in TakeThumbnailSnapshot.
        Add a snapshot option, ExcludeDeviceScaleFactor, which means that
        snapshotting will not factor the device scale in (useful for drawing
        to a bitmap at an exact requested size).

2014-03-18  Samuel White  <samuel_white@apple.com>

        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
        https://bugs.webkit.org/show_bug.cgi?id=130250

        Reviewed by Chris Fleizach.

        Added ability to toggle enhanced accessibility on and off to support tests that require it.

        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
        (WKAccessibilityEnableEnhancedAccessibility):
        (WKAccessibilityEnhancedAccessibilityEnabled):
        * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:

2014-03-18  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Rename async APIs for better consistency with EFL
        https://bugs.webkit.org/show_bug.cgi?id=130319

        Reviewed by Gyuyoung Kim.

        There are inconsistency with async keyword in several ewebkit2 APIs.
        This patch rename them to {module/feature}_async_{verb} for better consistency with EFL.
        In addition, added Async keyword into their callback name.

        * UIProcess/API/efl/ewk_application_cache_manager.cpp:
        (EwkApplicationCacheOriginsAsyncData::EwkApplicationCacheOriginsAsyncData):
        (getApplicationCacheOriginsCallback):
        (ewk_application_cache_manager_origins_async_get):
        * UIProcess/API/efl/ewk_application_cache_manager.h:
        * UIProcess/API/efl/ewk_cookie_manager.cpp:
        (EwkCookiePolicyAsyncData::EwkCookiePolicyAsyncData):
        (getAcceptPolicyCallback):
        (ewk_cookie_manager_accept_policy_async_get):
        (EwkCookieHostnamesAsyncData::EwkCookieHostnamesAsyncData):
        (getHostnamesWithCookiesCallback):
        (ewk_cookie_manager_hostnames_with_cookies_async_get):
        * UIProcess/API/efl/ewk_cookie_manager.h:
        * UIProcess/API/efl/ewk_database_manager.cpp:
        (EwkDatabaseOriginsAsyncData::EwkDatabaseOriginsAsyncData):
        (getDatabaseOriginsCallback):
        (ewk_database_manager_origins_async_get):
        * UIProcess/API/efl/ewk_database_manager.h:
        * UIProcess/API/efl/ewk_storage_manager.cpp:
        (EwkStorageOriginsAsyncData::EwkStorageOriginsAsyncData):
        (getStorageOriginsCallback):
        (ewk_storage_manager_origins_async_get):
        * UIProcess/API/efl/ewk_storage_manager.h:
        * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
        (timerCallback):
        * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
        (EWK2CookieManagerTest::getAcceptPolicy):
        (EWK2CookieManagerTest::getHostnamesWithCookies):
        * UIProcess/API/efl/tests/test_ewk2_database_manager.cpp:
        (EWK2DatabaseManagerTest::timerCallback):
        (TEST_F):
        * UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
        (EWK2StorageManagerTest::timerCallback):
        (TEST_F):

2014-03-18  Tim Horton  <timothy_horton@apple.com>

        [iOS][WebKit2] Mark layer contents as being opaque if they are
        https://bugs.webkit.org/show_bug.cgi?id=130427
        <rdar://problem/15540434>

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerBackingStore.h:
        (WebKit::RemoteLayerBackingStore::isOpaque):
        * Shared/mac/RemoteLayerBackingStore.mm:
        (RemoteLayerBackingStore::RemoteLayerBackingStore):
        (RemoteLayerBackingStore::ensureBackingStore):
        (RemoteLayerBackingStore::encode):
        (RemoteLayerBackingStore::decode):
        (RemoteLayerBackingStore::display):
        (RemoteLayerBackingStore::applyBackingStoreToLayer):
        Move the code to set a RemoteLayerBackingStore as a CALayer's contents
        from RemoteLayerTreePropertyApplier to RemoteLayerBackingStore (mostly
        as a way to keep the USE(IOSURFACE) #ifs in one place).
        Remove the surface() getter, because it's no longer needed, and make
        image() private as it can be now (and rename it to createImageForFrontBuffer
        for clarity's sake).

        Add an isOpaque argument to ensureBackingStore, encode/decode it, and
        add a getter. If isOpaque is true when applying backing store to the
        CALayer on the UI process side, set CALayer.contentsOpaque to let CA know.

        Make opaque bitmaps if not using accelerated drawing. For the IOSurface
        case, we can't make opaque IOSurfaces, but telling CA that we have filled
        the whole bitmap still enables similar optimizations.

        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::applyPropertiesToLayer):
        Reset contentsOpaque if the layer loses its backing store.

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTextStream::operator<<):
        (WebKit::dumpChangedLayers):
        Add a bit more logging about RemoteLayerBackingStore's opaqueness
        and acceleratedness.

        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (PlatformCALayerRemote::updateBackingStore):
        (PlatformCALayerRemote::setOpaque):
        Invalidate the RemoteLayerBackingStore if layer opaqueness changes.

2014-03-18  Brady Eidson  <beidson@apple.com>

        Make image controls menu work in WK2
        <rdar://problem/16294412> and https://bugs.webkit.org/show_bug.cgi?id=130424

        Reviewed by Tim Horton.

        * Platform/SharedMemory.h:
        * Platform/mac/SharedMemoryMac.cpp:
        (WebKit::SharedMemory::Handle::~Handle):
        (WebKit::SharedMemory::Handle::clear):

        * Platform/unix/SharedMemoryUnix.cpp:
        (WebKit::SharedMemory::Handle::~Handle):
        (WebKit::SharedMemory::Handle::clear):

        * Shared/ContextMenuContextData.cpp:
        (WebKit::ContextMenuContextData::ContextMenuContextData):
        (WebKit::ContextMenuContextData::operator=):
        (WebKit::ContextMenuContextData::encode):
        (WebKit::ContextMenuContextData::decode):
        * Shared/ContextMenuContextData.h:
        (WebKit::ContextMenuContextData::controlledImageHandle):

        * Shared/ShareableBitmap.cpp:
        (WebKit::ShareableBitmap::Handle::clear):
        * Shared/ShareableBitmap.h:
        * UIProcess/WebContextMenuProxy.h:

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::internalShowContextMenu):
        (WebKit::WebPageProxy::replaceControlledImage):
        * UIProcess/WebPageProxy.h:

        * UIProcess/efl/WebContextMenuProxyEfl.cpp:
        (WebKit::WebContextMenuProxyEfl::showContextMenu):
        * UIProcess/efl/WebContextMenuProxyEfl.h:

        * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
        (WebKit::WebContextMenuProxyGtk::showContextMenu):
        * UIProcess/gtk/WebContextMenuProxyGtk.h:

        Add a sharing service context menu that lives side-by-side with the normal one:
        * UIProcess/mac/WebContextMenuProxyMac.h:
        * UIProcess/mac/WebContextMenuProxyMac.mm:
        (+[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate]):
        (-[WKSharingServicePickerDelegate setMenuProxy:WebKit::]):
        (-[WKSharingServicePickerDelegate setPicker:]):
        (-[WKSharingServicePickerDelegate sharingServicePicker:delegateForSharingService:]):
        (-[WKSharingServicePickerDelegate sharingService:willShareItems:]):
        (-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
        (-[WKSharingServicePickerDelegate sharingService:sourceFrameOnScreenForShareItem:]):
        (-[WKSharingServicePickerDelegate sharingService:transitionImageForShareItem:contentRect:]):
        (-[WKSharingServicePickerDelegate sharingService:sourceWindowForShareItems:sharingContentScope:]):
        (WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
        (WebKit::WebContextMenuProxyMac::setupImageServicesMenu):
        (WebKit::WebContextMenuProxyMac::clearImageServicesMenu):
        (WebKit::WebContextMenuProxyMac::populate):
        (WebKit::WebContextMenuProxyMac::showContextMenu):
        (WebKit::WebContextMenuProxyMac::window):
        (WebKit::WebContextMenuProxyMac::replaceControlledImage):

        * WebProcess/WebPage/WebContextMenu.cpp:
        (WebKit::WebContextMenu::show):
        (WebKit::WebContextMenu::replaceControlledImage):
        * WebProcess/WebPage/WebContextMenu.h:

        Teach the WebProcess how to accept the replaced image.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::replaceControlledImage):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:

2014-03-18  Anders Carlsson  <andersca@apple.com>

        Begin cleaning up KeyedDecoder and KeyedEncoder
        https://bugs.webkit.org/show_bug.cgi?id=130431

        Reviewed by Tim Horton.

        * Shared/cf/KeyedDecoder.cpp:
        (WebKit::KeyedDecoder::KeyedDecoder):
        If we can't parse the property list data, just add an empty dictionary to the stack.

        (WebKit::KeyedDecoder::decodeBool):
        Remove unneeded m_dictionaryStack.last() null check. m_dictionaryStack would either be empty
        or at least have a root element; it would never have a null element.
        
        (WebKit::KeyedDecoder::decodeDouble):
        Remove the same check as above and remove the CFNumberGetType checks since CFNumberGetValue will
        do the type conversion for us and return false if it's lossy.

        (WebKit::KeyedDecoder::decodeInt64):
        Remove the m_dictionaryStack.last() check.

        (WebKit::KeyedDecoder::decodeUInt32):
        Ditto.

        (WebKit::KeyedDecoder::decodeString):
        Ditto.

        (WebKit::KeyedDecoder::beginObject):
        Ditto.

        (WebKit::KeyedDecoder::beginArray):
        Ditto.

        (WebKit::KeyedDecoder::beginArrayElement):
        Ditto.

        * Shared/cf/KeyedDecoder.h:
        Sort functions to be in the same logical order as the base class.

        * Shared/cf/KeyedEncoder.cpp:
        (WebKit::KeyedEncoder::finishEncoding):
        Don't check for a non-null CFErrorRef here (which we incidentally never released on error). Instead,
        just null check the returned CFDataRef object.

2014-03-18  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed typo build fix for r165846.

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::decode):

2014-03-18  Joseph Pecoraro  <pecoraro@apple.com>

        WebKit2 SPI to disable remote inspection on a WKWebView / WKPage
        https://bugs.webkit.org/show_bug.cgi?id=130371

        Reviewed by Dan Bernstein.

        * Shared/WebPageCreationParameters.h:
        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        Add allowsRemoteInspection bool.

        * UIProcess/API/C/WKPagePrivate.h:
        * UIProcess/API/C/WKPage.cpp:
        (WKPageGetAllowsRemoteInspection):
        (WKPageSetAllowsRemoteInspection):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _allowsRemoteInspection]):
        (-[WKWebView _setAllowsRemoteInspection:]):
        Getter and setter for allowing remote inspection state.

        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::allowsRemoteInspection):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::setAllowsRemoteInspection):
        (WebKit::WebPageProxy::creationParameters):
        Cached allows remote inspection state, with getter and setter.

        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::setAllowsRemoteInspection):
        When setting, call into WebCore to adjust the Page's setting.

2014-03-18  Anders Carlsson  <andersca@apple.com>

        REGRESSION: Visited link coloring seems to be completely broken in tip of tree
        https://bugs.webkit.org/show_bug.cgi?id=130419
        <rdar://problem/16337850>

        Reviewed by Dan Bernstein.

        Make sure to send any queued up messages before calling connectionWillOpen so we'll ensure
        FIFO ordering if any messages are sent from within connectionWillOpen.

        * Shared/ChildProcessProxy.cpp:
        (WebKit::ChildProcessProxy::didFinishLaunching):

2014-03-18  Joseph Pecoraro  <pecoraro@apple.com>

        WebPageCreationParameters colorSpace should be MAC not COCOA
        https://bugs.webkit.org/show_bug.cgi?id=130414

        Reviewed by Dan Bernstein.

        The colorSpace param was only set and used on Mac, not iOS.

        * Shared/WebPageCreationParameters.h:
        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):

2014-03-18  Simon Fraser  <simon.fraser@apple.com>

        Dan says that options should be unsigned, and enums should be signed.
        
        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        (NS_ENUM):

2014-03-17  Alexey Proskuryakov  <ap@apple.com>

        [WK2] Pass ranges over IPC in a cross-platform manner
        https://bugs.webkit.org/show_bug.cgi?id=130376

        Reviewed by Anders Carlsson.

        Added an EditingRange class for IPC, which automatically converts to and from
        NSRanges, knowing the difference between notFound and NSNotFound.

        Manually applied the same fix to characterIndexForPoint.

        * Scripts/webkit2/messages.py:
        (struct_or_class):
        * Shared/EditingRange.h: Added.
        (WebKit::EditingRange::EditingRange):
        (WebKit::EditingRange::isValid):
        (WebKit::EditingRange::operator NSRange):
        * UIProcess/API/mac/WKView.mm:
        (-[WKView insertText:replacementRange:]):
        (-[WKView selectedRange]):
        (-[WKView hasMarkedText]):
        (-[WKView setMarkedText:selectedRange:replacementRange:]):
        (-[WKView markedRange]):
        (-[WKView attributedSubstringForProposedRange:actualRange:]):
        (-[WKView characterIndexForPoint:]):
        (-[WKView firstRectForCharacterRange:actualRange:]):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView setMarkedText:selectedRange:]):
        (-[WKContentView insertText:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::setComposition):
        (WebKit::WebPageProxy::insertText):
        (WebKit::WebPageProxy::insertDictatedText):
        (WebKit::WebPageProxy::getMarkedRange):
        (WebKit::WebPageProxy::getSelectedRange):
        (WebKit::WebPageProxy::getAttributedSubstringFromRange):
        (WebKit::WebPageProxy::firstRectForCharacterRange):
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::setComposition):
        (WebKit::WebPageProxy::insertText):
        (WebKit::WebPageProxy::insertDictatedText):
        (WebKit::WebPageProxy::getMarkedRange):
        (WebKit::WebPageProxy::getSelectedRange):
        (WebKit::WebPageProxy::getAttributedSubstringFromRange):
        (WebKit::WebPageProxy::firstRectForCharacterRange):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::rangeFromEditingRange):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setComposition):
        (WebKit::WebPage::insertText):
        (WebKit::WebPage::insertDictatedText):
        (WebKit::WebPage::getMarkedRange):
        (WebKit::WebPage::getSelectedRange):
        (WebKit::WebPage::getAttributedSubstringFromRange):
        (WebKit::WebPage::firstRectForCharacterRange):
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::setComposition):
        (WebKit::WebPage::insertText):
        (WebKit::WebPage::insertDictatedText):
        (WebKit::WebPage::getMarkedRange):
        (WebKit::WebPage::getSelectedRange):
        (WebKit::WebPage::getAttributedSubstringFromRange):
        (WebKit::WebPage::characterIndexForPoint):
        (WebKit::WebPage::firstRectForCharacterRange):

2014-03-17  Filip Pizlo  <fpizlo@apple.com>

        More FTL enabling.

        Rubber stamped by Dan Bernstein.

        * Configurations/FeatureDefines.xcconfig:

2014-03-17  Simon Fraser  <simon.fraser@apple.com>

        Renable pagination mode in WK2 MiniBrowser
        https://bugs.webkit.org/show_bug.cgi?id=130374

        Reviewed by Anders Carlsson.
        
        Add SPI for pagination mode.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _paginationMode]):
        (-[WKWebView _setPaginationMode:]):
        (-[WKWebView _paginationBehavesLikeColumns]):
        (-[WKWebView _setPaginationBehavesLikeColumns:]):
        (-[WKWebView _pageLength]):
        (-[WKWebView _setPageLength:]):
        (-[WKWebView _gapBetweenPages]):
        (-[WKWebView _setGapBetweenPages:]):
        (-[WKWebView _pageCount]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        (NS_ENUM):

2014-03-18  Ryuan Choi  <ryuan.choi@samsung.com>

        [CMAKE][WK2]Move CoordinatedGraphics related files out of WebKit2/CMakeLists.txt
        https://bugs.webkit.org/show_bug.cgi?id=130390

        Reviewed by Martin Robinson.

        Now, only EFL port use CoordinatedGraphics among CMake based ports.

        * CMakeLists.txt:
        * PlatformEfl.cmake:
        * PlatformGTK.cmake: Removed CoordinatedGraphics related files.

2014-03-18  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Race condition when the socket event source is cancelled
        https://bugs.webkit.org/show_bug.cgi?id=130395

        Reviewed by Martin Robinson.

        In some cases when the socket event source is cancelled the socket
        event source callback is called with the condition of the previous
        poll instead of 0. This can happen sometimes when the source is
        cancelled from the socket event source callback. Once the socket
        event source is cancelled, it's dispatched by glib without
        polling, so the condition is never reset again and the callback is
        called again and again with the previous condition. When the
        condition is G_IO_IN, the source is re-scheduled entering into an
        infinite loop. We should always check if the source has been
        cancelled at the beginning of the callback to destroy the source
        instead of relying on the condition being 0.

        * Platform/gtk/WorkQueueGtk.cpp:
        (WorkQueue::SocketEventSource::isCancelled):
        (WorkQueue::SocketEventSource::eventCallback):

2014-03-18  Csaba Osztrogonác  <ossy@webkit.org>

        [GTK] URTFB after r165789. Stub function added.

        * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
        (WebKit::InjectedBundle::setBundleParameter):

2014-03-17  Jaehun Lim  <ljaehun.lim@samsung.com>

        Unreviewed, EFL build fix after r165789

        * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp:
        (WebKit::InjectedBundle::setBundleParameter): Implemented.

2014-03-17  Jae Hyun Park  <jaepark@webkit.org>

        [GTK] Build fix for debug build

        Unreviewed.

        finalizedListItem was actually used in ASSERT.  So, use ASSERT_UNUSED
        instead of ASSERT.

        * UIProcess/API/gtk/WebKitBackForwardListItem.cpp:
        (webkitBackForwardListItemFinalized):

2014-03-17  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WK2] Getting rid of compilation warnings
        https://bugs.webkit.org/show_bug.cgi?id=130348

        Reviewed by Benjamin Poulain.

        * UIProcess/API/APIHistoryClient.h:
        (API::HistoryClient::didPerformClientRedirect):
        (API::HistoryClient::didPerformServerRedirect):
        (API::HistoryClient::didUpdateHistoryTitle):
        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::didStartProvisionalLoadForFrame):
        (API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
        (API::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
        (API::LoaderClient::didCommitLoadForFrame):
        (API::LoaderClient::didFinishLoadForFrame):
        (API::LoaderClient::didFailLoadWithErrorForFrame):
        (API::LoaderClient::didChangeBackForwardList):
        * UIProcess/API/APIPolicyClient.h:
        (API::PolicyClient::decidePolicyForNavigationAction):
        (API::PolicyClient::decidePolicyForNewWindowAction):
        (API::PolicyClient::decidePolicyForResponse):
        (API::PolicyClient::unableToImplementPolicy):
        * UIProcess/API/APIUIClient.h:
        (API::UIClient::exceededDatabaseQuota):
        (API::UIClient::saveDataToFileInDownloadsFolder):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageLoaderClient):
        * UIProcess/APISession.cpp:
        (API::generateID):
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::viewStateDidChange):

2014-03-17  Anders Carlsson  <andersca@apple.com>

        Update the bundle parameters dictionary and send out KVO notifications
        https://bugs.webkit.org/show_bug.cgi?id=130379
        <rdar://problem/16213914>

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _setObject:forBundleParameter:]):
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm:
        (-[WKWebProcessBundleParameters setParameter:forKey:]):
        * WebProcess/InjectedBundle/InjectedBundle.h:
        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
        (WebKit::InjectedBundle::setBundleParameter):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::setInjectedBundleParameter):
        * WebProcess/WebProcess.h:
        * WebProcess/WebProcess.messages.in:

2014-03-17  Tim Horton  <timothy_horton@apple.com>

        Address some style nits.

        * UIProcess/API/Cocoa/_WKThumbnailViewInternal.h:

2014-03-17  Simon Fraser  <simon.fraser@apple.com>

        Address some style nits.

        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-03-17  Simon Fraser  <simon.fraser@apple.com>

        Add transparent window support back into MiniBrowser
        https://bugs.webkit.org/show_bug.cgi?id=130363

        Reviewed by Anders Carlsson.
        
        Expose SPI for transparent window support.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _drawsTransparentBackground]):
        (-[WKWebView _setDrawsTransparentBackground:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-03-17  Alexey Proskuryakov  <ap@apple.com>

        Undo some accidental Gtk changes from http://trac.webkit.org/changeset/165759

        * UIProcess/WebPageProxy.cpp:
        * WebProcess/WebPage/WebPage.messages.in:

2014-03-17  Csaba Osztrogonác  <ossy@webkit.org>

        [WK2] URTBF after r165755 for non Apple platforms, stub functions added.

        * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp:
        (WebKit::InjectedBundle::platformInitialize):
        * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
        (WebKit::InjectedBundle::platformInitialize):

2014-03-17  Alexey Proskuryakov  <ap@apple.com>

        Move convertToRange() helper to cross-platform WebPage.cpp
        https://bugs.webkit.org/show_bug.cgi?id=130365

        Reviewed by Tim Horton.

        Also renamed it to rangeFromEditingLocationAndLength().

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::rangeFromEditingLocationAndLength):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::insertText):
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::setComposition):
        (WebKit::WebPage::insertText):
        (WebKit::WebPage::insertDictatedText):
        (WebKit::WebPage::getAttributedSubstringFromRange):
        (WebKit::WebPage::characterIndexForPoint):
        (WebKit::WebPage::firstRectForCharacterRange):

2014-03-17  Anders Carlsson  <andersca@apple.com>

        Follow-up fix.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h:

2014-03-17  Enrica Casucci  <enrica@apple.com>

        WK2: support data detectors driven action sheet..
        https://bugs.webkit.org/show_bug.cgi?id=130362
        <rdar://problem/16319711>

        Reviewed by Benjamin Poulain.

        * UIProcess/ios/WKActionSheetAssistant.mm:
        (-[WKActionSheetAssistant showDataDetectorsSheet]):

2014-03-17  Anders Carlsson  <andersca@apple.com>

        Fix 32-bit OS X build.

        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm:
        * WebProcess/InjectedBundle/InjectedBundle.h:
        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
        (WebKit::InjectedBundle::platformInitialize):

2014-03-17  Jae Hyun Park  <jaepark@webkit.org>

        [GTK][CMake] Fix WebKit2 unused parameter warnings
        https://bugs.webkit.org/show_bug.cgi?id=130316

        Reviewed by Martin Robinson.

        * Platform/gtk/WorkQueueGtk.cpp: Fix unused parameter warnings.
        * UIProcess/API/gtk/PageClientImpl.cpp: Ditto.
        * UIProcess/API/gtk/WebKitBackForwardListItem.cpp: Ditto.
        * UIProcess/API/gtk/WebKitContextMenuClient.cpp: Ditto.
        * UIProcess/API/gtk/WebKitContextMenuItem.cpp: Ditto.
        * UIProcess/API/gtk/WebKitDownloadClient.cpp: Ditto.
        * UIProcess/API/gtk/WebKitFaviconDatabase.cpp: Ditto.
        * UIProcess/API/gtk/WebKitFindController.cpp: Ditto.
        * UIProcess/API/gtk/WebKitFormClient.cpp: Ditto.
        * UIProcess/API/gtk/WebKitGeolocationProvider.cpp: Ditto.
        * UIProcess/API/gtk/WebKitLoaderClient.cpp: Ditto.
        * UIProcess/API/gtk/WebKitPlugin.cpp: Ditto.
        * UIProcess/API/gtk/WebKitPolicyClient.cpp: Ditto.
        * UIProcess/API/gtk/WebKitRequestManagerClient.cpp: Ditto.
        * UIProcess/API/gtk/WebKitTextChecker.cpp: Ditto.
        * UIProcess/API/gtk/WebKitUIClient.cpp: Ditto.
        * UIProcess/API/gtk/WebKitURISchemeRequest.cpp: Ditto.
        * UIProcess/API/gtk/WebKitWebContext.cpp: Ditto.
        * UIProcess/API/gtk/WebKitWebInspector.cpp: Ditto.
        * UIProcess/API/gtk/WebKitWebView.cpp: Ditto.
        * UIProcess/API/gtk/WebKitWebViewBase.cpp: Ditto.
        * UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp: Ditto.
        * UIProcess/API/gtk/WebViewBaseInputMethodFilter.cpp: Ditto.
        * UIProcess/gtk/TextCheckerGtk.cpp: Ditto.
        * UIProcess/gtk/WebContextMenuProxyGtk.cpp: Ditto.
        * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: Ditto.
        * WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp: Ditto.
        * WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp: Ditto.
        * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: Ditto.
        * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: Ditto.
        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Ditto.

2014-03-17  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Standardize on start/length in text input IPC methods
        https://bugs.webkit.org/show_bug.cgi?id=130359

        Reviewed by Anders Carlsson.

        Some IPC methods used start/length, and others use start/end. This was confusing.

        While here, changed WebPageMac.mm to not use NSMakeRange where we don't need it
        (I want to move this code to WebPage.cpp, where it could be shared with iOS and
        other platforms, as it doesn't depend on Foundation much).

        * UIProcess/API/mac/WKView.mm:
        (-[WKView insertText:replacementRange:]):
        (-[WKView setMarkedText:selectedRange:replacementRange:]):
        (-[WKView attributedSubstringForProposedRange:actualRange:]):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::internalShowContextMenu):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::setComposition):
        (WebKit::WebPageProxy::insertText):
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::setComposition):
        (WebKit::WebPageProxy::insertText):
        (WebKit::WebPageProxy::insertDictatedText):
        (WebKit::WebPageProxy::getAttributedSubstringFromRange):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::setComposition):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setComposition):
        (WebKit::WebPage::insertText):
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::setComposition):
        (WebKit::WebPage::insertText):
        (WebKit::WebPage::insertDictatedText):
        (WebKit::WebPage::getAttributedSubstringFromRange):
        (WebKit::convertToRange):
        (WebKit::WebPage::firstRectForCharacterRange):

2014-03-17  Tim Horton  <timothy_horton@apple.com>

        Rename WKThumbnailView to _WKThumbnailView
        https://bugs.webkit.org/show_bug.cgi?id=130361

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/_WKThumbnailView.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKThumbnailView.h.
        * UIProcess/API/Cocoa/_WKThumbnailView.mm: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKThumbnailView.mm.
        (-[_WKThumbnailView initWithFrame:fromWKView:]):
        (-[_WKThumbnailView _viewWasUnparented]):
        (-[_WKThumbnailView _viewWasParented]):
        (-[_WKThumbnailView _requestSnapshotIfNeeded]):
        (-[_WKThumbnailView _didTakeSnapshot:]):
        (-[_WKThumbnailView viewDidMoveToWindow]):
        (-[_WKThumbnailView setScale:]):
        (-[_WKThumbnailView setUsesSnapshot:]):
        (-[_WKThumbnailView _setThumbnailLayer:]):
        (-[_WKThumbnailView _thumbnailLayer]):
        * UIProcess/API/Cocoa/_WKThumbnailViewInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKThumbnailViewInternal.h.
        * UIProcess/API/mac/WKView.mm:
        (-[WKView _setThumbnailView:]):
        (-[WKView _thumbnailView]):
        (-[WKView _updateThumbnailViewLayer]):
        * UIProcess/API/mac/WKViewInternal.h:
        * UIProcess/mac/PageClientImpl.mm:
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-17  Anders Carlsson  <andersca@apple.com>

        Add SPI for getting bundle parameters from the injected bundle
        https://bugs.webkit.org/show_bug.cgi?id=130355

        Reviewed by Dan Bernstein.

        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::platformInitializeWebProcess):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h: Copied from Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h.
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm: Copied from Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h.
        (-[WKWebProcessBundleParameters initWithDictionary:]):
        (-[WKWebProcessBundleParameters valueForKey:]):
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
        (-[WKWebProcessPlugInController parameters]):
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::InjectedBundle):
        * WebProcess/InjectedBundle/InjectedBundle.h:
        (WebKit::InjectedBundle::create):
        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
        (WebKit::InjectedBundle::bundleParameters):
        (WebKit::InjectedBundle::platformInitialize):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::initializeWebProcess):

2014-03-17  Brent Fulgham  <bfulgham@apple.com>

        Provide preference to enable additional AVFoundation options
        https://bugs.webkit.org/show_bug.cgi?id=130275

        Reviewed by Eric Carlson.

        * Shared/WebPreferencesStore.h: Added new preference.
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetEnableInheritURIQueryComponent): Added.
        (WKPreferencesGetEnableInheritURIQueryComponent): Added.
        * UIProcess/API/C/WKPreferencesPrivate.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences): Handle new preference.

2014-03-17  Alexey Proskuryakov  <ap@apple.com>

        [Mac] getAttributedSubstringFromRange arguments are incorrectly named
        https://bugs.webkit.org/show_bug.cgi?id=130349

        Reviewed by Tim Horton.

        There is a mess of start/end and start/length pairs in IPC. One day we'll fix them
        all, but now, let's at least name them correctly.

        No behavior change.

        * UIProcess/WebPageProxy.h:
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::getAttributedSubstringFromRange):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::getAttributedSubstringFromRange):

2014-03-17  Tim Horton  <timothy_horton@apple.com>

        WKThumbnailView should support snapshots
        https://bugs.webkit.org/show_bug.cgi?id=130335
        <rdar://problem/16255139>

        Reviewed by Simon Fraser.

        Add a mode where WKThumbnailView takes a software snapshot of the web content,
        replacing the live layer tree with said snapshot once it returns from the
        web process. This may improve animation performance in cases where the
        layer tree would otherwise be very complex.

        * UIProcess/API/Cocoa/WKThumbnailView.h:
        Add a property, usesSnapshot, which determines whether the thumbnail view
        should use the live layer tree or a snapshot of the content.

        * UIProcess/API/Cocoa/WKThumbnailView.mm:
        (-[WKThumbnailView initWithFrame:fromWKView:]):
        (-[WKThumbnailView _viewWasUnparented]):
        Clear the snapshot when unparented.

        (-[WKThumbnailView _viewWasParented]):
        Take a snapshot of the web content when parented, if needed.

        (-[WKThumbnailView _requestSnapshotIfNeeded]):
        If we're using snapshots, and haven't already dispatched an async snapshot request,
        and don't already have a snapshot, request a snapshot from the web process.

        When it returns, use it as the contents of the WKThumbnailView layer, and
        unparent the live layer tree.

        (-[WKThumbnailView setScale:]):
        (-[WKThumbnailView setUsesSnapshot:]):
        (-[WKThumbnailView _setThumbnailLayer:]):
        (-[WKThumbnailView _thumbnailLayer]):
        * UIProcess/API/Cocoa/WKThumbnailViewInternal.h:

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _setAcceleratedCompositingModeRootLayer:]):
        (-[WKView _acceleratedCompositingModeRootLayer]):
        WKView should always keep track of the current root layer, instead of totally
        handing control over to WKThumbnailView when it is used.

        (-[WKView _setThumbnailView:]):
        (-[WKView _updateThumbnailViewLayer]):
        (-[WKView _reparentLayerTreeInThumbnailView]):
        If needed (either we're not using snapshots, or still waiting for the snapshot to be painted),
        push the WKView's live layer tree into the thumbnail view.

        * UIProcess/API/mac/WKViewInternal.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::internalShowContextMenu):
        * UIProcess/WebPageProxy.h:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::takeThumbnailSnapshot):
        Add a message that asynchronously returns a snapshot that respects the
        current thumbnail scale and position.

        (WebKit::WebPage::scaledSnapshotWithOptions):
        Use some nullptr.

        * WebProcess/WebPage/DrawingArea.cpp:
        (WebKit::DrawingArea::transform):
        * WebProcess/WebPage/DrawingArea.h:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
        Add a getter for the DrawingArea's transform.
        Rename it to rootLayerTransform.

2014-03-17  Zan Dobersek  <zdobersek@igalia.com>

        Use RunLoop objects through references instead of pointers
        https://bugs.webkit.org/show_bug.cgi?id=130313

        Reviewed by Andreas Kling.

        Adjust the code accordingly now that RunLoop::current() and RunLoop::main()
        return RunLoop reference instead of a pointer.

        * DatabaseProcess/DatabaseProcess.cpp:
        (WebKit::DatabaseProcess::didClose):
        (WebKit::DatabaseProcess::didReceiveInvalidMessage):
        * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
        (WebKit::UniqueIDBDatabase::postMainThreadTask):
        * NetworkProcess/NetworkProcess.cpp:
        (WebKit::NetworkProcess::didClose):
        (WebKit::NetworkProcess::didReceiveInvalidMessage):
        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::continueWillSendRequest):
        * Platform/IPC/Connection.cpp:
        (IPC::Connection::SyncMessageState::getOrCreate):
        (IPC::Connection::SyncMessageState::SyncMessageState):
        (IPC::Connection::SyncMessageState::~SyncMessageState):
        (IPC::Connection::SyncMessageState::processIncomingMessage):
        (IPC::Connection::SyncMessageState::dispatchMessages):
        (IPC::Connection::createServerConnection):
        (IPC::Connection::createClientConnection):
        (IPC::Connection::Connection):
        (IPC::Connection::addWorkQueueMessageReceiver):
        (IPC::Connection::removeWorkQueueMessageReceiver):
        (IPC::Connection::sendSyncMessage):
        (IPC::Connection::sendSyncMessageFromSecondaryThread):
        (IPC::Connection::waitForSyncReply):
        (IPC::Connection::processIncomingMessage):
        (IPC::Connection::connectionDidClose):
        (IPC::Connection::dispatchDidReceiveInvalidMessage):
        (IPC::Connection::enqueueIncomingMessage):
        (IPC::Connection::wakeUpRunLoop):
        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.cpp:
        (IPC::Connection::receiveSourceEventHandler):
        * Shared/ChildProcess.cpp:
        (WebKit::ChildProcess::stopRunLoop):
        * Shared/Plugins/NPObjectProxy.cpp:
        (WebKit::NPObjectProxy::NP_Deallocate):
        * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
        (WebKit::ProcessLauncher::launchProcess):
        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
        (WebKit::ProcessLauncher::launchProcess):
        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
        (WebKit::connectToService):
        (WebKit::tryPreexistingProcess):
        (WebKit::createProcess):
        * UIProcess/Storage/StorageManager.cpp:
        (WebKit::StorageManager::getOrigins):
        (WebKit::StorageManager::getStorageDetailsByOrigin):
        * UIProcess/Storage/StorageManager.h:
        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
        (WebKit::NetscapePlugin::pluginThreadAsyncCall):
        * WebProcess/Plugins/PluginView.cpp:
        (WebKit::PluginView::unprotectPluginFromDestruction):
        * WebProcess/WebPage/EventDispatcher.cpp:
        (WebKit::EventDispatcher::wheelEvent):
        * WebProcess/WebPage/ViewUpdateDispatcher.cpp:
        (WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::close):

2014-03-17  Giovanni Campagna  <gcampagna@src.gnome.org>

        [GTK] Don't busy loop when the socket is full
        https://bugs.webkit.org/show_bug.cgi?id=129802

        Reviewed by Carlos Garcia Campos.

        When the socket is full and we see EAGAIN or EWOULDBLOCK
        (because the socket is non blocking), don't busy loop by
        tring to write again, instead poll() until the socket
        becomes writable.

        * Platform/IPC/unix/ConnectionUnix.cpp:
        (IPC::Connection::sendOutgoingMessage):

2014-03-17  Martin Robinson  <mrobinson@igalia.com>

        [GTK][CMake] Ensure that HAVE_GTK_UNIX_PRINTING is defined when appropriate
        https://bugs.webkit.org/show_bug.cgi?id=130155

        Reviewed by Philippe Normand.

        * PlatformGTK.cmake: Add GTK_UNIX_PRINT flags to the build.

2014-03-17  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Restore cursor when moving mouse into webview
        https://bugs.webkit.org/show_bug.cgi?id=130182

        Reviewed by Gyuyoung Kim.

        We changed mouse cursor when the type of cursor is changed.
        But once mouse is moved out of webview, ewebkit will not know whether cursor
        is changed or not.

        So, this patch added a logic to restore the last applied type of cursor when
        mouse is moved into webview again.

        * UIProcess/API/efl/EwkView.cpp:
        (EwkViewEventHandler<EVAS_CALLBACK_MOUSE_IN>::handleEvent):
        Call updateCursor to restore the last applied type of cursor.
        (EwkView::EwkView):
        (EwkView::updateCursor): Extracted from setCursor.
        (EwkView::setCursor):
        (EwkView::handleEvasObjectAdd):
        * UIProcess/API/efl/EwkView.h:

2014-03-16  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Add ewk_application_cache_manager APIs
        https://bugs.webkit.org/show_bug.cgi?id=102853

        Reviewed by Gyuyoung Kim.

        Implemented application cache manager to get list of origins which stores
        application cache and remove specified origin or all.

        * PlatformEfl.cmake: Added newly added files.
        * UIProcess/API/efl/ewk_application_cache_manager.cpp: Added.
        (EwkApplicationCacheManager::EwkApplicationCacheManager):
        (EwkApplicationCacheManager::~EwkApplicationCacheManager):
        (Get_Origins_Data::Get_Origins_Data):
        (getApplicationCacheOriginsCallback):
        (ewk_application_cache_manager_origins_get):
        (ewk_application_cache_origins_free):
        (ewk_application_cache_manager_delete_all):
        (ewk_application_cache_manager_delete):
        * UIProcess/API/efl/ewk_application_cache_manager.h: Added.
        * UIProcess/API/efl/ewk_application_cache_manager_private.h: Added.
        (EwkApplicationCacheManager::impl):
        * UIProcess/API/efl/ewk_context.cpp:
        (EwkContext::applicationCacheManager):
        (ewk_context_application_cache_manager_get):
        * UIProcess/API/efl/ewk_context.h:
        * UIProcess/API/efl/ewk_context_private.h:
        * UIProcess/API/efl/ewk_security_origin_private.h:
        (EwkSecurityOrigin::wkSecurityOrigin):
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
        (EWK2UnitTestServer::port):
        * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:
        * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
        Added to test application_cache_manager.
        (serverCallback):
        (getOriginsCallback):
        (timerCallback):
        (TEST_F):
        * UIProcess/API/efl/tests/test_ewk2_context.cpp:
        Added test case to test getter of application_cache_manager.
        (TEST_F):

2014-03-16  Zan Dobersek  <zdobersek@igalia.com>

        Move GTK WebKit2 code to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=129672

        Reviewed by Anders Carlsson.

        Repace uses of OwnPtr and PassOwnPtr in GTK-specific WebKit2 code with std::unique_ptr.

        * Shared/Downloads/Download.h:
        * Shared/Downloads/soup/DownloadSoup.cpp:
        (WebKit::Download::start):
        (WebKit::Download::startWithHandle):
        (WebKit::Download::platformInvalidate):
        * UIProcess/API/gtk/PageClientImpl.cpp:
        * UIProcess/API/gtk/PageClientImpl.h:
        * UIProcess/API/gtk/WebKitContextMenuItem.cpp:
        (webkitContextMenuItemCreate):
        (webkitContextMenuItemCreateForGtkItem):
        (webkit_context_menu_item_new):
        (webkit_context_menu_item_new_from_stock_action):
        (webkit_context_menu_item_new_from_stock_action_with_label):
        (webkit_context_menu_item_new_with_submenu):
        (webkit_context_menu_item_new_separator):
        * UIProcess/API/gtk/WebKitTextChecker.h:
        * UIProcess/API/gtk/WebKitWebContext.cpp:
        (createDefaultWebContext):
        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseConstructed):
        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
        (WebKit::WebPrintOperationGtk::print):
        * WebProcess/gtk/WebGtkExtensionManager.cpp:
        (WebKit::WebGtkExtensionManager::initialize):
        * WebProcess/soup/WebKitSoupRequestInputStream.cpp:
        (webkitSoupRequestInputStreamPendingReadAsyncComplete):
        (webkitSoupRequestInputStreamReadAsync):
        * WebProcess/soup/WebSoupRequestManager.cpp:
        (WebKit::WebSoupRequestManager::send):
        * WebProcess/soup/WebSoupRequestManager.h:

2014-03-16  Brian Burg  <bburg@apple.com>

        Web Inspector: vended backend commands file should be generated as part of the build
        https://bugs.webkit.org/show_bug.cgi?id=130110

        Reviewed by Timothy Hatcher.

        * PlatformGTK.cmake: Copy over generated inspector backend commands files.

2014-03-16  Darin Adler  <darin@apple.com>

        Try to fix 32-bit Mac build.

        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Add missing include.

2014-03-16  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, GTK build fix after r165692.

        * UIProcess/gtk/TextCheckerGtk.cpp:
        (WebKit::TextChecker::checkSpellingOfString):
        (WebKit::TextChecker::checkGrammarOfString):

2014-03-15  Darin Adler  <darin@apple.com>

        Remove all uses of deprecatedCharacters from WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130197

        Reviewed by Andreas Kling.

        * Shared/APIString.h: Rewrote getCharacters to use StringView,
        substring, and getCharactersWithUpconvert. Added an 8-bit case
        to getUTF8CString.

        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
        (WebKit::writeByte): Added.
        (WebKit::writeCharacter): Added.
        (WebKit::writeLine): Added. Uses operator[] instead of characters16 to get
        the UTF-16 characters out of the string.
        (WebKit::NetscapePluginModule::scanPlugin): Replaced code that writes out
        text to stdout with much simpler version using the functions above.

        * UIProcess/TextChecker.h: Changed text arguments to use StringView instead
        of UChar/int pairs.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::internalShowContextMenu): Updated to pass StringView.

        * UIProcess/efl/TextCheckerEfl.cpp:
        (WebKit::nextWordOffset): Changed function to use StringView and unsigned.
        (WebKit::TextChecker::checkTextOfParagraph): Changed to use StringView and
        substring.
        (WebKit::TextChecker::checkSpellingOfString): Ditto.
        (WebKit::TextChecker::checkGrammarOfString): Ditto.
        (WebKit::TextChecker::requestCheckingOfString): Pass in a StringView, so no
        need to call deprecatedCharacters.

        * UIProcess/ios/TextCheckerIOS.mm:
        (WebKit::TextChecker::checkTextOfParagraph): Changed to take StringView.
        (WebKit::TextChecker::checkSpellingOfString): Ditto.
        (WebKit::TextChecker::checkGrammarOfString): Ditto.

        * UIProcess/mac/TextCheckerMac.mm:
        (WebKit::TextChecker::checkTextOfParagraph): Changed to take StringView and
        use StringView::createNSStringWithoutCopying.
        (WebKit::TextChecker::checkSpellingOfString): CHanged to take StringView.
        (WebKit::TextChecker::checkGrammarOfString): Ditto.

        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
        (WebKit::convertStringToKeyCodes): Changed to take StringView and use
        upconvertedCharacters instead of deprecatedCharacters. Also use move instead
        of swap.
        (WebKit::NetscapePlugin::sendComplexTextInput): Updated to new style for loop.

        * WebProcess/WebPage/EncoderAdapter.cpp:
        (WebKit::EncoderAdapter::encodeString): Use StringView::upconvertedCharacters
        instead of String::deprecatedCharacters.

2014-03-15  David Kilzer  <ddkilzer@apple.com>

        [iOS] Define SYSTEM_VERSION_PREFIX consistently
        <http://webkit.org/b/130293>
        <rdar://problem/15926359>

        Reviewed by Dan Bernstein.

        * Configurations/Version.xcconfig:
        (SYSTEM_VERSION_PREFIX): Sync with
        Source/WebKit/mac/Version.xcconfig.

2014-03-14  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Sync extended attribute related rules with AppSandbox profile
        https://bugs.webkit.org/show_bug.cgi?id=130263
        <rdar://problem/16318965>

        Reviewed by Sam Weinig.

        Update the fix to use a different syntax in some OS versions.

        * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
        * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
        * WebProcess/com.apple.WebProcess.sb.in:

2014-03-14  Ryosuke Niwa  <rniwa@webkit.org>

        Revert erroneous changes made to UIProcess/API/Cocoa in r165676.

        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardListItem.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListItem.h.
        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigationAction.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationAction.h.
        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKNavigationResponse.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKNavigationResponse.h.
        * UIProcess/API/Cocoa/WKNavigationTrigger.h: Removed.
        * UIProcess/API/Cocoa/WKWebView.h:

2014-03-14  Mark Rowe  <mrowe@apple.com>

        Fix the production build.

        Don't rely on USE_INTERNAL_SDK being set for the Production configuration since UseInternalSDK.xcconfig won't
        be at the expected relative path when working from installed source.

        * Configurations/Base.xcconfig:

2014-03-14  Maciej Stachowiak  <mjs@apple.com>

        Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
        https://bugs.webkit.org/show_bug.cgi?id=130276
        <rdar://problem/16266927>
        
        Reviewed by Simon Fraser.

        * Shared/AsyncRequest.cpp:
        * Shared/AsyncRequest.h:
        * Shared/ContextMenuContextData.cpp:
        * Shared/ContextMenuContextData.h:
        * Shared/Databases/DatabaseProcessCreationParameters.h:
        * Shared/Databases/IndexedDB/IDBUtilities.cpp:
        * Shared/Databases/IndexedDB/IDBUtilities.h:
        * Shared/mac/RemoteLayerBackingStore.h:
        * Shared/mac/RemoteLayerBackingStore.mm:
        * UIProcess/API/Cocoa/WKBackForwardList.h:
        * UIProcess/API/Cocoa/WKBackForwardListItem.h: Removed.
        * UIProcess/API/Cocoa/WKNavigation.h:
        * UIProcess/API/Cocoa/WKNavigationAction.h: Removed.
        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
        * UIProcess/API/Cocoa/WKNavigationResponse.h: Removed.
        * UIProcess/API/Cocoa/WKNavigationTrigger.h: Added.
        (NS_ENUM):
        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.cpp:
        * UIProcess/API/CoordinatedGraphics/WKCoordinatedScene.h:
        * UIProcess/CoordinatedGraphics/WKCoordinatedSceneAPICast.h:
        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
        * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
        * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
        * WebProcess/Databases/WebToDatabaseProcessConnection.cpp:
        * WebProcess/Databases/WebToDatabaseProcessConnection.h:
        * WebProcess/WebCoreSupport/WebAlternativeTextClient.h:
        * WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp:
        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
        * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
        * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:

2014-03-14  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] background-attachment: fixed renders oddly, moves around
        https://bugs.webkit.org/show_bug.cgi?id=130277
        <rdar://problem/16332883>

        Reviewed by Tim Horton.
        
        Actually send scrolling and counter-scrolling layers to the UI process!

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (ArgumentCoder<ScrollingStateScrollingNode>::encode):
        (ArgumentCoder<ScrollingStateScrollingNode>::decode):

2014-03-14  Anders Carlsson  <andersca@apple.com>

        Try to fix the iOS build.

        * UIProcess/mac/WebContextMac.mm:

2014-03-14  Anders Carlsson  <andersca@apple.com>

        Begin work on the bundle parameter API
        https://bugs.webkit.org/show_bug.cgi?id=130267

        Reviewed by Dan Bernstein.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool _objectForBundleParameter:]):
        (-[WKProcessPool _setObject:forBundleParameter:]):
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
        * UIProcess/WebContext.h:
        (WebKit::WebContext::bundleParameters):
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::WebContext::ensureBundleParameters):
        (WebKit::WebContext::platformInitializeWebProcess):

2014-03-14  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Sync extended attribute related rules with AppSandbox profile
        https://bugs.webkit.org/show_bug.cgi?id=130263
        <rdar://problem/16318965>

        Reviewed by Sam Weinig.

        * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
        * Resources/PlugInSandboxProfiles/com.apple.QuickTime Plugin.plugin.sb:
        * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
        * Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
        * Resources/PlugInSandboxProfiles/com.macromedia.Flash Player.plugin.sb:
        * Resources/PlugInSandboxProfiles/com.microsoft.SilverlightPlugin.sb:
        * Resources/PlugInSandboxProfiles/com.oracle.java.JavaAppletPlugin.sb:
        * WebProcess/com.apple.WebProcess.sb.in:

2014-03-14  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Improve behavior of fixed elments on zooming
        https://bugs.webkit.org/show_bug.cgi?id=130253

        Reviewed by Beth Dakin.

        Correctly reposition right- and bottom-relative position:fixed
        elements on zooming in WK2 iOS by telling the scrolling tree
        about zoom-related viewport changes.

        * Shared/mac/RemoteLayerTreeTransaction.h:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
        Drive-by cleanup; typedef the flags field to an unsigned, to avoid ugly casting.
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree): Pass out a flag to say
        if the update contained a new fixed or sticky layer.
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
        (WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling):
        Call into the new ScrolingTree::viewportChangedViaDelegatedScrolling().
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: If we got a new fixed
        or sticky layer, set fixedOrStickyLayerChanged to true.
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): Ditto.
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
        Remember both the old zoomScale and the filteredScale, since the fixed position rect
        should be computed using the unfiltered scale.
        Some FloatRect -> CGRect changes.
        Now call viewportChangedViaDelegatedScrolling() on the scrolling coordinator.
        (-[WKContentView fixedPositionRectFromExposedRect:scale:]): Call the
        FrameView function to compute the iOS fixed position rect.
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): If the update
        got a new fixed or sticky layer, run the scrolling tree logic to make sure
        it gets into the right place.
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::updateLayerTree): If we logged here,
        we'd log twice if the tiled scrolling indicator was enabled, so 
        hoisted the logging out into the caller.

2014-03-14  Landry Breuil  <landry@openbsd.org>

        Use the correct type in webkitSoupRequestInputStreamNew()'s declaration.
        Nhttps://bugs.webkit.org/show_bug.cgi?id=129974

        Reviewed by Andreas Kling.

        * WebProcess/soup/WebKitSoupRequestInputStream.h:

2014-03-14  Anders Carlsson  <andersca@apple.com>

        Fix crash when resizing the visited link table
        https://bugs.webkit.org/show_bug.cgi?id=130257
        <rdar://problem/16328177>

        Reviewed by Dan Bernstein.

        We're iterating over the old table, so use currentTableSize in the loop termination condition.

        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::resizeTable):

2014-03-14  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Expose a way to set the cookie accept policy
        https://bugs.webkit.org/show_bug.cgi?id=130251

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (toHTTPCookieAcceptPolicy): Added a helper function that maps from NSHTTPCookieAcceptPolicy
        values to WebKit::HTTPCookieAcceptPolicy values.
        (-[WKProcessPool _setCookieAcceptPolicy:]): Added. Calls
        WebCookieManagerProxy::setHTTPCookieAcceptPolicy. 
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Declared new method.

2014-03-14  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] WebKit2WebExtension GIR can't be used in vala
        https://bugs.webkit.org/show_bug.cgi?id=127179

        Reviewed by Martin Robinson.

        Do not include all WebKit2 gir symbols from WebKit2WebExtension gir
        file.

        * GNUmakefile.am:
        * PlatformGTK.cmake:

2014-03-14  Csaba Osztrogonác  <ossy@webkit.org>

        [CMake] URTBF after r165619.

        * CMakeLists.txt: Add new files.

2014-03-14  Anders Carlsson  <andersca@apple.com>

        Remove WebContext::addVisitedLink
        https://bugs.webkit.org/show_bug.cgi?id=130242

        Reviewed by Dan Bernstein.

        Fold the function into WKContextAddVisitedLink instead.

        * UIProcess/API/C/WKContext.cpp:
        (WKContextAddVisitedLink):
        * UIProcess/WebContext.cpp:
        * UIProcess/WebContext.h:
        (WebKit::WebContext::visitedLinkProvider):

2014-03-13  Anders Carlsson  <andersca@apple.com>

        Move visited link handling to VisitedLinkTableController and VisitedLinkProvider
        https://bugs.webkit.org/show_bug.cgi?id=130223
        <rdar://problem/16315792>

        Reviewed by Dan Bernstein.

        * DerivedSources.make:
        Generate messages for VisitedLinkProvider and VisitedLinkTableController.
        
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration copyWithZone:]):
        Set the visited link provider.

        * UIProcess/API/Cocoa/_WKVisitedLinkProvider.h:
        Add addVisitedLinkWithURL: method.

        * UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm:
        (-[_WKVisitedLinkProvider addVisitedLinkWithURL:]):
        Compute a link hash from the absolute URL string and pass it to the underlying VisitedLinkProvider object.

        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::addProcess):
        Add the process to the m_processes HashCountedSet. If it's the first time we're adding the process, 
        add the VisitedLinkProvider object as a message receiver and send the visited link table to the process.

        (WebKit::VisitedLinkProvider::removeProcess):
        Remove the process from the m_processes HashCountedSet. If we're removing the last reference to the process,
        remove ourselves as a  message receiver.

        (WebKit::VisitedLinkProvider::addVisitedLinkHash):
        Rename this from addVisitedLink to better indicate what it's doing.

        (WebKit::tableSizeForKeyCount):
        Update for constant rename.

        (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
        Compute the new pending visited links table size. If it's bigger than our current table, resize the table
        by calling resizeTable. Otherwise, simply try to add the pending hashes to our shared hash table. If successful,
        add the link hash to the addedVisitedLinks table and eventually send it to all processes associated with the visited link provider.

        (WebKit::VisitedLinkProvider::resizeTable):
        Create a new shared memory segment, Set it as the table backing store and add all visited links from the old table. Finally,
        add our pending visited link hashes and send the new table memory to all processes associated with the visited link provider.

        (WebKit::VisitedLinkProvider::sendTable):
        Helper function that creates a shared memory handle and sends it to a given web process.

        * UIProcess/VisitedLinkProvider.h:
        Add new members.

        * UIProcess/VisitedLinkProvider.messages.in:
        Add messages.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::processDidFinishLaunching):
        (WebKit::WebContext::disconnectProcess):
        The WebContext no longer needs to inform the visited link provider about the processes coming and going, that's already handled
        by the WebPageProxy objects.

        (WebKit::WebContext::addVisitedLink):
        Call addVisitedLinkHash on the visited link provider.

        * UIProcess/WebContext.h:
        * UIProcess/WebContext.messages.in:
        Remove a message that is now implemented by the visited link provider.

        * WebKit2.xcodeproj/project.pbxproj:
        Add new files.

        * WebProcess/WebPage/VisitedLinkTableController.cpp:
        (WebKit::VisitedLinkTableController::VisitedLinkTableController):
        Add the table controller as a message receiver.

        (WebKit::VisitedLinkTableController::~VisitedLinkTableController):
        Remove the table controller as a message receiver.

        (WebKit::VisitedLinkTableController::isLinkVisited):
        Check if the link is visited according to the visited link table.

        (WebKit::VisitedLinkTableController::addVisitedLink):
        Send the link hash to the UI process if it's not already visited.

        (WebKit::VisitedLinkTableController::setVisitedLinkTable):
        Set the backing store memory and invalidate all styles.

        (WebKit::VisitedLinkTableController::visitedLinkStateChanged):
        Invalidate the styles for the given links.

        (WebKit::VisitedLinkTableController::allVisitedLinkStateChanged):
        Invalidate the styles for all links.

        * WebProcess/WebPage/VisitedLinkTableController.h:
        Add new members.

        * WebProcess/WebPage/VisitedLinkTableController.messages.in:
        Add new messages.

        * WebProcess/WebProcess.cpp:
        Remove unused functions; these are handled by VisitedLinkTableController now.

        * WebProcess/WebProcess.h:
        (WebKit::WebProcess::shouldTrackVisitedLinks):
        Add getter.

        * WebProcess/WebProcess.messages.in:
        Remove messages.

2014-03-12  Sergio Villar Senin  <svillar@igalia.com>

        Rename DEFINE_STATIC_LOCAL to DEPRECATED_DEFINE_STATIC_LOCAL
        https://bugs.webkit.org/show_bug.cgi?id=129612

        Reviewed by Darin Adler.

        For new code use static NeverDestroyed<T> instead.

        * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
        (WebKit::getIndexStatement):
        (WebKit::getObjectStoreStatement):
        * Shared/linux/SeccompFilters/SeccompBroker.cpp:
        (WebKit::SeccompBrokerClient::shared):
        * UIProcess/InspectorServer/WebInspectorServer.cpp:
        (WebKit::WebInspectorServer::didReceiveWebSocketUpgradeHTTPRequest):

2014-03-14  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16319722> [Cocoa] WKHistoryDelegate is being called for subframes
        https://bugs.webkit.org/show_bug.cgi?id=130228

        Reviewed by Mark Rowe.

        * UIProcess/Cocoa/HistoryClient.mm:
        (WebKit::HistoryClient::didNavigateWithNavigationData): Bail out if the frame is not the
        main frame.
        (WebKit::HistoryClient::didPerformClientRedirect): Ditto.
        (WebKit::HistoryClient::didPerformServerRedirect): Ditto.
        (WebKit::HistoryClient::didUpdateHistoryTitle): Ditto.

2014-03-13  Jinwoo Jeong  <jw00.jeong@samsung.com>

        Refactor Vibration algorithm to use only one timer.
        https://bugs.webkit.org/show_bug.cgi?id=130059

        Reviewed by Darin Adler.

        This patch adds a vibration unit test regression after r161257.
        It consists of two short term requests to check
        that Vibration could work properly by sequential requests.

        Indeed this patch tightens condition of existing tests.

        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
        (TEST_F):

2014-03-13  Paul Hankes Drielsma  <phd@apple.com>

        Add SPI to set a custom user agent on WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=130164

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _customUserAgent]):
        (-[WKWebView _setCustomUserAgent:]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-03-13  Paul Hankes Drielsma  <phd@apple.com>

        Add SPI to run javascript in main frame on WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=130047

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _runJavaScriptInMainFrame:]):

2014-03-13  Benjamin Poulain  <bpoulain@apple.com>

        The viewport code should not depend on WebKitSystemInterface
        https://bugs.webkit.org/show_bug.cgi?id=130218

        Reviewed by Tim Horton.

        Get the viewport size from the UIProcess when creating a new WebProcess.
        From there, the value is stored in WebPage and used whenever we need to update
        the viewport parameters.

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        * Shared/WebPageCreationParameters.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::internalShowContextMenu):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::viewportScreenSize):
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::viewportScreenSize):
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::viewportScreenSize):

2014-03-13  Beth Dakin  <bdakin@apple.com>

        Do not show extended background during a pinch gesture on iOS
        https://bugs.webkit.org/show_bug.cgi?id=130152
        -and corresponding-
        <rdar://problem/16303819>

        Reviewed by Simon Fraser.

        This patch refactors the backgroundColor-setting logic into its own method so that 
        it can be called from both _didCommitLayerTree and scrollViewDidZoom.

        Only set the UIScrollView’s background color when the zoomScale is greater than or 
        equal to the minimumZoomScale. Also do not set it during the zoom bounce 
        animation. Otherwise, clear the background color by setting it to nil.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView updateScrollViewBackground]):
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView scrollViewDidZoom:]):

2014-03-13  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] block selection should avoid large blocks.
        https://bugs.webkit.org/show_bug.cgi?id=130208
        <rdar://problem/16251785>

        Reviewed by Benjamin Poulain.

        When creating a block selection, we should discard blocks that
        are larger than most of the visible portion of the document.
        This prevents the accidental selection the entire document, which
        is fairly common when tapping over empty areas.

        * Shared/InteractionInformationAtPosition.cpp:
        (WebKit::InteractionInformationAtPosition::encode):
        (WebKit::InteractionInformationAtPosition::decode):
        * Shared/InteractionInformationAtPosition.h: Removed selectionRects that was not really needed and
        added isSelectable to indicate whether the selection can start.
        (WebKit::InteractionInformationAtPosition::InteractionInformationAtPosition):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView hasSelectablePositionAtPoint:]): Now uses isSelectable.
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getPositionInformation): Takes into account the userSelect property
        to figure out if the element can be selected and discards blocks that are
        larger than 97% of the visible area of the document.

2014-03-13  Anders Carlsson  <andersca@apple.com>

        Rename WKVisitedLinkProvider to _WKVisitedLinkProvider and make it private
        https://bugs.webkit.org/show_bug.cgi?id=130207

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKVisitedLinkProviderPrivate.h: Removed.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration _visitedLinkProvider]):
        (-[WKWebViewConfiguration _setVisitedLinkProvider:]):
        * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
        * UIProcess/API/Cocoa/_WKVisitedLinkProvider.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKVisitedLinkProvider.h.
        * UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKVisitedLinkProvider.mm.
        (-[_WKVisitedLinkProvider init]):
        * UIProcess/API/Cocoa/_WKVisitedLinkProviderInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKVisitedLinkProviderInternal.h.
        * WebKit2.xcodeproj/project.pbxproj:

2014-03-13  Anders Carlsson  <andersca@apple.com>

        Remove a commented out member function
        https://bugs.webkit.org/show_bug.cgi?id=130204

        Reviewed by Tim Horton.

        * Shared/ChildProcessProxy.h:
        (WebKit::ChildProcessProxy::canSendMessage):

2014-03-13  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Crash on iPad when displaying a select element with options.
        https://bugs.webkit.org/show_bug.cgi?id=130200
        <rdar://problem/16316187>

        Reviewed by Simon Fraser.

        _singleSelectionIndex should be initialized to NSNotFound for multiSelect elements.

        * UIProcess/ios/forms/WKFormSelectPopover.mm:
        (-[WKSelectTableViewController initWithView:hasGroups:]):

2014-03-13  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Close the connection when we fail to read from the socket for any unhandled error
        https://bugs.webkit.org/show_bug.cgi?id=130191

        Reviewed by Martin Robinson.

        We currently show an error message, but we should close the
        connection avoid entering an infinite loop. Also provide more
        information in the error message to help when debugging the issue.

        * Platform/IPC/unix/ConnectionUnix.cpp:
        (IPC::Connection::readyReadHandler):

2014-03-13  Radu Stavila  <stavila@adobe.com>

        Webkit not building on XCode 5.1 due to garbage collection no longer being supported
        https://bugs.webkit.org/show_bug.cgi?id=130087

        Reviewed by Mark Rowe.

        Disable garbage collection on macosx when not using internal SDK.

        * Configurations/Base.xcconfig:

2014-03-10  Darin Adler  <darin@apple.com>

        Avoid copy-prone idiom "for (auto item : collection)"
        https://bugs.webkit.org/show_bug.cgi?id=129990

        Reviewed by Geoffrey Garen.

        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::RemoteLayerTreePropertyApplier::applyProperties): Use auto&.

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): Use auto&
        even though the type is a scalar. This does no harm and makes it easier
        to spot uses that trigger unnecessary copying with grep.
        (WebKit::RemoteLayerTreeTransaction::decode): Ditto.
        (WebKit::dumpChangedLayers): Ditto.
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::updateLayerTree): Ditto.
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::visitedLinkStateChanged): Ditto.

2014-03-12  Brian Burg  <bburg@apple.com>

        Web Inspector: Remove unused callId parameter from evaluateInWebInspector
        https://bugs.webkit.org/show_bug.cgi?id=129744

        Reviewed by Timothy Hatcher.

        * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
        (WKBundleInspectorEvaluateScriptForTest):
        * WebProcess/InjectedBundle/API/c/WKBundleInspector.h:
        * WebProcess/WebPage/WebInspector.cpp:
        (WebKit::WebInspector::evaluateScriptForTest):
        * WebProcess/WebPage/WebInspector.h:

2014-03-13  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>

        Fix the !ENABLE(SQL_DATABASE) build
        https://bugs.webkit.org/show_bug.cgi?id=130130

        Reviewed by Csaba Osztrogonác.

        Add missing #ifdef guard to typedef.

        * UIProcess/API/C/WKDatabaseManager.cpp:

2014-03-12  Dean Jackson  <dino@apple.com>

        [WebGL] WebKit1 + WebKit2 iOS clients should check load policy
        https://bugs.webkit.org/show_bug.cgi?id=130162

        Reviewed by Simon Fraser.

        Implement webGLPolicyForURL() methods for iOS.

        * Configurations/WebContent-iOS.entitlements: Add the MobileAsset asset type.
        * Configurations/WebKit2.xcconfig: Add MobileAsset to iOS link list.
        * WebProcess/WebPage/WebPage.cpp: Exclude iOS.
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::webGLPolicyForURL): Call into WKSI.
        (WebKit::WebPage::resolveWebGLPolicyForURL):

2014-03-12  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Disable REMOTE_INSPECTOR in earlier OS X releases
        https://bugs.webkit.org/show_bug.cgi?id=130118

        Reviewed by Timothy Hatcher.

        * Configurations/FeatureDefines.xcconfig:

2014-03-12  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Crash when trying to select inside a video element with longpress..
        https://bugs.webkit.org/show_bug.cgi?id=130095
        <rdar://problem/16294534>

        Reviewed by Benjamin Poulain.

        We only need to set the assisted node for nodes that will receive an
        input peripheral (keyboard, picker, popover, etc.).

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::rangeForWebSelectionAtPosition):
        (WebKit::WebPage::elementDidFocus):

2014-03-12  Simon Fraser  <simon.fraser@apple.com>

        Have the scrolling tree track the viewport size, not the viewport rect
        https://bugs.webkit.org/show_bug.cgi?id=130141

        Reviewed by Beth Dakin.

        The scrolling tree only needs to know the size of the viewport, not its
        origin, since the origin is deduced from the updated scroll position.

        * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
        (ArgumentCoder<ScrollingStateScrollingNode>::encode):
        (ArgumentCoder<ScrollingStateScrollingNode>::decode):

2014-03-12  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165481.
        https://bugs.webkit.org/show_bug.cgi?id=130151

        That didn't go well. (Requested by kling on #webkit).

        Reverted changeset:

        https://bugs.webkit.org/show_bug.cgi?id=130140
        http://trac.webkit.org/changeset/165481

2014-03-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Runtime error when page is closed while print operation is in progress
        https://bugs.webkit.org/show_bug.cgi?id=129869

        Reviewed by Anders Carlsson.

        Sometimes when the page is closed right after printing the web
        process aborts with the runtime message "pure virtual method
        called terminate called without an active exception".
        This happens because the page is closed when the pages have been
        printed, but print job is still ongoing sending the data to the
        printer. When print job finishes, we try to notify the UI process
        sending the print callback message using WebPage::send(), but the
        web page object has been destroyed. The virtual method it complains
        about is probably MessageSender::messageSenderDestinationID() used
        by send(). Since our print operation is always asynchronous, we
        need a way to notify the web page when the print operation has
        actually finished to clean it up, but also notify the print
        operation when the page has been closed to not try to notify the
        UI process in that case.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::close): Call disconnectFromPage to notify the
        print operation in case there's an ongoing print job.
        (WebKit::WebPage::endPrinting): Do not cleanup the print operation
        here, since the print opertation might not have finished yet.
        (WebKit::WebPage::didFinishPrintOperation): Send
        PrintFinishedCallback message to the Ui process and cleanup the
        print operation.
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
        (WebKit::WebPrintOperationGtk::disconnectFromPage): Set m_webPage
        to nullptr.
        (WebKit::WebPrintOperationGtk::printDone): Call
        didFinishPrintOperation() is the web page hasn't been closed.
        * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:

2014-03-12  Andreas Kling  <akling@apple.com>

        BundlePageDiagnosticLoggingClient leaks every string passing through it.
        <https://webkit.org/b/130140>
        <rdar://problem/15416838>

        Use toAPI() instead of toCopiedAPI() so the receiving end doesn't need
        to worry about adopting the WKStringRef.

        Reviewed by Anders Carlsson.

        * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp:
        (WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage):

2014-03-12  Tim Horton  <timothy_horton@apple.com>

        Hook up image controls for WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=130062
        <rdar://problem/15964809>

        Reviewed by Brady Eidson.

        * Shared/ContextMenuContextData.cpp:
        (WebKit::ContextMenuContextData::ContextMenuContextData):

2014-03-11  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r165356): [Mac] Multi-part key bindings don't work
        https://bugs.webkit.org/show_bug.cgi?id=130100

        Reviewed by Darin Adler.

        Restore the previous behavior, where we only interpreted keydowns (including those
        coming through performKeyEquivalent).

        In the future, we might send all events to input methods, but not to key bindings.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView keyUp:]):
        (-[WKView flagsChanged:]):

2014-03-11  Beth Dakin  <bdakin@apple.com>

        _pageExtendedBackgroundColor should not be exposed on WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=130093

        Reviewed by Simon Fraser.

        Added comment indicating that _pageExtendedBackgroundColor is deprecated.
        * UIProcess/API/Cocoa/WKViewPrivate.h:

        _pageExtendedBackgroundColor now returns nil, but the conversation functionality 
        is maintained with a convenience method pageExtendedBackgroundColor.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView pageExtendedBackgroundColor]):
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        (-[WKWebView _pageExtendedBackgroundColor]):

        Added comment indicating that _pageExtendedBackgroundColor is deprecated.
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

        Return nil.
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView _pageExtendedBackgroundColor]):

2014-03-11  Jae Hyun Park  <jaepark@webkit.org>

        [GTK][CMake] Add HARFBUZZ_INCLUDE_DIRS to WebKit and WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130070

        Reviewed by Martin Robinson.

        * PlatformGTK.cmake:

2014-03-10  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Expose WebPageProxy::close
        https://bugs.webkit.org/show_bug.cgi?id=130068

        Reviewed by Adele Peterson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _close]):
        * UIProcess/API/Cocoa/WKWebViewPrivate.h:

2014-03-10  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WebKit 2] Wire the unobscured rect in the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=130058

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):

2014-03-10  Simon Fraser  <simon.fraser@apple.com>

        Fix three leaks
        https://bugs.webkit.org/show_bug.cgi?id=130048

        Reviewed by Anders Carlsson.

        * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
        (decodeObject): Code is simpler and less leaky without the RetainPtr.
        * UIProcess/API/Cocoa/WKNavigationAction.mm: Fix _originalURL leak
        by making it a RetainPtr and implementing the getter and setter.
        (-[WKNavigationAction _setOriginalURL:]):
        (-[WKNavigationAction _originalURL]):

2014-03-10  Beth Dakin  <bdakin@apple.com>

        Set background color of WK2's UIScrollView to the pageExtendedBackgroundColor
        https://bugs.webkit.org/show_bug.cgi?id=129919

        Reviewed by Benjamin Poulain.

        Make the pageExtendedBackgroundColor part of a RemoteLayerTreeTransaction.
        * Shared/mac/RemoteLayerTreeTransaction.h:
        (WebKit::RemoteLayerTreeTransaction::pageExtendedBackgroundColor):
        (WebKit::RemoteLayerTreeTransaction::setPageExtendedBackgroundColor):
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::encode):
        (WebKit::RemoteLayerTreeTransaction::decode):

        Set the background color of the UIScrollView based on the 
        pageExtendedBackgroundColor.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:WebKit::]):

        For the sake of PLATFORM(MAC), continue to support the fact that this color can be 
        set via a message from the WebProcess or the new RemoteLayerTreeTransaction.
        * UIProcess/WebPageProxy.h:

        Cache the pageExtendedBackgroundColor as provided by the 
        RemoteLayerTreeTransaction.
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::didCommitLayerTree):

        It’s not necessary to do anything here in non-Mac platforms anymore.
        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
        (WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange):

        Include the pageExtendedBackgroundColor in the RemoteLayerTreeTransaction.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::willCommitLayerTree):

2014-03-10  Benjamin Poulain  <bpoulain@apple.com>

        Generalize unobscured rect to all ports
        https://bugs.webkit.org/show_bug.cgi?id=130036

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
        (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
        (WebKit::ViewGestureGeometryCollector::collectGeometryForMagnificationGesture):
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
        (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):

2014-03-10  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16278716> [Cocoa] Allow setting a custom group identifier on a WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=130033

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]): Create a page group with the group identifier
        from the configuration, if it’s non-empty.
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration _groupIdentifier]): Added this accessor.
        (-[WKWebViewConfiguration _setGroupIdentifier:]): Ditto.
        * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Declared _groupIdentifier property.

2014-03-10  Enrica Casucci  <enrica@apple.com>

        WebKit2: Crash in WebPage::getPositionInformation.
        https://bugs.webkit.org/show_bug.cgi?id=129936
        <rdar://problem/16264550>
 
        Reviewed by Eric Carlson.
 
        Missing null check on the node renderer in one code path.
        If the page body is smaller than the document, hit testing
        will return HTMLHtmlElement that has no renderer.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getPositionInformation):

2014-03-10  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Clean up library linking
        https://bugs.webkit.org/show_bug.cgi?id=129782

        Reviewed by Philippe Normand.

        * PlatformGTK.cmake: Use the new macro.

2014-03-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] The web process can finish while a print operation is still ongoing
        https://bugs.webkit.org/show_bug.cgi?id=129871

        Reviewed by Martin Robinson.

        This can happen when the last page is closed while the print job
        is sending data to the printer.

        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Disable web
        process termination when the print job is sending data to the
        printer and enable it again when job finishes.

2014-03-09  Jeong Yong-uk  <yong@company100.com>

        Update comment in NetworkResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=129997

        Reviewed by Andreas Kling.

        NetworkResourceLoader::resourceHandleStopped() has been renamed to
        NetworkResourceLoader::cleanup() but the comment is not updated.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::start):

2014-03-09  Alexey Proskuryakov  <ap@apple.com>

        iOS build fix.

        * WebProcess/WebPage/ios/WebPageIOS.mm: Include WebCore/KeyboardEvent.h.

2014-03-06  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Don't perform a round-trip through WebProcess before interpreting key events
        https://bugs.webkit.org/show_bug.cgi?id=129812

        Reviewed by Darin Adler.

        * Shared/NativeWebKeyboardEvent.h:
        * Shared/WebEvent.h:
        (WebKit::WebKeyboardEvent::handledByInputMethod):
        (WebKit::WebKeyboardEvent::commands):
        * Shared/WebEventConversion.cpp:
        (WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):
        * Shared/WebKeyboardEvent.cpp:
        (WebKit::WebKeyboardEvent::WebKeyboardEvent):
        (WebKit::WebKeyboardEvent::~WebKeyboardEvent):
        (WebKit::WebKeyboardEvent::encode):
        (WebKit::WebKeyboardEvent::decode):
        * Shared/mac/NativeWebKeyboardEventMac.mm:
        (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
        * Shared/mac/WebEventFactory.h:
        * Shared/mac/WebEventFactory.mm:
        (WebKit::WebEventFactory::createWebKeyboardEvent):
        Keyboard events now carry results of interpretation with them.
        Ideally, mouse events should also have a handledByInputMethod member, because IMs
        can handle events, but that can wait until we have actual bugs caused by not diabling
        default processing for these.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView becomeFirstResponder]): Updated for new NativeWebKeyboardEvent contructor
        signature. We don't interpret the event in this code path.
        (-[WKView doCommandBySelector:]): Added logging.
        (-[WKView performKeyEquivalent:]): Reimplemented Esc and Cmd+period handling to avoid
        infinite loops and re-entrancy. These two work in a unique way in AppKit.
        Interpret key event before sending it down to WebProcess.
        (-[WKView keyUp:]): Interpret key event before sending it down to WebProcess.
        We need to tell IMs about the event, but key binding processing is moot, all commands
        are executed on keydown.
        (-[WKView keyDown:]): Interpret the event.
        (-[WKView flagsChanged:]): Ditto.
        (-[WKView _interpretKeyEvent:savingCommandsTo:WebCore::]): Added an assertion in
        consumedByIM code path.
        (-[WKView _executeSavedCommandBySelector:]): Added logging.

        * UIProcess/PageClient.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/WebPageProxyIOS.mm:
        * UIProcess/mac/WebPageProxyMac.mm:
        Removed interpretQueuedKeyEvent/interpretKeyEvent, WebProcess no longer asks UIProcess to do this.

        * WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
        (WebKit::WebEditorClient::handleKeyboardEvent):
        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
        (WebKit::WebEditorClient::handleKeyboardEvent):
        (WebKit::WebEditorClient::handleInputMethodKeydown):
        WebPage::handleEditingKeyboardEvent is now one function instead of two with a boolean
        switch between two behaviors.

        * WebProcess/WebPage/WebPage.cpp:(WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebPage.h:
        Removed m_keyboardEventBeingInterpreted, as we no longer send the event for interpretation.
        This means that we sometimes have to pass a null event down to WebCore, but I wasn't
        able to find any behavior differences from us doing so.

        * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::handleEditingKeyboardEvent):
        Added a FIXME.

        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::executeKeypressCommandsInternal): When we don't have an event,
        use current frame as a target, just like input method messages do.
        (WebKit::WebPage::handleEditingKeyboardEvent): This function no longer saves commands,
        it only interprets them.
        Added a check for Esc, as we don't want to handle it in keydown event handler.
        (WebKit::WebPage::insertText): Pass 0 instead of m_keyboardEventBeingInterpreted.
        (WebKit::WebPage::insertDictatedText): Ditto.
        (WebKit::WebPage::executeKeypressCommands): Ditto.

2014-03-09  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Pass FloatSize boxsize to transform animations to support device pixel sizing.
        https://bugs.webkit.org/show_bug.cgi?id=129985

        Reviewed by Simon Fraser.

        This is in preparation to stop passing integral positioned boxes to transform animations.

        No change in behavior.

        * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:

2014-03-08  Simon Fraser  <simon.fraser@apple.com>

        [iOS Wk2] Can't scroll after going back to page in page cache
        https://bugs.webkit.org/show_bug.cgi?id=129989
        <rdar://problem/16217588>

        Reviewed by Dan Bernstein.

        iOS has a special FrameLoader::forceLayoutWithoutRecalculatingStyle()
        function that is called instead of FrameView::forceLayout(). This was unimplemented
        for the WK2 FrameLoaderClient, so no layout was forced, with the result
        that the contentSize was never updated and scrolling was broken.
        
        Fix by renaming the client function to forceLayoutOnRestoreFromPageCache()
        and having it return a bool to say whether the default forceLayout()
        should be done. WK1 can then continue to have its custom behavior,
        and Wk2 will simply do a forceLayout().
        
        Also remove FrameLaoderClient::forceLayout(), which was never called.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
        * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
        (WebKit::WebFrameLoaderClient::forceLayoutOnRestoreFromPageCache):

2014-03-08  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Get position:fixed working slighlty better
        https://bugs.webkit.org/show_bug.cgi?id=129988

        Reviewed by Dan Bernstein.
        
        iOS uses fixed layout, but does not want fixed elements laid
        out relative to the frame.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::setUseFixedLayout):

2014-03-08  Jon Lee  <jonlee@apple.com>

        iOS broken after r165342
        https://bugs.webkit.org/show_bug.cgi?id=129987

        Reviewed by Simon Fraser.

        * NetworkProcess/ios/NetworkProcessIOS.mm:
        (WebKit::NetworkProcess::platformLowMemoryHandler): Add missing stub implementation for
        platformLowMemoryHandler().

2014-03-08  Eric Carlson  <eric.carlson@apple.com>

        [iOS] media preferences not initialized correctly in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=129983

        Reviewed by Dan Bernstein.

        * Shared/WebPreferencesStore.h: Initialize mediaPlaybackAllowsInline and 
        mediaPlaybackRequiresUserGesture correctly for iOS.

2014-03-08  Jeremy Jones  <jeremyj@apple.com>

        Allow media element to supply the video layer after fullscreen transition has already begun.
        https://bugs.webkit.org/show_bug.cgi?id=129870

        Reviewed by Eric Carlson.

        WebVideoFullscreenManager and WebVideoFullscreenManagerProxy do their own remote hosting of the video layer instead of needing the video layer to have already been hosted elsewhere. This allows the removal of the coordination with WebPageProxy via a RemoteLayerTreeTransaction.

        * Shared/mac/RemoteLayerTreeTransaction.h:
        Remove m_videoLayerIDsPendingFullscreen and accessors.

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::encode):
        Don't encode m_videoLayerIDsPendingFullscreen

        (WebKit::RemoteLayerTreeTransaction::decode):
        Don't decode m_videoLayerIDsPendingFullscreen

        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::didCommitLayerTree):
        Don't forward didCommitLayerTree to m_videoFullscreenManager.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        Remove code for synchronizing with the RenderTree.
        Add a hosting layer and methods to keep video layer frame and video gravity synchronized.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
        Change IPC interface to fascilitate rehosting video layer with a instead of coordinating with the RenderTree by PlatformLayerID.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
        Remove initialization for removed members.

        (WebKit::WebVideoFullscreenManagerProxy::enterFullscreenWithID):
        Rehost the video layer by id and pass on the layer.
        This replaces didCommitLayerTree() and  willLendVideoLayerWithID(). 

        (WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
        Cleanup the hosting layer.

        (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):
        Forward on the video layer's frame to keep the hosted layer in sync with the interface.

        (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerGravity):
        Forward the videolayer gravity.

        * WebKit2.xcodeproj/project.pbxproj:
        Rename WebVideoFullscreenManager.cpp to WebVideoFullscreenManager.mm

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::willCommitLayerTree):
        Don't invovle the m_videoFullscreenManager in layer tree transactions.

        * WebProcess/ios/WebVideoFullscreenManager.h:
        Remove code that synchronizes with the render tree via RemoteLayerTreeTransaction.
        Instead rehost the video layer directly.
        Instead of hoping the WebVideoFullscreenModel has a videoLayer, supply one into which
        it can add whatever it likes as needed.

        * WebProcess/ios/WebVideoFullscreenManager.messages.in:
        No more explicit borrowing and returning video layers.
        Add functions to keep video layer bounds and gravity in sync with the UI. 

        * WebProcess/ios/WebVideoFullscreenManager.mm: Renamed from Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.cpp.
        Removed code for synchronizing via RemoteLAyerTreeTransaction.

        (WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
        Remove initialization for removed memeber m_sendUnparentVideoLayerTransaction.

        (WebKit::WebVideoFullscreenManager::enterFullscreenForNode):
        Creates a fullscreen layer, gives it to the WebVideoFullscreenModel to fill in,
        and hosts it in a context to send to the UIProcess.

        (WebKit::WebVideoFullscreenManager::exitFullscreenForNode):
        remove enterFullscreen() and just directly send the IPC message. 

        (WebKit::WebVideoFullscreenManager::didExitFullscreen):
        Clean up the hosting context.

        (WebKit::WebVideoFullscreenManager::setVideoLayerGravityEnum):
        Forward on the video gravity. Type convert from unsigned to MediaPlayer::VideoGravity.

2014-03-08  Andreas Kling  <akling@apple.com>

        [WK2] Improve the network process low memory handler.
        <https://webkit.org/b/129977>

        Split the network process low memory handler into platform-specific
        and shared parts. The shared part tells FastMalloc to release freed
        pages back to the OS.

        For Mac, added a call to purge the in-memory part of CFURLCache.
        Remove the malloc_zone_pressure_relief() since that is now taken care
        of by the shared MemoryPressureHandler code.

        Reviewed by Darin Adler.

        * NetworkProcess/NetworkProcess.cpp:
        (WebKit::NetworkProcess::initializeNetworkProcess):
        (WebKit::NetworkProcess::lowMemoryHandler):
        (WebKit::NetworkProcess::platformLowMemoryHandler):
        * NetworkProcess/NetworkProcess.h:
        * NetworkProcess/mac/NetworkProcessMac.mm:
        (WebKit::NetworkProcess::platformLowMemoryHandler):
        (WebKit::NetworkProcess::platformInitializeNetworkProcess):

2014-03-08  Jae Hyun Park  <jaepark@webkit.org>

        Remove unnecessary casting in NetworkProcessMainUnix.cpp
        https://bugs.webkit.org/show_bug.cgi?id=129968

        Reviewed by Andreas Kling.

        * NetworkProcess/unix/NetworkProcessMainUnix.cpp:
        Since socket is an int, int casting is not necessary.

        (WebKit::NetworkProcessMain):

2014-03-08  Aaron Golden  <golden@inkling.com>

        Prevent processes spawned by WebProcess from trying to insert the SecItem shim.
        https://bugs.webkit.org/show_bug.cgi?id=129864

        Reviewed by Anders Carlsson.

        * WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm:
        (WebKit::WebContentProcessMainDelegate::doPreInitializationWork):

2014-03-07  Tim Horton  <timothy_horton@apple.com>

        [WebKit2][iOS] PDF
        https://bugs.webkit.org/show_bug.cgi?id=129600
        <rdar://problem/15260216>

        Reviewed by Anders Carlsson.

        Add a single custom content provider which installs a very primitive PDF view
        in place of the WKContentView if a PDF is loaded in the main frame.

        * Configurations/WebKit2.xcconfig:
        Link against CorePDF, for UIPDFPageView.

        * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
        (-[WKWebViewContentProviderRegistry init]):
        Initialize the registry, using WKPDFView for all PDF MIME types.

        * WebKit2.xcodeproj/project.pbxproj:
        * UIProcess/ios/WKPDFView.h: Added.
        * UIProcess/ios/WKPDFView.mm: Added.
        Add a very simple PDF view based on UIPDFPageView. Additional functionality
        can come in the future; right now, we just create one view for each page, and
        depend on CATiledLayer to only paint the pages that are being displayed.

2014-03-07  Andreas Kling  <akling@apple.com>

        ArgumentEncoder and ArgumentDecoder should be fastmalloced.
        <https://webkit.org/b/129960>

        Reviewed by Ryosuke Niwa.

        * Platform/IPC/ArgumentDecoder.h:
        * Platform/IPC/ArgumentEncoder.h:

2014-03-07  Martin Robinson  <mrobinson@igalia.com>

        Fix the GTK+ build after the recent iOS merge.

        * UIProcess/API/gtk/PageClientImpl.cpp: Make some methods available to non-Cocoa ports and fix some signatures.
        * UIProcess/WebPageProxy.h: Ditto.

2014-03-07  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed. Fix build on the EFL port after r165303

        * UIProcess/CoordinatedGraphics/WebView.cpp:
        (WebKit::WebView::didCommitLoadForMainFrame): Added new parameters.
        * UIProcess/CoordinatedGraphics/WebView.h: Ditto.
        * UIProcess/WebPageProxy.h:
        * UIProcess/efl/WebViewEfl.cpp: Added dummy didFinishLoadingDataForCustomContentProvider()
        (WebKit::WebViewEfl::exitFullScreen):
        (WebKit::WebViewEfl::didFinishLoadingDataForCustomContentProvider):
        * UIProcess/efl/WebViewEfl.h: Ditto.

2014-03-07  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Keyboard accessory comes up when I click a link.
        https://bugs.webkit.org/show_bug.cgi?id=129949
        <rdar://problem/16265305>

        Reviewed by Simon Fraser.

        We need to create the accessory view only when needed.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView requiresAccessoryView]):
        (-[WKContentView inputAccessoryView]):

2014-03-07  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Long-press on a link shows just "Copy".
        https://bugs.webkit.org/show_bug.cgi?id=129938
        <rdar://problem/16266054>

        Reviewed by Benjamin Poulain.

        When adding a FIXME comment, I accidentally removed the ! on
        the if (!element) condition.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getPositionInformation):

2014-03-07  Tim Horton  <timothy_horton@apple.com>

        [WebKit2][iOS] Main-frame custom content providers
        https://bugs.webkit.org/show_bug.cgi?id=129809

        Reviewed by Dan Bernstein.

        Re-introduce custom content providers to WebKit2 (removed in r152841), but
        for iOS this time.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        Send the initial MIME types that have custom content providers to the WebProcess.

        (-[WKWebView dealloc]):
        Unregister our page from the content provider registry.
        
        (-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
        Install/uninstall the custom content provider. Create a view, if needed,
        based on the class that the registry has associated with the given MIME type.
        We unparent the WKContentView while the custom content provider is active,
        and re-use the existing WKScrollView to contain the custom content provider.

        (-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:dataReference:]):
        Forward loaded data on to the custom content provider for display.

        (-[WKWebView _didCommitLayerTree:WebKit::]):
        Assert that we aren't getting layer tree commits while using a custom content provider.

        (-[WKWebView viewForZoomingInScrollView:]):
        If we're using a custom content provider, its view should be used for zooming
        instead of the (unparented) web content view.

        (-[WKWebView hasContentView]):
        (-[WKWebView scrollViewWillBeginZooming:withView:]):
        (-[WKWebView scrollViewWillBeginDragging:]):
        (-[WKWebView _didFinishScrolling]):
        (-[WKWebView _updateVisibleContentRects]):
        If we do not have a parented WKContentView because we are using a custom
        content provider, we should not forward scroll view related changes to it.

        (-[WKWebView _frameOrBoundsChanged]):
        Update the minimum size of the custom content provider if the web view size changes.

        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration copyWithZone:]):
        (-[WKWebViewConfiguration _contentProviderRegistry]):
        (-[WKWebViewConfiguration _setContentProviderRegistry:]):
        * UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h: Added.
        Add an internal WKWebViewConfiguration property, the WKWebViewContentProviderRegistry.

        * UIProcess/API/Cocoa/WKWebViewInternal.h:

        * UIProcess/Cocoa/WKWebViewContentProvider.h: Added.
        A minimal protocol for informing custom content providers of changes to
        the size of the view, the represented data, and the owning scroll view.

        * UIProcess/Cocoa/WKWebViewContentProviderRegistry.h: Added.
        * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Added.
        (-[WKWebViewContentProviderRegistry addPage:]):
        (-[WKWebViewContentProviderRegistry removePage:]):
        (-[WKWebViewContentProviderRegistry registerProvider:forMIMEType:]):
        (-[WKWebViewContentProviderRegistry providerForMIMEType:]):
        (-[WKWebViewContentProviderRegistry mimeTypesWithContentProviders]):
        New class, keeps track of a mapping from MIME types to UIViews that
        conform to the WKWebViewContentProvider protocol.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::didCommitLoadForFrame):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:

        * UIProcess/PageClient.h:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::PageClientImpl):
        (WebKit::PageClientImpl::didCommitLoadForMainFrame):
        (WebKit::PageClientImpl::didFinishLoadingDataForCustomContentProvider):
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        (WebKit::PageClientImpl::didCommitLoadForMainFrame):
        (WebKit::PageClientImpl::didFinishLoadingDataForCustomContentProvider):
        Add parameters to didCommitLoadForMainFrame, indicating if we should use
        a custom content provider to display the main frame, and what MIME type
        was loaded in said frame, and add didFinishLoadingDataForCustomContentProvider.
        On iOS, forward these to the WKWebView.
        Also, give PageClientImplIOS a reference to the WKWebView.
        
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
        
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
        (-[WKWebProcessPlugInFrame _hasCustomContentProvider]):
        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
        Expose whether or not a given frame has a custom content provider to the plug-in.

        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
        (WebKit::WebFrameLoaderClient::WebFrameLoaderClient):
        (WebKit::WebFrameLoaderClient::hasHTMLView):
        (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
        (WebKit::WebFrameLoaderClient::committedLoad):
        (WebKit::WebFrameLoaderClient::finishedLoading):
        (WebKit::WebFrameLoaderClient::transitionToCommittedFromCachedFrame):
        (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
        (WebKit::WebFrameLoaderClient::canCachePage):
        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
        (WebKit::WebFrameLoaderClient::frameHasCustomContentProvider):
        Restore WebFrameLoaderClient custom representation code, which ensures
        that data is routed correctly (to the UI process, and not to WebCore) and
        that we don't try to use the page cache for frames with content providers.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::mainFrameHasCustomContentProvider):
        (WebKit::WebPage::addMIMETypeWithCustomContentProvider):
        (WebKit::WebPage::shouldUseCustomContentProviderForResponse):
        (WebKit::WebPage::canShowMIMEType):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        Keep a list of MIME types which can be displayed via custom content providers
        in WebPage, which will be pushed down from the registry as new providers
        are added. Plug-ins still take precendence over custom content providers.

2014-03-07  Anders Carlsson  <andersca@apple.com>

        MigrateHeaders.make should remove C SPI includes from WebKit2 headers
        https://bugs.webkit.org/show_bug.cgi?id=129937
        <rdar://problem/15920020>

        Reviewed by Tim Horton.

        * WebKit2.xcodeproj/project.pbxproj:
        Make WKPreferences.h and all headers it includes public. Update the post processing of WKBase.h
        to account for WKBase.h now being a public header again.

2014-03-07  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r164847): Pressing the command key while hovering an element causes it to un-hover
        https://bugs.webkit.org/show_bug.cgi?id=129872

        Reviewed by Tim Horton.

        * UIProcess/API/Cocoa/WKViewPrivate.h: Changes in performDictionaryLookupAtCurrentMouseLocation
        were also not correct, because the current event could be a keyboard one (Cmd+Ctrl+D).
        But this SPI is unused, and can be simply removed.

        * UIProcess/API/mac/WKView.mm: (-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]):
        locationInWindow is undefined for keyboard events, so we have to use current location.
        Thankfully, there is a method that returns the location in appropriate coordinate
        space, unlike +[NSEvent mouseLocation] that we used before.

2014-03-07  Andy Estes  <aestes@apple.com>

        [iOS] Install WebKit2 XPC services to the correct place during iOS Simulator builds
        https://bugs.webkit.org/show_bug.cgi?id=129914

        Reviewed by Dan Bernstein.

        We weren't specifying INSTALL_PATH for iOS Simulator builds in
        BaseXPCService.xcconfig, and r164576 changed INSTALL_PATH to
        INSTALL_PATH_ACTUAL. This caused XPC services to start being installed
        to the root of the iOS Simulator SDK. Fix this by setting
        INSTALL_PATH_ACTUAL for iphonesimulator.

        * Configurations/BaseXPCService.xcconfig:

2014-03-07  Andreas Kling  <akling@apple.com>

        [Mac] Notify system malloc of fake memory pressure.
        <https://webkit.org/b/129908>

        Reviewed by Anders Carlsson.

        * NetworkProcess/mac/NetworkProcessMac.mm:
        (WebKit::NetworkProcess::platformInitializeNetworkProcess):

            Listen for the fake memory pressure notification and respond by
            just forwarding to system malloc. We don't do the full WebCore
            memory pressure handling here, since that will cause stuff that
            the network process doesn't need to get instantiated.

2014-03-07  Dean Jackson  <dino@apple.com>

        Attempt to fix the iOS build.

        * Configurations/WebKit2.xcconfig: Add -framework OpenGLES to linking.

2014-03-07  Simon Fraser  <simon.fraser@apple.com>

        [iOS] Add an updateID to visibleContentRect updates which is passed back in layer transactions, so we know whether transactions are stale
        https://bugs.webkit.org/show_bug.cgi?id=129897

        Reviewed by Benjamin Poulain.

        In WebKit2 on iOS we need to know when layer updates from the web process
        are stale with respect to visible rect updates from the UI process. Do so
        by adding an updateID to VisibleContentRectUpdateInfo, and storing it
        on each side, returning it in RemoteLayerTreeTransaction.
        
        Did some re-ordering of members and encoding order in RemoteLayerTreeTransaction
        to group like data members together.
        
        * Shared/VisibleContentRectUpdateInfo.cpp:
        (WebKit::VisibleContentRectUpdateInfo::encode):
        (WebKit::VisibleContentRectUpdateInfo::decode):
        * Shared/VisibleContentRectUpdateInfo.h:
        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
        (WebKit::VisibleContentRectUpdateInfo::updateID):
        (WebKit::operator==):
        * Shared/mac/RemoteLayerTreeTransaction.h:
        (WebKit::RemoteLayerTreeTransaction::setLastVisibleContentRectUpdateID):
        (WebKit::RemoteLayerTreeTransaction::lastVisibleContentRectUpdateID):
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::encode):
        (WebKit::RemoteLayerTreeTransaction::decode):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::nextVisibleContentRectUpdateID):
        (WebKit::WebPageProxy::lastVisibleContentRectUpdateID):
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::willCommitLayerTree):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):

2014-03-07  Roger Fong  <roger_fong@apple.com>

        Replace setSystemWebGLLoadPolicy API with methods to query for WebGL blocking policy.
        https://bugs.webkit.org/show_bug.cgi?id=129873.

        Reviewed by Dean Jackson.

        Remove setSystemWebGLLoadPolicy API.
        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::resolveWebGLLoadPolicy):
        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageLoaderClient):
        * UIProcess/API/C/WKPageLoaderClient.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::resolveWebGLPolicyForURL):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::webGLPolicyForURL):

        Add API to directly query the WebGL blocking policies from WKSI.
        * UIProcess/API/C/mac/WKContextPrivateMac.h:
        * UIProcess/API/C/mac/WKContextPrivateMac.mm:
        (WKContextShouldBlockWebGL):
        (WKContextShouldSuggestBlockWebGL):

2014-03-07  Eric Carlson  <eric.carlson@apple.com>

        Initialize new WKSI functions for WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=129889

        Reviewed by Simon Fraser.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface):

2014-03-07  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use final and override in WebPrintOperationGtk
        https://bugs.webkit.org/show_bug.cgi?id=129868

        Reviewed by Sergio Villar Senin.

        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:

2014-03-06  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Allow com.apple.GSSCred in WebKit sandbox profiles
        https://bugs.webkit.org/show_bug.cgi?id=129777
        <rdar://problem/16050832>

        Reviewed by Anders Carlsson.

        * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
        * Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
        * WebProcess/com.apple.WebProcess.sb.in:

2014-03-06  Filip Pizlo  <fpizlo@apple.com>

        If the FTL is build-time enabled then it should be run-time enabled.

        Rubber stamped by Geoffrey Garen.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/mac/WebContextMac.mm:
        (WebKit::registerUserDefaultsIfNeeded):
        (WebKit::WebContext::platformInitializeWebProcess):
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeWebProcess):

2014-03-06  Hyowon Kim  <hw1008.kim@samsung.com>

        [EFL] Move EvasGL classes from WebKit to WebCore namespace.
        https://bugs.webkit.org/show_bug.cgi?id=129797

        Reviewed by Gyuyoung Kim.

        * UIProcess/API/efl/EwkView.h: namespace changes for EvasGLContext/Surface.

2014-03-06  Simon Fraser  <simon.fraser@apple.com>

        Remove one more setCustomFixedPositionRect() that I missed.

        * UIProcess/DrawingAreaProxy.h:

2014-03-06  Simon Fraser  <simon.fraser@apple.com>

        Send the fixed position rect to the WebProcess along with the other rects
        https://bugs.webkit.org/show_bug.cgi?id=129856

        Reviewed by Benjamin Poulain.
        
        Remove the functions that pass the custom fixed position rect through
        the DrawingArea, and replace them by adding this rect to the
        VisibleContentRectUpdateInfo, along with the "is stable" flag. We
        then set the custom fixed position rect in the web process for
        stable updates.

        * Shared/VisibleContentRectUpdateInfo.cpp:
        (WebKit::VisibleContentRectUpdateInfo::encode):
        (WebKit::VisibleContentRectUpdateInfo::decode):
        * Shared/VisibleContentRectUpdateInfo.h:
        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
        (WebKit::VisibleContentRectUpdateInfo::customFixedPositionRect):
        (WebKit::VisibleContentRectUpdateInfo::inStableState):
        (WebKit::operator==):
        * UIProcess/DrawingAreaProxy.cpp:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
        * WebProcess/WebPage/DrawingArea.h:
        * WebProcess/WebPage/DrawingArea.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:

2014-03-06  Simon Fraser  <simon.fraser@apple.com>

        Remove empty class extension in WKContentViewInteraction
        https://bugs.webkit.org/show_bug.cgi?id=129849

        Reviewed by Enrica Casucci.
        
        This empty class extension is cruft left over from refactoring.
        It can be removed.

        * UIProcess/ios/WKContentViewInteraction.mm:

2014-03-06  Simon Fraser  <simon.fraser@apple.com>

        [iOS] didUpdateVisibleRect: should use fabs, not abs
        https://bugs.webkit.org/show_bug.cgi?id=129843

        Reviewed by Benjamin Poulain.
        
        When zooming we sent messages to the web process with an unchanging
        zoom scale because of use of abs() rather than fabs().

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):

2014-03-06  Anders Carlsson  <andersca@apple.com>

        Remove WebKit1 header includes from WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=129824

        Reviewed by Dan Bernstein.

        * UIProcess/mac/WKFullScreenWindowController.mm:
        (makeResponderFirstResponderIfDescendantOfView):
        Add a new function instead of calling an NSWindow category method that's defined in WebKit1.

        (-[WKFullScreenWindowController enterFullScreen:]):
        (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
        (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
        Call makeResponderFirstResponderIfDescendantOfView.

        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
        Remove unused WebKit1 header import.

        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
        (WebKit::WebEditorClient::documentFragmentFromAttributedString):
        Change a category to be on NSObject instead of WebResource.

2014-03-06  Jon Lee  <jonlee@apple.com>

        iOS build fix.

        Reviewed by Simon Fraser.

        * UIProcess/ios/SmartMagnificationController.mm:

2014-03-06  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Expose the console object in JSContexts to interact with Web Inspector
        https://bugs.webkit.org/show_bug.cgi?id=127944

        Reviewed by Geoffrey Garen.

        * WebProcess/WebCoreSupport/WebChromeClient.h:
        Update namespaces.

2014-03-06  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Close the page when the view is disposed instead of when finalized
        https://bugs.webkit.org/show_bug.cgi?id=129783

        Reviewed by Sergio Villar Senin.

        When a GtkWidget is destroyed, the GObject is disposed, but not
        finalized if it has additional references. When the destroyed
        widget is leaked by the application, we leak the page proxy and
        what is more important the web process in multi-process mode.

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseDispose): Close the WebPageProxy.

2014-03-05  Chris Fleizach  <cfleizach@apple.com>

        AX: Support IOS Accessibility in WK2
        https://bugs.webkit.org/show_bug.cgi?id=129527

        Build fix.

        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):

2014-03-05  Chris Fleizach  <cfleizach@apple.com>

        AX: Support IOS Accessibility in WK2
        https://bugs.webkit.org/show_bug.cgi?id=129527

        Address review comments from Simon noted in bug.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _accessibilityRegisterUIProcessTokens]):
        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
        (-[WKAccessibilityWebPageObject init]):
        (-[WKAccessibilityWebPageObject dealloc]):
        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.h:
        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
        (-[WKAccessibilityWebPageObject accessibilityAttributeNames]):
        (-[WKAccessibilityWebPageObject accessibilitySetValue:forAttribute:]):
        (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
        (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):

2014-03-05  Dean Jackson  <dino@apple.com>

        [WebGL] Use WKSI to see what the system policy for WebGL is
        https://bugs.webkit.org/show_bug.cgi?id=129722
        <rdar://problem/15790542>

        Reviewed by Tim Horton.

        Use the WebKitSystemInterface methods WKShouldBlockWebGL
        and WKShouldSuggestBlockingWebGL to query what the host
        system thinks about the hardware. Tell the client about
        the result in a new WebPage method setSystemWebGLPolicy.

        * UIProcess/API/APILoaderClient.h:
        (API::LoaderClient::setSystemWebGLLoadPolicy): New empty definition.
        * UIProcess/API/C/WKAPICast.h:
        (WebKit::toAPI): Convert a WebGLLoadPolicy into a WKWebGLLoadPolicy.
        * UIProcess/API/C/WKPage.cpp: Call setSystemWebGLLoadPolicy.
        (WKPageSetPageLoaderClient):
        * UIProcess/API/C/WKPageLoaderClient.h: New typedef and entry in client structure.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::setSystemWebGLPolicy):
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in: Add SetSystemWebGLPolicy.
        * Source/WebKit2/Configurations/WebKit2.xcconfig: We have to link against OpenGL now, because WKSI
        uses it for hardware detection.
        * WebProcess/WebPage/WebPage.cpp: Remove the implementation here, but leave
        empty methods for non-Apple platforms.
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::webGLPolicyForURL):
        (WebKit::WebPage::resolveWebGLPolicyForURL):
        * WebProcess/WebPage/WebPage.h: Add m_systemWebGLPolicy.
        * WebProcess/WebPage/mac/WebPageMac.mm:
        (WebKit::WebPage::webGLPolicyForURL): Moved in from WebPage, but now they call
        into WKSI and send the result to the client if necessary.
        (WebKit::WebPage::resolveWebGLPolicyForURL):

2014-03-05  Simon Fraser  <simon.fraser@apple.com>

        Fix a stupid error in r165118 that caused userVisibleString()
        to call itself recursively.

        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
        (WebKit::WebEditorClient::userVisibleString):

2014-03-05  Benjamin Poulain  <bpoulain@apple.com>

        [iOS] Rename the various VisibleExtent variations to exposedContentRect
        https://bugs.webkit.org/show_bug.cgi?id=129728

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/DrawingArea.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):

2014-03-05  Dean Jackson  <dino@apple.com>

        Unreviewed. Fix the Apple-internal builds.

        * Configurations/WebKit2.xcconfig: Add -framework OpenGL.

2014-03-05  Simon Fraser  <simon.fraser@apple.com>

        ObjC exception when dropping files into a WKView: drag and drop uses code from WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=129752

        Reviewed by Enrica Casucci.
        
        Get WebDragClientMac off of all WebKit headers, and WebEditorClientMac off
        all but one by using C functions from WebCoreNSURLExtras.h rather than
        the NSURL category.

        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
        (WebKit::WebDragClient::declareAndWriteDragImage):
        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
        (WebKit::WebEditorClient::userVisibleString):
        (WebKit::WebEditorClient::canonicalizeURL):
        (WebKit::WebEditorClient::canonicalizeURLString):

2014-03-05  Martin Hock  <mhock@apple.com>

        Add support for sessions to MemoryCache.
        https://bugs.webkit.org/show_bug.cgi?id=127794

        Reviewed by Sam Weinig.

        * NetworkProcess/NetworkResourceLoader.h: Add sessionID() method.
        (WebKit::NetworkResourceLoader::sessionID):
        * NetworkProcess/mac/DiskCacheMonitor.h: Add sessionID member.
        * NetworkProcess/mac/DiskCacheMonitor.mm:
        (WebKit::DiskCacheMonitor::DiskCacheMonitor): Send sessionID to NetworkProcessConnection::DidCacheResource.
        * WebProcess/Network/NetworkProcessConnection.cpp: Add sessionID parameter to didCacheResource and pass to MemoryCache.
        (WebKit::NetworkProcessConnection::didCacheResource):
        * WebProcess/Network/NetworkProcessConnection.h: Ditto.
        * WebProcess/Network/NetworkProcessConnection.messages.in: Ditto.

2014-03-05  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] support multi-select and select with groups for iPhone.
        https://bugs.webkit.org/show_bug.cgi?id=129344
        <rdar://problem/16206928>

        Reviewed by Simon Fraser.

        This is the remaining work on select element support on iOS.
        This adds multi-select and select with group support with UI
        for iPhone that uses UIPickerView.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView resignFirstResponder]):
        (-[WKContentView inputAccessoryView]): Removed incorrect early return.
        (-[WKContentView _stopAssistingNode]):
        * UIProcess/ios/forms/WKFormSelectControl.h:
        * UIProcess/ios/forms/WKFormSelectControl.mm:
        (adjustedFontSize): Moved here to make it available to both picker and
        popover based implementations.
        (-[WKFormSelectControl initWithView:]):
        * UIProcess/ios/forms/WKFormSelectPicker.mm:
        (-[WKOptionPickerCell _isSelectable]):
        (-[WKOptionPickerCell initCommon]):
        (-[WKOptionPickerCell initWithOptionItem:]):
        (-[WKOptionGroupPickerCell initWithOptionItem:]):
        (-[WKOptionGroupPickerCell labelWidthForBounds:]):
        (-[WKOptionGroupPickerCell layoutSubviews]):
        (-[WKMultipleSelectPicker initWithView:]):
        (-[WKMultipleSelectPicker dealloc]):
        (-[WKMultipleSelectPicker controlView]):
        (-[WKMultipleSelectPicker controlBeginEditing]):
        (-[WKMultipleSelectPicker controlEndEditing]):
        (-[WKMultipleSelectPicker layoutSubviews]):
        (-[WKMultipleSelectPicker pickerView:viewForRow:forComponent:reusingView:]):
        (-[WKMultipleSelectPicker numberOfComponentsInPickerView:]):
        (-[WKMultipleSelectPicker pickerView:numberOfRowsInComponent:]):
        (-[WKMultipleSelectPicker findItemIndexAt:]):
        (-[WKMultipleSelectPicker pickerView:row:column:checked:]):
        (-[WKSelectSinglePicker initWithView:]):
        (-[WKSelectSinglePicker controlEndEditing]):
        * UIProcess/ios/forms/WKFormSelectPopover.mm:

2014-03-03  Martin Robinson  <mrobinson@igalia.com>

        [GTK][CMake] Generate documentation for the DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=126211

        Reviewed by Carlos Garcia Campos.

        * PlatformGTK.cmake: The list of headers for GIR generation has a better name now.

2014-03-04  Benjamin Poulain  <bpoulain@apple.com>

        Fix the build after r165095

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):

2014-03-04  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Account for the keyboard when computing the unobscuredRect
        https://bugs.webkit.org/show_bug.cgi?id=129660

        Reviewed by Enrica Casucci.

        Adjust the unobscuredRect when a docked keyboard is on screen.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _updateVisibleContentRectsWithStableState:]):
        (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):

2014-03-04  Andy Estes  <aestes@apple.com>

        [iOS][WebKit2] Exclude plug-in sandbox profiles from the build
        https://bugs.webkit.org/show_bug.cgi?id=129719

        Reviewed by Simon Fraser.

        * Configurations/WebKit2.xcconfig:

2014-03-04  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] WKScrollView should be able to cancel touches in content view
        https://bugs.webkit.org/show_bug.cgi?id=129711

        Reviewed by Simon Fraser.

        * UIProcess/ios/WKScrollView.mm:
        We should not override UIWebScrollView behavior regarding touch cancellation otherwise we force
        other gesture recognizers to fail if delayed touches have been dispatched.

2014-03-04  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Consider the entire view state on update to find if a change is stable or not
        https://bugs.webkit.org/show_bug.cgi?id=129721

        Reviewed by Simon Fraser.

        Changes in scroll, zoom and obscuredRect can happen simultaneously. To compute if the current state
        is stable or not, we should consider the complete picture from all the type of updates.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didFinishScrolling]):
        (-[WKWebView scrollViewDidScroll:]):
        (-[WKWebView scrollViewDidZoom:]):
        (-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _updateVisibleContentRects]):
        (-[WKWebView _setObscuredInsets:]):
        (-[WKWebView _endInteractiveObscuredInsetsChange]):

2014-03-04  Jeremy Jones  <jeremyj@apple.com>

        WebVideoFullscreen, should make the hand off of the video layer explicit.
        https://bugs.webkit.org/show_bug.cgi?id=128844

        Reviewed by Simon Fraser.

        This change introduces a more explicit hand-off of the video layer and fullscreen transition.
        This describes the interactions between WebVideoFullscreenInterface and WebVideoFullscreenModel
        WebVideoFullscreenModel <-> WebVideoFullscreenInterface
              enterFullScreen(*) ->
                                <- borrowVideoLayer
              willLendVideoLayer ->
               didLendVideoLayer ->
                                <- didEnterFullscreen
                                ...
                                <- requestExitFullscreen
                  exitFullscreen ->
                                <- returnVideoLayer
                                <- didExitFullscreen
        (*) enterFullScreen actually comes from WebVideoFullscreenControllerAVKit.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        Implement WebVideoFullscreenChangeObserver.
        Add support for explicit video layer hand-off.
        Add m_videoView to retain the videoLayer's UIView.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
        WillLendVideoLayerWithID replaces SetVideoLayerID

        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        Adopt new methods for explicit video layer hand-off.

        (WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
        Observe fullscreen changes.

        (WebKit::WebVideoFullscreenManagerProxy::didCommitLayerTree):
        Pending fullscreen transition now does didLendVideoLayer instead of calling enter fullscreen.
        It also removes the videoView from it's super view now that it is safe to do so.

        (WebKit::WebVideoFullscreenManagerProxy::willLendVideoLayerWithID):
        This replaces setVideoLayerID. It retains the UIView for the layer to keep it alive before it is unparented.

        (WebKit::WebVideoFullscreenManagerProxy::requestExitFullscreen):
        Adopt more explicit fullscreen transition.

        (WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
        Adopt more explicit fullscreen transition.

        (WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen):
        Adopt more explicit fullscreen transition.

        (WebKit::WebVideoFullscreenManagerProxy::borrowVideoLayer):
        Adopt more explicit video layer hand-off.

        (WebKit::WebVideoFullscreenManagerProxy::returnVideoLayer):
        Adopt more explicit video layer hand-off.

        * WebProcess/ios/WebVideoFullscreenManager.cpp:
        Manage state of fullscreen transition more competently. Wait till an animation is complete to begin the next one.

        (WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
        Init three new state members.

        (WebKit::WebVideoFullscreenManager::enterFullscreenForNode):
        Update animation state. Don't procede if animation is in progress.

        (WebKit::WebVideoFullscreenManager::exitFullscreenForNode):
        Update animation state. Don't procede if animation is in progress.

        (WebKit::WebVideoFullscreenManager::willLendVideoLayer):
        Adopt more explicit video layer hand-off.
        This replaces SetVideoLayer.

        (WebKit::WebVideoFullscreenManager::didLendVideoLayer):
        This is a no-op as this will be sent through a RemoteLayerTreeTransaction.

        (WebKit::WebVideoFullscreenManager::didEnterFullscreen):
        Adopt more explicit fullscreen transition.

        (WebKit::WebVideoFullscreenManager::didExitFullscreen):
        Adopt more explicit fullscreen transition.

        * WebProcess/ios/WebVideoFullscreenManager.h:
        Adopt more explicit fullscreen transition.

        * WebProcess/ios/WebVideoFullscreenManager.messages.in:
        Adopt more explicit fullscreen/video layer transition.

2014-03-04  Simon Fraser  <simon.fraser@apple.com>

        Get position:fixed working slightly better on iOS WK2
        https://bugs.webkit.org/show_bug.cgi?id=129714

        Reviewed by Benjamin Poulain.
        
        Start telling the RemoteScrollingCoordinatorProxy about scroll position changes
        again, so it can update fixed and sticky layers.
        
        Send the scroll position as a FloatPoint, rather than an IntPoint.

        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        (WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChangedViaDelegatedScrolling):
        (WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChanged):
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
        Tell the RemoteScrollingCoordinatorProxy about the scroll update.
        Only update the customFixedPositionRect if we've finished scrolling or zooming.
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::updateVisibleContentRects): Return a bool indicating
        whether the visible rects changed.

2014-03-04  Conrad Shultz  <conrad_shultz@apple.com>

        WKPage's pageExtendedBackgroundColor API exposed through WKView/WKWebView should support NSColor
        https://bugs.webkit.org/show_bug.cgi?id=129704

        Reviewed by Beth Dakin.

        Add NSColor-returning methods to complement the existing UIColor-returning methods.

        * UIProcess/API/Cocoa/WKViewPrivate.h:
        Declare _pageExtendedBackgroundColor for non-TARGET_OS_IPHONE.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _pageExtendedBackgroundColor]):
        Return an NSColor created from the pageExtendedBackgroundColor.

        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
        Declare _pageExtendedBackgroundColor for non-TARGET_OS_IPHONE.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView _pageExtendedBackgroundColor]):
        Return an NSColor created from the pageExtendedBackgroundColor.

2014-03-04  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Give WebProcess private RWI entitlement
        https://bugs.webkit.org/show_bug.cgi?id=129710

        Reviewed by Timothy Hatcher.

        * Configurations/WebContent-iOS.entitlements:
        Add entitlements to "WebProcess" when code signing.

        * Configurations/WebContentProcess.xcconfig:
        Add the private RWI entitlement.

2014-03-04  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2]: Next/Prev button in the accessory bar do not work.
        https://bugs.webkit.org/show_bug.cgi?id=129690
        <rdar://problem/16073569>

        Reviewed by Simon Fraser.

        Adding support for Next and Previous buttons in the accessory bar.
        When the request is processed by the WebProcess, we identify the next
        focusable node that needs to be assisted and we call focus() on the element
        letting the focus changing machinery take care of updating the assisted node.
        This change also add support for the Clear button, when appropriate and hooks up
        the call to the WebProcess.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView accessoryTab:]):
        (-[WKContentView accessoryClear]):
        (-[WKContentView _updateAccessory]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::focusNextAssistedNode):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::nextFocusableElement):
        (WebKit::hasFocusableElement):
        (WebKit::WebPage::focusNextAssistedNode):
        (WebKit::WebPage::getAssistedNodeInformation):

2014-03-04  Simon Fraser  <simon.fraser@apple.com>

        Allow iOS DumpRenderTree crashes to show application-specific information
        https://bugs.webkit.org/show_bug.cgi?id=129705

        Reviewed by David Kilzer.
        
        Make the WKSI function SetCrashReportApplicationSpecificInformation available
        in iOS simulator builds.

        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
        (InitWebCoreSystemInterface):

2014-03-04  Mark Hahnenberg  <mhahnenberg@apple.com>

        Merge API shims and JSLock
        https://bugs.webkit.org/show_bug.cgi?id=129650

        Reviewed by Mark Lam.

        JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason 
        to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.

        * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
        (WebKit::UniqueIDBDatabaseBackingStoreSQLite::~UniqueIDBDatabaseBackingStoreSQLite):
        (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):

2014-03-03  Enrica Casucci  <enrica@apple.com>

        [WK2] Selection remains after reload.
        https://bugs.webkit.org/show_bug.cgi?id=129648
        <rdar://problem/16207547>

        Reviewed by Sam Weinig.

        We normally clear the selection when resigninig first responder but
        that doesn't get called when reloading the page or when navigating with
        back/forward buttons. The correct place to do this is when we get
        _didCommitLoadForMainFrame where we already stop assisting the node.
        The method we call into webselectionassistant is resignedFirstResponder
        which takes care of clearing the selection and removing the selection view.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _stopAssistingNode]):

2014-03-04  Hyowon Kim  <hw1008.kim@samsung.com>

        Move EvasGLContext and EvasGLSurface files into the efl common directory.
        https://bugs.webkit.org/show_bug.cgi?id=129603

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Update for removed files.

2014-03-03  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] WebPage::updateVisibleContentRects can set the position directly instead of using programmatic scrolling
        https://bugs.webkit.org/show_bug.cgi?id=129649

        Reviewed by Sam Weinig.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):
        Update my workaround from r165003. We should not use programmatic scrolling when the scroll position is changed
        from the UI.

2014-03-03  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Update UIScrollView's contentSize when a new layer tree is committed
        https://bugs.webkit.org/show_bug.cgi?id=129641

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didCommitLayerTree:WebKit::]):
        Previously, we relied on [UIScrollView setZoomScale:] to reset the contentSize for us.
        In the cases where we would not go through [UIScrollView setZoomScale:], the UIScrollView's contentSize
        did not match the actual WKContentView's area on screen.

2014-03-03  Jeremy Jones  <jeremyj@apple.com>

        Forward application suspend resume notifications to the web process.
        https://bugs.webkit.org/show_bug.cgi?id=129356

        Reviewed by Eric Carlson.

        Repost UIApplicationWillEnterForegroundNotification,
        UIApplicationDidBecomeActiveNotification and 
        UIApplicationWillResignActiveNotification from UIProcess to WebProcess.
        As WebUIApplicationWillEnterForegroundNotification,
        WebUIApplicationDidBecomeActiveNotification, and
        WebUIApplicationWillResignActiveNotification

        * UIProcess/WebPageProxy.h:
        Add applicationWillEnterForeground()
        applicationWillResignActive()
        applicationDidBecomeActive()

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::]):
        Observe notifications.

        (-[WKContentView dealloc]):
        Stop observing notifications.

        (-[WKContentView _applicationWillResignActive:]):
        Notify WebPageProxy of the event.

        (-[WKContentView _applicationWillEnterForeground:]):
        Notify WebPageProxy of the event.

        (-[WKContentView _applicationDidBecomeActive:]):
        Notify WebPageProxy of the event.

        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::applicationWillEnterForeground):
        Send corresponding Message to WebPage.

        (WebKit::WebPageProxy::applicationWillResignActive):
        Send corresponding Message to WebPage.

        (WebKit::WebPageProxy::applicationDidBecomeActive):
        Send corresponding Message to WebPage.

        * WebProcess/WebPage/WebPage.h:
        Add applicationWillEnterForeground()
        applicationWillResignActive()
        applicationDidBecomeActive()

        * WebProcess/WebPage/WebPage.messages.in:
        Add applicationWillEnterForeground()
        applicationWillResignActive()
        applicationDidBecomeActive()

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::applicationWillResignActive):
        Post corresponding NSNotification.

        (WebKit::WebPage::applicationWillEnterForeground):
        Post corresponding NSNotification.

        (WebKit::WebPage::applicationDidBecomeActive):
        Post corresponding NSNotification.

2014-03-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165013.
        http://trac.webkit.org/changeset/165013
        https://bugs.webkit.org/show_bug.cgi?id=129646

        New code is not thread safe, asserting on a worker test
        (Requested by ap on #webkit).

        * NetworkProcess/NetworkResourceLoader.h:
        * NetworkProcess/mac/DiskCacheMonitor.h:
        * NetworkProcess/mac/DiskCacheMonitor.mm:
        (WebKit::DiskCacheMonitor::DiskCacheMonitor):
        * WebProcess/Network/NetworkProcessConnection.cpp:
        (WebKit::NetworkProcessConnection::didCacheResource):
        * WebProcess/Network/NetworkProcessConnection.h:
        * WebProcess/Network/NetworkProcessConnection.messages.in:

2014-03-03  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2]: Text fields don't zoom in when focused
        https://bugs.webkit.org/show_bug.cgi?id=129632
        <rdar://problem/16185230>

        Reviewed by Benjamin Poulain.

        When focusing the node we need to zoom and center it and possibly
        scroll to make it visible.
        On iPad we only scroll, without zooming.

        * Shared/AssistedNodeInformation.cpp:
        (WebKit::AssistedNodeInformation::encode):
        (WebKit::AssistedNodeInformation::decode):
        * Shared/AssistedNodeInformation.h:
        (WebKit::AssistedNodeInformation::AssistedNodeInformation):
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _scrollToRect:withOrigin:minimumScrollDistance:]):
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _displayFormNodeInputView]):
        (-[WKContentView _startAssistingNode:]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::getAssistedNodeInformation):

2014-03-03  Sam Weinig  <sam@webkit.org>

        Fix ASSERT and leaks introduced in recent "Support IOS Accessibility in WK2" patch

        Reviewed by Simon Fraser.

        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _accessibilityRegisterUIProcessTokens]):
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::platformInitializeAccessibility):

2014-03-03  Simon Fraser  <simon.fraser@apple.com>

        Composited masks not working on iOS after r164890 
        https://bugs.webkit.org/show_bug.cgi?id=129630

        Reviewed by Jer Noble.
        
        Fix typo in UIView-related masks code; set the mask layer
        on the view, not the maskView.

        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::RemoteLayerTreePropertyApplier::applyProperties):

2014-02-28  Chris Fleizach  <cfleizach@apple.com>

        AX: Support IOS Accessibility in WK2
        https://bugs.webkit.org/show_bug.cgi?id=129527

        Reviewed by Sam Weinig.

        Implement enough AX hooks so that accessibility can work in WebKit2.

        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.cpp:
        (IPC::Connection::identifier):
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::accessibilityWebProcessTokenReceived):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _updateForScreen:]):
        (-[WKContentView _setAccessibilityWebProcessToken:]):
        (-[WKContentView _accessibilityRegisterUIProcessTokens]):
        (-[WKContentView _didRelaunchProcess]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::registerWebProcessAccessibilityToken):
        (WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/Plugins/PDF/PDFPlugin.mm:
        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.h: Added.
        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm: Added.
        (-[WKAccessibilityWebPageObject init]):
        (-[WKAccessibilityWebPageObject _accessibilityCategoryInstalled:]):
        (-[WKAccessibilityWebPageObject pageScale]):
        (-[WKAccessibilityWebPageObject dealloc]):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::platformInitialize):
        (WebKit::WebPage::platformInitializeAccessibility):
        (WebKit::WebPage::accessibilityObjectForMainFramePlugin):
        (WebKit::WebPage::registerUIProcessAccessibilityTokens):
        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h: Copied from Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObject.h.
        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: Copied from Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm.
        (-[WKAccessibilityWebPageObjectBase accessibilityFocusedUIElement]):
        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.h: Added.
        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: Added.
        (-[WKAccessibilityWebPageObject accessibilityIsIgnored]):
        (-[WKAccessibilityWebPageObject accessibilityAttributeNames]):
        (-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]):
        (-[WKAccessibilityWebPageObject accessibilityIsAttributeSettable:]):
        (-[WKAccessibilityWebPageObject accessibilitySetValue:forAttribute:]):
        (-[WKAccessibilityWebPageObject convertScreenPointToRootView:]):
        (-[WKAccessibilityWebPageObject accessibilityActionNames]):
        (-[WKAccessibilityWebPageObject accessibilityChildren]):
        (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
        (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
        (-[WKAccessibilityWebPageObject accessibilityShouldUseUniqueId]):
        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):
        * WebProcess/WebPage/mac/WebPageMac.mm:
        * WebProcess/cocoa/WebProcessCocoa.mm:
        (WebKit::WebProcess::platformInitializeProcess):

2014-03-03  Martin Hock  <mhock@apple.com>

        Add support for sessions to MemoryCache.
        https://bugs.webkit.org/show_bug.cgi?id=127794

        Reviewed by Sam Weinig.

        * NetworkProcess/NetworkResourceLoader.h: Add sessionID() method.
        (WebKit::NetworkResourceLoader::sessionID):
        * NetworkProcess/mac/DiskCacheMonitor.h: Add sessionID member.
        * NetworkProcess/mac/DiskCacheMonitor.mm:
        (WebKit::DiskCacheMonitor::DiskCacheMonitor): Send sessionID to NetworkProcessConnection::DidCacheResource.
        * WebProcess/Network/NetworkProcessConnection.cpp: Add sessionID parameter to didCacheResource and pass to MemoryCache.
        (WebKit::NetworkProcessConnection::didCacheResource):
        * WebProcess/Network/NetworkProcessConnection.h: Ditto.
        * WebProcess/Network/NetworkProcessConnection.messages.in: Ditto.

2014-03-03  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Regression: ScrollView's scroll offset is never set after r164702
        https://bugs.webkit.org/show_bug.cgi?id=129620

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):

2014-03-03  Simon Fraser  <simon.fraser@apple.com>

        Crash when going into video fullscreen on iOS
        https://bugs.webkit.org/show_bug.cgi?id=129613

        Reviewed by Dean Jackson.
        
        We shouldn't reparent a UIView's layer without unparenting
        the view first.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
        (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):

2014-03-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] WebKit2WebExtension GIR can't be used in vala
        https://bugs.webkit.org/show_bug.cgi?id=127179

        Reviewed by Martin Robinson.

        Add a different pkg-config file for the web extensions API.

        * GNUmakefile.am:
        * PlatformGTK.cmake:
        * webkit2gtk-web-extension.pc.in: Added.

2014-03-02  Darin Adler  <darin@apple.com>

        Streamline use of TextIterator, cutting down includes and use of soon-to-be-deleted functions
        https://bugs.webkit.org/show_bug.cgi?id=129592

        Reviewed by Sam Weinig.

        * UIProcess/WebPageProxy.cpp: Added now-needed include.
        * WebProcess/WebPage/WebPage.cpp: Ditto.

2014-03-02  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Keyboard deadlock when accepting/dismissing autocorrection.
        https://bugs.webkit.org/show_bug.cgi?id=129594
        <rdar://problem/16168978>

        Reviewed by Sam Weinig.

        As a temporary fix, we are using a synchronous
        message to accept autocorrection until we implement
        a solution that processes these requests on a thread that
        is not the main thread.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
        (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::applyAutocorrection):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::applyAutocorrection):
        (WebKit::WebPage::syncApplyAutocorrection):

2014-03-02  Dan Bernstein  <mitz@apple.com>

        Try to fix the 32-bit build.

        * UIProcess/ios/forms/WKFormSelectPopover.mm:
        (adjustedFontSize):

2014-03-02  Sam Weinig  <sam@webkit.org>

        Page Cache is not enabled when using the modern WebKit2 API
        https://bugs.webkit.org/show_bug.cgi?id=129585

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool initWithConfiguration:]):
        Default to CacheModelPrimaryWebBrowser until there is a way to configure it.

2014-03-02  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Form controls handling
        https://bugs.webkit.org/show_bug.cgi?id=129344
        <rdar://problem/16053643>

        Reviewed by Simon Fraser.

        Adding support for select elements on iOS.
        There is full support on iPad, while on iPhone it is
        still limited to single select with no groups.
        The change also fixes the issue of the keyboard appearing
        on screen for types of elements that are implemented with
        a popover or a picker.

        * Scripts/webkit2/messages.py:
        * Shared/AssistedNodeInformation.cpp:
        (WebKit::WKOptionItem::encode):
        (WebKit::WKOptionItem::decode):
        (WebKit::AssistedNodeInformation::encode):
        (WebKit::AssistedNodeInformation::decode):
        * Shared/AssistedNodeInformation.h:
        (WebKit::WKOptionItem::WKOptionItem):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView inputView]):
        (-[WKContentView assistedNodeSelectOptions]):
        (-[WKContentView _startAssistingNode:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::setAssistedNodeSelectedIndex):
        * UIProcess/ios/forms/WKFormSelectControl.h:
        * UIProcess/ios/forms/WKFormSelectControl.mm: Added.
        (-[WKFormSelectControl initWithView:]):
        (+[WKFormSelectControl createPeripheralWithView:]):
        (-[WKFormSelectControl assistantView]):
        (-[WKFormSelectControl beginEditing]):
        (-[WKFormSelectControl endEditing]):
        * UIProcess/ios/forms/WKFormSelectPicker.mm: Added.
        (-[WKSelectSinglePicker initWithView:]):
        (-[WKSelectSinglePicker dealloc]):
        (-[WKSelectSinglePicker controlView]):
        (-[WKSelectSinglePicker controlBeginEditing]):
        (-[WKSelectSinglePicker controlEndEditing]):
        (-[WKSelectSinglePicker numberOfComponentsInPickerView:]):
        (stringByTrimmingWhitespaceAndNewlines):
        (-[WKSelectSinglePicker pickerView:numberOfRowsInComponent:]):
        (-[WKSelectSinglePicker pickerView:attributedTitleForRow:forComponent:]):
        (-[WKSelectSinglePicker pickerView:didSelectRow:inComponent:]):
        * UIProcess/ios/forms/WKFormSelectPopover.mm: Added.
        (stringWithWritingDirection):
        (adjustedFontSize):
        (-[WKSelectTableViewController initWithView:hasGroups:]):
        (-[WKSelectTableViewController viewWillAppear:]):
        (-[WKSelectTableViewController numberOfSectionsInTableView:]):
        (-[WKSelectTableViewController tableView:numberOfRowsInSection:]):
        (-[WKSelectTableViewController tableView:titleForHeaderInSection:]):
        (-[WKSelectTableViewController populateCell:withItem:]):
        (-[WKSelectTableViewController findItemIndexAt:]):
        (-[WKSelectTableViewController findItemAt:]):
        (-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
        (-[WKSelectTableViewController tableView:didSelectRowAtIndexPath:]):
        (-[WKSelectTableViewController hasText]):
        (-[WKSelectTableViewController insertText:]):
        (-[WKSelectTableViewController deleteBackward]):
        (-[WKSelectPopover initWithView:hasGroups:]):
        (-[WKSelectPopover dealloc]):
        (-[WKSelectPopover controlView]):
        (-[WKSelectPopover controlBeginEditing]):
        (-[WKSelectPopover controlEndEditing]):
        (-[WKSelectPopover _userActionDismissedPopover:]):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setAssistedNodeSelectedIndex):
        (WebKit::innerFrameQuad):
        (WebKit::WebPage::getPositionInformation):
        (WebKit::hasFocusableNode):
        (WebKit::WebPage::getAssistedNodeInformation):
        (WebKit::WebPage::elementDidFocus):

2014-03-02  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Pages using tiled compositing layers allocate too many tiles on zoom
        https://bugs.webkit.org/show_bug.cgi?id=129471

        Reviewed by Simon Fraser.

        * WebProcess/WebPage/DrawingArea.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::updateVisibleContentRects):
        A few interesting changes here:
        -Now that we do not use setExposedRect, we can pass the exposed area directly
         to the drawing area since everything is now in content coordinates :)
        -The scale is now converted to float before being compared to the Page's scaleFactor.
         The page's scalefactor being a float, the comparison was failing most of the time.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::setVisibleExtentContentRect):

2014-03-02  Darin Adler  <darin@apple.com>

        Change public text iterator API implementations to not depend on 16-bit character pointers
        https://bugs.webkit.org/show_bug.cgi?id=129566

        Reviewed by Anders Carlsson.

        * WebView/WebTextIterator.mm:
        (-[WKDOMTextIterator initWithRange:]): Use make_unique instead of adoptPtr.
        (-[WKDOMTextIterator advance]): Clear out the upconverted text since we are moving on to the
        next text.
        (-[WKDOMTextIterator currentTextPointer]): Upconvert if we have 8-bit text.
        (-[WKDOMTextIterator currentTextLength]): Call TextIterator::text().length() since we will
        probably be removing TextIterator::length eventually.

        * WebProcess/WebCoreSupport/WebEditorClient.cpp: Removed unneded include of TextIterator.h.
        * WebProcess/WebPage/WebPage.cpp: Ditto.

2014-03-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Make impossible to build with <webkit2/webkit2.h> and <webkit2/webkit-web-extension.h> included together
        https://bugs.webkit.org/show_bug.cgi?id=129549

        Reviewed by Martin Robinson.

        Add a compile error to prevent mixing the UI and web process APIs.

        * UIProcess/API/gtk/webkit2.h:
        * WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:

2014-03-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove the include dir of the C API from the WebKit2 pkg-config file
        https://bugs.webkit.org/show_bug.cgi?id=129543

        Reviewed by Martin Robinson.

        We are not installing the C API headers anymore.

        * webkit2gtk.pc.in:

2014-03-01  Tim Horton  <timothy_horton@apple.com>

        Fix the Mac build.

        * UIProcess/mac/ViewGestureController.messages.in:

2014-03-01  Tim Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures (Smart Magnification): Support for iOS
        https://bugs.webkit.org/show_bug.cgi?id=129146
        <rdar://problem/16032668>

        Reviewed by Benjamin Poulain.

        Add support for double-tap smart magnification on iOS.

        * DerivedSources.make:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        WKContentView is no longer API, so it can know about WKWebView
        and will always have one.

        (-[WKWebView contentView:didCommitLayerTree:WebKit::]):
        Don't replace the zoom scale if we're currently animating.

        (-[WKWebView _takeViewSnapshot]):
        Rename.

        (-[WKWebView _zoomToPoint:WebCore::atScale:]):
        (-[WKWebView _zoomToRect:WebCore::atScale:origin:WebCore::]):
        (constrainContentOffset):
        (-[WKWebView _scrollToRect:WebCore::origin:WebCore::minimumScrollDistance:]):
        (-[WKWebView _zoomOutWithOrigin:]):
        (-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
        Add _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:
        and _zoomOutWithOrigin: as internal API, for use by SmartMagnificationController via WKContentView.
        These will use some heuristics to generally center the target rect in the view
        in a way that should match WebKit1 fairly closely.

        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        Don't use the WKContentViewDelegate protocol for things that don't belong there.

        * UIProcess/ios/SmartMagnificationController.h: Added.
        * UIProcess/ios/SmartMagnificationController.messages.in: Added.
        * UIProcess/ios/SmartMagnificationController.mm: Added.
        (WebKit::SmartMagnificationController::SmartMagnificationController):
        (WebKit::SmartMagnificationController::~SmartMagnificationController):
        (WebKit::SmartMagnificationController::handleSmartMagnificationGesture):
        (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):
        SmartMagnificationController sits off of WKContentView, and sends/receives
        messages to the WebProcess to do the smart magnification hit-testing.

        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
        As before, teach WKContentView about its owning WKWebView.

        (-[WKContentView _takeViewSnapshot]):
        Rename.

        (-[WKContentView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
        (-[WKContentView _zoomOutWithOrigin:]):
        Forward _zoomToRect:::::: and _zoomOutWithOrigin: to WKWebView.

        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView setupInteraction]):
        (-[WKContentView _doubleTapRecognized:]):
        (-[WKContentView _twoFingerDoubleTapRecognized:]):
        Forward double tap to the SmartMagnificationController.

        * UIProcess/mac/ViewGestureController.h:
        * UIProcess/mac/ViewGestureController.messages.in:
        * UIProcess/mac/ViewGestureControllerMac.mm:
        (WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
        Retrieve the minimum/maximum viewport scale from the WebProcess.

        * WebKit2.xcodeproj/project.pbxproj:
        Add new files.

        * WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
        (WebKit::ViewGestureGeometryCollector::ViewGestureGeometryCollector):
        (WebKit::ViewGestureGeometryCollector::dispatchDidCollectGeometryForSmartMagnificationGesture):
        (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
        (WebKit::ViewGestureGeometryCollector::collectGeometryForMagnificationGesture):
        Factor out code to send the geometry back to the UI process.

        * WebProcess/WebPage/ViewGestureGeometryCollector.h:
        * WebProcess/WebPage/ViewGestureGeometryCollector.messages.in:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebPage.h:
        We should have a ViewGestureGeometryCollector on iOS too.

2014-03-01  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed follow-up to r164905 and r164912.

        * Platform/IPC/Connection.h: Only declare setShouldCloseConnectionOnMachExceptions() for the Mac port.
        * UIProcess/Plugins/PluginProcessProxy.cpp:
        (WebKit::PluginProcessProxy::didFinishLaunching): Only call setShouldCloseConnectionOnMachExceptions() on the Mac port.

2014-03-01  Gavin Barraclough  <barraclough@apple.com>

        Split UserActivity/CountedUserActivity
        https://bugs.webkit.org/show_bug.cgi?id=129520

        Reviewed by Sam Weinig.

        UserActivity currently provides an interface allowing counted, nested calls to enable/disable.
        In some cases it would be easier to use if it were a simpler boolean enabled/disabled interface.

        * PluginProcess/PluginProcess.h:
        (WebKit::PluginProcess::connectionActivity):
            - UserActivity->CountedUserActivity
        * PluginProcess/mac/PluginProcessMac.mm:
        (WebKit::PluginProcess::platformInitializeProcess):
            - beginActivity->start
        * Shared/ActivityAssertion.cpp:
        (WebKit::ActivityAssertion::ActivityAssertion):
        (WebKit::ActivityAssertion::~ActivityAssertion):
            - beginActivity->increment, endActivity->decrement.
        * Shared/ActivityAssertion.h:
            - UserActivity->CountedUserActivity
        * Shared/ChildProcess.cpp:
        (WebKit::ChildProcess::setProcessSuppressionEnabled):
            - beginActivity->start, endActivity->stop.
        * Shared/ChildProcess.h:
            - removed processSuppressionEnabled()
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):
            - beginActivity->start, endActivity->stop.

2014-03-01  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial Linux buildfix after r164905.

        setShouldCloseConnectionOnMachExceptions() is defined in the Mac only
        Source/WebKit2/Platform/IPC/mac/ConnectionMac.cpp inside !PLATFORM(IOS)
        which means PLATFORM(MAC), because nobody else uses this source file.

        But ChildProcessProxy.cpp is used by Linux ports too, so we have to
        use the most specific #if guard here, which is PLATFORM(MAC).

        * Shared/ChildProcessProxy.cpp:
        (WebKit::ChildProcessProxy::didFinishLaunching):

2014-02-28  Simon Fraser  <simon.fraser@apple.com>

        [iOS] Assertions and bad behavior when zooming into an iframe containing apple.com
        https://bugs.webkit.org/show_bug.cgi?id=129537

        Reviewed by Benjamin Poulain.
        
        When building RemoteLayerTreeTransactions, the ordering of setting created
        layers and doing the recursive tree walk was wrong, such that we failed
        to noticed layers created during the recursiveBuildTransaction().
        
        Also harden the UI-side code against Obj-C exceptions thrown when layers
        are missing.

        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::RemoteLayerTreePropertyApplier::applyProperties): Assert when 
        children are not found, and protect against Obj-C exceptions.
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties):
        Initialize the members.
        * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
        (WebKit::RemoteLayerTreeContext::buildTransaction): Do the recursive walk
        before setting created and destroyed layers, since the walk can create
        layers (especially when swapping into tiled layers).

2014-02-28  Jinwoo Song  <jinwoo7.song@samsung.com>

        Fix WebKit2 build after r164890
        https://bugs.webkit.org/show_bug.cgi?id=129533

        Reviewed by Simon Fraser.

        LayerRepresentation.h is included to WebPageProxy.h in r164890
        but it is not used in non Mac or iOS port.

        * UIProcess/WebPageProxy.h:

2014-02-28  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Extract _data->_thumbnailView checks into a helper function
        https://bugs.webkit.org/show_bug.cgi?id=129517

        Reviewed by Sam Weinig.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView shouldIgnoreMouseEvents]):
        (-[WKView scrollWheel:]):
        (-[WKView mouseMoved:]):
        (-[WKView mouseDown:]):
        (-[WKView mouseUp:]):
        (-[WKView mouseDragged:]):

2014-02-28  Pratik Solanki  <psolanki@apple.com>

        [iOS][WebKit2] Don't use any of the mach exception handling code on iOS
        https://bugs.webkit.org/show_bug.cgi?id=129516

        Reviewed by Sam Weinig.

        This code is not used on iOS after my fix in r164883. We can just move it all under
        !PLATFORM(IOS).

        * Platform/IPC/Connection.h:
        * Platform/IPC/mac/ConnectionMac.cpp:
        (IPC::Connection::platformInvalidate):
        (IPC::Connection::platformInitialize):
        (IPC::Connection::open):
        * Shared/ChildProcessProxy.cpp:
        (WebKit::ChildProcessProxy::didFinishLaunching):

2014-02-28  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] highlight rects should never big bigger than the view
        https://bugs.webkit.org/show_bug.cgi?id=129472
        <rdar://problem/15673655>

        Reviewed by Enrica Casucci.

        The unobscuredRect on WebPageProxy is the "true" view rect as seen by the user.
        Use that to constrain our highlight rects.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (highlightedQuadsFitInRect):
        (-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):

2014-02-28  Simon Fraser  <simon.fraser@apple.com>

        Make UIViews for compositing layers in the UI process on iOS
        https://bugs.webkit.org/show_bug.cgi?id=129508

        Reviewed by Sam Weinig.
        
        In order to parent UIScrollViews for -webkit-overflow-scrolling:touch,
        we need to use UIViews in the compositing layer hierarchy on iOS.
        
        Make much of the code that currently uses CALayers layer-or-view
        agnostic by using a typedef LayerOrView.
        
        Fix RemoteLayerTreePropertyApplier to apply properties to UIViews
        or CALayers; on iOS, we need both paths because we have to set properties
        on CALayer for remotely hosted content.
        
        Add iOS-specific implementation files for RemoteLayerTreeHost and RemoteScrollingCoordinatorProxy,
        since these need to see the UIView implementation. WebVideoFullscreenManagerProxy.cpp also needs
        to be come a .mm file.

        * Shared/mac/RemoteLayerTreePropertyApplier.h:
        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (-[UIView setSubviews:]):
        (WebKit::applyPropertiesToLayer):
        (WebKit::RemoteLayerTreePropertyApplier::applyProperties):
        * UIProcess/Cocoa/LayerRepresentation.h: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.
        (asLayer):
        * UIProcess/PageClient.h:
        * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/LayerRepresentation.mm: Copied from Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.h.
        (asLayer):
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::setAcceleratedCompositingRootLayer):
        (WebKit::PageClientImpl::acceleratedCompositingRootLayer):
        * UIProcess/ios/RemoteLayerTreeHostIOS.mm: Added.
        (+[WKTransformView layerClass]):
        (-[WKRemoteView initWithFrame:contextID:]):
        (+[WKRemoteView layerClass]):
        (WebKit::RemoteLayerTreeHost::createLayer):
        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: Added.
        (WebKit::layerRepresentationFromLayerOrView):
        (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _setAcceleratedCompositingRootView:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
        * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp.
        (WebKit::WebVideoFullscreenManagerProxy::create):
        (WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
        (WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy):
        (WebKit::WebVideoFullscreenManagerProxy::didCommitLayerTree):
        (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
        (WebKit::WebVideoFullscreenManagerProxy::enterFullscreen):
        (WebKit::WebVideoFullscreenManagerProxy::requestExitFullScreen):
        (WebKit::WebVideoFullscreenManagerProxy::play):
        (WebKit::WebVideoFullscreenManagerProxy::pause):
        (WebKit::WebVideoFullscreenManagerProxy::togglePlayState):
        (WebKit::WebVideoFullscreenManagerProxy::seekToTime):
        (WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
        * UIProcess/mac/RemoteLayerTreeHost.h:
        (WebKit::RemoteLayerTreeHost::rootLayer):
        * UIProcess/mac/RemoteLayerTreeHost.mm:
        (WebKit::RemoteLayerTreeHost::updateLayerTree):
        (WebKit::RemoteLayerTreeHost::getLayer):
        (WebKit::RemoteLayerTreeHost::createLayer):
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
        (WebKit::WebPageProxy::acceleratedCompositingRootLayer):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
        (PlatformCALayerRemote::recursiveBuildTransaction):

2014-02-28  Anders Carlsson  <andersca@apple.com>

        WebKit2.TerminateTwice test is failing.

        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        Turns out this can be called even when we're in the launching state so don't try to
        remove the process from the visited link provider when in that state.

2014-02-28  Chris Fleizach  <cfleizach@apple.com>

        AX: Crash in WebKit::WebPageProxy::registerWebProcessAccessibilityToken
        https://bugs.webkit.org/show_bug.cgi?id=127387

        Reviewed by Alexey Proskuryakov.

        Speculative fix for crasher. We should check if the connection is still valid before proceeding.

        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::registerWebProcessAccessibilityToken):

2014-02-28  Timothy Hatcher  <timothy@apple.com>

        Properly handle when Test.html is not present in Production builds.

        https://bugs.webkit.org/show_bug.cgi?id=129506

        Reviewed by Joseph Pecoraro.

        * UIProcess/WebInspectorProxy.cpp:
        (WebKit::isMainOrTestInspectorPage):
        * UIProcess/mac/WebInspectorProxyMac.mm:
        (WebKit::WebInspectorProxy::inspectorTestPageURL):

2014-02-28  Pratik Solanki  <psolanki@apple.com>

        [iOS][WebKit2] Don't grab mach exception port on iOS
        https://bugs.webkit.org/show_bug.cgi?id=129505
        <rdar://problem/15972749>

        Reviewed by Anders Carlsson.

        Don't grab the mach exception port on iOS so we get crash logs for web process and network
        process.

        * Shared/ChildProcessProxy.cpp:
        (WebKit::ChildProcessProxy::didFinishLaunching):

2014-02-28  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix after r164832.

        * UIProcess/ios/WebProcessProxyIOS.mm:
        (WebKit::WebProcessProxy::updateProcessState): Switch from removed
        'isValid' to 'state() != State::Running'

2014-02-28  Anders Carlsson  <andersca@apple.com>

        VisitedLinkProvider should keep track of processes, not pages
        https://bugs.webkit.org/show_bug.cgi?id=129497

        Reviewed by Dan Bernstein.

        Use a counted set of WebProcessProxy pointers instead of a set of pages.

        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::~VisitedLinkProvider):
        Assert that m_processes is null.

        (WebKit::VisitedLinkProvider::addProcess):
        Add the process to the set.

        (WebKit::VisitedLinkProvider::removeProcess):
        Remove the process from the set.

        * UIProcess/VisitedLinkProvider.h:
        
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        If our process is currently running, add it to the visited link provider.
        Otherwise it will be added in connectionWillOpen.

        (WebKit::WebPageProxy::close):
        If our process is running, remove it from the visited link provider. 
        Otherwise it's either crashed or not yet launched and will not have been added.

        (WebKit::WebPageProxy::connectionWillOpen):
        Add the process to the visited link provider.

        (WebKit::WebPageProxy::resetStateAfterProcessExited):
        Remove the process from the visited link provider.

2014-02-27  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Stop using some deprecated functions in WKView.mm
        https://bugs.webkit.org/show_bug.cgi?id=129455

        Reviewed by Anders Carlsson.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView firstRectForCharacterRange:actualRange:]): Use convertRectToScreen,
        which is a replacement for convertBaseToScreen. Don't check for window being null,
        because isn't that crazy talk?
        (-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]): Use event's location
        in window instead of current mouse location. Using location that is not synced to
        event stream rarely makes sense, and it doesn't look like this is one of those cases.
        (-[WKView performDictionaryLookupAtCurrentMouseLocation]): Ditto.

2014-02-27  Jaehun Lim  <ljaehun.lim@samsung.com>

        Unreviewed. Fix build after r164832

        * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
        (WebKit::CoordinatedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState):

2014-02-27  Martin Robinson  <mrobinson@igalia.com>

        Fix build after r164832

        * UIProcess/DrawingAreaProxyImpl.cpp:
        (WebKit::DrawingAreaProxyImpl::waitForAndDispatchDidUpdateBackingStoreState): WebProcessProxy::isLaunching() has been replaced
        by WebProcessProxy::state().

2014-02-27  Tim Horton  <timothy_horton@apple.com>

        Crash in RemoteLayerTreePropertyApplier::applyPropertiesToLayer
        https://bugs.webkit.org/show_bug.cgi?id=129456
        <rdar://problem/16182676>

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
        (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
        We were dereferencing the RemoteLayerBackingStore without checking if it exists,
        in the accelerated drawing codepath. This case will occur if a layer
        previously drew contents, but now does not.

2014-02-27  Anders Carlsson  <andersca@apple.com>

        Simplify WebProcessProxy state accessors
        https://bugs.webkit.org/show_bug.cgi?id=129453

        Reviewed by Andreas Kling.

        Replace WebProcessProxy::isLaunching() and WebProcessProxy::isValid() with a single
        WebProcessProxy::state() that return one of three values: Launching, Running or Terminated.

        * Shared/ChildProcessProxy.cpp:
        (WebKit::ChildProcessProxy::state):
        (WebKit::ChildProcessProxy::sendMessage):
        (WebKit::ChildProcessProxy::abortProcessLaunchIfNeeded):
        * Shared/ChildProcessProxy.h:
        (WebKit::ChildProcessProxy::canSendMessage):
        * UIProcess/Databases/DatabaseProcessProxy.cpp:
        (WebKit::DatabaseProcessProxy::getDatabaseProcessConnection):
        * UIProcess/Network/NetworkProcessProxy.cpp:
        (WebKit::NetworkProcessProxy::getNetworkProcessConnection):
        * UIProcess/Network/mac/NetworkProcessProxyMac.mm:
        (WebKit::NetworkProcessProxy::setProcessSuppressionEnabled):
        * UIProcess/Plugins/PluginProcessProxy.cpp:
        (WebKit::PluginProcessProxy::getPluginProcessConnection):
        (WebKit::PluginProcessProxy::getSitesWithData):
        (WebKit::PluginProcessProxy::clearSiteData):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::reattachToWebProcess):
        (WebKit::WebPageProxy::waitForDidUpdateViewState):
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::requestTermination):
        (WebKit::WebProcessProxy::enableSuddenTermination):
        (WebKit::WebProcessProxy::disableSuddenTermination):
        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
        (WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
        * UIProcess/mac/WebPageProxyMac.mm:
        (WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent):
        * UIProcess/mac/WebProcessProxyMac.mm:
        (WebKit::WebProcessProxy::updateProcessSuppressionState):

2014-02-27  Simon Fraser  <simon.fraser@apple.com>

        Crash tapping on play button on video on iOS
        https://bugs.webkit.org/show_bug.cgi?id=129452

        Reviewed by Benjamin Poulain.
        
        node->computedStyle() can return null. Just use
        renderer->style() to get the tap highlight color.

        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::tapHighlightAtPosition):

2014-02-27  Brian Burg  <bburg@apple.com>

        Web Inspector: model tests should use a special Test.html inspector page
        https://bugs.webkit.org/show_bug.cgi?id=129190

        Reviewed by Timothy Hatcher.

        Support creating a separate test inspector page, based on the value of
        InspectorController::isUnderTest(). Add this as a separate API call for
        WebInspectorProxy. Modify the navigation policy to check the URL against
        both normal and test inspector pages.

        * UIProcess/WebInspectorProxy.cpp:
        (WebKit::isMainOrTestInspectorPage):
        (WebKit::decidePolicyForNavigationAction):
        (WebKit::WebInspectorProxy::createInspectorPageForTest):
        * UIProcess/WebInspectorProxy.h:
        * UIProcess/WebInspectorProxy.messages.in:
        * UIProcess/efl/WebInspectorProxyEfl.cpp:
        (WebKit::WebInspectorProxy::inspectorTestPageURL):
        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
        (WebKit::WebInspectorProxy::inspectorTestPageURL):
        * UIProcess/ios/WebInspectorProxyIOS.mm:
        (WebKit::WebInspectorProxy::inspectorTestPageURL):
        * UIProcess/mac/WebInspectorProxyMac.mm:
        (WebKit::WebInspectorProxy::inspectorTestPageURL):
        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
        (WebKit::WebInspectorClient::openInspectorFrontend):
        * WebProcess/WebPage/WebInspector.cpp: Some drive-by nullptr refactorings.
        (WebKit::WebInspector::WebInspector):
        (WebKit::WebInspector::createInspectorPage):
        (WebKit::WebInspector::createInspectorPageForTest):
        (WebKit::WebInspector::destroyInspectorPage):
        * WebProcess/WebPage/WebInspector.h:

2014-02-27  Anders Carlsson  <andersca@apple.com>

        Make WebProcessProxy::pages() return an IteratorRange
        https://bugs.webkit.org/show_bug.cgi?id=129440

        Reviewed by Dan Bernstein.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageCopyRelatedPages):
        Move the implementation of WebPageProxy::relatedPages here.

        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createNewWebProcessRespectingProcessCountLimit):
        Use std::min_element here instead of a manual loop.

        * UIProcess/WebPageProxy.cpp:
        Remove WebPageProxy::relatedPages().

        * UIProcess/WebProcessProxy.cpp:
        Remove WebProcessProxy::pages().

        * UIProcess/WebProcessProxy.h:
        (WebKit::WebProcessProxy::pages):
        Make this return an IteratorRange.

        (WebKit::WebProcessProxy::pageCount):
        New function that returns the page count.

2014-02-27  Alexey Proskuryakov  <ap@apple.com>

        [Mac][WK2] Remove hardcoded Cmd+B and Cmd+I from WKView.mm
        https://bugs.webkit.org/show_bug.cgi?id=129436

        Reviewed by Darin Adler.

        * UIProcess/API/mac/WKView.mm: Removed a historic WebKit1 behavior that we don't
        need to preserve in WebKit2.

2014-02-27  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Remove unused SPI declarations from WKView.mm
        https://bugs.webkit.org/show_bug.cgi?id=129434

        Reviewed by Sam Weinig.

        * UIProcess/API/mac/WKView.mm:

2014-02-26  Michael Saboff  <msaboff@apple.com>

        Auto generate bytecode information for bytecode parser and LLInt
        https://bugs.webkit.org/show_bug.cgi?id=129181

        Reviewed by Mark Lam.

        Added ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR} to WebKit2_INCLUDE_DIRECTORIES due to new
        generated Bytecodes.h include file.

        * CMakeLists.txt:

2014-02-27  Anders Carlsson  <andersca@apple.com>

        Look up already existing VisitedLinkTableController objects by identifier
        https://bugs.webkit.org/show_bug.cgi?id=129431

        Reviewed by Dan Bernstein.

        * WebProcess/WebPage/VisitedLinkTableController.cpp:
        (WebKit::visitedLinkTableControllers):
        (WebKit::VisitedLinkTableController::getOrCreate):
        (WebKit::VisitedLinkTableController::VisitedLinkTableController):
        (WebKit::VisitedLinkTableController::~VisitedLinkTableController):
        * WebProcess/WebPage/VisitedLinkTableController.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):

2014-02-27  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK][WK2] Blocks when fetching plugins information
        https://bugs.webkit.org/show_bug.cgi?id=115650

        Reviewed by Gustavo Noronha Silva.

        Use a persistent cache to store the plugins metadata to avoid
        having to load all the plugins everytime a plugin is used for the
        first time.

        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * PlatformGTK.cmake:
        * Shared/Plugins/Netscape/NetscapePluginModule.h:
        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
        (WebKit::NetscapePluginModule::parseMIMEDescription): Make this
        method public.
        (WebKit::NetscapePluginModule::buildMIMEDescription): Added this
        helper to build the MIME description string.
        * UIProcess/Plugins/gtk/PluginInfoCache.cpp: Added.
        (WebKit::PluginInfoCache::shared):
        (WebKit::PluginInfoCache::PluginInfoCache):
        (WebKit::PluginInfoCache::~PluginInfoCache):
        (WebKit::PluginInfoCache::saveToFileIdleCallback):
        (WebKit::PluginInfoCache::saveToFile):
        (WebKit::PluginInfoCache::getPluginInfo):
        (WebKit::PluginInfoCache::updatePluginInfo):
        * UIProcess/Plugins/gtk/PluginInfoCache.h: Added.
        * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
        (WebKit::PluginInfoStore::getPluginInfo): Check first if we have
        metadata of the plugin in the cache and update the cache if we
        loaded the plugin to get its metadata.

2014-02-27  Ryan Lortie  <desrt@desrt.ca>

        need to #include <libgen.h> for basename
        https://bugs.webkit.org/show_bug.cgi?id=128597

        Reviewed by Carlos Garcia Campos.

        * PluginProcess/unix/PluginProcessMainUnix.cpp: include <libgen.h> as required by POSIX for basename

2014-02-27  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Web Inspector doesn't work with network process enabled
        https://bugs.webkit.org/show_bug.cgi?id=127651

        Reviewed by Sergio Villar Senin.

        The problem is that the web inspector loads so many resources,
        that when using the network process, a lot of IPC traffic is
        generated causing the send buffer of the socket to be full. When
        that happens sendmsg() fails with EAGAIN, because we are using non
        blocking sockets, and we are not handling neither EAGAIN nor
        EWOULDBLOCK errors (we do when reading from the socket, though).

        * Platform/IPC/unix/ConnectionUnix.cpp:
        (IPC::Connection::readyReadHandler): Add a log message to know
        when reading from the socket fails for any unhandled error.
        (IPC::Connection::sendOutgoingMessage): Handle EAGAIN and
        EWOULDBLOCK errors to try again in those cases. Also add a log
        message for unhandled errors.

2014-02-26  Philippe Normand  <pnormand@igalia.com>

        Unreviewed GTK build fix after r164751.

        * GNUmakefile.list.am:

2014-02-26  Dan Bernstein  <mitz@apple.com>

        iOS build fix.

        * UIProcess/ios/forms/WKFormPopover.h:
        * UIProcess/ios/forms/WKFormPopover.mm:

2014-02-26  Dan Bernstein  <mitz@apple.com>

        Replaced use of the EXCLUDED_SOURCE_FILE_NAMES build setting with #if PLATFORM(…) guards in
        the files themselves.

        Rubber-stamped by Sam Weinig.

        * Configurations/WebKit2.xcconfig: Cleared out EXCLUDED_SOURCE_FILE_NAMES_macosx, and left
        EXCLUDED_SOURCE_FILE_NAMES_iphoneos containing just the names of resources the should be
        excluded from Copy Files build phases.
        * NetworkProcess/ios/NetworkProcessIOS.mm:
        * NetworkProcess/mac/NetworkProcessMac.mm:
        * Shared/Downloads/ios/DownloadIOS.mm:
        * Shared/Downloads/mac/DownloadMac.mm:
        * Shared/NativeWebTouchEvent.h:
        * Shared/WebPlatformTouchPoint.cpp:
        * Shared/WebTouchEvent.cpp:
        * Shared/ios/NativeWebKeyboardEventIOS.mm:
        * Shared/ios/NativeWebTouchEventIOS.mm:
        * Shared/ios/WebIOSEventFactory.h:
        * Shared/ios/WebIOSEventFactory.mm:
        * Shared/mac/PasteboardTypes.h:
        * Shared/mac/PasteboardTypes.mm:
        * Shared/mac/PrintInfoMac.mm:
        * UIProcess/API/C/WKInspector.cpp:
        * UIProcess/API/Cocoa/WKThumbnailView.h:
        * UIProcess/API/Cocoa/WKThumbnailView.mm:
        * UIProcess/API/Cocoa/WKThumbnailViewInternal.h:
        * UIProcess/API/ios/WKViewIOS.mm:
        * UIProcess/API/mac/WKView.mm:
        * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        * UIProcess/ios/TextCheckerIOS.mm:
        * UIProcess/ios/ViewGestureControllerIOS.mm:
        * UIProcess/ios/WKActionSheet.h:
        * UIProcess/ios/WKActionSheet.mm:
        * UIProcess/ios/WKActionSheetAssistant.h:
        * UIProcess/ios/WKActionSheetAssistant.mm:
        * UIProcess/ios/WKContentView.mm:
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        * UIProcess/ios/WKGeolocationProviderIOS.h:
        * UIProcess/ios/WKGeolocationProviderIOS.mm:
        * UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:
        * UIProcess/ios/WKScrollView.h:
        * UIProcess/ios/WKScrollView.mm:
        * UIProcess/ios/WebInspectorProxyIOS.mm:
        * UIProcess/ios/WebPageProxyIOS.mm:
        * UIProcess/ios/WebProcessProxyIOS.mm:
        * UIProcess/ios/forms/WKFormInputControl.h:
        * UIProcess/ios/forms/WKFormInputControl.mm:
        * UIProcess/ios/forms/WKFormPopover.h:
        * UIProcess/ios/forms/WKFormPopover.mm:
        * UIProcess/mac/FindIndicatorWindow.h:
        * UIProcess/mac/FindIndicatorWindow.mm:
        * UIProcess/mac/PageClientImpl.h:
        * UIProcess/mac/PageClientImpl.mm:
        * UIProcess/mac/TextCheckerMac.mm:
        * UIProcess/mac/WKFullKeyboardAccessWatcher.h:
        * UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
        * UIProcess/mac/WKPrintingView.h:
        * UIProcess/mac/WKPrintingView.mm:
        * UIProcess/mac/WebContextMenuProxyMac.h:
        * UIProcess/mac/WebContextMenuProxyMac.mm:
        * UIProcess/mac/WebInspectorProxyMac.mm:
        * UIProcess/mac/WebPageProxyMac.mm:
        * UIProcess/mac/WebProcessProxyMac.mm:
        * WebProcess/WebCoreSupport/WebChromeClient.h:
        * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
        * WebProcess/WebCoreSupport/ios/WebDatabaseManagerIOS.mm:
        * WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
        * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
        * WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        * WebProcess/WebPage/mac/WKAccessibilityWebPageObject.h:
        * WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
        * WebProcess/WebPage/mac/WebPageMac.mm:

2014-02-26  Anders Carlsson  <andersca@apple.com>

        VisitedLinkProvider should know which pages it belongs to
        https://bugs.webkit.org/show_bug.cgi?id=129410

        Reviewed by Dan Bernstein.

        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::~VisitedLinkProvider):
        (WebKit::VisitedLinkProvider::addPage):
        (WebKit::VisitedLinkProvider::removePage):
        * UIProcess/VisitedLinkProvider.h:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::close):

2014-02-26  Enrica Casucci  <enrica@apple.com>

        Build fix.

        Unexpected line break.

        * Configurations/WebKit2.xcconfig:

2014-02-26  Enrica Casucci  <enrica@apple.com>

        Build fix.

        WKFormInputControl.mm and WKFormPopover.mm should be excluded from OS X builds.

        * Configurations/WebKit2.xcconfig:

2014-02-26  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Form controls handling: implement date and time controls.
        https://bugs.webkit.org/show_bug.cgi?id=129344

        Reviewed by Simon Fraser and Joseph Pecoraro.

        This is another step in the implementation of form controls on iOS
        for WebKit2. This adds support for date and time input elements supporting
        the different look and feel for iPhone and iPad.
        WKDateTimePicker implements iPhone UI and
        WKDateTimePopover implements iPad UI.
        WKFormRotatingAccessoryPopover and WKRotatingPopover are
        classes that implement the popover object handling the rotation
        and they will be used as base class for the select controls as well.

        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _displayFormNodeInputView]):
        (-[WKContentView inputView]):
        (-[WKContentView _startAssistingNode:]):
        (-[WKContentView _stopAssistingNode]):
        * UIProcess/ios/WKFormInputControl.h: Added.
        * UIProcess/ios/WKFormInputControl.mm: Added.
        (-[WKDateTimePicker datePicker]):
        (-[WKDateTimePicker initWithView:datePickerMode:]):
        (-[WKDateTimePicker dealloc]):
        (-[WKDateTimePicker controlView]):
        (-[WKDateTimePicker _timeZoneOffsetFromGMT:]):
        (-[WKDateTimePicker _sanitizeInputValueForFormatter:]):
        (-[WKDateTimePicker _dateChangedSetAsNumber]):
        (-[WKDateTimePicker _dateChangedSetAsString]):
        (-[WKDateTimePicker _dateChanged]):
        (-[WKDateTimePicker _dateChangeHandler:]):
        (-[WKDateTimePicker controlBeginEditing]):
        (-[WKDateTimePicker controlEndEditing]):
        (-[WKFormInputControl initWithView:]):
        (+[WKFormInputControl createPeripheralWithView:]):
        (-[WKFormInputControl beginEditing]):
        (-[WKFormInputControl endEditing]):
        (-[WKFormInputControl assistantView]):
        (-[WKDateTimePopoverViewController initWithView:datePickerMode:]):
        (-[WKDateTimePopoverViewController innerControl]):
        (-[WKDateTimePopoverViewController loadView]):
        (-[WKDateTimePopover clear:]):
        (-[WKDateTimePopover initWithView:datePickerMode:]):
        (-[WKDateTimePopover viewController]):
        (-[WKDateTimePopover controlBeginEditing]):
        (-[WKDateTimePopover controlEndEditing]):
        (-[WKDateTimePopover controlView]):
        * UIProcess/ios/WKFormPeripheral.h: Added.
        * UIProcess/ios/WKFormPopover.h: Added.
        * UIProcess/ios/WKFormPopover.mm: Added.
        (-[WKFormRotatingAccessoryPopover initWithView:]):
        (-[WKFormRotatingAccessoryPopover accessoryDone]):
        (-[WKFormRotatingAccessoryPopover popoverArrowDirections]):
        (-[WKFormRotatingAccessoryPopover popoverWasDismissed:]):
        (-[WKRotatingPopover initWithView:]):
        (-[WKRotatingPopover dealloc]):
        (-[WKRotatingPopover popoverController]):
        (-[WKRotatingPopover setPopoverController:]):
        (-[WKRotatingPopover popoverArrowDirections]):
        (-[WKRotatingPopover presentPopoverAnimated:]):
        (-[WKRotatingPopover dismissPopoverAnimated:]):
        (-[WKRotatingPopover willRotate:]):
        (-[WKRotatingPopover didRotate:]):
        (-[WKRotatingPopover popoverControllerDidDismissPopover:]):
        * UIProcess/ios/WKFormSelectControl.h: Added.
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::setAssistedNodeValue):
        (WebKit::WebPageProxy::setAssistedNodeValueAsNumber):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::setAssistedNodeValue):
        (WebKit::WebPage::setAssistedNodeValueAsNumber):

2014-02-26  Pratik Solanki  <psolanki@apple.com>

        [iOS][Webkit2] Enable codesigning entitlement for web process
        https://bugs.webkit.org/show_bug.cgi?id=129401
        <rdar://problem/16173873>

        Reviewed by Geoffrey Garen.

        * Configurations/WebContent-iOS.entitlements:

2014-02-26  Anders Carlsson  <andersca@apple.com>

        Give VisitedLinkProviders an identifier and send them to the web process
        https://bugs.webkit.org/show_bug.cgi?id=129400

        Reviewed by Dan Bernstein.

        * Shared/WebPageCreationParameters.cpp:
        (WebKit::WebPageCreationParameters::encode):
        (WebKit::WebPageCreationParameters::decode):
        * Shared/WebPageCreationParameters.h:
        * UIProcess/API/Cocoa/WKVisitedLinkProviderInternal.h:
        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::generateIdentifier):
        (WebKit::VisitedLinkProvider::VisitedLinkProvider):
        * UIProcess/VisitedLinkProvider.h:
        (WebKit::VisitedLinkProvider::identifier):
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::createWebPage):
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::WebPageProxy):
        (WebKit::WebPageProxy::internalShowContextMenu):
        * UIProcess/WebPageProxy.h:

2014-02-26  Jinwoo Song  <jinwoo7.song@samsung.com>

        Unreviewed CMAKE build fix after r164751.

        * CMakeLists.txt: Renamed WebVisitedLinkProvider.cpp to VisitedLinkTableController.cpp.

2014-02-26  Anders Carlsson  <andersca@apple.com>

        Rename WebVisitedLinkProvider to VisitedLinkTableController
        https://bugs.webkit.org/show_bug.cgi?id=129396

        Reviewed by Dan Bernstein.

        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/VisitedLinkTableController.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/WebVisitedLinkProvider.cpp.
        (WebKit::VisitedLinkTableController::create):
        (WebKit::VisitedLinkTableController::VisitedLinkTableController):
        (WebKit::VisitedLinkTableController::~VisitedLinkTableController):
        (WebKit::VisitedLinkTableController::isLinkVisited):
        (WebKit::VisitedLinkTableController::addVisitedLink):
        * WebProcess/WebPage/VisitedLinkTableController.h: Renamed from Source/WebKit2/WebProcess/WebPage/WebVisitedLinkProvider.h.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):

2014-02-26  Enrica Casucci  <enrica@apple.com>

        Keyboard keeps showing up when clicking links after being shown once.
        https://bugs.webkit.org/show_bug.cgi?id=129392

        Reviewed by Benjamin Poulain.

        This is a regression introduced by http://trac.webkit.org/changeset/164690.
        _requiresKeyboardWhenFirstResponder should always return NO, if there is
        no assisted node.

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _requiresKeyboardWhenFirstResponder]):

2014-02-26  Myles C. Maxfield  <mmaxfield@apple.com>

        WebProcessProxy::updateProcessState() is causing duplicate symbol linker errors
        https://bugs.webkit.org/show_bug.cgi?id=129390

        Reviewed by Tim Horton.

        Caused by r164737. WebProcessProxy::updateProcessState() is defined in a header, outside of
        a class, but isn't inlined.

        * UIProcess/WebProcessProxy.h:
        (WebKit::WebProcessProxy::updateProcessState):

2014-02-26  Brian Burg  <bburg@apple.com>

        Web Replay: route through UserInputBridge when delivering user inputs to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=128150

        Reviewed by Timothy Hatcher.

        When delivering user inputs to WebCore, route calls through the page's UserInputBridge.
        This allows us to capture and replay user inputs from WebKit2 solely within WebCore.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::tryClose):
        (WebKit::WebPage::loadRequest):
        (WebKit::WebPage::stopLoadingFrame):
        (WebKit::WebPage::stopLoading):
        (WebKit::WebPage::reload):
        (WebKit::WebPage::contextMenuAtPointInWindow):
        (WebKit::handleContextMenuEvent):
        (WebKit::handleMouseEvent):
        (WebKit::handleWheelEvent):
        (WebKit::handleKeyEvent):
        (WebKit::WebPage::scroll):
        (WebKit::WebPage::logicalScroll):

2014-02-26  Pratik Solanki  <psolanki@apple.com>

        [iOS][WebKit2] Adopt SPI for managing tabs
        https://bugs.webkit.org/show_bug.cgi?id=129188
        <rdar://problem/15939827>

        Reviewed by Gavin Barraclough.

        Call into assertions SPI to mark tabs as foreground and background.

        * Configurations/WebKit2.xcconfig:
        * Platform/IPC/Connection.h:
        (IPC::Connection::xpcConnection): Expose the xpc_connection_t.
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::viewStateDidChange):
        * UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::didFinishLaunching):
        * UIProcess/WebProcessProxy.h:
        (WebKit::WebProcessProxy::updateProcessState):
        * UIProcess/ios/WebProcessProxyIOS.mm:
        (WebKit::WebProcessProxy::updateProcessState): Added. This goes through the list of
        WebPageProxies and sets the process state to foreground if one of them is in a window.
        Otherwise, it sets it to background.

2014-02-26  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r164725 and r164731.
        http://trac.webkit.org/changeset/164725
        http://trac.webkit.org/changeset/164731
        https://bugs.webkit.org/show_bug.cgi?id=129382

        WebKitTestRunner build is broken on IOS (Requested by smfr on
        #webkit).

        * UIProcess/API/Cocoa/WKView.h:
        * UIProcess/API/ios/WKViewIOS.mm: Added.
        (-[WKView initWithCoder:]):
        (-[WKView initWithFrame:processGroup:browsingContextGroup:]):
        (-[WKView initWithFrame:processGroup:browsingContextGroup:relatedToView:]):
        (-[WKView dealloc]):
        (-[WKView setFrame:]):
        (-[WKView setBounds:]):
        (-[WKView scrollView]):
        (-[WKView browsingContextController]):
        (-[WKView setAllowsBackForwardNavigationGestures:]):
        (-[WKView allowsBackForwardNavigationGestures]):
        (-[WKView viewForZoomingInScrollView:]):
        (-[WKView scrollViewWillBeginZooming:withView:]):
        (-[WKView scrollViewWillBeginDragging:]):
        (-[WKView _didFinishScrolling]):
        (-[WKView scrollViewDidEndDragging:willDecelerate:]):
        (-[WKView scrollViewDidEndDecelerating:]):
        (-[WKView scrollViewDidScrollToTop:]):
        (-[WKView scrollViewDidScroll:]):
        (-[WKView scrollViewDidZoom:]):
        (-[WKView scrollViewDidEndZooming:withView:atScale:]):
        (-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
        (-[WKView _frameOrBoundsChanged]):
        (-[WKView _updateVisibleContentRects]):
        (-[WKView _keyboardChangedWithInfo:adjustScrollView:]):
        (-[WKView _keyboardWillChangeFrame:]):
        (-[WKView _keyboardDidChangeFrame:]):
        (-[WKView _keyboardWillShow:]):
        (-[WKView _keyboardWillHide:]):
        (-[WKView pageRef]):
        (-[WKView initWithFrame:contextRef:pageGroupRef:]):
        (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
        (-[WKView minimumLayoutSizeOverride]):
        (-[WKView setMinimumLayoutSizeOverride:]):
        (-[WKView _obscuredInsets]):
        (-[WKView _setObscuredInsets:]):
        (-[WKView _beginInteractiveObscuredInsetsChange]):
        (-[WKView _endInteractiveObscuredInsetsChange]):
        (-[WKView _pageExtendedBackgroundColor]):
        (-[WKView _setBackgroundExtendsBeyondPage:]):
        (-[WKView _backgroundExtendsBeyondPage]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-26  Simon Fraser  <simon.fraser@apple.com>

        Build fix: ContextMenuContextData.* should not be in the Copy Files
        phase.

        * WebKit2.xcodeproj/project.pbxproj:

2014-02-26  Simon Fraser  <simon.fraser@apple.com>

        Fix MiniBrowser/WebKitTestRunner link errors; WKView still
        needs to be exported while these tools are using it.

        * UIProcess/API/Cocoa/WKView.h:

2014-02-26  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build by wrapping some context menu stuff in #if ENABLE(CONTEXT_MENUS)

        * UIProcess/WebPageProxy.h:

2014-02-26  Martin Hock  <mhock@apple.com>

        Create SessionID value-style class for session IDs.
        https://bugs.webkit.org/show_bug.cgi?id=129141

        The below changes deal solely with mechanical changes to use the SessionID value class instead of uint64_t except where noted.

        Reviewed by Sam Weinig.

        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::storageSession):
        (WebKit::NetworkConnectionToWebProcess::startDownload):
        (WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
        (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
        (WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
        (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
        (WebKit::NetworkConnectionToWebProcess::getRawCookies):
        (WebKit::NetworkConnectionToWebProcess::deleteCookie):
        * NetworkProcess/NetworkConnectionToWebProcess.h:
        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
        * NetworkProcess/NetworkProcess.cpp:
        (WebKit::NetworkProcess::initializeNetworkProcess):
        (WebKit::NetworkProcess::ensurePrivateBrowsingSession):
        (WebKit::NetworkProcess::destroyPrivateBrowsingSession):
        * NetworkProcess/NetworkProcess.h:
        * NetworkProcess/NetworkProcess.messages.in:
        * NetworkProcess/NetworkResourceLoader.h:
        * NetworkProcess/RemoteNetworkingContext.h:
        * NetworkProcess/mac/RemoteNetworkingContext.mm:
        (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
        * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
        (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
        * Shared/Network/NetworkResourceLoadParameters.cpp:
        (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
        * Shared/Network/NetworkResourceLoadParameters.h:
        * Shared/SessionTracker.cpp:
        (WebKit::staticSessionMap):
        (WebKit::storageSessionToID):
        (WebKit::SessionTracker::sessionMap):
        (WebKit::SessionTracker::session):
        (WebKit::SessionTracker::sessionID):
        (WebKit::SessionTracker::setSession):
        (WebKit::SessionTracker::destroySession):
        * Shared/SessionTracker.h: Move code to SessionID class.
        * Shared/WebCoreArgumentCoders.cpp: Add encode and decode for SessionID.
        (IPC::ArgumentCoder<SessionID>::encode):
        (IPC::ArgumentCoder<SessionID>::decode):
        * Shared/WebCoreArgumentCoders.h:
        * Shared/mac/CookieStorageShim.mm:
        (WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):
        * UIProcess/APISession.cpp:
        (API::generateID):
        (API::Session::defaultSession):
        (API::Session::legacyPrivateSession):
        (API::Session::Session):
        (API::Session::isEphemeral):
        (API::Session::getID):
        * UIProcess/APISession.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled):
        (WebKit::WebContext::createNewWebProcess):
        * UIProcess/WebContext.h:
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::sessionID):
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::setPrivateBrowsingEnabled):
        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::WebResourceLoadScheduler::scheduleLoad):
        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        (WebKit::WebPlatformStrategies::loadResourceSynchronously):
        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
        (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
        (WebKit::WebFrameNetworkingContext::storageSession):
        * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
        (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
        (WebKit::WebFrameNetworkingContext::storageSession):
        * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
        * WebProcess/WebPage/WebPage.cpp: Move sessionID to Page to allow WebCore to access it.
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::sessionID):
        (WebKit::WebPage::isUsingEphemeralSession):
        (WebKit::WebPage::setSessionID):
        (WebKit::WebPage::updatePreferences):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::ensurePrivateBrowsingSession):
        (WebKit::WebProcess::destroyPrivateBrowsingSession):
        * WebProcess/WebProcess.h:
        * WebProcess/WebProcess.messages.in:

2014-02-26  Anders Carlsson  <andersca@apple.com>

        Get rid of WKViewIOS.mm
        https://bugs.webkit.org/show_bug.cgi?id=129378

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKView.h:
        * UIProcess/API/ios/WKViewIOS.mm: Removed.
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-26  Alexey Proskuryakov  <ap@apple.com>

        [iOS] Remove some erroneously captured blocks
        https://bugs.webkit.org/show_bug.cgi?id=129362

        Reviewed by Sam Weinig.

        Remove unused captured Objective-C block variables (capturing these doesn't work anyway).

        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
        (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

2014-02-26  Brady Eidson  <beidson@apple.com>

        Pipe experimental image controls menu up to WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=129339

        Reviewed by Simon Fraser.

        Add a WebKit object to represent the data from a ContextMenuContext object that can be shared via IPC:
        * Shared/ContextMenuContextData.cpp: Added.
        (WebKit::ContextMenuContextData::ContextMenuContextData):
        (WebKit::ContextMenuContextData::encode):
        (WebKit::ContextMenuContextData::decode):
        * Shared/ContextMenuContextData.h: Added.
        (WebKit::ContextMenuContextData::webHitTestResultData):
        (WebKit::ContextMenuContextData::isImageControl):

        Update the rest of WK2 to use this object instead of WebHitTestResult::Data directly:
        * UIProcess/WebPageProxy.cpp:
        (WebKit::WebPageProxy::showContextMenu):
        (WebKit::WebPageProxy::internalShowContextMenu): Also make an ENABLE(IMAGE_CONTROLS) change here.
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:

        * WebProcess/WebPage/WebContextMenu.cpp:
        (WebKit::WebContextMenu::show):

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-26  Enrique Ocaña González  <eocanha@igalia.com>

        WebKitFindOptions shouldn't expose WEBKIT_FIND_OPTIONS_SHOW_{OVERLAY,FIND_INDICATOR,HIGHLIGHT}
        https://bugs.webkit.org/show_bug.cgi?id=129263

        Reviewed by Sergio Villar Senin.

        Avoided the need of WEBKIT_FIND_OPTIONS_SHOW_* fields by changing the semantics
        of the findOptions field in WebKitFindOptions.

        * UIProcess/API/gtk/WebKitFindController.cpp: Now
        _WebKitFindControllerPrivate.findOptions is interpreted as WebKit::FindOptions
        instead of WebKitFindOptions like before. Now the conversion has to be done in
        both ways.
        (toWebKitFindOptions): Added conversion function from WebKit::FindOptions to
        WebKitFindOptions.
        (webkit_find_controller_get_options):
        (webKitFindControllerPerform):
        (webkit_find_controller_search):
        (webkit_find_controller_search_next):
        (webkit_find_controller_search_previous):
        (webkit_find_controller_count_matches):
        * UIProcess/API/gtk/WebKitFindController.h: Removed values that shouldn't be
        exposed.

2014-02-26  Gergo Balogh  <gbalogh.u-szeged@partner.samsung.com>

        Inspector server should be enabled only when the web sockets is enabled too.
        https://bugs.webkit.org/show_bug.cgi?id=129304

        Reviewed by Csaba Osztrogonác.

        * config.h:

2014-02-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build after r164702.

        * UIProcess/DrawingAreaProxy.cpp:

2014-02-26  Martin Robinson  <mrobinson@igalia.com>

        [GTK] generate-gtkdoc can fail with WebKit1 or WebKit2 only builds
        https://bugs.webkit.org/show_bug.cgi?id=129319

        Reviewed by Carlos Garcia Campos.

        * GNUmakefile.am: Do not generate the documentation configuration file if the port
        is disabled.

2014-02-25  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Split the rects/scale updates in 3 internally consistent groups
        https://bugs.webkit.org/show_bug.cgi?id=129354

        Reviewed by Sam Weinig.

        During scaling, the scale and rect of UIScrollView, WebPageProxy, DrawingAreaProxy,
        DrawingArea and WebPage were in completely inconsistent states.

        Some of those disconnect were temporary (like when setting the rect and scale in two different
        messages), some were lasting the time of a tile update (like the UIProcess view of the scale).
        This was causing various visual glitches.

        To fix this, all the updates from the UIProcess are funneled through a single path and the values
        are split into 3 different groups/types.
        When updating the scale/rects, the UIProcess sends the new information to the WebProcess on a queue
        through ViewUpdateDispatcher. There, the updates are accumulated until the MainThread is available.
        Once the main thread is "unblocked" from the previous frame, all the data are updated at once from
        the last known state in ViewUpdateDispatcher. The new tiles are created for the new converage information
        and they are sent to the UIProcess.

        At any point, there are 3 types of scale and rects used for different purpose:
        -In the UIProcess, there is the UIScrollView scale and rects which represent the "true" state or what
         is currently on screen.
         That information is mirrored into WebPageProxy for the other classes needing it like DrawingAreaProxy.
        -In the WebProcess, there is the last known state. That state is always lagging a little behind the "true"
         state.
        -Back in the UIProcess, we have the tile states that is attached to RemoteLayerTreeTransaction. It is used
         to setup the rendering.

        With this change, there are two paths for updating the page scale factor:
        -The UI drives the change, the updates goes WKWebView->WKContentView->WebPageProxy->ViewUpdateDispatcher
         ->WebPage->RemoteLayerTreeDrawingArea->RemoteLayerTreeDrawingAreaProxy->WKContentView->WKWebView.
        -If changes in the content force scaling parameters, the updates goes: WebPage->RemoteLayerTreeDrawingArea
         ->RemoteLayerTreeDrawingAreaProxy->WKContentView->WKWebView.
        The two kind of updates frequently conflicts during loading. We differentiate those through the flag
        scaleWasSetByUIProcess passed with the updates. In cases of conflicts, the user always wins.

        * DerivedSources.make:
        * Scripts/webkit2/messages.py:
        (struct_or_class):
        * Shared/VisibleContentRectUpdateInfo.cpp: Added.
        (WebKit::VisibleContentRectUpdateInfo::encode):
        (WebKit::VisibleContentRectUpdateInfo::decode):
        * Shared/VisibleContentRectUpdateInfo.h: Added.
        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
        (WebKit::VisibleContentRectUpdateInfo::exposedRect):
        (WebKit::VisibleContentRectUpdateInfo::unobscuredRect):
        (WebKit::VisibleContentRectUpdateInfo::scale):
        (WebKit::operator==):
        * Shared/mac/RemoteLayerTreeTransaction.h:
        (WebKit::RemoteLayerTreeTransaction::scaleWasSetByUIProcess):
        (WebKit::RemoteLayerTreeTransaction::setScaleWasSetByUIProcess):
        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::encode):
        (WebKit::RemoteLayerTreeTransaction::decode):
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView contentView:didCommitLayerTree:WebKit::]):
        (-[WKWebView _didFinishScrolling]):
        (-[WKWebView scrollViewDidScroll:]):
        (-[WKWebView scrollViewDidZoom:]):
        (-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _updateVisibleContentRectsWithStableState:]):
        (-[WKWebView _setObscuredInsets:]):
        (-[WKWebView _endInteractiveObscuredInsetsChange]):
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView _updateVisibleContentRects]):
        * UIProcess/DrawingAreaProxy.cpp:
        (WebKit::DrawingAreaProxy::DrawingAreaProxy):
        (WebKit::DrawingAreaProxy::setCustomFixedPositionRect):
        * UIProcess/DrawingAreaProxy.h:
        (WebKit::DrawingAreaProxy::updateDebugIndicator):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::displayedContentScale):
        (WebKit::WebPageProxy::exposedContentRect):
        (WebKit::WebPageProxy::unobscuredContentRect):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
        (-[WKContentView didFinishScrolling]):
        (-[WKContentView didZoomToScale:]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::updateVisibleContentRects):
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
        (WebKit::RemoteLayerTreeDrawingAreaProxy::scaledExposedRect):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorScale):
        (WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/ViewUpdateDispatcher.cpp: Added.
        (WebKit::ViewUpdateDispatcher::create):
        (WebKit::ViewUpdateDispatcher::ViewUpdateDispatcher):
        (WebKit::ViewUpdateDispatcher::~ViewUpdateDispatcher):
        (WebKit::ViewUpdateDispatcher::initializeConnection):
        (WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
        (WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
        * WebProcess/WebPage/ViewUpdateDispatcher.h: Added.
        * WebProcess/WebPage/ViewUpdateDispatcher.messages.in: Added.
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::scalePage):
        * WebProcess/WebPage/WebPage.h:
        (WebKit::WebPage::scaleWasSetByUIProcess):
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::tapHighlightAtPosition):
        (WebKit::WebPage::updateVisibleContentRects):
        (WebKit::WebPage::willStartUserTriggeredZooming):
        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::WebProcess):
        (WebKit::WebProcess::initializeConnection):
        * WebProcess/WebProcess.h:

2014-02-25  Anders Carlsson  <andersca@apple.com>

        Rename WebCore::VisitedLinkProvider to WebCore::VisitedLinkStore
        https://bugs.webkit.org/show_bug.cgi?id=129357

        Reviewed by Sam Weinig.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebVisitedLinkProvider.h:

2014-02-25  Enrica Casucci  <enrica@apple.com>

        [WebKit2] Form controls handling.
        https://bugs.webkit.org/show_bug.cgi?id=129344
        <rdar://problem/16053643>

        Reviewed by Simon Fraser and Joseph Pecoraro.

        This is the step toward adding support for
        form controls iOS style. It adds the logic to
        select the appropriate keyboard type based on the
        element type and introduces the AssistedNodeInformation
        structure used currently for the keyboard type selection
        and that will be used to populate pickers and popovers.
        It also provides information to enable/disable next/previous
        buttons in the accessory view.

        * Scripts/webkit2/messages.py:
        (struct_or_class):
        * Shared/AssistedNodeInformation.cpp: Added.
        (WebKit::AssistedNodeInformation::encode):
        (WebKit::AssistedNodeInformation::decode):
        * Shared/AssistedNodeInformation.h: Added.
        (WebKit::AssistedNodeInformation::AssistedNodeInformation):
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/PageClientImplIOS.h:
        * UIProcess/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::startAssistingNode):
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView _requiresKeyboardWhenFirstResponder]):
        (-[WKContentView _updateAccessory]):
        (toUITextAutocapitalize):
        (-[WKContentView textInputTraits]):
        (-[WKContentView assistedNodeInformation]):
        (-[WKContentView _startAssistingNode:]):
        (-[WKContentView _stopAssistingNode]):
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::startAssistingNode):
        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::isAssistableNode):
        (WebKit::hasFocusableNode):
        (WebKit::WebPage::getAssistedNodeInformation):
        (WebKit::WebPage::elementDidFocus):

2014-02-25  Anders Carlsson  <andersca@apple.com>

        VisitedLinkProvider should be refcounted
        https://bugs.webkit.org/show_bug.cgi?id=129351

        Reviewed by Sam Weinig.

        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::create):
        (WebKit::VisitedLinkProvider::~VisitedLinkProvider):
        * UIProcess/VisitedLinkProvider.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::WebContext):
        (WebKit::WebContext::processDidFinishLaunching):
        (WebKit::WebContext::disconnectProcess):
        (WebKit::WebContext::addVisitedLinkHash):
        * UIProcess/WebContext.h:

2014-02-25  Anders Carlsson  <andersca@apple.com>

        Make WebContext handle populating visited links
        https://bugs.webkit.org/show_bug.cgi?id=129348

        Reviewed by Tim Horton.

        This makes it possible to decouple VisitedLinkProvider from WebContext.

        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::VisitedLinkProvider):
        (WebKit::VisitedLinkProvider::processDidFinishLaunching):
        * UIProcess/VisitedLinkProvider.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::WebContext):
        (WebKit::WebContext::processDidFinishLaunching):
        * UIProcess/WebContext.h:

2014-02-25  Anders Carlsson  <andersca@apple.com>

        DrawingAreaProxy is using WebCore's Timer
        https://bugs.webkit.org/show_bug.cgi?id=129347
        <rdar://problem/16078133>

        Reviewed by Tim Horton.

        Use a RunLoop::Timer instead.

        * UIProcess/DrawingAreaProxy.cpp:
        (WebKit::DrawingAreaProxy::DrawingAreaProxy):
        (WebKit::DrawingAreaProxy::exposedRectChangedTimerFired):
        * UIProcess/DrawingAreaProxy.h:

2014-02-25  Anders Carlsson  <andersca@apple.com>

        Add WKVisitedLinkProvider
        https://bugs.webkit.org/show_bug.cgi?id=129343

        Reviewed by Sam Weinig.

        * UIProcess/API/Cocoa/WKVisitedLinkProvider.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
        * UIProcess/API/Cocoa/WKVisitedLinkProvider.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
        * UIProcess/API/Cocoa/WKVisitedLinkProviderInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
        * UIProcess/API/Cocoa/WKVisitedLinkProviderPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration visitedLinkProvider]):
        (-[WKWebViewConfiguration setVisitedLinkProvider:]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-25  Anders Carlsson  <andersca@apple.com>

        Simplify visited link style invalidation
        https://bugs.webkit.org/show_bug.cgi?id=129340

        Reviewed by Dan Bernstein.

        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::addVisitedLink):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::visitedLinkStateChanged):
        (WebKit::WebProcess::allVisitedLinkStateChanged):

2014-02-25  Anders Carlsson  <andersca@apple.com>

        Fix build.

        Remove VisitedLinkStrategy.

        * NetworkProcess/NetworkProcessPlatformStrategies.cpp:
        * NetworkProcess/NetworkProcessPlatformStrategies.h:
        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:

2014-02-25  Alexey Proskuryakov  <ap@apple.com>

        Rolling out http://trac.webkit.org/changeset/164611, because it broke
        WebKit2.PrivateBrowsingPushStateNoHistoryCallback API test

        The change was for:

        https://bugs.webkit.org/show_bug.cgi?id=129141
        Create SessionID class

2014-02-25  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Add delegate method for customizing actions on activated elements
        https://bugs.webkit.org/show_bug.cgi?id=129290

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added. Declared new delegate method.

        * UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
        (_WKActivatedElementType): Defined enum of element types.
        * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
        (-[_WKActivatedElementInfo _initWithType:URL:location:title:rect:]): Added type parameter
        to the initializer, used to set the new type property.
        * UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:

        * UIProcess/Cocoa/UIClient.h:
        * UIProcess/Cocoa/UIClient.mm:
        (WebKit::UIClient::setDelegate): Initialize webViewActionsForElementDefaultActions member
        of m_delegateMethods.
        (WebKit::UIClient::actionsForElement): Added. Calls out to the new delegate method if
        implemented. Otherwise returns the default actions.

        * UIProcess/ios/WKActionSheetAssistant.mm:
        (-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]): Use new _elementInfo ivar
        instead of creating element info here.
        (-[WKActionSheetAssistant showImageSheet]): Create element info here and assign it to
        _elementInfo ivar if presenting a sheet. Call the UI client to get custom actions.
        (-[WKActionSheetAssistant showLinkSheet]): Ditto.
        (-[WKActionSheetAssistant cleanupSheet]): Clear _elementInfo ivar.
        * WebKit2.xcodeproj/project.pbxproj: Added reference to WKUIDelegatePrivate.h.

2014-02-25  Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        Unreviewed EFL build fix attempt after r164562

        * CMakeLists.txt: Added WebVisitedLinkProvider.cpp.

2014-02-25  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Add ENABLE flag
        https://bugs.webkit.org/show_bug.cgi?id=129153

        Reviewed by Simon Fraser.

        Added ENABLE_CSS_GRID_LAYOUT feature flag.

        * Configurations/FeatureDefines.xcconfig:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

2014-02-25  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed GTK build fix after r164652.

        * GNUmakefile.list.am: Add WebVisitedLinkProvider build targets.

2014-02-24  Anders Carlsson  <andersca@apple.com>

        Make it possible to set the visited link provider on a per page basis
        https://bugs.webkit.org/show_bug.cgi?id=129288

        Reviewed by Andreas Kling.

        Add WebVisitedLinkProvider which just calls the web process.

        * WebKit2.xcodeproj/project.pbxproj:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::WebPage):
        * WebProcess/WebPage/WebVisitedLinkProvider.cpp: Added.
        (WebKit::WebVisitedLinkProvider::create):
        (WebKit::WebVisitedLinkProvider::WebVisitedLinkProvider):
        (WebKit::WebVisitedLinkProvider::~WebVisitedLinkProvider):
        (WebKit::WebVisitedLinkProvider::isLinkVisited):
        (WebKit::WebVisitedLinkProvider::addVisitedLink):
        * WebProcess/WebPage/WebVisitedLinkProvider.h: Added.

2014-02-25  Dan Bernstein  <mitz@apple.com>

        Build fix for case-sensitive filesystems.

        * WebProcess/ios/WebVideoFullscreenManager.cpp:

2014-02-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Mark view source mode methods as deprecated
        https://bugs.webkit.org/show_bug.cgi?id=128920

        Reviewed by Martin Robinson.

        Mark WEBKIT_VIEW_MODE_SOURCE as deprecated in documentation and
        only show warnings when set_view_mode is used with WEBKIT_VIEW_MODE_SOURCE.

        * UIProcess/API/gtk/WebKitWebView.cpp:
        (webkit_web_view_set_view_mode):
        (webkit_web_view_get_view_mode):
        * UIProcess/API/gtk/WebKitWebView.h:

2014-02-24  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Stop looking for plug-in profiles in /S/L/Sandbox/Profiles
        https://bugs.webkit.org/show_bug.cgi?id=129262
        <rdar://problem/16149420>

        Reviewed by Sam Weinig.

        Remove unused code.

        * Shared/Plugins/mac/PluginSandboxProfile.mm:
        (WebKit::pluginSandboxProfileDirectory):
        (WebKit::pluginSandboxCommonProfile):
        (WebKit::pluginSandboxProfile):
        (WebKit::pluginHasSandboxProfile):

2014-02-24  Martin Robinson  <mrobinson@igalia.com>

        [GTK] generate-gtkdoc should not generate documentation for source files for unbuilt source files
        https://bugs.webkit.org/show_bug.cgi?id=128417

        Reviewed by Carlos Garcia Campos.

        * GNUmakefile.am: Generate a config file for generate-gtkdoc.
        * PlatformGTK.cmake: Ditto.

2014-02-24  Dan Bernstein  <mitz@apple.com>

        32-bit build fix.

        * UIProcess/API/Cocoa/_WKElementAction.mm:
        (+[_WKElementAction elementActionWithType:customTitle:]):

2014-02-24  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Start adding API for customizing actions on activated elements
        https://bugs.webkit.org/show_bug.cgi?id=129284

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/_WKActivatedElementInfo.h: Added. Includes the public interface of what
        was WKElementActionInfo.
        * UIProcess/API/Cocoa/_WKActivatedElementInfo.m: Added.
        (-[_WKActivatedElementInfo _initWithURL:location:title:rect:]): Moved and renamed internal
        initializer from WKElementActionInfo.
        (-[_WKActivatedElementInfo dealloc]): Moved from WKElementActionInfo.
        (-[_WKActivatedElementInfo _boundingRect]): Added private accessor.
        (-[_WKActivatedElementInfo _interactionLocation]): Ditto.
        * UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: Added.

        * UIProcess/API/Cocoa/_WKElementAction.h: Added.
        (_WKElementActionType): Moved from WKActionSheet.h and turned into a proper NS_ENUM.
        * UIProcess/API/Cocoa/_WKElementAction.mm: Added.
        (-[_WKElementAction _initWithTitle:actionHandler:type:]): Moved and renamed internal
        initializer from WKActionSheet.mm.
        (-[_WKElementAction dealloc]): Moved from WKActionSheet.mm.
        (+[_WKElementAction elementActionWithTitle:actionHandler:]): Moved and renamed.
        (copyElement): Moved from WKActionSheet.mm.
        (saveImage): Ditto.
        (addToReadingList): Ditto.
        (+[_WKElementAction elementActionWithType:customTitle:]): Moved and renamed.
        (+[_WKElementAction elementActionWithType:]): Ditto.
        (-[_WKElementAction _runActionWithElementInfo:view:]): Moved from WKActionSheet.mm.
        * UIProcess/API/Cocoa/WKElementActionInternal.h: Added.

        * UIProcess/ios/WKActionSheet.h: Removed declarations that were moved elsewhere.
        * UIProcess/ios/WKActionSheet.mm: Removed code that was moved elsewhere.
        * UIProcess/ios/WKActionSheetAssistant.mm:
        (-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]):
        (-[WKActionSheetAssistant showImageSheet]):
        (-[WKActionSheetAssistant showLinkSheet]):
        (-[WKActionSheetAssistant showDataDetectorsSheet]):

        * WebKit2.xcodeproj/project.pbxproj: Added references to new files. Changed the Objective-C
        class name check to allow _WK as a class name prefix.

2014-02-24  Simon Fraser  <simon.fraser@apple.com>

        Use RetainPtrs for two WKContentView data members
        https://bugs.webkit.org/show_bug.cgi?id=129276

        Reviewed by Benjamin Poulain.
        
        The UITextInputTraits were leaked. Fix with RetainPtr goodness.
        
        Rename the obscure _accessory to _formAccessoryView and
        make it a RetainPtr.
        
        Rearrange the data members of the WKContentView class extension
        for better packing and readability.

        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentViewInteraction.h:
        * UIProcess/ios/WKContentViewInteraction.mm:
        (-[WKContentView cleanupInteraction]):
        (-[WKContentView inputAccessoryView]):
        (-[WKContentView _updateAccessory]):
        (-[WKContentView textInputTraits]):

2014-02-24  Simon Fraser  <simon.fraser@apple.com>

        Remove WKInteractionView, move code into WKContentView
        https://bugs.webkit.org/show_bug.cgi?id=129275

        Reviewed by Benjamin Poulain.
        
        WKInteractionView as an interim solution as WebKit2 on iOS was being
        brought up, and should be removed.
        
        Move its code into a category on WKContentView, mostly unchanged. The
        WKContentView (WKInteraction) categroy now implements the various protocols
        that WKInteractionView implemented.
        
        WKContentView is not an API class, so no longer has WK_API_CLASS, and can
        have implementation-related data members. WKContentViewInternal.h is removed.
        
        WKContentView now exposes a WebPageProxy* rather than a WKPageRef.
        
        Other changes: WKActionSheetAssistant no longer stores a WebPageProxy,
        getting it from the WKContentView instead.
        
        WKAutoCorrectionData and InteractionInformationAtPosition are stored via unique_ptr
        to reduce class size, and avoid having to expose their details in the header.

        * Configurations/WebKit2.xcconfig:
        * UIProcess/API/Cocoa/WKWebViewInternal.h:
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView setAllowsBackForwardNavigationGestures:]):
        (-[WKView pageRef]):
        (-[WKView _pageExtendedBackgroundColor]):
        (-[WKView _setBackgroundExtendsBeyondPage:]):
        (-[WKView _backgroundExtendsBeyondPage]):
        * UIProcess/ios/PageClientImplIOS.mm:
        * UIProcess/ios/WKActionSheet.h:
        * UIProcess/ios/WKActionSheet.mm:
        (-[WKActionSheet initWithView:]):
        (+[WKElementAction customElementActionWithTitle:actionHandler:]):
        (copyElement):
        (saveImage):
        (+[WKElementAction standardElementActionWithType:customTitle:]):
        (-[WKElementAction runActionWithElementInfo:view:]):
        * UIProcess/ios/WKActionSheetAssistant.h:
        * UIProcess/ios/WKActionSheetAssistant.mm:
        (-[WKActionSheetAssistant initWithView:]):
        (-[WKActionSheetAssistant dealloc]):
        (-[WKActionSheetAssistant initialPresentationRectInHostViewForSheet]):
        (-[WKActionSheetAssistant presentationRectInHostViewForSheet]):
        (-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]):
        (-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
        (-[WKActionSheetAssistant showImageSheet]):
        (-[WKActionSheetAssistant showLinkSheet]):
        (-[WKActionSheetAssistant showDataDetectorsSheet]):
        (-[WKActionSheetAssistant cleanupSheet]):
        * UIProcess/ios/WKContentView.h:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::]):
        (-[WKContentView dealloc]):
        (-[WKContentView page]):
        (-[WKContentView isAssistingNode]):
        (-[WKContentView didFinishScrolling]):
        (-[WKContentView willStartZoomOrScroll]):
        (-[WKContentView willStartUserTriggeredScroll]):
        (-[WKContentView willStartUserTriggeredZoom]):
        (-[WKContentView didZoomToScale:]):
        (-[WKContentView _didCommitLoadForMainFrame]):
        (-[WKContentView _didCommitLayerTree:WebKit::]):
        * UIProcess/ios/WKContentViewInteraction.h: Renamed from Source/WebKit2/UIProcess/ios/WKInteractionView.h.
        * UIProcess/ios/WKContentViewInteraction.mm: Renamed from Source/WebKit2/UIProcess/ios/WKInteractionView.mm.
        (-[WKContentView setupInteraction]):
        (-[WKContentView cleanupInteraction]):
        (-[WKContentView positionInformation]):
        (-[WKContentView setInputDelegate:]):
        (-[WKContentView inputDelegate]):
        (-[WKContentView isEditable]):
        (-[WKContentView canBecomeFirstResponder]):
        (-[WKContentView resignFirstResponder]):
        (-[WKContentView _webTouchEventsRecognized:]):
        (inflateQuad):
        (-[WKContentView _webTouchEvent:WebKit::preventsNativeGestures:]):
        (-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
        (-[WKContentView _cancelLongPressGestureRecognizer]):
        (-[WKContentView _didScroll]):
        (-[WKContentView _requiresKeyboardResetOnReload]):
        (-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]):
        (-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]):
        (isSamePair):
        (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
        (-[WKContentView _showImageSheet]):
        (-[WKContentView _showLinkSheet]):
        (-[WKContentView _showDataDetectorsSheet]):
        (-[WKContentView _actionForLongPress]):
        (-[WKContentView ensurePositionInformationIsUpToDate:]):
        (-[WKContentView _updatePositionInformation]):
        (-[WKContentView gestureRecognizerShouldBegin:]):
        (-[WKContentView _cancelInteraction]):
        (-[WKContentView hasSelectablePositionAtPoint:]):
        (-[WKContentView pointIsInAssistedNode:]):
        (-[WKContentView webSelectionRects]):
        (-[WKContentView _highlightLongPressRecognized:]):
        (-[WKContentView _longPressRecognized:]):
        (-[WKContentView _singleTapRecognized:]):
        (-[WKContentView _doubleTapRecognized:]):
        (-[WKContentView _twoFingerDoubleTapRecognized:]):
        (-[WKContentView _twoFingerPanRecognized:]):
        (-[WKContentView _attemptClickAtLocation:]):
        (-[WKContentView useSelectionAssistantWithMode:]):
        (-[WKContentView clearSelection]):
        (-[WKContentView _positionInformationDidChange:]):
        (-[WKContentView _willStartScrollingOrZooming]):
        (-[WKContentView _willStartUserTriggeredScrollingOrZooming]):
        (-[WKContentView _didEndScrollingOrZooming]):
        (-[WKContentView inputAccessoryView]):
        (-[WKContentView supportedPasteboardTypesForCurrentSelection]):
        (-[WKContentView _addShortcut:]):
        (-[WKContentView _promptForReplace:]):
        (-[WKContentView replace:]):
        (-[WKContentView canPerformAction:withSender:]):
        (-[WKContentView _resetShowingTextStyle:]):
        (-[WKContentView _performAction:]):
        (-[WKContentView copy:]):
        (-[WKContentView cut:]):
        (-[WKContentView paste:]):
        (-[WKContentView select:]):
        (-[WKContentView selectAll:]):
        (-[WKContentView toggleBoldface:]):
        (-[WKContentView toggleItalics:]):
        (-[WKContentView toggleUnderline:]):
        (-[WKContentView _showTextStyleOptions:]):
        (-[WKContentView _showDictionary:]):
        (-[WKContentView _define:]):
        (toWKGestureType):
        (toUIWKGestureType):
        (toWKSelectionTouch):
        (toUIWKSelectionTouch):
        (toWKGestureRecognizerState):
        (toUIGestureRecognizerState):
        (toUIWKSelectionFlags):
        (toWKHandlePosition):
        (selectionChangedWithGesture):
        (selectionChangedWithTouch):
        (-[WKContentView _didUpdateBlockSelectionWithTouch:WebKit::withFlags:WebKit::growThreshold:shrinkThreshold:]):
        (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]):
        (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]):
        (-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
        (-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
        (-[WKContentView autocorrectionData]):
        (-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]):
        (-[WKContentView textFirstRect]):
        (-[WKContentView textLastRect]):
        (-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
        (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
        (-[WKContentView accessoryDone]):
        (-[WKContentView accessoryTab:]):
        (-[WKContentView accessoryAutoFill]):
        (-[WKContentView accessoryClear]):
        (-[WKContentView _updateAccessory]):
        (-[WKContentView textInRange:]):
        (-[WKContentView replaceRange:withText:]):
        (-[WKContentView selectedTextRange]):
        (-[WKContentView caretRectForPosition:]):
        (-[WKContentView selectionRectsForRange:]):
        (-[WKContentView setSelectedTextRange:]):
        (-[WKContentView hasMarkedText]):
        (-[WKContentView markedText]):
        (-[WKContentView markedTextRange]):
        (-[WKContentView markedTextStyle]):
        (-[WKContentView setMarkedTextStyle:]):
        (-[WKContentView setMarkedText:selectedRange:]):
        (-[WKContentView unmarkText]):
        (-[WKContentView beginningOfDocument]):
        (-[WKContentView endOfDocument]):
        (-[WKContentView textRangeFromPosition:toPosition:]):
        (-[WKContentView positionFromPosition:offset:]):
        (-[WKContentView positionFromPosition:inDirection:offset:]):
        (-[WKContentView comparePosition:toPosition:]):
        (-[WKContentView offsetFromPosition:toPosition:]):
        (-[WKContentView tokenizer]):
        (-[WKContentView positionWithinRange:farthestInDirection:]):
        (-[WKContentView characterRangeByExtendingPosition:inDirection:]):
        (-[WKContentView baseWritingDirectionForPosition:inDirection:]):
        (-[WKContentView setBaseWritingDirection:forRange:]):
        (-[WKContentView firstRectForRange:]):
        (-[WKContentView closestPositionToPoint:]):
        (-[WKContentView closestPositionToPoint:withinRange:]):
        (-[WKContentView characterRangeAtPoint:]):
        (-[WKContentView deleteBackward]):
        (-[WKContentView insertText:]):
        (-[WKContentView hasText]):
        (-[WKContentView textInputTraits]):
        (-[WKContentView interactionAssistant]):
        (-[WKContentView webSelectionAssistant]):
        (-[WKContentView selectionRange]):
        (-[WKContentView rectForNSRange:]):
        (-[WKContentView _markedTextNSRange]):
        (-[WKContentView selectedDOMRange]):
        (-[WKContentView setSelectedDOMRange:affinityDownstream:]):
        (-[WKContentView replaceRangeWithTextWithoutClosingTyping:replacementText:]):
        (-[WKContentView rectContainingCaretSelection]):
        (-[WKContentView requiresKeyEvents]):
        (-[WKContentView handleKeyWebEvent:]):
        (-[WKContentView _interpretKeyEvent:isCharEvent:]):
        (-[WKContentView setBottomBufferHeight:]):
        (-[WKContentView automaticallySelectedOverlay]):
        (-[WKContentView selectionGranularity]):
        (-[WKContentView insertDictationResult:withCorrectionIdentifier:]):
        (-[WKContentView metadataDictionariesForDictationResults]):
        (-[WKContentView previousUnperturbedDictationResultBoundaryFromPosition:]):
        (-[WKContentView nextUnperturbedDictationResultBoundaryFromPosition:]):
        (-[WKContentView moveBackward:]):
        (-[WKContentView moveForward:]):
        (-[WKContentView characterBeforeCaretSelection]):
        (-[WKContentView wordContainingCaretSelection]):
        (-[WKContentView wordRangeContainingCaretSelection]):
        (-[WKContentView setMarkedText:]):
        (-[WKContentView hasContent]):
        (-[WKContentView selectAll]):
        (-[WKContentView textColorForCaretSelection]):
        (-[WKContentView fontForCaretSelection]):
        (-[WKContentView hasSelection]):
        (-[WKContentView isPosition:atBoundary:inDirection:]):
        (-[WKContentView positionFromPosition:toBoundary:inDirection:]):
        (-[WKContentView isPosition:withinTextUnit:inDirection:]):
        (-[WKContentView rangeEnclosingPosition:withGranularity:inDirection:]):
        (-[WKContentView takeTraitsFrom:]):
        (-[WKContentView _startAssistingKeyboard]):
        (-[WKContentView _stopAssistingKeyboard]):
        (-[WKContentView _startAssistingNode]):
        (-[WKContentView _stopAssistingNode]):
        (-[WKContentView _selectionChanged]):
        (-[WKContentView shouldIgnoreWebTouch]):
        (-[WKContentView isAnyTouchOverActiveArea:]):
        (-[WKTextRange _isCaret]):
        (-[WKTextRange _isRanged]):
        (+[WKTextRange textRangeWithState:isRange:isEditable:startRect:endRect:selectionRects:selectedTextLength:]):
        (-[WKTextRange dealloc]):
        (-[WKTextRange description]):
        (-[WKTextRange start]):
        (-[WKTextRange end]):
        (-[WKTextRange isEmpty]):
        (-[WKTextRange isEqual:]):
        (+[WKTextPosition textPositionWithRect:]):
        (-[WKTextPosition isEqual:]):
        (-[WKTextPosition description]):
        (-[WKTextSelectionRect initWithWebRect:]):
        (-[WKTextSelectionRect dealloc]):
        (+[WKTextSelectionRect textSelectionRectsWithWebRects:]):
        (-[WKTextSelectionRect rect]):
        (-[WKTextSelectionRect writingDirection]):
        (-[WKTextSelectionRect range]):
        (-[WKTextSelectionRect containsStart]):
        (-[WKTextSelectionRect containsEnd]):
        (-[WKTextSelectionRect isVertical]):
        (+[WKAutocorrectionRects autocorrectionRectsWithRects:lastRect:]):
        (+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
        (-[WKAutocorrectionContext dealloc]):
        * UIProcess/ios/WKContentViewInternal.h: Removed.
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-24  Anders Carlsson  <andersca@apple.com>

        WKProcessPool should use secondary processes + network process
        https://bugs.webkit.org/show_bug.cgi?id=129282

        Reviewed by Simon Fraser.

        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (-[WKProcessPool initWithConfiguration:]):

2014-02-24  Jeremy Jones  <jeremyj@apple.com>

        WK2 AVKit fullscreen doesn't display video.
        https://bugs.webkit.org/show_bug.cgi?id=128564

        Reviewed by Simon Fraser.

        * Shared/mac/RemoteLayerTreeTransaction.h:
        Add a property to track video layer pending fullscreen.

        (WebKit::RemoteLayerTreeTransaction::isVideoLayerIDPendingFullscreen):
        (WebKit::RemoteLayerTreeTransaction::addVideoLayerIDPendingFullscreen):
        Add a property to track video layer pending fullscreen.

        * Shared/mac/RemoteLayerTreeTransaction.mm:
        (WebKit::RemoteLayerTreeTransaction::encode):
        (WebKit::RemoteLayerTreeTransaction::decode):
        Encode and decode m_videoLayerIDsPendingFullscreen.

        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::didCommitLayerTree):
        Let WebVideoFullscreenManagerProxy see the RemoteLayerTreeTransaction.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.cpp:
        (WebKit::WebVideoFullscreenManagerProxy::didCommitLayerTree):
        Look for video layer pending fullscreen on the transaction to initiate
        fullscreen.

        (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
        Start looking for the video layer pending fullscreen in the transaction.

        (WebKit::WebVideoFullscreenManagerProxy::enterFullscreen):
        Override to prevent fullscreen from happening before the layer
        is pending fullscreen.

        * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
        * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
        Pass a more specific videoLayerID in SetVideoLayerID,
        i.e. WebCore::GraphicsLayer::PlatformLayerID.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::willCommitLayerTree):
        Move webPage specific transaction building here, including,
        giving WebVideoFullscreenManager a chance to modify the transaction.

        * WebProcess/WebPage/WebPage.h:
        Add willCommitLayerTree();

        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
        (PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
        (PlatformCALayerRemoteCustom::~PlatformCALayerRemoteCustom):
        Make and break the connection from CALayer to PlatformCALayerRemoteCustom,
        the same way it is done for PlatformCALayerMac.

        * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
        Move WebPage specific transaction building into WebPage::willCommitLayerTree.

        * WebProcess/ios/WebVideoFullscreenManager.cpp:
        (WebKit::WebVideoFullscreenManager::willCommitLayerTree):
        addVideoLayerIDPendingFullscreen on RemoteLayerTreeTransaction when needed.

        (WebKit::WebVideoFullscreenManager::setVideoLayer):
        Pass along the video layerID.

        * WebProcess/ios/WebVideoFullscreenManager.h:
        Add willCommitLayerTree() and remove setVideoLayerID().
        Add a member to retain the unparented PlatformCALayer.

2014-02-24  Martin Hock  <mhock@apple.com>

        Create SessionID value-style class for session IDs.
        https://bugs.webkit.org/show_bug.cgi?id=129141

        The below changes deal solely with mechanical changes to use the SessionID value class instead of uint64_t except where noted.

        Reviewed by Brady Eidson.

        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::storageSession):
        (WebKit::NetworkConnectionToWebProcess::startDownload):
        (WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
        (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
        (WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
        (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
        (WebKit::NetworkConnectionToWebProcess::getRawCookies):
        (WebKit::NetworkConnectionToWebProcess::deleteCookie):
        * NetworkProcess/NetworkConnectionToWebProcess.h:
        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
        * NetworkProcess/NetworkProcess.cpp:
        (WebKit::NetworkProcess::initializeNetworkProcess):
        (WebKit::NetworkProcess::ensurePrivateBrowsingSession):
        (WebKit::NetworkProcess::destroyPrivateBrowsingSession):
        * NetworkProcess/NetworkProcess.h:
        * NetworkProcess/NetworkProcess.messages.in:
        * NetworkProcess/NetworkResourceLoader.h:
        * NetworkProcess/RemoteNetworkingContext.h:
        * NetworkProcess/mac/RemoteNetworkingContext.mm:
        (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
        * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
        (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
        * Shared/Network/NetworkResourceLoadParameters.cpp:
        (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
        * Shared/Network/NetworkResourceLoadParameters.h:
        * Shared/SessionTracker.cpp:
        (WebKit::staticSessionMap):
        (WebKit::storageSessionToID):
        (WebKit::SessionTracker::sessionMap):
        (WebKit::SessionTracker::session):
        (WebKit::SessionTracker::sessionID):
        (WebKit::SessionTracker::setSession):
        (WebKit::SessionTracker::destroySession):
        * Shared/SessionTracker.h: Move code to SessionID class.
        * Shared/WebCoreArgumentCoders.cpp: Add encode and decode for SessionID.
        (IPC::ArgumentCoder<SessionID>::encode):
        (IPC::ArgumentCoder<SessionID>::decode):
        * Shared/WebCoreArgumentCoders.h:
        * Shared/mac/CookieStorageShim.mm:
        (WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):
        * UIProcess/APISession.cpp:
        (API::generateID):
        (API::Session::defaultSession):
        (API::Session::legacyPrivateSession):
        (API::Session::Session):
        (API::Session::isEphemeral):
        (API::Session::getID):
        * UIProcess/APISession.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled):
        (WebKit::WebContext::createNewWebProcess):
        * UIProcess/WebContext.h:
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::sessionID):
        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::setPrivateBrowsingEnabled):
        * WebProcess/Network/WebResourceLoadScheduler.cpp:
        (WebKit::WebResourceLoadScheduler::scheduleLoad):
        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        (WebKit::WebPlatformStrategies::loadResourceSynchronously):
        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
        * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
        (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
        (WebKit::WebFrameNetworkingContext::storageSession):
        * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
        (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
        (WebKit::WebFrameNetworkingContext::storageSession):
        * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
        * WebProcess/WebPage/WebPage.cpp: Move sessionID to Page to allow WebCore to access it.
        (WebKit::WebPage::WebPage):
        (WebKit::WebPage::sessionID):
        (WebKit::WebPage::isUsingEphemeralSession):
        (WebKit::WebPage::setSessionID):
        (WebKit::WebPage::updatePreferences):
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::ensurePrivateBrowsingSession):
        (WebKit::WebProcess::destroyPrivateBrowsingSession):
        * WebProcess/WebProcess.h:
        * WebProcess/WebProcess.messages.in:

2014-02-24  Simon Fraser  <simon.fraser@apple.com>

        Remove PDFViewController.*, which is unused
        https://bugs.webkit.org/show_bug.cgi?id=129270

        Reviewed by Tim Horton.

        * UIProcess/mac/PDFViewController.h: Removed.
        * UIProcess/mac/PDFViewController.mm: Removed.

2014-02-24  Anders Carlsson  <andersca@apple.com>

        Rename WKProcessClass to WKProcessPool
        https://bugs.webkit.org/show_bug.cgi?id=129268

        Reviewed by Dan Bernstein.

        Stage this rename by adding back WKProcessClass and WKProcessClassConfiguration as subclasses of the renamed classes.

        * Shared/Cocoa/APIObject.mm:
        (API::Object::newObject):
        * UIProcess/API/Cocoa/WKProcessClass.h:
        * UIProcess/API/Cocoa/WKProcessClass.mm:
        * UIProcess/API/Cocoa/WKProcessClassConfiguration.h:
        * UIProcess/API/Cocoa/WKProcessClassConfiguration.mm:
        * UIProcess/API/Cocoa/WKProcessClassConfigurationPrivate.h:
        * UIProcess/API/Cocoa/WKProcessClassPrivate.h:
        * UIProcess/API/Cocoa/WKProcessPool.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClass.h.
        * UIProcess/API/Cocoa/WKProcessPool.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClass.mm.
        (-[WKProcessPool init]):
        (-[WKProcessPool initWithConfiguration:]):
        (-[WKProcessPool dealloc]):
        (-[WKProcessPool description]):
        (-[WKProcessPool configuration]):
        (-[WKProcessPool API::]):
        (-[WKProcessPool _setAllowsSpecificHTTPSCertificate:forHost:]):
        * UIProcess/API/Cocoa/WKProcessPoolConfiguration.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfiguration.h.
        * UIProcess/API/Cocoa/WKProcessPoolConfiguration.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfiguration.mm.
        (-[WKProcessPoolConfiguration _injectedBundleURL]):
        (-[WKProcessPoolConfiguration _setInjectedBundleURL:]):
        (-[WKProcessPoolConfiguration description]):
        (-[WKProcessPoolConfiguration copyWithZone:]):
        * UIProcess/API/Cocoa/WKProcessPoolConfigurationPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassConfigurationPrivate.h.
        * UIProcess/API/Cocoa/WKProcessPoolInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassInternal.h.
        (WebKit::wrapper):
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassPrivate.h.
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
        (-[WKWebViewConfiguration description]):
        (-[WKWebViewConfiguration copyWithZone:]):
        (-[WKWebViewConfiguration processPool]):
        (-[WKWebViewConfiguration setProcessPool:]):
        * UIProcess/API/Cocoa/WKWebViewConfigurationToBeRemoved.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKProcessClassPrivate.h.
        (-[WKWebViewConfiguration setProcessClass:]):
        (-[WKWebViewConfiguration processClass]):
        * UIProcess/API/mac/WKView.mm:
        * UIProcess/ios/WKContentView.mm:
        (-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-24  Simon Fraser  <simon.fraser@apple.com>

        Move non-API files out of WebKit2/UIProcess/API/mac
        https://bugs.webkit.org/show_bug.cgi?id=129267

        Reviewed by Anders Carlsson.

        * UIProcess/mac/FindIndicatorWindow.h: Renamed from Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.h.
        * UIProcess/mac/FindIndicatorWindow.mm: Renamed from Source/WebKit2/UIProcess/API/mac/FindIndicatorWindow.mm.
        * UIProcess/mac/PDFViewController.h: Renamed from Source/WebKit2/UIProcess/API/mac/PDFViewController.h.
        * UIProcess/mac/PDFViewController.mm: Renamed from Source/WebKit2/UIProcess/API/mac/PDFViewController.mm.
        * UIProcess/mac/WKPrintingView.h: Renamed from Source/WebKit2/UIProcess/API/mac/WKPrintingView.h.
        * UIProcess/mac/WKPrintingView.mm: Renamed from Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm.
        * UIProcess/mac/WKTextInputWindowController.h: Renamed from Source/WebKit2/UIProcess/API/mac/WKTextInputWindowController.h.
        * UIProcess/mac/WKTextInputWindowController.mm: Renamed from Source/WebKit2/UIProcess/API/mac/WKTextInputWindowController.mm.
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-24  Simon Fraser  <simon.fraser@apple.com>

        Move non-API files in the API/ios directory out to UIProcess/ios
        https://bugs.webkit.org/show_bug.cgi?id=129264

        Reviewed by Anders Carlsson.

        * UIProcess/ios/PageClientImplIOS.h: Renamed from Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h.
        * UIProcess/ios/PageClientImplIOS.mm: Renamed from Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.mm.
        * UIProcess/ios/WKActionSheet.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKActionSheet.h.
        * UIProcess/ios/WKActionSheet.mm: Renamed from Source/WebKit2/UIProcess/API/ios/WKActionSheet.mm.
        * UIProcess/ios/WKContentViewInternal.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKContentViewInternal.h.
        * UIProcess/ios/WKGeolocationProviderIOS.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKGeolocationProviderIOS.h.
        * UIProcess/ios/WKGeolocationProviderIOS.mm: Renamed from Source/WebKit2/UIProcess/API/ios/WKGeolocationProviderIOS.mm.
        * UIProcess/ios/WKInteractionView.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKInteractionView.h.
        * UIProcess/ios/WKInteractionView.mm: Renamed from Source/WebKit2/UIProcess/API/ios/WKInteractionView.mm.
        * UIProcess/ios/WKScrollView.h: Renamed from Source/WebKit2/UIProcess/API/ios/WKScrollView.h.
        * UIProcess/ios/WKScrollView.mm: Renamed from Source/WebKit2/UIProcess/API/ios/WKScrollView.mm.
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-24  Simon Fraser  <simon.fraser@apple.com>

        Rename PageClientImplIOS::m_view to m_contentView
        https://bugs.webkit.org/show_bug.cgi?id=129124

        Reviewed by Benjamin Poulain.
        
        Simple rename of m_view to m_contentView in preparation for
        also holding onto the WKView.

        * UIProcess/API/ios/PageClientImplIOS.h:
        * UIProcess/API/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::PageClientImpl):
        (WebKit::PageClientImpl::createDrawingAreaProxy):
        (WebKit::PageClientImpl::viewSize):
        (WebKit::PageClientImpl::isViewInWindow):
        (WebKit::PageClientImpl::processDidExit):
        (WebKit::PageClientImpl::didRelaunchProcess):
        (WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest):
        (WebKit::PageClientImpl::didCommitLoadForMainFrame):
        (WebKit::PageClientImpl::interpretKeyEvent):
        (WebKit::PageClientImpl::positionInformationDidChange):
        (WebKit::PageClientImpl::selectionDidChange):
        (WebKit::PageClientImpl::screenToRootView):
        (WebKit::PageClientImpl::rootViewToScreen):
        (WebKit::PageClientImpl::setAcceleratedCompositingRootLayer):
        (WebKit::PageClientImpl::takeViewSnapshot):
        (WebKit::PageClientImpl::didGetTapHighlightGeometries):
        (WebKit::PageClientImpl::didCommitLayerTree):
        (WebKit::PageClientImpl::startAssistingNode):
        (WebKit::PageClientImpl::stopAssistingNode):

2014-02-24  Enrique Ocaña González  <eocanha@igalia.com>

        REGRESSION(r164438): [GTK] Tests /webkit2/WebKitWebView/tls-errors-policy and /webkit2/WebKitWebContext/uri-scheme fail
        https://bugs.webkit.org/show_bug.cgi?id=129252

        Reviewed by Carlos Garcia Campos.

        * UIProcess/API/gtk/WebKitPrivate.cpp: Manage error values generated by the user application and not present in WebCore
        (toWebKitError):
        (toWebCoreError):

2014-02-24  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/16059894> Update AppleConnect sandbox profile for XPC process names.

        Patch by Ivan Krstić, reviewed and landed by me.

        * Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:

2014-02-24  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>

        Code cleanup: remove leftover ENABLE(WORKERS) macros and support.
        https://bugs.webkit.org/show_bug.cgi?id=129255

        Reviewed by Csaba Osztrogonác.

        ENABLE_WORKERS macro was removed in r159679.
        Support is now also removed from xcconfig files.

        * Configurations/FeatureDefines.xcconfig:

2014-02-24  Iago Toral Quiroga  <itoral@igalia.com>

        [GTK] Wrong active context when destroying GL objects.
        https://bugs.webkit.org/show_bug.cgi?id=129244

        Reviewed by Martin Robinson.

        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
        (WebKit::LayerTreeHostGtk::invalidate): make context current before destroying GL objects.

2014-02-24  Koop Mast <kwm@FreeBSD.org>

        Remove unused error.h header.
        https://bugs.webkit.org/show_bug.cgi?id=126774

        Reviewed by Anders Carlsson.

        This header doesn't exists on FreeBSD. According to
        https://www.gnu.org/software/gnulib/manual/html_node/error_002eh.html
        the function that this header implements are not present in the file.
        So there isn't any need for this header.

        * NetworkProcess/unix/NetworkProcessMainUnix.cpp:

2014-02-24  David Kilzer  <ddkilzer@apple.com>

        Remove redundant setting in FeatureDefines.xcconfig

        * Configurations/FeatureDefines.xcconfig:

2014-02-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove unneeded method webkitWebViewBaseRequestExitFullScreen
        https://bugs.webkit.org/show_bug.cgi?id=129245

        Reviewed by Sergio Villar Senin.

        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
        (webkitWebViewBaseKeyPressEvent): Call FullscreenManager::requestExitFullScreen() directly.
        * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:

2014-02-23  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/16144508> [iOS] Some definitions of INSTALL_PATH don’t account for INSTALL_PATH_PREFIX
        https://bugs.webkit.org/show_bug.cgi?id=129241

        Reviewed by Mark Rowe.

        * Configurations/Base.xcconfig: Define INSTALL_PATH here in terms of INSTALL_PATH_ACTUAL.
        * Configurations/BaseLegacyProcess.xcconfig: Define only INSTALL_PATH_ACTUAL.
        * Configurations/BaseTarget.xcconfig: Simplify the definition of
        NORMAL_WEBKIT2_FRAMEWORKS_DIR, now that it shouldn’t include SDKROOT for the Simulator.
        * Configurations/BaseXPCService.xcconfig: Define only INSTALL_PATH_ACTUAL.
        * Configurations/WebKit2.xcconfig: Ditto.

2014-02-23  Sam Weinig  <sam@webkit.org>

        Update FeatureDefines.xcconfig

        Rubber-stamped by Anders Carlsson.

        * Configurations/FeatureDefines.xcconfig:

2014-02-23  Sam Weinig  <sam@webkit.org>

        [WebKit2] Add C-SPI to enable/disable telephone number detection
        https://bugs.webkit.org/show_bug.cgi?id=129239

        Reviewed by Dean Jackson.

        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetTelephoneNumberParsingEnabled):
        (WKPreferencesGetTelephoneNumberParsingEnabled):
        * UIProcess/API/C/WKPreferencesPrivate.h:

2014-02-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Change a url parameter type with URL in NavigatorContentUtils
        https://bugs.webkit.org/show_bug.cgi?id=129202

        Reviewed by Sam Weinig.

        It would be good if we use *URL* for url parameters instead of using String.

        Merge from blink. https://src.chromium.org/viewvc/blink?view=rev&revision=165458.

        * WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h:
        (WebKit::WebNavigatorContentUtilsClient::isProtocolHandlerRegistered):
        (WebKit::WebNavigatorContentUtilsClient::unregisterProtocolHandler):

2014-02-23  Sam Weinig  <sam@webkit.org>

        Move telephone number detection behind its own ENABLE macro
        https://bugs.webkit.org/show_bug.cgi?id=129236

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:
        Add ENABLE_TELEPHONE_NUMBER_DETECTION.

2014-02-23  Diego Pino García  <dpino@igalia.com>

        [GTK] Fix build after Web Inspector code reorganization (r164543)
        https://bugs.webkit.org/show_bug.cgi?id=129231

        Reviewed by Dean Jackson.

        * PlatformGTK.cmake:
        Modify paths to Web Inspector code.

2014-02-22  Joseph Pecoraro  <pecoraro@apple.com>

        Remove some unreachable code (-Wunreachable-code)
        https://bugs.webkit.org/show_bug.cgi?id=129220

        Reviewed by Eric Carlson.

        * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
        (WebKit::toAPI):

2014-02-22  Dan Bernstein  <mitz@apple.com>

        [Cocoa] WKUIDelegate.h is a project header
        https://bugs.webkit.org/show_bug.cgi?id=129215

        Reviewed by Anders Carlsson.

        * WebKit2.xcodeproj/project.pbxproj: Make it a public header.

2014-02-22  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/12500358> [Cocoa] Development variants of XPC services should not be installed in WebKit2.framework/XPCServices
        https://bugs.webkit.org/show_bug.cgi?id=129197

        Reviewed by Sam Weinig.

        * Configurations/BaseXPCService.xcconfig: Made INSTALL_PATH vary based on
        WK_XPC_SERVICE_VARIANT. For the Development variant, use an install path outside the
        framework. Note that engineering builds using the build action continue to have the
        Development variants copied into the framework by a script build phase.
        * Configurations/DatabaseService.Development.xcconfig: Set WK_XPC_SERVICE_VARIANT.
        * Configurations/DatabaseService.xcconfig: Ditto.
        * Configurations/NetworkService.Development.xcconfig: Ditto.
        * Configurations/NetworkService.xcconfig: Ditto.
        * Configurations/PluginService.32.xcconfig: Ditto.
        * Configurations/PluginService.64.xcconfig: Ditto.
        * Configurations/PluginService.Development.xcconfig: Ditto.
        * Configurations/WebContentService.Development.xcconfig: Ditto.
        * Configurations/WebContentService.xcconfig: Ditto.

2014-02-21  Brent Fulgham  <bfulgham@apple.com>

        Extend media support for WebVTT sources
        https://bugs.webkit.org/show_bug.cgi?id=129156

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig: Add new feature define for AVF_CAPTIONS

2014-02-21  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Keyboard appears every time a link is tapped after searching Google
        <rdar://problem/16072563>.

        Reviewed by Benjamin Poulain.

        We need to stop assisting the node if we have
        navigated to a different page.

        * UIProcess/API/ios/WKContentView.mm:
        (-[WKContentView _didCommitLoadForMainFrame]):

2014-02-21  Dan Bernstein  <mitz@apple.com>

        Made WKWebView implement all WKContentViewDelegate methods.

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView takeViewSnapshotForContentView:]): Moved from WKViewIOS.mm.
        * UIProcess/API/ios/WKContentView.h: Made all protocol methods required.
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]): Removed code
        to set self as the delegate on the content view.

2014-02-21  Sam Weinig  <sam@webkit.org>

        <rdar://problem/16073882> Please add _AbandonCoalition key to plugin XPC service Info.plist

        Reviewed by Anders Carlsson.

        * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
        * PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist:

2014-02-21  Jeffrey Pfau  <jpfau@apple.com>

        [Mac] Cache callbacks for cache partitioning may be passed null
        https://bugs.webkit.org/show_bug.cgi?id=129175

        Reviewed by Brady Eidson.

        * WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp:
        (WebKit::WebResourceCacheManager::cfURLCacheHostNamesWithCallback):

2014-02-21  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Update the visible content rects on zoom
        https://bugs.webkit.org/show_bug.cgi?id=129174

        Reviewed by Simon Fraser.

        Generalize _updateVisibleContentRects to also act during the zoom and not only at the end.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView scrollViewDidZoom:]):
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView scrollViewDidZoom:]):

2014-02-21  Benjamin Poulain  <benjamin@webkit.org>

        jsDocumentPrototypeFunctionGetElementById should not create an AtomicString for the function argument
        https://bugs.webkit.org/show_bug.cgi?id=128893

        Reviewed by Darin Adler.

        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::pageNumberForElementById): Remove the explicit conversion to use the right overload.

2014-02-21  Enrica Casucci  <enrica@apple.com>

        Support WebSelections in WK2 on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=127015
        <rdar://problem/15211964>

        Reviewed by Benjamin Poulain.

        This is the remaining work on block selections for iOS in WK2.
        Once a block selection has been created with a long press gesture
        on a selectable area, we can interact with it by touching the four
        handles at the top, right, bottom and left side of the selection box.
        Expanding or shrinking a block selection requires finding the next/previous
        block in the direction of the movement, depending on the handle we
        are interacting with.
        Every time a new block is selected, we compute the thresholds required
        to trigger another block change. The thresholds are sent back to the
        UIProcess that will use this information to decide when to activate
        the new selection, either bigger or smaller.
        This patch also fixes a bug in selectWithTwoTouches where the points
        were not mapped to the active frame.

        * Shared/ios/WKGestureTypes.h:
        * UIProcess/API/ios/PageClientImplIOS.h:
        * UIProcess/API/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::didUpdateBlockSelectionWithTouches):
        * UIProcess/API/ios/WKContentView.mm:
        (-[WKContentView _didUpdateBlockSelectionWithTouches:withFlags:growThreshold:shrinkThreshold:]):
        * UIProcess/API/ios/WKContentViewInternal.h:
        * UIProcess/API/ios/WKInteractionView.h:
        * UIProcess/API/ios/WKInteractionView.mm:
        (-[WKInteractionView hasSelectablePositionAtPoint:]):
        (-[WKInteractionView clearSelection]):
        (toWKHandlePosition):
        (-[WKInteractionView _didUpdateBlockSelectionWithTouches:WebKit::withFlags:WebKit::growThreshold:shrinkThreshold:]):
        (-[WKInteractionView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]):
        * UIProcess/PageClient.h:
        * UIProcess/WebPageProxy.h:
        * UIProcess/WebPageProxy.messages.in:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::updateBlockSelectionWithTouches):
        (WebKit::WebPageProxy::didUpdateBlockSelectionWithTouches):
        * WebProcess/WebPage/WebPage.cpp:
        * WebProcess/WebPage/WebPage.h:
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:
        (WebKit::WebPage::rangeForWebSelectionAtPosition):
        (WebKit::WebPage::rangeForBlockAtPoint):
        (WebKit::WebPage::selectWithGesture):
        (WebKit::distanceBetweenRectsForPosition):
        (WebKit::rectsEssentiallyTheSame):
        (WebKit::containsRange):
        (WebKit::unionDOMRanges):
        (WebKit::computeEdgeCenter):
        (WebKit::WebPage::expandedRangeFromHandle):
        (WebKit::WebPage::contractedRangeFromHandle):
        (WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle):
        (WebKit::shouldExpand):
        (WebKit::WebPage::changeBlockSelection):
        (WebKit::WebPage::updateBlockSelectionWithTouches):
        (WebKit::WebPage::clearSelection):
        (WebKit::WebPage::selectWithTwoTouches):
        (WebKit::WebPage::getPositionInformation):

2014-02-21  Anders Carlsson  <andersca@apple.com>

        Make sure to invoke the completion handler for JS alerts
        https://bugs.webkit.org/show_bug.cgi?id=129158

        Reviewed by Alexey Proskuryakov.

        * UIProcess/API/C/WKPage.cpp:
        (WKPageSetPageUIClient):

2014-02-20  Zalan Bujtas  <zalan@apple.com>

        Remove redundant deviceScaleFactor() functions and make callers use Document::deviceScaleFactor() when accessible.
        https://bugs.webkit.org/show_bug.cgi?id=129137

        Reviewed by Simon Fraser.

        No change in behavior.

        * WebProcess/WebPage/FindController.cpp:
        (WebKit::FindController::getFindIndicatorBitmapAndRect):

2014-02-20  Benjamin Poulain  <bpoulain@apple.com>

        Add a missing piece of r164469

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView scrollViewWillBeginDragging:]):
        I forgot to duplicate the change from WKViewIOS in r164469.

2014-02-20  Benjamin Poulain  <bpoulain@apple.com>

        WKInteractionView always blocks the main thread when sending touch events
        https://bugs.webkit.org/show_bug.cgi?id=129059

        Reviewed by Enrica Casucci.

        Add the asynchronous dispatching to WebKit2.

        * Shared/NativeWebTouchEvent.h:
        (WebKit::NativeWebTouchEvent::uniqueId):
        * Shared/ios/NativeWebTouchEventIOS.mm:
        (WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
        * UIProcess/API/ios/PageClientImplIOS.mm:
        (WebKit::PageClientImpl::doneWithTouchEvent):
        * UIProcess/API/ios/WKContentView.h:
        * UIProcess/API/ios/WKContentView.mm:
        (-[WKContentView willStartUserTriggeredScroll]):
        (-[WKContentView willStartUserTriggeredZoom]):
        (-[WKContentView _webTouchEvent:WebKit::preventsNativeGestures:]):
        * UIProcess/API/ios/WKContentViewInternal.h:
        * UIProcess/API/ios/WKInteractionView.h:
        * UIProcess/API/ios/WKInteractionView.mm:
        (-[WKInteractionView _webTouchEventsRecognized:]):
        (-[WKInteractionView _webTouchEvent:WebKit::preventsNativeGestures:]):
        (-[WKInteractionView _willStartUserTriggeredScrollingOrZooming]):
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView scrollViewWillBeginDragging:]):
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-20  Benjamin Poulain  <bpoulain@apple.com>

        Start fixing the view states driven by the WKScrollView
        https://bugs.webkit.org/show_bug.cgi?id=129140

        Reviewed by Tim Horton and Simon Fraser.

        WKScrollView creates a "window" over WKContentView with an area that is exposed,
        an area that is unobcured and with a certain scale.

        Instead of having 3 loosely related paths for updating WKContentView
        when the content "window" change, everything is consolidated behind the
        single API -[WKContentView didUpdateVisibleRect:unobscuredRect:scale:].

        This patch only fixes the content updates from the UI process side to keep things simple.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView _didFinishScrolling]):
        (-[WKWebView scrollViewDidEndDragging:willDecelerate:]):
        (-[WKWebView scrollViewDidEndDecelerating:]):
        (-[WKWebView scrollViewDidScrollToTop:]):
        (-[WKWebView scrollViewDidScroll:]):
        (-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
        (-[WKWebView _frameOrBoundsChanged]):
        (-[WKWebView _updateContentWindow]):
        (-[WKWebView _setObscuredInsets:]):
        * UIProcess/API/ios/WKContentView.h:
        * UIProcess/API/ios/WKContentView.mm:
        (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:]):
        (-[WKContentView _updateFixedPositionRect]):
        (-[WKContentView didFinishScrolling]):
        (-[WKContentView didZoomToScale:]):
        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView contentView:didCommitLayerTree:]):
        (-[WKView _didFinishScrolling]):
        (-[WKView scrollViewDidEndDragging:willDecelerate:]):
        (-[WKView scrollViewDidEndDecelerating:]):
        (-[WKView scrollViewDidScrollToTop:]):
        (-[WKView scrollViewDidScroll:]):
        (-[WKView scrollViewDidEndZooming:withView:atScale:]):
        Scrolling is modified to take into account the view position and the obcured content.
        Instead of driving the scrolling position from the UIScrollView delegate callbacks,
        we use changes in unobscured rect to find changes in "content visible scroll position".

        WebPageProxy::didFinishScrolling() is removed. All the scrollOffset updates now go through
        the ScrollingCoordinator.

        (-[WKView _frameOrBoundsChanged]):
        (-[WKView _updateContentWindow]):
        (-[WKView _setObscuredInsets:]):
        * UIProcess/WebPageProxy.h:
        * UIProcess/ios/WebPageProxyIOS.mm:
        (WebKit::WebPageProxy::unobscuredContentRect):
        (WebKit::WebPageProxy::setUnobscuredContentRect):
        * WebProcess/WebPage/WebPage.messages.in:
        * WebProcess/WebPage/ios/WebPageIOS.mm:

2014-02-20  Tim Horton  <timothy_horton@apple.com>

        Fix a build warning by moving some WKWebView methods from the private category to WKWebView itself.

        Reviewed by Anders Carlsson.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView setAllowsBackForwardNavigationGestures:]):
        (-[WKWebView allowsBackForwardNavigationGestures]):

2014-02-20  Enrica Casucci  <enrica@apple.com>

        ASSERT on touches callbacks after r164409 on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=129135

        Reviewed by Alexey Proskuryakov.

        The change used incorrecly true and false in TouchesCallbacks and
        ImageCallback. It also reintroduced isMainThread() which doesn't work
        for iOS.

        * UIProcess/GenericCallback.h:
        (WebKit::CallbackBase::generateCallbackID):
        (WebKit::ImageCallback::performCallbackWithReturnValue):
        (WebKit::ImageCallback::invalidate):
        * UIProcess/WebPageProxy.h:
        (WebKit::TouchesCallback::performCallbackWithReturnValue):
        (WebKit::TouchesCallback::invalidate):

2014-02-20  Anders Carlsson  <andersca@apple.com>

        We need something like WKPageUIClient in the Obj-C API
        https://bugs.webkit.org/show_bug.cgi?id=129123
        <rdar://problem/15338439>

        Reviewed by Sam Weinig.

        * UIProcess/API/APIUIClient.h:
        * UIProcess/API/Cocoa/WKUIDelegate.h: Added.
        * UIProcess/API/Cocoa/WKWebView.h:
        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView initWithFrame:configuration:]):
        (-[WKWebView UIDelegate]):
        (-[WKWebView setUIDelegate:]):
        * UIProcess/Cocoa/UIClient.h: Added.
        * UIProcess/Cocoa/UIClient.mm: Added.
        (WebKit::UIClient::UIClient):
        (WebKit::UIClient::~UIClient):
        (WebKit::UIClient::delegate):
        (WebKit::UIClient::setDelegate):
        (WebKit::UIClient::runJavaScriptAlert):
        (WebKit::UIClient::runJavaScriptConfirm):
        (WebKit::UIClient::runJavaScriptPrompt):
        * UIProcess/WebPageProxy.h:
        (WebKit::WebPageProxy::uiClient):
        * WebKit2.xcodeproj/project.pbxproj:

2014-02-20  Brady Eidson  <beidson@apple.com>

        Add very basic image control rendering
        https://bugs.webkit.org/show_bug.cgi?id=129080

        Reviewed by Tim Horton.

        * WebProcess/InjectedBundle/InjectedBundle.cpp:
        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Expose the 
          imageControlsEnabled setting to WKTR.

2014-02-20  Tim Horton  <timothy_horton@apple.com>

        Add magnification and swiping properties to WKWebView
        https://bugs.webkit.org/show_bug.cgi?id=129117

        Reviewed by Dan Bernstein.

        * UIProcess/API/Cocoa/WKViewPrivate.h:
        Move allowsBackForwardNavigationGestures out of a Mac-only block.

        * UIProcess/API/Cocoa/WKWebView.h:
        Add allowsBackForwardNavigationGestures to WKWebView for both platforms.
        Add magnification properties to WKWebView for Mac.

        * UIProcess/API/Cocoa/WKWebView.mm:
        (-[WKWebView contentView:didCommitLayerTree:WebKit::]):
        (-[WKWebView setAllowsBackForwardNavigationGestures:]):
        (-[WKWebView allowsBackForwardNavigationGestures]):
        (-[WKWebView setAllowsMagnification:]):
        (-[WKWebView allowsMagnification]):
        (-[WKWebView setMagnification:]):
        (-[WKWebView magnification]):
        (-[WKWebView setMagnification:centeredAtPoint:]):
        For iOS, copy implementations from WKViewIOS.
        For Mac, forward to the inner WKView.

        * UIProcess/API/ios/WKViewIOS.mm:
        (-[WKView setAllowsBackForwardNavigationGestures:]):
        Fix the logic to tear down the ViewGestureController.

        * UIProcess/API/mac/WKView.mm:
        (-[WKView setMagnification:centeredAtPoint:]):
        (-[WKView setMagnification:]):
        (-[WKView magnification]):
        Use CG types for API.

== Rolled over to ChangeLog-2014-02-20 ==