[GTK] Expose WebKitSecurityOrigin API
[WebKit-https.git] / Source / WebKit2 / ChangeLog
index 26441cd..9d172b9 100644 (file)
+2017-01-03  Michael Catanzaro  <mcatanzaro@igalia.com> and Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Expose WebKitSecurityOrigin API
+        https://bugs.webkit.org/show_bug.cgi?id=166632
+
+        Reviewed by Carlos Garcia Campos.
+
+        This API will be useful to have for various purposes, such as setting initial notification
+        permissions.
+
+        * PlatformGTK.cmake:
+        * UIProcess/API/gtk/WebKitAutocleanups.h:
+        * UIProcess/API/gtk/WebKitSecurityOrigin.cpp: Added.
+        (_WebKitSecurityOrigin::_WebKitSecurityOrigin):
+        (webkitSecurityOriginCreate):
+        (webkit_security_origin_new):
+        (webkit_security_origin_new_for_uri):
+        (webkit_security_origin_ref):
+        (webkit_security_origin_unref):
+        (webkit_security_origin_get_protocol):
+        (webkit_security_origin_get_host):
+        (webkit_security_origin_get_port):
+        (webkit_security_origin_is_opaque):
+        (webkit_security_origin_to_string):
+        * UIProcess/API/gtk/WebKitSecurityOrigin.h: Added.
+        * UIProcess/API/gtk/WebKitSecurityOriginPrivate.h: Added.
+        * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
+        * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
+        * UIProcess/API/gtk/webkit2.h:
+
+2017-01-03  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [SOUP] Load options allowStoredCredentials = DoNotAllowStoredCredentials with clientCredentialPolicy = MayAskClientForCredentials doesn't work
+        https://bugs.webkit.org/show_bug.cgi?id=164471
+
+        Reviewed by Michael Catanzaro.
+
+        When DoNotAllowStoredCredentials is used we disable the SoupAuthManager feature for the message, but that
+        disables all HTTP authentication, causing the load to always fail with Authorization required even when
+        clientCredentialPolicy allows to ask the user for credentials. The problem is that even if we don't use the
+        WebCore credentials for that request, libsoup will always use its internal cache of SoupAuth if we enable the
+        SoupAuthManager feature. Libsoup 2.57.1 has new API to disable the use of cached credentials for a particular
+        message, adding the new message flag SOUP_MESSAGE_DO_NOT_USE_AUTH_CACHE.
+
+        * NetworkProcess/soup/NetworkDataTaskSoup.cpp:
+        (WebKit::NetworkDataTaskSoup::createRequest): Set SOUP_MESSAGE_DO_NOT_USE_AUTH_CACHE flag to disable cached
+        credentials for the message if libsoup >= 2.57.1 is used.
+
+2017-01-03  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] HTTP auth layout tests are flaky
+        https://bugs.webkit.org/show_bug.cgi?id=158919
+
+        Reviewed by Michael Catanzaro.
+
+        Implement NetworkSession::clearCredentials() for soup using the new libsoup API when available.
+
+        * NetworkProcess/soup/NetworkSessionSoup.cpp:
+        (WebKit::NetworkSessionSoup::clearCredentials):
+        * NetworkProcess/soup/NetworkSessionSoup.h:
+
+2017-01-01  Jeff Miller  <jeffm@apple.com>
+
+        Update user-visible copyright strings to include 2017
+        https://bugs.webkit.org/show_bug.cgi?id=166278
+
+        Reviewed by Dan Bernstein.
+
+        * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist:
+        * Info.plist:
+        * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist:
+        * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist:
+        * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-iOS.plist:
+        * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist:
+        * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
+        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist:
+        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
+        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:
+
+2016-12-30  Darin Adler  <darin@apple.com>
+
+        Remove PassRefPtr use from the "dom" directory, related cleanup
+        https://bugs.webkit.org/show_bug.cgi?id=166569
+
+        Reviewed by Alex Christensen.
+
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle): Updated to use struct.
+        (WebKit::WebFrameLoaderClient::updateGlobalHistory): Ditto.
+        (WebKit::WebFrameLoaderClient::setTitle): Ditto.
+
+2016-12-27  Alex Christensen  <achristensen@webkit.org>
+
+        reduce PassRefPtr use in WebKit2
+        https://bugs.webkit.org/show_bug.cgi?id=166452
+
+        Reviewed by Yusuke Suzuki.
+
+        * Shared/API/c/cg/WKImageCG.cpp:
+        (WKImageCreateCGImage):
+        (WKImageCreateFromCGImage):
+        * Shared/ShareableBitmap.cpp:
+        (WebKit::ShareableBitmap::createHandle):
+        * Shared/ShareableBitmap.h:
+        * Shared/UserData.cpp:
+        (WebKit::UserData::encode):
+        (WebKit::UserData::decode):
+        * Shared/WebImage.cpp:
+        (WebKit::WebImage::create):
+        (WebKit::WebImage::WebImage):
+        * Shared/WebImage.h:
+        (WebKit::WebImage::bitmap):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didGetImageForFindMatch):
+        * UIProcess/mac/WKTextFinderClient.mm:
+        (-[WKTextFinderClient didGetImageForMatchResult:]):
+        * WebProcess/Automation/WebAutomationSessionProxy.cpp:
+        (WebKit::WebAutomationSessionProxy::takeScreenshot):
+        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
+        (-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:]):
+        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
+        (WebKit::imageForRect):
+        (WebKit::InjectedBundleNodeHandle::renderedImage):
+        (WebKit::InjectedBundleNodeHandle::visibleRange):
+        (WebKit::InjectedBundleNodeHandle::htmlTableCellElementCellAbove):
+        (WebKit::InjectedBundleNodeHandle::documentFrame):
+        (WebKit::InjectedBundleNodeHandle::htmlFrameElementContentFrame):
+        (WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
+        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
+        * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
+        (WebKit::InjectedBundleRangeHandle::renderedImage):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::takeSnapshot):
+        (WebKit::WebPage::snapshotAtSize):
+        (WebKit::WebPage::snapshotNode):
+        (WebKit::WebPage::drawRectToImage):
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::getPositionInformation):
+        * WebProcess/WebPage/mac/WebPageMac.mm:
+        (WebKit::WebPage::setTopOverhangImage):
+        (WebKit::WebPage::setBottomOverhangImage):
+
+2016-12-27  Emanuele Aina  <emanuele.aina@collabora.com>
+
+        Ensure NetworkProcess is ready before whitelisting TLS certificates
+        https://bugs.webkit.org/show_bug.cgi?id=162962
+
+        Reviewed by Alex Christensen.
+
+        If the API user tries to whitelist TLS certificates before any web
+        view has been created, the action will be ignored because the
+        NetworkProcess hasn't been fired up yet.
+
+        For example, the snippet below using the GTK+ API does not work,
+        unless the whitelisting is moved after the web view creation:
+
+          webkit_web_context_allow_tls_certificate_for_host(webkit_web_context_get_default(), crt, host);
+          webView = webkit_web_view_new();
+
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost): Ensure
+        that the NetworkProcess has been already fired up when adding
+        certificates, so they can be whitelisted before the first web view is
+        instantiated.
+
+2016-12-25  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Propagate the source origin as much as possible
+        https://bugs.webkit.org/show_bug.cgi?id=166348
+
+        Reviewed by Darin Adler.
+
+        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+        (WebKit::NPRuntimeObjectMap::evaluate):
+
+2016-12-22  Andy Estes  <aestes@apple.com>
+
+        Reduce QuickLook.h include overhead
+        https://bugs.webkit.org/show_bug.cgi?id=166454
+
+        Reviewed by Andreas Kling.
+
+        * WebProcess/Network/WebLoaderStrategy.cpp: Included QuickLook.h for QLPreviewProtocol().
+        * WebProcess/Network/WebResourceLoader.cpp: Included QuickLook.h for QuickLookHandle.
+        * WebProcess/Network/WebResourceLoader.h: Stopped including QuickLook.h.
+
+2016-12-22  Tim Horton  <timothy_horton@apple.com>
+
+        Null deref under WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground
+        https://bugs.webkit.org/show_bug.cgi?id=166433
+        <rdar://problem/29732407>
+
+        Reviewed by Daniel Bates.
+
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
+        m_drawingArea can be null if the process is not valid.
+
+2016-12-22  Andy Estes  <aestes@apple.com>
+
+        Make WebCore::EditorInsertAction an enum class
+        https://bugs.webkit.org/show_bug.cgi?id=166424
+
+        Reviewed by Brent Fulgham.
+
+        * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
+        (WebKit::toAPI):
+        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+        (toWK):
+
+2016-12-22  Zhuo Li  <zachli@apple.com>
+
+        [Cocoa] SPI for setloadsImagesAutomatically
+        https://bugs.webkit.org/show_bug.cgi?id=166401
+
+        Reviewed by Darin Adler.
+
+        * UIProcess/API/Cocoa/WKPreferences.mm: Call the C API under the hood.
+        (-[WKPreferences _loadsImagesAutomatically]):
+        (-[WKPreferences _setLoadsImagesAutomatically:]):
+
+        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
+        Add `_loadsImagesAutomatically` property.
+
+2016-12-22  Eric Carlson  <eric.carlson@apple.com>
+
+        AVPlayerLayer isn't available on every system
+        https://bugs.webkit.org/show_bug.cgi?id=166399
+
+        Reviewed by Jer Noble.
+
+        * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm: Use SOFT_LINK_CLASS_OPTIONAL.
+
+2016-12-22  Nael Ouedraogo  <nael.ouedraogo@crf.canon.fr>
+
+        MediaStream: ASSERTION FAILED: m_ids.size() == m_handles.size() in MediaDeviceSandboxExtensions
+        https://bugs.webkit.org/show_bug.cgi?id=166328
+
+        Reviewed by Eric Carlson.
+
+        This assertion failure happens for ports with sandbox extensions disabled. SandboxExtension is empty and
+        HandleArray:size() always returns 0. Disable creation of MediaDevicesSandboxExtension in UserMediaProcessManager
+        when building without support of sandbox extension. Disable also WebPage::grantUserMediaDeviceSandboxExtensions
+        and WebPage::revokeUserMediaDeviceSandboxExtensions which can be avoided when sandbox extension is empty.
+
+        * UIProcess/UserMediaProcessManager.cpp:
+        (WebKit::UserMediaProcessManager::willCreateMediaStream):
+        (WebKit::UserMediaProcessManager::endedCaptureSession):
+        * WebProcess/WebPage/WebPage.cpp:
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
+2016-12-22  Alejandro G. Castro  <alex@igalia.com>
+
+        [WebRTC] Add support for runtime PeeConnection setting, required after r209757
+        https://bugs.webkit.org/show_bug.cgi?id=166346
+
+        Reviewed by Carlos Garcia Campos.
+
+        After that commit we have to enable the peerConnection runtime
+        flag if we want webrtc to work. We are not adding a new API for
+        the moment to control the peerConnection feature.
+
+        * UIProcess/API/gtk/WebKitSettings.cpp:
+        (webkit_settings_set_enable_media_stream): Use the mediaStream
+        setting to control the peerConnection
+
+2016-12-21  Brent Fulgham  <bfulgham@apple.com>
+
+        [Mac][WK2] Stop using file* rules in WebProcess sandbox profiles
+        https://bugs.webkit.org/show_bug.cgi?id=165824
+        <rdar://problem/14024823>
+
+        Reviewed by Alexey Proskuryakov
+
+        Switch from blanket 'file*' sandbox rules, to the specific 'file-read*' and 'file-write*' rules
+        we actually need.
+
+        * DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
+        * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
+        * WebProcess/com.apple.WebProcess.sb.in:
+
+2016-12-21  Beth Dakin  <bdakin@apple.com>
+
+        Holding down on candidates in the TouchBar should show panel on screen
+        https://bugs.webkit.org/show_bug.cgi?id=166367
+        -and corresponding-
+        <rdar://problem/28479236>
+
+        Reviewed by Tim Horton.
+
+        The showCandidates() helper function is not needed. We can call the AppKit method 
+        directly at the one call site.
+        * UIProcess/Cocoa/WebViewImpl.h:
+        * UIProcess/Cocoa/WebViewImpl.mm:
+
+        The panel should appear under the selection, so offset the selection rect.
+        (WebKit::WebViewImpl::handleRequestedCandidates):
+
+        No more showCandidates() since we can call it directly. 
+        (WebKit::WebViewImpl::showCandidates): Deleted.
+
+2016-12-20  Taras Tsugrii  <ttsugrii@fb.com>
+
+        Fix undefined behavior caused by macro expansion producing 'defined'
+        https://bugs.webkit.org/show_bug.cgi?id=166047
+
+        Reviewed by Darin Adler.
+
+        * Shared/API/Cocoa/WKFoundation.h:
+
+2016-12-20  Brent Fulgham  <bfulgham@apple.com>
+
+        Address some style problems found by static analysis
+        https://bugs.webkit.org/show_bug.cgi?id=165975
+
+        Reviewed by Alex Christensen.
+
+        Avoid passing large ANGLE data structures through the ANGLEWebKitBridge methods.
+
+        * Shared/WebBackForwardListItem.cpp:
+        (WebKit::WebBackForwardListItem::create):
+        (WebKit::WebBackForwardListItem::WebBackForwardListItem):
+        * Shared/WebBackForwardListItem.h:
+
+2016-12-20  Simon Fraser  <simon.fraser@apple.com>
+
+        [iOS WK2] Switching or closing a tab leads to all-white tab content if the status bar is double height
+        https://bugs.webkit.org/show_bug.cgi?id=166286
+        rdar://problem/29593525
+
+        Reviewed by Tim Horton.
+
+        A double-height status bar triggers view resize while snapshotting in the background,
+        which also triggers calls to _endAnimatedResize on tab resume. However, it was possible
+        for _endAnimatedResize to re-enter via synchronizeDynamicViewportUpdate()/didCommitLayerTree(),
+        causing us to use a nil _resizeAnimationView for scale computations, thus setting a zero
+        scale on the WKContentView.
+
+        Fix by checking _dynamicViewportUpdateMode again after the call to synchronizeDynamicViewportUpdate(),
+        and do a belt-and-braces check for a nil _resizeAnimationView.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _endAnimatedResize]):
+
+2016-12-20  Andy Estes  <aestes@apple.com>
+
+        [Cocoa] REGRESSION (r209558): Calling decisionHandler multiple times in webView:decidePolicyForNavigationAction:decisionHandler: leads to a crash
+        https://bugs.webkit.org/show_bug.cgi?id=165992
+        <rdar://problem/29693817>
+
+        Reviewed by Brady Eidson.
+
+        r209558 added additional move semantics to the decisionHandler block passed to
+        -webView:decidePolicyForNavigationAction:decisionHandler:, resulting in a null pointer
+        dereference in clients that call the decisionHandler block more than once.
+
+        None of the completion handlers we expose in the WebKit API are intended to be called more
+        than once, and we ASSERT in CompletionHandlerCallChecker::didCallCompletionHandler() that
+        this doesn't happen.
+
+        This change strenghtens that protection by returning immediately in completion handlers
+        called more than once. And in programs linked on or after WebKit 603.1.17, an NSException is
+        thrown if a completion handler is called a second time, like we do for completion handlers
+        that are never called.
+
+        New API test: WebKit2.DuplicateCompletionHandlerCalls
+
+        * Shared/Cocoa/CompletionHandlerCallChecker.h: Declared completionHandlerHasBeenCalled().
+        * Shared/Cocoa/CompletionHandlerCallChecker.mm:
+        (WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall): Added. Returns true if the
+        program is linked on or after
+        LibraryVersion::FirstWithExceptionsForDuplicateCompletionHandlerCalls.
+        (WebKit::CompletionHandlerCallChecker::completionHandlerHasBeenCalled): Added. Returns
+        whether or not the completion handler has been called. If it has, and
+        shouldThrowExceptionForDuplicateCompletionHandlerCall() returns true, throws an
+        NSInternalInconsistencyException.
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _setInputDelegate:]): Added an early return if the completion handler has
+        already been called.
+        * UIProcess/Cocoa/NavigationState.mm:
+        (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): Ditto.
+        (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): Ditto.
+        (WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): Ditto.
+        * UIProcess/Cocoa/UIDelegate.mm:
+        (WebKit::UIDelegate::UIClient::runJavaScriptAlert): Ditto.
+        (WebKit::UIDelegate::UIClient::runJavaScriptConfirm): Ditto.
+        (WebKit::UIDelegate::UIClient::runJavaScriptPrompt): Ditto.
+        (WebKit::UIDelegate::UIClient::exceededDatabaseQuota): Ditto.
+        (WebKit::UIDelegate::UIClient::runOpenPanel): Ditto.
+        (WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota): Ditto.
+        * UIProcess/Cocoa/VersionChecks.h: Added
+        FirstWithExceptionsForDuplicateCompletionHandlerCalls with the version number for 603.1.17.
+
+2016-12-20  Dean Jackson  <dino@apple.com>
+
+        Remove INDIE_UI
+        https://bugs.webkit.org/show_bug.cgi?id=165881
+        <rdar://problem/29672532>
+
+        Reviewed by Simon Fraser.
+
+        The Indie UI work has been discontinued.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+2016-12-20  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Implement the updated port/area-based Scroll Snap Module Level 1 Spec
+        https://bugs.webkit.org/show_bug.cgi?id=165317
+        <rdar://problem/29490956>
+
+        Reviewed by Dean Jackson.
+
+        Remove unused code for adopting scroll snapping in the PDF plugin.
+
+        * WebProcess/Plugins/PDF/PDFPlugin.mm:
+        (WebKit::PDFPlugin::didCalculateSizes):
+
+2016-12-19  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [ES6] Enable ES6 Modules
+        https://bugs.webkit.org/show_bug.cgi?id=165849
+
+        Reviewed by Geoffrey Garen.
+
+        * Shared/WebPreferencesDefinitions.h:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetES6ModulesEnabled): Deleted.
+        (WKPreferencesGetES6ModulesEnabled): Deleted.
+        * UIProcess/API/C/WKPreferencesRefPrivate.h:
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
+2016-12-19  Keith Rollin  <krollin@apple.com>
+
+        Fix unwanted deletion of record/replay files
+        https://bugs.webkit.org/show_bug.cgi?id=166040
+
+        Reviewed by Alex Christensen.
+
+        As part of some refactoring, the objects that create the meta files
+        that are part of the record/replay cache would get deleted. They were
+        always getting opened in "write" mode", which would truncate the
+        files. Fix this so that the files are opened in the right modes for
+        record, replay, and neither.
+
+        * NetworkProcess/capture/NetworkCaptureManager.cpp:
+        (WebKit::NetworkCapture::Manager::initialize):
+
+2016-12-19  Gavin Barraclough  <barraclough@apple.com>
+
+        [CSS Parser] Enable CSS Deferred Parsing
+        https://bugs.webkit.org/show_bug.cgi?id=165869
+
+        Unreviewed rollout – looks like this regressed performance.
+
+        * Shared/WebPreferencesDefinitions.h:
+
+2016-12-19  Anders Carlsson  <andersca@apple.com>
+
+        REGRESSION: Crash in com.apple.WebKit:IPC::Connection::platformCanSendOutgoingMessages() const + 0
+        https://bugs.webkit.org/show_bug.cgi?id=165817
+        rdar://problem/29626731
+
+        Reviewed by Dan Bernstein.
+
+        If the receive right is invalidated before we send the message, the kernel won't be able to create a send right,
+        and we'll crash due to mach_msg returning MACH_SEND_INVALID_RIGHT.
+        
+        Fix this by immediately creating a send right, and passing MACH_MSG_TYPE_MOVE_SEND to the attachment constructor.
+
+        * WebProcess/WebPage/WebInspector.cpp:
+        (WebKit::WebInspector::openFrontendConnection):
+
+2016-12-18  Simon Fraser  <simon.fraser@apple.com>
+
+        Expose a way for MiniBrowser to simulate header and footer banners
+        https://bugs.webkit.org/show_bug.cgi?id=166005
+
+        Reviewed by Wenson Hsieh.
+        
+        Expose testing SPI that allows a client to simulate the presence of header
+        and footer banners. These are simply plumbed through to set FrameView's
+        m_headerHeight and m_footerHeight.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _setHeaderBannerHeightForTesting:]):
+        (-[WKWebView _setFooterBannerHeightForTesting:]):
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::setHeaderBannerHeightForTesting):
+        (WebKit::WebPageProxy::setFooterBannerHeightForTesting):
+        * UIProcess/WebPageProxy.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::setHeaderBannerHeightForTesting):
+        (WebKit::WebPage::setFooterBannerHeightForTesting):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
+2016-12-16  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Values] Make separate wrapper classes for the deprecated CSS Values OM
+        https://bugs.webkit.org/show_bug.cgi?id=165968
+
+        Reviewed by Andreas Kling.
+
+        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp:
+        (WebKit::kit):
+        (WebKit::core):
+        (WebKit::wrapCSSValue):
+        (webkit_dom_css_value_constructor):
+        (webkit_dom_css_value_get_css_text):
+        (webkit_dom_css_value_set_css_text):
+        (webkit_dom_css_value_get_css_value_type):
+        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValuePrivate.h:
+
+2016-12-17  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Visual viewports: bottom fixed elements disappear behind the keyboard
+        https://bugs.webkit.org/show_bug.cgi?id=165983
+        <rdar://problem/29409852>
+
+        Reviewed by Simon Fraser.
+
+        Accounts for input view bounds in WebPageProxy::computeCustomFixedPositionRect. To do this, we introduce and
+        pass unobscuredContentRectRespectingInputViewBounds along with the regular unobscuredContentRect (which does not
+        respect the obscuring keyboard rect). This unobscuredContentRectRespectingInputViewBounds is then used when
+        computing the origin of the updated layout viewport rect (and also, when we are _not_ below minimum scale),
+        
+        Additionally, the size is computed using the (unconstrained) unobscured rect. This is because we previously
+        would use the document-constrained version of the unobscured rect, which caused the layout viewport to shrink
+        when approaching the max scroll extents of the document while the keyboard is up, since the unobscured rect
+        would spill out of the document rect. However, using this unconstrained rect's size also means that if the user
+        rubber-bands out of the document rect, we would end up pushing the layout viewport rect out of the document,
+        with no way of adjusting it back in without the user scrolling to push the layout viewport into back document
+        bounds. To address this, we move the layout rect to be within document bounds after computing its size and
+        location.
+
+        Added a new layout test: fast/visual-viewport/ios/fixed-element-on-bottom-with-keyboard.html, and also tweaked
+        fixed-caret-position-after-scroll.html to cover these changes.
+
+        * Shared/VisibleContentRectUpdateInfo.cpp:
+        (WebKit::operator<<):
+        * Shared/VisibleContentRectUpdateInfo.h:
+        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
+        (WebKit::VisibleContentRectUpdateInfo::unobscuredContentRectRespectingInputViewBounds):
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _updateContentRectsWithState:]):
+        (-[WKWebView _inputViewBounds]):
+
+        Returns the current bounds of the input view. For testing purposes.
+
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::unobscuredContentRectRespectingInputViewBounds):
+        * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
+        (WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect):
+        * UIProcess/ios/WKContentView.h:
+        * UIProcess/ios/WKContentView.mm:
+        (-[WKContentView _computeUnobscuredContentRectRespectingInputViewBounds:unobscuredContentRect:inputViewBounds:scale:]):
+
+        Helper to compute the unobscured rect, accounting for the bounds of the current input view.
+
+        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
+        (-[WKContentView _didCommitLayerTree:]):
+        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): Deleted.
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::computeCustomFixedPositionRect):
+        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
+        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
+
+2016-12-16  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Deleting a character converted from pinyin after an image causes a Safari crash
+        https://bugs.webkit.org/show_bug.cgi?id=165839
+
+        Reviewed by Darin Adler.
+
+        The crash was caused by the payload of the IPC not being decoded correctly when the encoded attributed string
+        contains a NSTextAttachment but send<> would still gladly send it to the UIProcess.
+
+        Fixed it by omitting the image as done in r176412 since encoding NSFileWrapper, etc... would require
+        quite a bit of work, and IME doesn't really need to see the image in its attributed string.
+
+        * WebProcess/WebPage/mac/WebPageMac.mm:
+        (WebKit::WebPage::attributedSubstringForCharacterRangeAsync): Fixed the bug.
+
+2016-12-16  Andy Estes  <aestes@apple.com>
+
+        Add a setting to suppress keyboard input during provisional navigation
+        https://bugs.webkit.org/show_bug.cgi?id=165830
+
+        Reviewed by Brent Fulgham.
+
+        * Shared/WebPreferencesDefinitions.h: Defined
+        shouldSuppressKeyboardDOMEventsDuringProvisionalNavigation.
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetShouldSuppressKeyboardInputDuringProvisionalNavigation): Added.
+        (WKPreferencesGetShouldSuppressKeyboardInputDuringProvisionalNavigation): Added.
+        * UIProcess/API/C/WKPreferencesRefPrivate.h: Declared a getter and setter for the new
+        preference.
+        * UIProcess/API/Cocoa/WKPreferences.mm:
+        (-[WKPreferences _shouldSuppressKeyboardInputDuringProvisionalNavigation]): Added.
+        (-[WKPreferences _setShouldSuppressKeyboardInputDuringProvisionalNavigation:]): Added.
+        * UIProcess/API/Cocoa/WKPreferencesPrivate.h: Declared a property for the new preference.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences): Mapped the new preference to its corresponding
+        WebCore::Setting.
+
+2016-12-16  Chris Dumez  <cdumez@apple.com>
+
+        HTML form validation bubble should be dismissed on navigation
+        https://bugs.webkit.org/show_bug.cgi?id=165960
+        <rdar://problem/29668086>
+
+        Reviewed by Simon Fraser.
+
+        Dismiss HTML form validation bubble on top-level navigation on WK2.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
+
+2016-12-16  Jer Noble  <jer.noble@apple.com>
+
+        Small refactor: Use HashCountedSet rather than HashMap<..., int> to store client counts in WebPlaybackSessionManager{,Proxy}.
+        https://bugs.webkit.org/show_bug.cgi?id=165807
+
+        Reviewed by Eric Carlson.
+
+        * UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
+        * UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:
+        (WebKit::WebPlaybackSessionManagerProxy::addClientForContext):
+        (WebKit::WebPlaybackSessionManagerProxy::removeClientForContext):
+        * WebProcess/cocoa/WebPlaybackSessionManager.h:
+        * WebProcess/cocoa/WebPlaybackSessionManager.mm:
+        (WebKit::WebPlaybackSessionManager::addClientForContext):
+        (WebKit::WebPlaybackSessionManager::removeClientForContext):
+
+2016-12-16  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Visual viewports: carets and selection UI are incorrectly positioned when editing fixed elements
+        https://bugs.webkit.org/show_bug.cgi?id=165767
+        <rdar://problem/29602382>
+
+        Reviewed by Simon Fraser.
+
+        When focusing an input, the position of the caret on iOS is determined by the overridden layout viewport rect in
+        the web process. However, this rect is not updated until the end the scroll gesture. Whereas this is fine for
+        non-fixed inputs since their document location does not change, fixed inputs effectively change their position
+        in the document as the user scrolls. This causes the caret to be 'left behind' in the document position it was
+        in at the start of the scroll. To fix this, we deactivate the selection when exiting stable state if the
+        assisted node is in a fixed position container, and reenable it upon receiving the next stable state EditorState
+        update (as indicated by postLayoutData().isStableStateUpdate). Additionally, we apply similar treatment to the
+        web selection assistant -- this time, we need to force the selection view to hide (analagous to deactivating
+        the text selection assistant) and show it again upon receiving the next selection change update when the WebPage
+        (in the web process) is stable.
+
+        Furthermore, adds test support for querying text caret and selection rects, as well as perform a callback after
+        the WebPage has indicated that it is stable, both as SPI on the WKWebView.
+
+        Covered by 4 new layout tests in fast/editing/caret/ios and fast/editing/selection/ios.
+
+        * Platform/spi/ios/UIKitSPI.h:
+        * Shared/EditorState.cpp:
+        (WebKit::EditorState::PostLayoutData::encode):
+        (WebKit::EditorState::PostLayoutData::decode):
+        * Shared/EditorState.h:
+
+        Introduce isStableStateUpdate, which is true when the WebPage is known to be in stable state, as well as
+        insideFixedPosition, which is true when the current selection is inside a fixed position container.
+
+        * Shared/mac/RemoteLayerTreeTransaction.h:
+        (WebKit::RemoteLayerTreeTransaction::isInStableState):
+        (WebKit::RemoteLayerTreeTransaction::setIsInStableState):
+        * Shared/mac/RemoteLayerTreeTransaction.mm:
+        (WebKit::RemoteLayerTreeTransaction::encode):
+        (WebKit::RemoteLayerTreeTransaction::decode):
+        (WebKit::RemoteLayerTreeTransaction::description):
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _didCommitLayerTree:]):
+        (-[WKWebView _uiTextCaretRect]):
+
+        Introduced a new SPI method for fetching the current rect of the text assistant's caret view, at keyPath
+        "selectionView.selection.caretRect".
+
+        (-[WKWebView _uiTextSelectionRects]):
+
+        Renamed (and refactored) from _uiTextSelectionRectViews, which was previously fetching an array of UIViews. I
+        found this to cause character-granularity-rect.html to fail due to the array of UIViews here being empty, so I
+        refactored this to simply return an array of rects from the keyPath "selectionView.selection.selectionRects" for
+        the text selection assistant and @"selectionView.selectionRects" for the web selection assistant.
+
+        (-[WKWebView _doAfterNextStablePresentationUpdate:]):
+
+        Runs the given block after both the UI process and web processes agree that the visible content rect state is 
+        stable. To do this, we fire presentation updates until the UI process (via RemoteLayerTreeTransactions)
+        discovers that the web page is in stable state. This is used solely for testing purposes.
+
+        (-[WKWebView _firePresentationUpdateForPendingStableStatePresentationCallbacks]):
+        (-[WKWebView _uiTextSelectionRectViews]): Deleted.
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::inStableState):
+        * UIProcess/ios/WKContentView.mm:
+        (-[WKContentView _didExitStableState]):
+
+        Deactivate the text selection if the assisted node is inside a fixed container.
+
+        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView setupInteraction]):
+        (-[WKContentView cleanupInteraction]):
+        (-[WKContentView shouldHideSelectionWhenScrolling]):
+        (-[WKContentView _uiTextSelectionRects]):
+        (-[WKContentView _didEndScrollingOrZooming]):
+        (-[WKContentView _updateChangedSelection:]):
+
+        If the EditorState was created after a stable state update, reactivate the text selection assistant if it exists.
+        Additionally, if we are deferring the end scrolling selection update until after the first stable editor state
+        update arrives from the web process, we need to also call [_textSelectionAssistant didEndScrollingOverflow]
+        and [_webSelectionAssistant didEndScrollingOrZoomingPage] here instead of doing so immediately after scrolling
+        finishes. This ensures that selection UI (the callout and selection highlights) do not flicker from their old
+        position to the new position when scrolling finishes.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::willCommitLayerTree):
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::platformEditorState):
+        (WebKit::WebPage::updateVisibleContentRects):
+
+        When updating the layout viewport override rect, also recompute the caret if needed and send an updated
+        EditorState over to the UI process.
+
+2016-12-16  Claudio Saavedra  <csaavedra@igalia.com>
+
+        [WK2] SharedMemory: include cleanups
+        https://bugs.webkit.org/show_bug.cgi?id=165950
+
+        Reviewed by Žan Doberšek.
+
+        The WTFString include is not needed in the header, so move to the
+        Unix file. Use the existing UNIX_DOMAIN_SOCKETS define. Also
+        include the WTFOptional header where needed.
+
+        * Platform/SharedMemory.h:
+        * Platform/unix/SharedMemoryUnix.cpp:
+
+2016-12-16  Joonghun Park  <jh718.park@samsung.com>
+
+        [EFL] Fix build break since r209907. Unreviewed.
+        https://bugs.webkit.org/show_bug.cgi?id=165954
+
+        * UIProcess/efl/TextCheckerEfl.cpp: Change the remaining TextBreakIterator to UBreakIterator
+        (WebKit::nextWordOffset):
+        (WebKit::TextChecker::checkTextOfParagraph):
+
+2016-12-15  Darin Adler  <darin@apple.com>
+
+        Use asString instead of toWTFString, toString, or getString when we already checked isString
+        https://bugs.webkit.org/show_bug.cgi?id=165895
+
+        Reviewed by Yusuke Suzuki.
+
+        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+        (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): Use asString/value instead of toWTFString.
+
+2016-12-15  Chris Dumez  <cdumez@apple.com>
+
+        Make sure HTML validation bubble's state is updated after layout
+        https://bugs.webkit.org/show_bug.cgi?id=165922
+        <rdar://problem/29694730>
+
+        Reviewed by Simon Fraser.
+
+        Make sure HTML validation bubble's state is updated after layout.
+        In particular, if the validation bubble's associated element has
+        moved or is no longer visible, we now hide the bubble.
+
+        * WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:
+        (WebKit::WebValidationMessageClient::showValidationMessage):
+        (WebKit::WebValidationMessageClient::hideValidationMessage):
+        (WebKit::WebValidationMessageClient::updateValidationBubbleStateIfNeeded):
+        * WebProcess/WebCoreSupport/WebValidationMessageClient.h:
+
+2016-12-15  Alex Christensen  <achristensen@webkit.org>
+
+        Improve NetworkSession logging
+        https://bugs.webkit.org/show_bug.cgi?id=165941
+
+        Reviewed by Tim Horton.
+
+        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+        (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
+        (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
+        (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
+        One of the "didReceiveResponse completionHandler (cancel)" messages was wrong,
+        and other messages could have more useful information without being overwhelming.
+
+2016-12-15  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Sort Xcode project files
+        https://bugs.webkit.org/show_bug.cgi?id=165937
+
+        Reviewed by Simon Fraser.
+
+        * WebKit2.xcodeproj/project.pbxproj:
+
+2016-12-15  Anders Carlsson  <andersca@apple.com>
+
+        Add more mach_msg logging instrumentation
+        https://bugs.webkit.org/show_bug.cgi?id=165914
+
+        Reviewed by Darin Adler.
+
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::Connection::sendMessage):
+        (IPC::Connection::sendOutgoingMessage):
+        * Platform/IPC/mac/MachMessage.h:
+        (IPC::MachMessage::messageName):
+        (IPC::MachMessage::setMessageName):
+
+2016-12-15  Konstantin Tokarev  <annulen@yandex.ru>
+
+        Added missing override and final specifiers
+        https://bugs.webkit.org/show_bug.cgi?id=165903
+
+        Reviewed by Darin Adler.
+
+        * UIProcess/API/gtk/WebKitGeolocationProvider.h:
+        * UIProcess/WebFormSubmissionListenerProxy.h:
+        * UIProcess/WebFramePolicyListenerProxy.h:
+        * WebProcess/Automation/WebAutomationSessionProxy.h:
+        * WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.h:
+        * WebProcess/MediaCache/WebMediaKeyStorageManager.h:
+        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
+        * WebProcess/WebCoreSupport/WebPlugInClient.h:
+        * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
+        * WebProcess/WebPage/FindController.h:
+
+2016-12-15  Simon Fraser  <simon.fraser@apple.com>
+
+        [iOS WK2] Don't disable position:fixed when a form element has focus
+        https://bugs.webkit.org/show_bug.cgi?id=165891
+        rdar://problem/29271694
+
+        Reviewed by Wenson Hsieh.
+
+        Before visual viewports, we had to lay out position:fixed relative to the document rect (effectively
+        disabling position:fixed) when a form element was focused, to ensure that we could scroll to inputs
+        inside position:Fixed.
+
+        When visual viewports are enabled, we can do a better job of this, and keep position:fixed active.
+        
+        Test: fast/visual-viewport/ios/zoomed-focus-in-fixed.html
+
+        * UIProcess/API/Cocoa/WKWebView.mm: 
+        (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): Soon this will use
+        insideFixed to have better scroll-into-view behavior.
+        (-[WKWebView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): Deleted.
+        * UIProcess/API/Cocoa/WKWebViewInternal.h:
+        * UIProcess/ios/WKContentView.h:
+        * UIProcess/ios/WKContentView.mm:
+        (-[WKContentView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
+        (-[WKContentView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): Deleted.
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _displayFormNodeInputView]):
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::computeCustomFixedPositionRect): Don't fall back to using the documentRect as the fixed
+        position rect if visual viewports are enabled.
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::getAssistedNodeInformation): Don't reset the customtFixedPositionRect around computing element
+        coordinates if visual viewports are enabled.
+
+2016-12-15  Andreas Kling  <akling@apple.com>
+
+        Always clear RenderLayer backing stores when going into page cache.
+        <https://webkit.org/b/165901>
+
+        Reviewed by Simon Fraser.
+
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::WebProcess):
+
+2016-12-15  Darin Adler  <darin@apple.com>
+
+        Remove custom binding for MediaDevices
+        https://bugs.webkit.org/show_bug.cgi?id=165894
+
+        Reviewed by Eric Carlson.
+
+        * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
+        Added include of MediaConstraintsImpl.h, now needed because we
+        removed some unneeded includes from the WebCore headers.
+
+2016-12-15  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Enable CSS Deferred Parsing
+        https://bugs.webkit.org/show_bug.cgi?id=165869
+
+        Reviewed by Sam Weinig.
+
+        * Shared/WebPreferencesDefinitions.h:
+
+2016-12-14  Andreas Kling  <akling@apple.com>
+
+        Only send Messages::WebPageProxy::DidSaveToPageCache once when entering page cache.
+        <https://webkit.org/b/165887>
+
+        Reviewed by Brady Eidson.
+
+        We were sending one of these IPC messages per frame when a page enters the page cache,
+        and we really only need one, so only do it for the main frame.
+
+        (This message is used to adopt the page cache on the UI process side, in case another
+        web process currently owns the cache. That happens in WebProcessPool::processDidCachePage().)
+
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::didSaveToPageCache):
+
+2016-12-14  Simon Fraser  <simon.fraser@apple.com>
+
+        Fix cause of viewport-related flakiness in iOS tests
+        https://bugs.webkit.org/show_bug.cgi?id=165878
+
+        Reviewed by Tim Horton.
+
+        When TestController::platformConfigureViewForTest() changes the view size for a flexible
+        viewport test, the page would not have updated with the new scale by the time the load event
+        fired, causing flakiness depending on test order.
+
+        This was caused by code added in r170325 that delayed visible content rect updates until
+        after the UI process has received the transaction after didCommitLoad. So fix by overriding
+        this mechanism if the view has been resized.
+
+        * Shared/VisibleContentRectUpdateInfo.cpp:
+        (WebKit::VisibleContentRectUpdateInfo::encode):
+        (WebKit::VisibleContentRectUpdateInfo::decode):
+        (WebKit::operator<<):
+        * Shared/VisibleContentRectUpdateInfo.h:
+        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
+        (WebKit::VisibleContentRectUpdateInfo::isFirstUpdateForNewViewSize):
+        (WebKit::operator==):
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _frameOrBoundsChanged]):
+        (-[WKWebView _updateContentRectsWithState:]):
+        * UIProcess/DrawingAreaProxy.cpp:
+        (WebKit::DrawingAreaProxy::setSize):
+        * UIProcess/DrawingAreaProxy.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::WebPageProxy):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/ios/WKContentView.h:
+        * UIProcess/ios/WKContentView.mm:
+        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::updateVisibleContentRects):
+
+2016-12-04  Sam Weinig  <sam@webkit.org>
+
+        [WebIDL] Add support for converting dictionaries to JS
+        https://bugs.webkit.org/show_bug.cgi?id=165367
+
+        Reviewed by Chris Dumez.
+
+        * CMakeLists.txt:
+        Add missing directories to look in for headers.
+
+2016-12-14  Anders Carlsson  <andersca@apple.com>
+
+        Add WKContextRefreshPlugIns
+        https://bugs.webkit.org/show_bug.cgi?id=165879
+        rdar://problem/29602414
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/API/C/WKContext.cpp:
+        (WKContextRefreshPlugIns):
+        * UIProcess/API/C/WKContext.h:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::refreshPlugins):
+        * UIProcess/WebProcessPool.h:
+        * WebProcess/Plugins/WebPluginInfoProvider.h:
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::refreshPlugins):
+        * WebProcess/WebProcess.h:
+        * WebProcess/WebProcess.messages.in:
+
+2016-12-14  Tim Horton  <timothy_horton@apple.com>
+
+        API Test Fullscreen.TopContentInset is asserting on Yosemite
+        https://bugs.webkit.org/show_bug.cgi?id=165877
+
+        Reviewed by Brady Eidson.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::setTopContentInset):
+        * WebProcess/WebPage/WebPage.cpp:
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+        We don't use fences on Yosemite, but this codepath still tried to.
+        Instead of guarding with PLATFORM(COCOA), make use of the more accurate
+        HAVE(COREANIMATION_FENCES) guard.
+
+2016-12-14  Anders Carlsson  <andersca@apple.com>
+
+        Add some instrumentation to try to detect a crash on the bots
+        https://bugs.webkit.org/show_bug.cgi?id=165866
+
+        Reviewed by Sam Weinig.
+
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::Connection::sendMessage):
+
+2016-12-14  Dave Hyatt  <hyatt@apple.com>
+
+        [CSS Parser] Implement deferred parsing of properties, @media, @supports and @keyframes
+        https://bugs.webkit.org/show_bug.cgi?id=165743
+
+        Reviewed by Dean Jackson.
+
+        Repurpose the newCSSParserEnabled preference for deferred parsing. Just change the name
+        from "new" to "deferred."
+
+        * Shared/WebPreferencesDefinitions.h:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetDeferredCSSParserEnabled):
+        (WKPreferencesGetDeferredCSSParserEnabled):
+        (WKPreferencesSetNewCSSParserEnabled): Deleted.
+        (WKPreferencesGetNewCSSParserEnabled): Deleted.
+        * UIProcess/API/C/WKPreferencesRefPrivate.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
+2016-12-14  Brent Fulgham  <bfulgham@apple.com>
+
+        Unreviewed test fix after r209806.
+
+        Plugin-common doesn't define 'home-subpath'. Instead it has 'home-library-subpath'. Switch to the correct
+        function. Also, 'home-library-subpath' adds '/Library' to the path, so revise the arguments so that we
+        do not generate paths like '/home/username/Library/Library/Keychains'.
+
+        * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
+
+2016-12-14  Brent Fulgham  <bfulgham@apple.com>
+
+        Unreviewed test fix after r209779.
+
+        The 'Keygen' element requires the ability to create new keys in '$HOME/Library/Keychains'. Remove the
+        WebProcess and Plugin sandbox restrictions on per-user Keychain creation to support this use.
+
+        * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
+        * WebProcess/com.apple.WebProcess.sb.in:
+
+2016-12-13  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Use JSValue::toWTFString instead of calling toString(exec) and value(exec)
+        https://bugs.webkit.org/show_bug.cgi?id=165795
+
+        Reviewed by Saam Barati.
+
+        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+        (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
+
+2016-12-14  Enrique Ocaña González  <eocanha@igalia.com>
+
+        REGRESSION(r207879-207891): [GStreamer] Introduced many layout test failures and crashes, bots exiting early
+        https://bugs.webkit.org/show_bug.cgi?id=164022
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        * Shared/WebPreferencesDefinitions.h:
+        New GStreamerEnabled preference, defaults to true.
+        * WebProcess/WebPage/WebPage.cpp: Ditto.
+        (WebKit::WebPage::updatePreferences):
+
+2016-12-13  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r209792.
+        https://bugs.webkit.org/show_bug.cgi?id=165841
+
+        Cause build failures (Requested by yusukesuzuki on #webkit).
+
+        Reverted changeset:
+
+        "Use JSValue::toWTFString instead of calling toString(exec)
+        and value(exec)"
+        https://bugs.webkit.org/show_bug.cgi?id=165795
+        http://trac.webkit.org/changeset/209792
+
+2016-12-13  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Use JSValue::toWTFString instead of calling toString(exec) and value(exec)
+        https://bugs.webkit.org/show_bug.cgi?id=165795
+
+        Reviewed by Saam Barati.
+
+        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+        (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
+
+2016-12-13  Alex Christensen  <achristensen@webkit.org>
+
+        Fix CMake build.
+
+        * PlatformMac.cmake:
+
+2016-12-13  Jer Noble  <jer.noble@apple.com>
+
+        Fullscreen in WebKit2 does not restore topContentInset upon exiting; leaves top of page not visible
+        https://bugs.webkit.org/show_bug.cgi?id=165697
+
+        Delegate the values of topContentInset() from WebViewImpl (used by WKWebView and WKView) to the
+        WebPageProxy, so that setting the topContentInset() on WebPageProxy is reflected in the getters
+        for the two view classes.
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/Cocoa/WebViewImpl.h:
+        (WebKit::WebViewImpl::topContentInset): Deleted.
+        * UIProcess/Cocoa/WebViewImpl.mm:
+        (WebKit::WebViewImpl::updateContentInsetsIfAutomatic):
+        (WebKit::WebViewImpl::topContentInset):
+        (WebKit::WebViewImpl::setTopContentInset):
+        (WebKit::WebViewImpl::dispatchSetTopContentInset):
+        * UIProcess/mac/WKFullScreenWindowController.mm:
+        (-[WKFullScreenWindowController enterFullScreen:]):
+        (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
+        (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
+        (-[WKFullScreenWindowController _saveTopContentInset]): Deleted.
+        (-[WKFullScreenWindowController _restoreTopContentInset]): Deleted.
+
+2016-12-13  Brent Fulgham  <bfulgham@apple.com>
+
+        [Mac][WK2] Tighten Keychain directory access
+        https://bugs.webkit.org/show_bug.cgi?id=165818
+        <rdar://problem/16863857>
+
+        Reviewed by Anders Carlsson.
+
+        Lock down Keychain directory access to just the file-read-data, file-read-metadata, and
+        file-write-data operations we actually need.
+
+        * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
+        * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
+        * WebProcess/com.apple.WebProcess.sb.in:
+
+2016-12-13  Andy Estes  <aestes@apple.com>
+
+        [Cocoa] Implement -shouldInsertText: on WKWebProcessPlugInEditingDelegate
+        https://bugs.webkit.org/show_bug.cgi?id=165785
+        <rdar://problem/26929398>
+
+        Reviewed by Darin Adler.
+
+        * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h: Defined
+        WKEditorInsertAction and declared
+        -_webProcessPlugInBrowserContextController:shouldInsertText:replacingRange:givenAction:.
+        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+        (toWK): Added. Mapped a WebCore::EditorInsertAction to a WKEditorInsertAction.
+        (-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): Implemented
+        EditorClient::shouldInsertText() by calling
+        -_webProcessPlugInBrowserContextController:shouldInsertText:replacingRange:givenAction: with
+        the text, wrapped range handle, and action. Added shouldInsertText to DelegateMethods and
+        initialized it according to whether the delegate responds to shouldInsertText:.
+
+2016-12-13  Joseph Pecoraro  <pecoraro@apple.com>
+
+        NSArray leaks seen in Safari, allocated under WKIconDatabaseTryCopyCGImageArrayForURL
+        https://bugs.webkit.org/show_bug.cgi?id=165809
+
+        Reviewed by Dan Bernstein.
+
+        * UIProcess/API/C/cg/WKIconDatabaseCG.cpp:
+        (WKIconDatabaseTryCopyCGImageArrayForURL):
+        Avoid an extra retain on already newly created array.
+
+2016-12-13  Eric Carlson  <eric.carlson@apple.com>
+
+        Annotate MediaStream and WebRTC idl with EnabledAtRuntime flag
+        https://bugs.webkit.org/show_bug.cgi?id=165251
+
+        Reviewed by Youenn Fablet.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences): Update the media stream and peer connection runtime
+        feature instead of the setting.
+
+2016-12-13  Sergio Villar Senin  <svillar@igalia.com>
+
+        Fix GTK build after r209733
+        https://bugs.webkit.org/show_bug.cgi?id=165794
+
+        Document::visibilityState() now returns an IDL string enumeration.
+
+        Reviewed by Žan Doberšek.
+
+        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp:
+        (webkit_dom_document_get_visibility_state):
+
+2016-12-12  Dean Jackson  <dino@apple.com>
+
+        [iOS] MediaDocument "Done" button should navigate the page back
+        https://bugs.webkit.org/show_bug.cgi?id=165779
+
+        Reviewed by Sam Weinig.
+
+        * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h:
+        * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm:
+        (WebKit::WebVideoFullscreenModelContext::requestFullscreenMode):
+        (WebKit::WebVideoFullscreenManagerProxy::requestFullscreenMode):
+        * WebProcess/cocoa/WebVideoFullscreenManager.h:
+        * WebProcess/cocoa/WebVideoFullscreenManager.messages.in:
+        * WebProcess/cocoa/WebVideoFullscreenManager.mm:
+        (WebKit::WebVideoFullscreenManager::requestFullscreenMode):
+
+2016-12-12  Tim Horton  <timothy_horton@apple.com>
+
+        Provide SPI to avoid blocking on painting when coming into view
+        https://bugs.webkit.org/show_bug.cgi?id=165780
+        <rdar://problem/29009559>
+
+        Reviewed by Simon Fraser.
+
+        By default, when parenting a WKWebView which was previously in-window,
+        we block on painting to ensure that we don't flash stale content.
+        We added SPI to disable this behavior to WKWebViewConfiguration, but
+        some clients might want the behavior most of the time, but sometimes
+        instead want to not block the UI process main thread, but instead do
+        their own work (e.g. removing a snapshot) when painting eventually occurs.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]):
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        Tell WebPageProxy not to block on painting next time we are parented,
+        and use doAfterNextPresentationUpdate to call the block when the painting
+        does eventually happen. This SPI must be called before - but in the same
+        runloop cycle - the WKWebView is brought back in-window to work correctly.
+        
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::dispatchActivityStateChange):
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::skipWaitingForPaintAfterNextViewDidMoveToWindow):
+        If we would block because we're coming in-window, but the bit to skip
+        blocking the next time we get brought in-window is set, reset the bit, 
+        and avoid blocking.
+
+2016-12-12  Chris Dumez  <cdumez@apple.com>
+
+        Document.visibilityState should use an IDL string enumeration
+        https://bugs.webkit.org/show_bug.cgi?id=165774
+
+        Reviewed by Daniel Bates.
+
+        * Shared/API/c/WKSharedAPICast.h:
+        (WebKit::toPageVisibilityState):
+
+2016-12-11  Konstantin Tokarev  <annulen@yandex.ru>
+
+        Unreviewed attempt to fix EFL and Mac/cmake builds after r209665.
+        https://bugs.webkit.org/show_bug.cgi?id=165686
+
+        * PlatformEfl.cmake: WebKit2 should precede other target so that right
+        config.h comes first in include path.
+
+2016-12-11  Tim Horton  <timothy_horton@apple.com>
+
+        Quarter-second stalls scrolling images that are links because of sync getPositionInformation
+        https://bugs.webkit.org/show_bug.cgi?id=165707
+
+        Reviewed by Simon Fraser.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView positionInformationForActionSheetAssistant:]):
+        (-[WKContentView updatePositionInformationForActionSheetAssistant:]):
+        For now, synchronously block when presenting the action sheet if we
+        don't have a snapshot ready.
+
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::getPositionInformation):
+        Respect includeSnapshot in another place in getPositionInformation,
+        so that many getPositionInformations don't have to do extra snapshotting work.
+
+2016-12-10  Filip Pizlo  <fpizlo@apple.com>
+
+        The DOM should have an advancing wavefront opaque root barrier
+        https://bugs.webkit.org/show_bug.cgi?id=165712
+
+        Reviewed by Yusuke Suzuki.
+        
+        Propagate the JSDOMWindowBase::commonVM() -> commonVM() change.
+
+        * Shared/linux/WebMemorySamplerLinux.cpp:
+        (WebKit::WebMemorySampler::sampleWebKit):
+        * Shared/mac/WebMemorySampler.mac.mm:
+        (WebKit::WebMemorySampler::sampleWebKit):
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::javaScriptObjectsCount):
+        * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+        (WebKit::JSNPObject::callMethod):
+        (WebKit::JSNPObject::callObject):
+        (WebKit::JSNPObject::callConstructor):
+        (WebKit::JSNPObject::put):
+        (WebKit::JSNPObject::deleteProperty):
+        (WebKit::JSNPObject::getOwnPropertyNames):
+        (WebKit::JSNPObject::propertyGetter):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::runJavaScriptInMainFrame):
+        (WebKit::WebPage::getBytecodeProfile):
+        (WebKit::WebPage::getSamplingProfilerOutput):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::getWebCoreStatistics):
+
+2016-12-11  Konstantin Tokarev  <annulen@yandex.ru>
+
+        Unreviewed build fix for EFL after r209665
+
+        * UIProcess/efl/TextCheckerClientEfl.h:
+
+2016-12-10  Konstantin Tokarev  <annulen@yandex.ru>
+
+        [cmake] Include WTF, JSC, and WebCore headers automatically to targers using them
+        https://bugs.webkit.org/show_bug.cgi?id=165686
+
+        Reviewed by Michael Catanzaro.
+
+        This change reduces duplication of include path lists between modules,
+        and reduces future need for fixes like r209605 (broken build because of
+        WebCore header suddenly becoming used in WebKit2).
+
+        * CMakeLists.txt:
+        * PlatformEfl.cmake:
+        * PlatformGTK.cmake:
+        * PlatformMac.cmake:
+
+2016-12-10  Antti Koivisto  <antti@apple.com>
+
+        CrashTracer: com.apple.WebKit.Networking at WTF::ThreadSafeRefCounted<WebKit::NetworkCache::IOChannel>::deref
+        https://bugs.webkit.org/show_bug.cgi?id=165659
+        <rdar://problem/27077977>
+
+        Reviewed by Darin Adler.
+
+        * NetworkProcess/cache/NetworkCacheIOChannel.h:
+        * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:
+        (WebKit::NetworkCache::IOChannel::~IOChannel):
+
+            Add non-inlined destructor and release assert against double deletion to narrow down this crash.
+
+2016-12-09  Brent Fulgham  <bfulgham@apple.com>
+
+        WebCore::Timer is not compatible with UIProcess
+        https://bugs.webkit.org/show_bug.cgi?id=165706
+        <rdar://problem/29360564>
+
+        Reviewed by Andy Estes.
+
+        Anders has explained to me (at least twice) that WebCore::Timer must not
+        be used in UIProcess code. A recent bug fix introduced a WebCore::Timer,
+        which led to another crash.
+        
+        This patch switches from WebCore::Timer to WTF::RunLoop::Timer to avoid
+        the problem.
+
+        * UIProcess/Cocoa/NavigationState.h:
+        * UIProcess/Cocoa/NavigationState.mm:
+        (WebKit::NavigationState::NavigationState):
+
+2016-12-09  Eric Carlson  <eric.carlson@apple.com>
+
+        Annotate MediaStream and WebRTC idl with EnabledAtRuntime flag
+        https://bugs.webkit.org/show_bug.cgi?id=165251
+
+        Reviewed by Dean Jackson.
+
+        Based on a patch by Dr Alex Gouaillard <agouaillard@gmail.com>
+
+        * Shared/WebPreferencesDefinitions.h: Add peerConnectionEnabled.
+
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetPeerConnectionEnabled): Added.
+        (WKPreferencesGetPeerConnectionEnabled): Added.
+        * UIProcess/API/C/WKPreferencesRef.h:
+
+        * WebProcess/InjectedBundle/InjectedBundle.cpp:
+        (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Add WebKitMediaStreamEnabled
+          and WebKitPeerConnectionEnabled.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences): Initialize the peerConnection preference.
+
+2016-12-09  Brady Eidson  <beidson@apple.com>
+
+        Re-landing:
+        Add _WKIconLoadingDelegate SPI.
+        https://bugs.webkit.org/show_bug.cgi?id=164894
+
+        Reviewed by Alex Christensen.
+
+        With this client, WebCore will ask the FrameLoaderClient about each icon found in the <head>.
+
+        WebKit2 will then ask the embedding app - for each icon - if it wants that icon to load.
+
+        For icons the app decides to load, WebKit will pass the data to the app without storing locally.
+
+        * UIProcess/API/APIIconLoadingClient.h: Copied from Source/WebCore/html/LinkIconCollector.h.
+        (API::IconLoadingClient::~IconLoadingClient):
+        (API::IconLoadingClient::getLoadDecisionForIcon):
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _initializeWithConfiguration:]):
+        (-[WKWebView _iconLoadingDelegate]):
+        (-[WKWebView _setIconLoadingDelegate:]):
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+
+        * UIProcess/API/Cocoa/_WKIconLoadingDelegate.h: Copied from Source/WebCore/html/LinkIconCollector.h.
+
+        * UIProcess/API/Cocoa/_WKLinkIconParameters.h: Copied from Source/WebCore/html/LinkIconCollector.h.
+        * UIProcess/API/Cocoa/_WKLinkIconParameters.mm: Copied from Source/WebCore/html/LinkIconCollector.h.
+        (-[_WKLinkIconParameters _initWithLinkIcon:]):
+        (-[_WKLinkIconParameters url]):
+        (-[_WKLinkIconParameters mimeType]):
+        (-[_WKLinkIconParameters size]):
+        (-[_WKLinkIconParameters iconType]):
+        * UIProcess/API/Cocoa/_WKLinkIconParametersInternal.h: Copied from Source/WebCore/html/LinkIconCollector.h.
+
+        * UIProcess/Cocoa/IconLoadingDelegate.h: Copied from Source/WebCore/html/LinkIconCollector.h.
+        * UIProcess/Cocoa/IconLoadingDelegate.mm: Added.
+        (WebKit::IconLoadingDelegate::IconLoadingDelegate):
+        (WebKit::IconLoadingDelegate::~IconLoadingDelegate):
+        (WebKit::IconLoadingDelegate::createIconLoadingClient):
+        (WebKit::IconLoadingDelegate::delegate):
+        (WebKit::IconLoadingDelegate::setDelegate):
+        (WebKit::IconLoadingDelegate::IconLoadingClient::IconLoadingClient):
+        (WebKit::IconLoadingDelegate::IconLoadingClient::~IconLoadingClient):
+        (WebKit::IconLoadingDelegate::IconLoadingClient::getLoadDecisionForIcon):
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::setIconLoadingClient):
+        (WebKit::WebPageProxy::getLoadDecisionForIcon):
+        (WebKit::WebPageProxy::finishedLoadingIcon):
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::iconLoadingClient):
+        * UIProcess/WebPageProxy.messages.in:
+
+        * WebKit2.xcodeproj/project.pbxproj:
+
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::useIconLoadingClient):
+        (WebKit::WebFrameLoaderClient::getLoadDecisionForIcon):
+        (WebKit::WebFrameLoaderClient::finishedLoadingIcon):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+        (WebKit::WebFrameLoaderClient::setUseIconLoadingClient):
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::didGetLoadDecisionForIcon):
+        (WebKit::WebPage::setUseIconLoadingClient):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
+2016-12-09  Simon Fraser  <simon.fraser@apple.com>
+
+        Fix initialization of contentUpdateFrequency
+        https://bugs.webkit.org/show_bug.cgi?id=165705
+        rdar://problem/29602039
+
+        Reviewed by Tim Horton.
+
+        The value that controls web content update frequency was not being initialized.
+
+        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+        (-[WKWebViewConfiguration init]):
+
+2016-12-09  Anders Carlsson  <andersca@apple.com>
+
+        Once we can send Mach messages again, make sure to send any pending outgoing messages
+        https://bugs.webkit.org/show_bug.cgi?id=165693
+
+        Reviewed by Brady Eidson.
+
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::Connection::initializeSendSource):
+
+2016-12-09  Beth Dakin  <bdakin@apple.com>
+
+        Password fields should not show the emoji button in TouchBar
+        https://bugs.webkit.org/show_bug.cgi?id=165673
+        -and corresponding-
+        rdar://problem/29235739
+
+        Reviewed by Wenson Hsieh.
+
+        This patch adds a new member variable for the password touch bar and password 
+        candidateListTouchBarItem. Since this TouchBar will actually have a different set 
+        of identifiers than the plain text TouchBar, it should just have its own variable.
+        * UIProcess/Cocoa/WebViewImpl.h:
+        * UIProcess/Cocoa/WebViewImpl.mm:
+
+        Return m_passwordTextCandidateListTouchBarItem when appropriate.
+        (WebKit::WebViewImpl::candidateListTouchBarItem):
+
+        The candidate list should be the only item for passwords.
+        (WebKit::passwordTextTouchBarDefaultItemIdentifiers):
+
+        Account for m_passwordTextTouchBar.
+        (WebKit::WebViewImpl::updateTouchBarAndRefreshTextBarIdentifiers):
+        (WebKit::WebViewImpl::setUpTextTouchBar):
+        (WebKit::WebViewImpl::textTouchBar):
+
+        The empty candidates array is not needed. We can just set @[ ] as the candidates 
+        for the m_passwordTextCandidateListTouchBarItem. Safe guards already exist in the 
+        other parts of the code to prevent us from requesting or setting other candidates 
+        when in a password field. 
+        (WebKit::WebViewImpl::updateTextTouchBar):
+
+2016-12-09  Keith Rollin  <krollin@apple.com>
+
+        Fix string specification in print format
+        https://bugs.webkit.org/show_bug.cgi?id=165650
+
+        Reviewed by Alex Christensen.
+
+        Change "%{public}s" string specifier to something that can be changed
+        to "%s" at compile time when the build environment doesn't support the
+        former.
+
+        * NetworkProcess/capture/NetworkCaptureLogging.h:
+        * NetworkProcess/capture/NetworkCaptureManager.cpp:
+        (WebKit::NetworkCapture::Manager::initialize):
+        (WebKit::NetworkCapture::Manager::findMatch):
+        (WebKit::NetworkCapture::Manager::findExactMatch):
+        (WebKit::NetworkCapture::Manager::findBestFuzzyMatch):
+        (WebKit::NetworkCapture::Manager::fuzzyMatchURLs):
+        (WebKit::NetworkCapture::Manager::logPlayedBackResource):
+        (WebKit::NetworkCapture::Manager::openCacheFile):
+        (WebKit::NetworkCapture::Manager::getLine):
+        * NetworkProcess/capture/NetworkCaptureRecorder.cpp:
+        (WebKit::NetworkCapture::Recorder::recordRequestSent):
+        (WebKit::NetworkCapture::Recorder::recordResponseReceived):
+        (WebKit::NetworkCapture::Recorder::recordRedirectReceived):
+        (WebKit::NetworkCapture::Recorder::recordRedirectSent):
+        (WebKit::NetworkCapture::Recorder::writeEvents):
+        * NetworkProcess/capture/NetworkCaptureResource.cpp:
+        (WebKit::NetworkCapture::Resource::url):
+        (WebKit::NetworkCapture::Resource::EventStream::nextEvent):
+        * NetworkProcess/capture/NetworkDataTaskReplay.cpp:
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::NetworkDataTaskReplay):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::~NetworkDataTaskReplay):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::resume):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::suspend):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::complete):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::invalidateAndCancel):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::enqueueEventHandler):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::replayRequestSent):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::replayResponseReceived):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::replayRedirectReceived):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::replayRedirectSent):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::replayDataReceived):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::replayFinished):
+        (WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse):
+
+2016-12-09  Jeremy Jones  <jeremyj@apple.com>
+
+        WebView doesn't become first responder in element fullscreen.
+        https://bugs.webkit.org/show_bug.cgi?id=165664
+        rdar://problem/28927252
+
+        Reviewed by Tim Horton.
+
+        WebView was being set as the first responder while the contentView was still hidden.
+        A view can not become first responder while it or its ancestor is hidden.
+
+        This change waits until after the contentView is visible to make the web view the first responder.
+
+        * UIProcess/mac/WKFullScreenWindowController.mm:
+        (-[WKFullScreenWindowController enterFullScreen:]):
+        (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
+
+2016-12-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
+
+        Unreviewed build fix. Thanks to Konstantin Tokarev and Csaba Osztrogonác
+        for pointing out the fix.
+
+        * CMakeLists.txt: add WebCore/html/canvas to include paths.
+
+2016-12-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
+
+        [GTK] Fix build after r209558
+        https://bugs.webkit.org/show_bug.cgi?id=165653
+
+        Unreviewed build fix.
+
+        * UIProcess/API/APIPolicyClient.h: include WebsitePolicies.h.
+        * UIProcess/API/gtk/WebKitPolicyClient.cpp: ditto.
+        * UIProcess/API/gtk/WebKitPolicyDecision.cpp:
+        (webkit_policy_decision_use):  pass empty structure to new required argument.
+
+2016-12-09  Gavin Barraclough  <barraclough@apple.com>
+
+        Revert - Add _WKIconLoadingDelegate SPI
+        https://bugs.webkit.org/show_bug.cgi?id=164894
+
+        Unreviewed rollout due to performance regression.
+
+        * PlatformMac.cmake:
+        * UIProcess/API/APIIconLoadingClient.h: Removed.
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _initializeWithConfiguration:]):
+        (-[WKWebView _iconLoadingDelegate]): Deleted.
+        (-[WKWebView _setIconLoadingDelegate:]): Deleted.
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        * UIProcess/API/Cocoa/_WKIconLoadingDelegate.h: Removed.
+        * UIProcess/API/Cocoa/_WKLinkIconParameters.h: Removed.
+        * UIProcess/API/Cocoa/_WKLinkIconParameters.mm: Removed.
+        * UIProcess/API/Cocoa/_WKLinkIconParametersInternal.h: Removed.
+        * UIProcess/Cocoa/IconLoadingDelegate.h: Removed.
+        * UIProcess/Cocoa/IconLoadingDelegate.mm: Removed.
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::setIconLoadingClient): Deleted.
+        (WebKit::WebPageProxy::getLoadDecisionForIcon): Deleted.
+        (WebKit::WebPageProxy::finishedLoadingIcon): Deleted.
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::iconLoadingClient): Deleted.
+        * UIProcess/WebPageProxy.messages.in:
+        * WebKit2.xcodeproj/project.pbxproj:
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::useIconLoadingClient): Deleted.
+        (WebKit::WebFrameLoaderClient::getLoadDecisionForIcon): Deleted.
+        (WebKit::WebFrameLoaderClient::finishedLoadingIcon): Deleted.
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+        (WebKit::WebFrameLoaderClient::setUseIconLoadingClient): Deleted.
+        (): Deleted.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::didGetLoadDecisionForIcon): Deleted.
+        (WebKit::WebPage::setUseIconLoadingClient): Deleted.
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
+2016-12-08  Keith Rollin  <krollin@apple.com>
+
+        Move FileHandle to WebCore FileHandle.h
+        https://bugs.webkit.org/show_bug.cgi?id=165562
+
+        Reviewed by Alex Christensen.
+
+        Move FileHandle from NetworkCaptureTypes.h (which can now be deleted)
+        to WebCore. Update client code to use the new version.
+
+        * NetworkProcess/capture/NetworkCaptureEvent.cpp:
+        * NetworkProcess/capture/NetworkCaptureEvent.h:
+        * NetworkProcess/capture/NetworkCaptureManager.cpp:
+        (WebKit::NetworkCapture::Manager::initialize):
+        (WebKit::NetworkCapture::Manager::terminate):
+        (WebKit::NetworkCapture::Manager::logRecordedResource):
+        (WebKit::NetworkCapture::Manager::logLoadedResource):
+        (WebKit::NetworkCapture::Manager::logPlayedBackResource):
+        (WebKit::NetworkCapture::Manager::openCacheFile):
+        (WebKit::NetworkCapture::Manager::ensureFileHandle): Deleted.
+        (WebKit::NetworkCapture::Manager::printToFile): Deleted.
+        * NetworkProcess/capture/NetworkCaptureManager.h:
+        * NetworkProcess/capture/NetworkCaptureRecorder.cpp:
+        (WebKit::NetworkCapture::Recorder::writeEvents):
+        * NetworkProcess/capture/NetworkCaptureTypes.h: Removed.
+        * WebKit2.xcodeproj/project.pbxproj:
+
+2016-12-08  Anders Carlsson  <andersca@apple.com>
+
+        Attempt to fix the iOS build.
+
+        * Platform/IPC/mac/MachMessage.cpp:
+
+2016-12-08  Anders Carlsson  <andersca@apple.com>
+
+        Defer sending Mach messages if the queue is full
+        https://bugs.webkit.org/show_bug.cgi?id=165622
+        rdar://problem/29518036
+
+        Reviewed by Brady Eidson.
+
+        * Platform/IPC/Connection.cpp:
+        Include MachMessage.h so the Connection destructor can do its thing.
+
+        * Platform/IPC/Connection.h:
+        Add new members.
+
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::Connection::platformInvalidate):
+        Null out the pending outgoing mach message.
+
+        (IPC::Connection::sendMessage):
+        New helper that will send a Mach message. If we time out, store the message in m_pendingOutgoingMachMessage.
+        When our send source will be triggered we'll try to send the message again.
+
+        (IPC::Connection::platformCanSendOutgoingMessages):
+        We can only send messages if we don't have a pending outgoing message.
+
+        (IPC::Connection::sendOutgoingMessage):
+        Call the newly added sendMessage function.
+
+        (IPC::Connection::initializeSendSource):
+        Add the DISPATCH_MACH_SEND_POSSIBLE mask (and DISPATCH_MACH_SEND_DEAD which was previously implicit).
+        In our event handler, check for DISPATCH_MACH_SEND_POSSIBLE and try to send the pending outgoing message again.
+
+        * Platform/IPC/mac/MachMessage.cpp:
+        (IPC::MachMessage::create):
+        Rename length to size.
+
+        (IPC::MachMessage::MachMessage):
+        Initialize m_shouldFreeDescriptors.
+
+        (IPC::MachMessage::~MachMessage):
+        Call mach_msg_destroy, which will free the descriptors.
+
+        (IPC::MachMessage::leakDescriptors):
+        Set m_shouldFreeDescriptors to false.
+
+        * Platform/IPC/mac/MachMessage.h:
+        (IPC::MachMessage::size):
+        (IPC::MachMessage::length): Deleted.
+
+2016-12-08  Chelsea Pugh  <cpugh@apple.com>
+
+        [iOS] WKWebView should not allow app links to be opened on back or forward navigation
+        https://bugs.webkit.org/show_bug.cgi?id=165502
+
+        Reviewed by Dan Bernstein.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::decidePolicyForNavigationAction): Add a condition to shouldOpenAppLinks
+        (which we use when creating a NavigationAction) that the navigationActionData is not a navigation
+        of type BackForward. This way, we don't open app links when a navigation is done via back or
+        forward.
+
+2016-12-08  Filip Pizlo  <fpizlo@apple.com>
+
+        Enable SharedArrayBuffer, remove the flag
+        https://bugs.webkit.org/show_bug.cgi?id=165614
+
+        Rubber stamped by Geoffrey Garen.
+
+        * UIProcess/API/C/WKPreferencesRefPrivate.h:
+        * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
+
+2016-12-08  Alex Christensen  <achristensen@webkit.org>
+
+        Add SPI for sending WebsiteSettings to WebProcess during navigation
+        https://bugs.webkit.org/show_bug.cgi?id=165517
+        <rdar://29341068>
+
+        We add the ability for the navigation client to send settings to the WebProcess 
+        based on the URL of the document being navigated to. This approach adds no new IPC 
+        messages and allows the application to decide what settings to use during navigation 
+        instead of declaratively before navigation. Right now there is only one setting, 
+        whether to disable content blockers, but this infrastructure can be used for more settings.
+
+        Reviewed by Anders Carlsson.
+
+        * CMakeLists.txt:
+        * PlatformMac.cmake:
+        * Shared/API/APIObject.h:
+        * Shared/API/c/WKBase.h:
+        * Shared/WebsitePolicies.h: Added.
+        (WebKit::WebsitePolicies::encode):
+        (WebKit::WebsitePolicies::decode):
+        * UIProcess/API/APINavigationClient.h:
+        (API::NavigationClient::decidePolicyForNavigationAction):
+        (API::NavigationClient::decidePolicyForNavigationResponse):
+        * UIProcess/API/APIPolicyClient.h:
+        (API::PolicyClient::decidePolicyForNavigationAction):
+        (API::PolicyClient::decidePolicyForNewWindowAction):
+        (API::PolicyClient::decidePolicyForResponse):
+        * UIProcess/API/APIWebsitePolicies.cpp: Added.
+        (API::WebsitePolicies::create):
+        * UIProcess/API/APIWebsitePolicies.h: Added.
+        * UIProcess/API/C/WKAPICast.h:
+        * UIProcess/API/C/WKFramePolicyListener.cpp:
+        (WKFramePolicyListenerUse):
+        (WKFramePolicyListenerUseWithPolicies):
+        * UIProcess/API/C/WKFramePolicyListener.h:
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetPagePolicyClient):
+        * UIProcess/API/C/WKWebsitePolicies.cpp: Added.
+        (WKWebsitePoliciesGetTypeID):
+        (WKWebsitePoliciesCreate):
+        (WKWebsitePoliciesSetContentBlockersEnabled):
+        (WKWebsitePoliciesGetContentBlockersEnabled):
+        * UIProcess/API/C/WKWebsitePolicies.h: Added.
+        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
+        * UIProcess/API/Cocoa/_WKWebsitePolicies.h: Added.
+        * UIProcess/API/Cocoa/_WKWebsitePolicies.mm: Added.
+        (-[_WKWebsitePolicies dealloc]):
+        (-[_WKWebsitePolicies init]):
+        (-[_WKWebsitePolicies setContentBlockersEnabled:]):
+        (-[_WKWebsitePolicies contentBlockersEnabled]):
+        (-[_WKWebsitePolicies description]):
+        (-[_WKWebsitePolicies _apiObject]):
+        * UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h: Added.
+        (WebKit::wrapper):
+        * UIProcess/Automation/WebAutomationSession.cpp:
+        (WebKit::WebAutomationSession::reloadBrowsingContext):
+        * UIProcess/Cocoa/NavigationState.h:
+        * UIProcess/Cocoa/NavigationState.mm:
+        (WebKit::NavigationState::setNavigationDelegate):
+        (WebKit::tryAppLink):
+        (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
+        (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):
+        * UIProcess/WebFormSubmissionListenerProxy.cpp:
+        (WebKit::WebFormSubmissionListenerProxy::continueSubmission):
+        * UIProcess/WebFrameListenerProxy.cpp:
+        (WebKit::WebFrameListenerProxy::receivedPolicyDecision):
+        * UIProcess/WebFrameListenerProxy.h:
+        * UIProcess/WebFramePolicyListenerProxy.cpp:
+        (WebKit::WebFramePolicyListenerProxy::use):
+        (WebKit::WebFramePolicyListenerProxy::download):
+        (WebKit::WebFramePolicyListenerProxy::ignore):
+        * UIProcess/WebFramePolicyListenerProxy.h:
+        (WebKit::WebFramePolicyListenerProxy::create):
+        * UIProcess/WebFrameProxy.cpp:
+        (WebKit::WebFrameProxy::receivedPolicyDecision):
+        * UIProcess/WebFrameProxy.h:
+        * UIProcess/WebInspectorProxy.cpp:
+        (WebKit::decidePolicyForNavigationAction):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::receivedPolicyDecision):
+        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * WebKit2.xcodeproj/project.pbxproj:
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
+
+2016-12-08  Antti Koivisto  <antti@apple.com>
+
+        Salt network cache hashes
+        https://bugs.webkit.org/show_bug.cgi?id=164924
+
+        Reviewed by Alex Christensen.
+
+        To enhance privacy make cache content unidentifiable from file names alone.
+        This is done by generating a unique persistent salt for each cache instance.
+        It is used when computing hashes used in file names.
+
+        The patch also replaces plain text partition directory names with salted hashes.
+
+        * NetworkProcess/cache/NetworkCache.cpp:
+        (WebKit::NetworkCache::Cache::makeCacheKey):
+        (WebKit::NetworkCache::makeCacheKey): Deleted.
+        * NetworkProcess/cache/NetworkCache.h:
+
+            Increment cache version.
+
+        * NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
+        (WebKit::NetworkCache::BlobStorage::BlobStorage):
+        (WebKit::NetworkCache::BlobStorage::add):
+        (WebKit::NetworkCache::BlobStorage::get):
+
+            Use salt for blob content hash.
+
+        * NetworkProcess/cache/NetworkCacheBlobStorage.h:
+        * NetworkProcess/cache/NetworkCacheData.cpp:
+        (WebKit::NetworkCache::computeSHA1):
+
+            For simplicity all SHA1s are now salted.
+
+        (WebKit::NetworkCache::makeSalt):
+        (WebKit::NetworkCache::readOrMakeSalt):
+
+            Read salt if it exists, generate and persist it otherwise.
+
+        * NetworkProcess/cache/NetworkCacheData.h:
+        * NetworkProcess/cache/NetworkCacheKey.cpp:
+        (WebKit::NetworkCache::Key::Key):
+
+            Remove the "No partition" string and just empty.
+            That was only needed to have a directory name of some sort.
+
+        (WebKit::NetworkCache::Key::computeHash):
+
+            Use salt for key hash.
+
+        (WebKit::NetworkCache::Key::computePartitionHash):
+
+            Separate hash for partition.
+
+        * NetworkProcess/cache/NetworkCacheKey.h:
+        * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
+        (WebKit::NetworkCache::makeSubresourcesKey):
+        (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::saveToDiskIfReady):
+        (WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):
+        * NetworkProcess/cache/NetworkCacheStorage.cpp:
+        (WebKit::NetworkCache::makeSaltFilePath):
+        (WebKit::NetworkCache::Storage::open):
+
+            Cache can't be opened if we can't read or persist a salt.
+
+        (WebKit::NetworkCache::traverseRecordsFiles):
+        (WebKit::NetworkCache::Storage::Storage):
+        (WebKit::NetworkCache::Storage::synchronize):
+        (WebKit::NetworkCache::Storage::recordDirectoryPathForKey):
+
+            Use the partition hash in the directory name instead of a plain text name.
+
+        (WebKit::NetworkCache::decodeRecordHeader):
+        (WebKit::NetworkCache::Storage::readRecord):
+        (WebKit::NetworkCache::Storage::encodeRecord):
+        (WebKit::NetworkCache::Storage::traverse):
+        (WebKit::NetworkCache::Storage::clear):
+        * NetworkProcess/cache/NetworkCacheStorage.h:
+        (WebKit::NetworkCache::Storage::salt):
+
+2016-12-08  Eric Carlson  <eric.carlson@apple.com>
+
+        Fix the EFL build.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::isPlayingMediaDidChange): Add another ENABLE(MEDIA_STREAM) guard.
+
+2016-12-08  Tomas Popela  <tpopela@redhat.com>
+
+        [GTK] Process accelerated compositing env variables only if they are really enabled
+        https://bugs.webkit.org/show_bug.cgi?id=165300
+
+        Don't process the WEBKIT_FORCE_COMPOSITING_MODE and
+        WEBKIT_DISABLE_COMPOSITING_MODE env variables if they are disabled
+        (eg. WEBKIT_DISABLE_COMPOSITING_MODE=0).
+
+        Reviewed by Michael Catanzaro.
+
+        * UIProcess/gtk/WebPreferencesGtk.cpp:
+        (WebKit::WebPreferences::platformInitializeStore):
+
 2016-12-08  Alex Christensen  <achristensen@webkit.org>
 
         Fix CMake build.