X-Git-Url: http://git.webkit.org/?p=WebKit-https.git;a=blobdiff_plain;f=Source%2FWebKit2%2FChangeLog;h=0305ad96562d2a6c3a32113b58e9683081ef14b7;hp=1a721ff4e06388ad07ee4885749e92154318ffcd;hb=b5b1a379649d65b88b46481a7bf7d939aaa1faf5;hpb=f818cfb341cf628cb2e2b9806b68604cbbb0d21c diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog index 1a721ff..0305ad9 100644 --- a/Source/WebKit2/ChangeLog +++ b/Source/WebKit2/ChangeLog @@ -1,3 +1,1203 @@ +2016-11-26 Yusuke Suzuki + + [WTF] Import std::optional reference implementation as WTF::Optional + https://bugs.webkit.org/show_bug.cgi?id=164199 + + Reviewed by Saam Barati and Sam Weinig. + + * NetworkProcess/NetworkDataTask.cpp: + (WebKit::NetworkDataTask::didReceiveResponse): + * NetworkProcess/NetworkLoad.h: + * NetworkProcess/cache/NetworkCache.cpp: + (WebKit::NetworkCache::responseHasExpired): + * NetworkProcess/cache/NetworkCacheCoders.h: + (WebKit::NetworkCache::Coder>::encode): + (WebKit::NetworkCache::Coder>::decode): + (WebKit::NetworkCache::Coder>::encode): Deleted. + (WebKit::NetworkCache::Coder>::decode): Deleted. + * NetworkProcess/cache/NetworkCacheData.cpp: + (WebKit::NetworkCache::readOrMakeSalt): + * NetworkProcess/cache/NetworkCacheData.h: + * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: + (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry): + (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::revalidationRequest): + (WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry): + * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h: + * NetworkProcess/cache/NetworkCacheStatistics.cpp: + (WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest): + (WebKit::NetworkCache::Statistics::recordRetrievalFailure): + (WebKit::NetworkCache::Statistics::queryWasEverRequested): + * NetworkProcess/cache/NetworkCacheStatistics.h: + * NetworkProcess/cache/NetworkCacheStorage.cpp: + (WebKit::NetworkCache::Storage::storeBodyAsBlob): + (WebKit::NetworkCache::Storage::encodeRecord): + (WebKit::NetworkCache::Storage::dispatchWriteOperation): + * NetworkProcess/cache/NetworkCacheStorage.h: + * Platform/IPC/ArgumentCoders.h: + (IPC::ArgumentCoder>::encode): + (IPC::ArgumentCoder>::decode): + (IPC::ArgumentCoder>::encode): Deleted. + (IPC::ArgumentCoder>::decode): Deleted. + * Platform/IPC/Connection.h: + (IPC::Connection::sendWithReply): + * Platform/SharedMemory.h: + * Platform/unix/SharedMemoryUnix.cpp: + (WebKit::SharedMemory::map): + * Scripts/webkit/messages.py: + (class_template_headers): + * Shared/API/APISecurityOrigin.h: + (API::SecurityOrigin::create): + * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: + * Shared/API/c/WKSecurityOriginRef.cpp: + (WKSecurityOriginGetPort): + * Shared/SessionState.h: + * Shared/WebPageCreationParameters.h: + * Shared/mac/ObjCObjectGraph.mm: + (WebKit::typeFromObject): + * Shared/mac/SecItemShim.cpp: + (WebKit::sendSecItemRequest): + * UIProcess/API/C/WKKeyValueStorageManager.cpp: + (WKKeyValueStorageManagerGetStorageDetailsByOrigin): + * UIProcess/API/Cocoa/WKSecurityOrigin.mm: + (-[WKSecurityOrigin port]): + * UIProcess/API/Cocoa/WKWebView.mm: + (-[WKWebView _didCommitLayerTree:]): + (-[WKWebView _navigationGestureDidEnd]): + * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: + (WebKit::toWebsiteDataType): + * UIProcess/API/efl/EwkView.cpp: + (EwkView::setCursor): + * UIProcess/API/mac/WKView.mm: + (toCoreScrollbarStyle): + (toAPIScrollbarStyle): + * UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: + (WebKit::WebPaymentCoordinatorProxy::completeShippingMethodSelection): + (WebKit::WebPaymentCoordinatorProxy::completeShippingContactSelection): + (WebKit::WebPaymentCoordinatorProxy::completePaymentMethodSelection): + * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: + * UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in: + * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: + (WebKit::toPKPaymentSummaryItem): + (WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection): + (WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection): + (WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection): + * UIProcess/Automation/WebAutomationSession.cpp: + (WebKit::WebAutomationSession::webFrameIDForHandle): + (WebKit::WebAutomationSession::switchToBrowsingContext): + (WebKit::WebAutomationSession::evaluateJavaScriptFunction): + (WebKit::WebAutomationSession::resolveChildFrameHandle): + (WebKit::WebAutomationSession::resolveParentFrameHandle): + (WebKit::WebAutomationSession::computeElementLayout): + * UIProcess/Automation/WebAutomationSession.h: + * UIProcess/Cocoa/WebViewImpl.h: + * UIProcess/Cocoa/WebViewImpl.mm: + (WebKit::WebViewImpl::updateViewExposedRect): + (WebKit::WebViewImpl::setOverlayScrollbarStyle): + (WebKit::WebViewImpl::overlayScrollbarStyle): + * UIProcess/DrawingAreaProxy.cpp: + (WebKit::DrawingAreaProxy::setViewExposedRect): + * UIProcess/DrawingAreaProxy.h: + (WebKit::DrawingAreaProxy::viewExposedRect): + * UIProcess/InspectorServer/WebSocketServerConnection.cpp: + (WebKit::WebSocketServerConnection::didReceiveSocketStreamData): + * UIProcess/InspectorServer/WebSocketServerConnection.h: + * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: + (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll): + * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h: + * UIProcess/Scrolling/RemoteScrollingTree.cpp: + (WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll): + * UIProcess/Scrolling/RemoteScrollingTree.h: + * UIProcess/Storage/LocalStorageDatabaseTracker.cpp: + (WebKit::fileCreationTime): + (WebKit::fileModificationTime): + * UIProcess/Storage/LocalStorageDatabaseTracker.h: + * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: + (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): + * UIProcess/WebBackForwardList.cpp: + (WebKit::WebBackForwardList::backForwardListState): + (WebKit::WebBackForwardList::restoreFromState): + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::didCommitLoadForFrame): + (WebKit::WebPageProxy::creationParameters): + (WebKit::WebPageProxy::setOverlayScrollbarStyle): + * UIProcess/WebPageProxy.h: + (WebKit::WebPageProxy::overlayScrollbarStyle): + * UIProcess/WebPageProxy.messages.in: + * UIProcess/WebsiteData/WebsiteDataRecord.h: + * UIProcess/efl/WebView.cpp: + (WebKit::WebView::transformFromScene): + * UIProcess/gtk/AcceleratedBackingStoreX11.cpp: + * UIProcess/gtk/WebPreferencesGtk.cpp: + (WebKit::WebPreferences::platformInitializeStore): + * UIProcess/ios/WKContentViewInteraction.mm: + (-[WKContentView _scrollOffsetForEvent:]): + (-[WKContentView _interpretKeyEvent:isCharEvent:]): + * UIProcess/mac/LegacySessionStateCoding.cpp: + (WebKit::encodeFormDataElement): + (WebKit::decodeFormDataElement): + (WebKit::decodeV1SessionHistory): + * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h: + * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: + (WebKit::RemoteLayerTreeDrawingAreaProxy::setViewExposedRect): + * WebProcess/ApplePay/WebPaymentCoordinator.cpp: + (WebKit::WebPaymentCoordinator::completeShippingMethodSelection): + (WebKit::WebPaymentCoordinator::completeShippingContactSelection): + (WebKit::WebPaymentCoordinator::completePaymentMethodSelection): + * WebProcess/ApplePay/WebPaymentCoordinator.h: + * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: + (WKBundlePageSetEventThrottlingBehaviorOverride): + * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: + (WebKit::PDFPlugin::convertFromPDFViewToRootView): + (WebKit::PDFPlugin::convertFromPDFViewToScreen): + (WebKit::PDFPlugin::boundsOnScreen): + (WebKit::PDFPlugin::geometryDidChange): + * WebProcess/Plugins/PDF/PDFPlugin.mm: + (WebKit::PDFPlugin::geometryDidChange): + * WebProcess/Plugins/PluginView.cpp: + (WebKit::PluginView::performFrameLoadURLRequest): + (WebKit::PluginView::evaluate): + * WebProcess/Plugins/WebPluginInfoProvider.cpp: + (WebKit::WebPluginInfoProvider::pluginLoadClientPolicyForHost): + * WebProcess/Plugins/WebPluginInfoProvider.h: + * WebProcess/Scrolling/RemoteScrollingCoordinator.mm: + (WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode): + * WebProcess/WebCoreSupport/SessionStateConversion.cpp: + (WebKit::toFormData): + * WebProcess/WebCoreSupport/WebChromeClient.cpp: + (WebKit::WebChromeClient::preferredScrollbarOverlayStyle): + * WebProcess/WebCoreSupport/WebChromeClient.h: + * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: + (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad): + * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: + * WebProcess/WebPage/DrawingArea.h: + * WebProcess/WebPage/DrawingArea.messages.in: + * WebProcess/WebPage/WebFrame.cpp: + (WebKit::WebFrame::certificateInfo): + * WebProcess/WebPage/WebPage.cpp: + (WebKit::m_userInterfaceLayoutDirection): + (WebKit::WebPage::setScrollbarOverlayStyle): + * WebProcess/WebPage/WebPage.h: + (WebKit::WebPage::scrollbarOverlayStyle): + * WebProcess/WebPage/WebPage.messages.in: + * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: + * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: + (WebKit::RemoteLayerTreeDrawingArea::setViewExposedRect): + * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: + * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: + (WebKit::TiledCoreAnimationDrawingArea::setViewExposedRect): + +2016-11-26 Sam Weinig + + Convert IntersectionObserver over to using RuntimeEnabledFeatures so it can be properly excluded from script + https://bugs.webkit.org/show_bug.cgi?id=164965 + + Reviewed by Simon Fraser. + + * Shared/WebPreferencesDefinitions.h: + * UIProcess/API/C/WKPreferences.cpp: + (WKPreferencesSetIntersectionObserverEnabled): + (WKPreferencesGetIntersectionObserverEnabled): + * UIProcess/API/C/WKPreferencesRefPrivate.h: + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::updatePreferences): + Add a preference, defaulting to off, for enabling IntersectionObserver. + +2016-11-26 Simon Fraser + + Migrate some layout timer-related code from std::chrono to Seconds and MonotonicTime + https://bugs.webkit.org/show_bug.cgi?id=164992 + + Reviewed by Darin Adler. + + No more ugly conversion from seconds to milliseconds. + + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::updatePreferences): + * WebProcess/WebPage/ios/WebPageIOS.mm: + (WebKit::WebPage::eventThrottlingDelay): + +2016-11-25 Michael Catanzaro + + [GTK] Follow-up fixes to r208974 + https://bugs.webkit.org/show_bug.cgi?id=164771 + + Unreviewed, implement Carlos's review feedback. + + * UIProcess/API/gtk/WebKitNotification.cpp: + (webkit_notification_get_tag): + * UIProcess/API/gtk/WebKitNotificationProvider.cpp: + (WebKitNotificationProvider::withdrawAnyPreviousNotificationMatchingTag): + (WebKitNotificationProvider::show): + * UIProcess/API/gtk/WebKitNotificationProvider.h: + +2016-11-24 Michael Catanzaro + + [GTK] Notifications API does not expose or respect the "tag" attribute + https://bugs.webkit.org/show_bug.cgi?id=164771 + + Reviewed by Gustavo Noronha Silva. + + Expose a tag property on WebKitNotification. Ensure that any previous notification with the + same tag is closed when showing a new notification with that tag. + + * UIProcess/API/gtk/WebKitNotification.cpp: + (webkit_notification_class_init): + (webkitNotificationCreate): + (webkit_notification_get_tag): + * UIProcess/API/gtk/WebKitNotification.h: + * UIProcess/API/gtk/WebKitNotificationProvider.cpp: + (WebKitNotificationProvider::withdrawAnyPreviousNotificationMatchingTag): + (WebKitNotificationProvider::show): + * UIProcess/API/gtk/WebKitNotificationProvider.h: + * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: + +2016-11-22 Sergio Villar Senin + + [GTK] Fix introspection warning + https://bugs.webkit.org/show_bug.cgi?id=165026 + + Reviewed by Michael Catanzaro. + + This fixes an introspection annotation for a new API added in r208532. + + * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: + (webkit_web_page_class_init): + +2016-11-21 Carlos Garcia Campos + + [SOUP] Simplify custom protocols handler implementation + https://bugs.webkit.org/show_bug.cgi?id=164922 + + Reviewed by Michael Catanzaro. + + We are using too many classes for this and also the C API that is not needed, because both GTK+ and EFL have + their own APIs and this is not used by WTR at all. + + * PlatformEfl.cmake: Remove files from compilation. + * PlatformGTK.cmake: Ditto. + * Shared/API/c/WKBase.h: + * Shared/API/c/soup/WKBaseSoup.h: Removed. + * UIProcess/API/APICustomProtocolManagerClient.h: Added. + (API::CustomProtocolManagerClient::~CustomProtocolManagerClient): + (API::CustomProtocolManagerClient::startLoading): + (API::CustomProtocolManagerClient::stopLoading): + (API::CustomProtocolManagerClient::invalidate): + * UIProcess/API/C/WKAPICast.h: + * UIProcess/API/C/soup/WKAPICastSoup.h: Removed. + * UIProcess/API/C/soup/WKContextSoup.h: Removed. + * UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp: Removed. + * UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.h: Removed. + * UIProcess/API/C/soup/WKSoupRequestManager.h: Removed. + * UIProcess/API/efl/ewk_context.cpp: Remove unneeded include. + * UIProcess/API/efl/ewk_url_scheme_request.cpp: Use CustomProtocolManagerProxy instead of WKSoupCustomProtocolRequestManagerRef. + (EwkUrlSchemeRequest::EwkUrlSchemeRequest): + (EwkUrlSchemeRequest::finish): + (EwkUrlSchemeRequest::invalidate): + * UIProcess/API/efl/ewk_url_scheme_request_private.h: + (EwkUrlSchemeRequest::create): + (EwkUrlSchemeRequest::manager): + * UIProcess/API/gtk/WebKitCustomProtocolManagerClient.cpp: Added. + (attachCustomProtocolManagerClientToContext): + * UIProcess/API/gtk/WebKitCustomProtocolManagerClient.h: Renamed from Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.h. + * UIProcess/API/gtk/WebKitPrivate.h: + * UIProcess/API/gtk/WebKitRequestManagerClient.cpp: Removed. + * UIProcess/API/gtk/WebKitRequestManagerClient.h: Removed. + * UIProcess/API/gtk/WebKitURISchemeRequest.cpp: Use CustomProtocolManagerProxy instead of WebSoupCustomProtocolRequestManager. + (webkitURISchemeRequestCreate): + (webkitURISchemeRequestCancel): + (webkitURISchemeRequestGetManager): + (webkitURISchemeRequestInvalidate): + (webkitURISchemeRequestReadCallback): + (webkit_uri_scheme_request_finish_error): + * UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h: + * UIProcess/API/gtk/WebKitWebContext.cpp: + (webkitWebContextConstructed): + (webkitWebContextDispose): + (webkit_web_context_register_uri_scheme): + (webkitWebContextStartLoadingCustomProtocol): + (webkitWebContextInvalidateCustomProtocolRequests): + * UIProcess/API/gtk/WebKitWebContextPrivate.h: + * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h: + * UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm: + (WebKit::CustomProtocolManagerProxy::processDidClose): + * UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp: + (WebKit::CustomProtocolManagerProxy::processDidClose): Invalidate the client. + (WebKit::CustomProtocolManagerProxy::startLoading): Notify the client. + (WebKit::CustomProtocolManagerProxy::stopLoading): Ditto. + (WebKit::CustomProtocolManagerProxy::didReceiveResponse): Notify the network process. + (WebKit::CustomProtocolManagerProxy::didLoadData): Ditto. + (WebKit::CustomProtocolManagerProxy::didFailWithError): Ditto. + (WebKit::CustomProtocolManagerProxy::didFinishLoading): Ditto. + * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp: Removed. + * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h: Removed. + * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp: Removed. + * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.h: Removed. + * UIProcess/Network/NetworkProcessProxy.cpp: + (WebKit::NetworkProcessProxy::didClose): Notify the CustomProtocolManagerProxy. + * UIProcess/WebProcessPool.cpp: + (WebKit::WebProcessPool::WebProcessPool): Initialize the CustomProtocolManagerClient and remove the all supplement. + (WebKit::WebProcessPool::setCustomProtocolManagerClient): + (WebKit::WebProcessPool::registerSchemeForCustomProtocol): In case of soup cache the given protocol. + (WebKit::WebProcessPool::unregisterSchemeForCustomProtocol): In case of soup delete the given protocol from the cache. + * UIProcess/WebProcessPool.h: + * UIProcess/efl/RequestManagerClientEfl.cpp: Do not use the C API, but API::CustomProtocolManagerClient. + (WebKit::RequestManagerClientEfl::RequestManagerClientEfl): + (WebKit::RequestManagerClientEfl::registerURLSchemeHandler): + * UIProcess/efl/RequestManagerClientEfl.h: + * UIProcess/efl/WebProcessPoolEfl.cpp: + * UIProcess/gtk/WebProcessPoolGtk.cpp: + * UIProcess/soup/WebProcessPoolSoup.cpp: + (WebKit::WebProcessPool::platformInitializeNetworkProcess): Use m_urlSchemesRegisteredForCustomProtocols to + build the list of custom protocols to send to the network process. + +2016-11-21 Alex Christensen + + Fix Sierra CMake build after r208452 + https://bugs.webkit.org/show_bug.cgi?id=164437 + + * UIProcess/Cocoa/WebViewImpl.mm: + (WebKit::WebViewImpl::updateMediaTouchBar): + I haven't enabled VIDEO_PRESENTATION_MODE in the CMake build yet. + It's needed for WebPlaybackSessionInterfaceMac to exist. + +2016-11-21 Carlos Garcia Campos + + Unreviewed. Update OptionsGTK.cmake and NEWS for 2.15.2 release. + + * gtk/NEWS: Add release notes for 2.15.2. + +2016-11-21 Carlos Garcia Campos + + Remove m_customProtocolManagerProxy from WebProcessProxy + https://bugs.webkit.org/show_bug.cgi?id=164908 + + Reviewed by Andreas Kling. + + Since the network process is mandatory, the custom protocol manager proxy of WebProcessProxy is unused and can + be removed. + + * UIProcess/WebProcessProxy.cpp: + (WebKit::WebProcessProxy::WebProcessProxy): + * UIProcess/WebProcessProxy.h: + +2016-11-20 Zan Dobersek + + [EncryptedMedia] Make EME API runtime-enabled + https://bugs.webkit.org/show_bug.cgi?id=164927 + + Reviewed by Jer Noble. + + Add the new EncryptedMediaAPI preference. Set the same feature + flag on the shared RuntimeEnabledFeatures object to the + corresponding value that's stored in the WebPreferencesStore. + + InjectedBundle::overrideBoolPreferenceForTestRunner() does the + same when the 'WebKitEncryptedMediaAPIEnabled' preference is + overridden in WKTR for testing purposes. + + * Shared/WebPreferencesDefinitions.h: + * WebProcess/InjectedBundle/InjectedBundle.cpp: + (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::updatePreferences): + +2016-11-19 Antti Koivisto + + 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-11-19 Simon Fraser + + [iOS WK2] When zoomed in and panning on pages with fixed bars, parts of the bars are sometimes missing + https://bugs.webkit.org/show_bug.cgi?id=164855 + + Reviewed by Sam Weinig. + + During UI-process panning and zooming, we send visible rect updates to the web process + with inStableState=false, and don't update GraphicsLayers until we get into a stable state. + + This causes a problem where the web process has a stale notion of where the GraphicsLayers + for position:fixed elements are, but is then told to update tiling coverage with an up-to-date + visible rect. The existing "sync layer positions" path isn't useful to fix this, because it + breaks the relationship between the GraphicsLayer positions and their FixedPositionViewportConstraints + in the scrolling tree. + + To address this, add the notion of an Optional<> approximatePosition on GraphicsLayers. This is used + only by the coverageRect computation code path, and is cleared by a setPosition(). ApproximatePositions + are pushed onto GraphicsLayers via the syncViewportConstrainedLayerPositions() code path (renamed to + reconcileViewportConstrainedLayerPositions). + + Tested by scrollingcoordinator/ios/non-stable-viewport-scroll.html + + * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: + (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll): + * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h: + * UIProcess/Scrolling/RemoteScrollingTree.cpp: + (WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll): + * UIProcess/Scrolling/RemoteScrollingTree.h: + * WebProcess/Scrolling/RemoteScrollingCoordinator.mm: + (WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode): + * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: + (WebKit::CompositingCoordinator::flushPendingLayerChanges): + * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: + (WebKit::CoordinatedLayerTreeHost::didFlushRootLayer): + * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: + (WebKit::LayerTreeHostGtk::flushPendingLayerChanges): + * WebProcess/WebPage/ios/WebPageIOS.mm: + (WebKit::WebPage::updateVisibleContentRects): Always push the custom fixed position rect down, but send + ScrollingLayerPositionAction::SetApproximate if the state is not stable. + * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: + (WebKit::RemoteLayerTreeDrawingArea::flushLayers): + * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: + (WebKit::TiledCoreAnimationDrawingArea::flushLayers): + +2016-11-18 Simon Fraser + + Make it possible to test non-stable-state scrolling on iOS + https://bugs.webkit.org/show_bug.cgi?id=164905 + + Reviewed by Dan Bernstein. + + Make it possible for an iOS layout test to force every visible rect update + from the UI process to the web process to be in a non-stable state. This emulates + what happens during panning and zooming interactions, and allows us to test the + scrolling and layer trees in these transient states. + + This is done by adding a testing property on WKWebView, _stableStateOverride, whose + getters and setters are overridden in TestRunnerWKWebView. When non-nil, we _updateVisibleContentRectAfterScrollInView + consults the NSNumber's boolValue and uses it to override the stable state. + + To facilitate this kind of testing, also add immediateScrollToOffset() and + immediateZoomToScale() to UIScriptController. Finally, add doAfterPresentationUpdate() + which provides a callback that fires after one trip to the web process and back. + + * UIProcess/API/Cocoa/WKWebView.mm: + (-[WKWebView _updateVisibleContentRectAfterScrollInView:]): + (-[WKWebView _stableStateOverride]): + (-[WKWebView _setStableStateOverride:]): + * UIProcess/API/Cocoa/WKWebViewPrivate.h: + +2016-11-18 Simon Fraser + + [iOS WK2] Eliminate a source of flakiness in layout tests by forcing WebPage into "responsive" mode for all tests, with an internals override + https://bugs.webkit.org/show_bug.cgi?id=164980 + + Reviewed by Chris Dumez. + + WebPage::eventThrottlingDelay() uses a latency estimate based on the round-trip time from the UI process + to affect behavior, including whether scroll events are fired. This also affects the FrameView "scrolledByUser" + flag that impacts tile coverage. + + During testing, latency falling above or below the 16ms threshold could affect behavior. Fix by forcing + WebPage into "responsive" mode while running tests, via InjectedBundlePage::prepare(). + + Add a nullable internals property so that a test can specify responsive, unresponsive or default behavior. + + * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: + (WKBundlePageSetEventThrottlingBehaviorOverride): + * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: + * WebProcess/WebPage/ios/WebPageIOS.mm: + (WebKit::WebPage::eventThrottlingDelay): + +2016-11-18 Simon Fraser + + Remove use of std::chrono in WebPage and entrained code + https://bugs.webkit.org/show_bug.cgi?id=164967 + + Reviewed by Tim Horton. + + Replace std::chrono with Seconds and Monotonic Time. + + Use more C++11 initialization for WebPage data members. + + * Shared/VisibleContentRectUpdateInfo.cpp: + (WebKit::operator<<): + * Shared/VisibleContentRectUpdateInfo.h: + (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo): + (WebKit::VisibleContentRectUpdateInfo::timestamp): + * Shared/WebCoreArgumentCoders.cpp: + (IPC::ArgumentCoder::encode): + (IPC::ArgumentCoder::decode): + (IPC::ArgumentCoder::encode): + (IPC::ArgumentCoder::decode): + * Shared/WebCoreArgumentCoders.h: + * UIProcess/ios/WKContentView.mm: + (WebKit::HistoricalVelocityData::HistoricalVelocityData): + (WebKit::HistoricalVelocityData::velocityForNewData): + (WebKit::HistoricalVelocityData::append): + (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): + * WebProcess/WebCoreSupport/WebChromeClient.h: + * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: + (WebKit::WebChromeClient::eventThrottlingDelay): + * WebProcess/WebPage/ViewUpdateDispatcher.h: + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::WebPage): + (WebKit::m_userActivityHysteresis): + (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): + +2016-11-18 Dean Jackson + + AX: "(inverted-colors)" media query only matches on page reload; should match on change + https://bugs.webkit.org/show_bug.cgi?id=163564 + + + Reviewed by Simon Fraser. + + Listen for the appropriate notifications that accessibility settings + have changed. This is a single notification on macOS, which uses WebViewImpl, + and more fine-grained notifications on iOS, using WKWebView. + + When we see the notification, send a message to the WebProcess which will + then tell the WebCore::Page. + + * UIProcess/API/Cocoa/WKWebView.mm: + (-[WKWebView _initializeWithConfiguration:]): + (-[WKWebView _accessibilitySettingsDidChange:]): + * UIProcess/API/Cocoa/WKWebViewPrivate.h: + * UIProcess/Cocoa/WebViewImpl.h: + * UIProcess/Cocoa/WebViewImpl.mm: + (-[WKAccessibilitySettingsObserver initWithImpl:]): + (-[WKAccessibilitySettingsObserver dealloc]): + (-[WKAccessibilitySettingsObserver _settingsDidChange:]): + (WebKit::WebViewImpl::WebViewImpl): + (WebKit::WebViewImpl::accessibilitySettingsDidChange): + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::accessibilitySettingsDidChange): + * UIProcess/WebPageProxy.h: + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::accessibilitySettingsDidChange): + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/WebPage.messages.in: + +2016-11-18 Jeremy Jones + + USE WK_MAC_TBA for version number in _webViewRequestPointerLock:(WKWebView *)webView WK_API_AVAILABLE(macosx(10.12)) + https://bugs.webkit.org/show_bug.cgi?id=164962 + + Reviewed by Dean Jackson. + + * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: + +2016-11-18 Enrica Casucci + + Refactor drag and drop for WebKit2 to encode DragData message exchange. + https://bugs.webkit.org/show_bug.cgi?id=164945 + + Reviewed by Tim Horton. + + * Shared/WebCoreArgumentCoders.cpp: + (IPC::ArgumentCoder::encode): + (IPC::ArgumentCoder::decode): + * Shared/WebCoreArgumentCoders.h: + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::performDragControllerAction): + * WebProcess/WebCoreSupport/WebDragClient.cpp: + (WebKit::WebDragClient::willPerformDragDestinationAction): + (WebKit::WebDragClient::actionMaskForDrag): + * WebProcess/WebCoreSupport/WebDragClient.h: + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::performDragControllerAction): + * WebProcess/WebPage/WebPage.h: + * WebProcess/WebPage/WebPage.messages.in: + +2016-11-18 Jeremy Jones + + Add runtime flag to enable pointer lock. Enable pointer lock feature for mac. + https://bugs.webkit.org/show_bug.cgi?id=163801 + + Reviewed by Simon Fraser. + + Add SPI to notify client of pointer lock and for client to allow or deny. + Unlock pointer when view is not longer active. + + * Configurations/FeatureDefines.xcconfig: + * Shared/WebPreferencesDefinitions.h: + * UIProcess/API/APIUIClient.h: + (API::UIClient::requestPointerLock): + (API::UIClient::didLosePointerLock): + * UIProcess/API/C/WKPage.cpp: + (WKPageSetPageUIClient): + (WKPageDidAllowPointerLock): + (WKPageDidDenyPointerLock): + * UIProcess/API/C/WKPagePrivate.h: + * UIProcess/API/C/WKPageUIClient.h: + * UIProcess/API/C/WKPreferences.cpp: + * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: + * UIProcess/Cocoa/UIDelegate.h: + * UIProcess/Cocoa/UIDelegate.mm: + (WebKit::UIDelegate::setDelegate): + (WebKit::UIDelegate::UIClient::requestPointerLock): + (WebKit::UIDelegate::UIClient::didLosePointerLock): + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::dispatchActivityStateChange): + (WebKit::WebPageProxy::resetStateAfterProcessExited): + (WebKit::WebPageProxy::requestPointerLock): + (WebKit::WebPageProxy::didAllowPointerLock): + (WebKit::WebPageProxy::didDenyPointerLock): + (WebKit::WebPageProxy::requestPointerUnlock): + * UIProcess/WebPageProxy.h: + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::updatePreferences): + +2016-11-17 Carlos Garcia Campos + + Downloads started by context menu actions should also have a web view associated + https://bugs.webkit.org/show_bug.cgi?id=164364 + + Reviewed by Michael Catanzaro. + + When a request is converted to a download WebPageProxy calls handleDownloadRequest() and clients handle that to + associate the web view to the download. When a download is started by a context menu action, WebPageProxy calls + WebProcessPool::download() with this as initiatingPage parameter, but clients are not notified in this case. + + * UIProcess/API/gtk/WebKitDownload.cpp: + (webkitDownloadCreateForRequest): Deleted. + * UIProcess/API/gtk/WebKitDownloadPrivate.h: + * UIProcess/API/gtk/WebKitWebContext.cpp: + (webkitWebContextStartDownload): Use webkitWebContextGetOrCreateDownload() after WebProcessPool::download() + because the WebKitDownload could have already been created by the web view download handler at this point. + * UIProcess/API/gtk/WebKitWebView.cpp: + (webkit_web_view_download_uri): We no longer need to associate the web view to the download here. + * UIProcess/WebProcessPool.cpp: + (WebKit::WebProcessPool::download): If an initiatingPage has been passed, call handleDownloadRequest() to notify + the page client. + +2016-11-17 Alex Christensen + + REGRESSION: API test _WKDownload.ConvertResponseToDownload is a flaky timeout + https://bugs.webkit.org/show_bug.cgi?id=164631 + + Reviewed by Carlos Garcia Campos. + + * NetworkProcess/NetworkResourceLoader.cpp: + (WebKit::NetworkResourceLoader::convertToDownload): + I could reproduce the flaky failure 100% of the time when not using NETWORK_SESSION + by adding a usleep(1000000) in NetworkResourceLoader::convertToDownload. m_networkLoad + was not being set to nullptr before it was being checked in NetworkResourceLoader::abort + +2016-11-17 Alex Christensen + + Fix CMake build after r208865 + https://bugs.webkit.org/show_bug.cgi?id=164894 + + * PlatformMac.cmake: + Add new files. + +2016-11-17 Ryosuke Niwa + + WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled should keep text replacement enabled + https://bugs.webkit.org/show_bug.cgi?id=164857 + + + Reviewed by Wenson Hsieh. + + * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: + (WebKit::InjectedBundleNodeHandle::setHTMLInputElementSpellcheckEnabled): + +2016-11-17 John Wilander + + Resource load statistics: Cover further data records, count removed data records, and only fire handler when needed + https://bugs.webkit.org/show_bug.cgi?id=164659 + + Reviewed by Andy Estes. + + * UIProcess/WebResourceLoadStatisticsStore.cpp: + (WebKit::WebResourceLoadStatisticsStore::removeDataRecords): + Consistent naming with 'remove' rather than 'delete'. + Now removes localStorage, IndexDB, disk cache, and memory cache too. + Updates statistics with number of times it has removed data records. + (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): + No longer checks whether it has enough data since the classification rules + are absolute, not relative. + (WebKit::WebResourceLoadStatisticsStore::clearDataRecords): Deleted. + * UIProcess/WebResourceLoadStatisticsStore.h: + Consistent naming with 'remove' rather than 'delete'. + +2016-11-17 Brady Eidson + + 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 . + + 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-11-17 Saam Barati + + Remove async/await compile time flag and enable tests + https://bugs.webkit.org/show_bug.cgi?id=164828 + + + Reviewed by Yusuke Suzuki. + + * Configurations/FeatureDefines.xcconfig: + +2016-11-17 Yusuke Suzuki + + [JSC] WTF::TemporaryChange with WTF::SetForScope + https://bugs.webkit.org/show_bug.cgi?id=164761 + + Reviewed by Saam Barati. + + * PluginProcess/PluginControllerProxy.cpp: + (WebKit::PluginControllerProxy::initialize): + * PluginProcess/WebProcessConnection.cpp: + (WebKit::WebProcessConnection::didReceiveMessage): + (WebKit::WebProcessConnection::didReceiveSyncMessage): + * Shared/API/Cocoa/WKRemoteObjectCoder.mm: + (createEncodedObject): + (decodeObject): + * UIProcess/API/Cocoa/WKWebView.mm: + (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]): + * UIProcess/Cocoa/WebViewImpl.mm: + (WebKit::WebViewImpl::updateTextTouchBar): + * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: + (WebKit::ScrollingTreeOverflowScrollingNodeIOS::commitStateAfterChildren): + * UIProcess/gtk/WebPasteboardProxyGtk.cpp: + (WebKit::WebPasteboardProxy::writeToClipboard): + * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: + (WebKit::CompositingCoordinator::flushPendingLayerChanges): + (WebKit::CompositingCoordinator::purgeBackingStores): + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::mouseEvent): + (WebKit::WebPage::keyEvent): + (WebKit::WebPage::dispatchTouchEvent): + (WebKit::WebPage::setInitialFocus): + (WebKit::WebPage::insertTextAsync): + * WebProcess/WebPage/ios/WebPageIOS.mm: + (WebKit::WebPage::dynamicViewportSizeUpdate): + * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm: + * WebProcess/WebPage/mac/WebPageMac.mm: + +2016-11-16 Brent Fulgham + + Unreviewed build fix after r208589 + + The generated com.apple.WebKit.plugin-common.sb file was not getting copied into + the Resources folder, so was not deployed with WebKit. We need to treat it like + com.apple.WebProcess.sb and the other generated files. + + * WebKit2.xcodeproj/project.pbxproj: Tell Xcode to include the generated file in + the framework Resources. + +2016-11-16 Yusuke Suzuki + + [ES6][WebCore] Change ES6_MODULES compile time flag to runtime flag + https://bugs.webkit.org/show_bug.cgi?id=164827 + + Reviewed by Ryosuke Niwa. + + * Configurations/FeatureDefines.xcconfig: + * Shared/WebPreferencesDefinitions.h: + Annotated ES6 Modules option with DEFAULT_EXPERIMENTAL_FEATURES_ENABLED. + * UIProcess/API/C/WKPreferences.cpp: + (WKPreferencesSetES6ModulesEnabled): + (WKPreferencesGetES6ModulesEnabled): + * UIProcess/API/C/WKPreferencesRefPrivate.h: + * WebProcess/InjectedBundle/InjectedBundle.cpp: + (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): + * WebProcess/WebPage/WebPage.cpp: + (WebKit::WebPage::updatePreferences): + +2016-11-16 Simon Fraser + + Add logging support to VisibleContentRectUpdateInfo + https://bugs.webkit.org/show_bug.cgi?id=164825 + + Reviewed by Zalan Bujtas. + + Add TextStream output to VisibleContentRectUpdateInfo. Just piping it into a logging + stream does single-line output, so also make a convenience dump() function that will + product multiline output. Result look like: + + (VisibleContentRectUpdateInfo + (lastLayerTreeTransactionID 54) + (exposedContentRect (523.44,1258.63) width=676.20 height=901.60) + (unobscuredContentRect (523.44,1293.41) width=676.20 height=866.82) + (unobscuredRectInScrollViewCoordinates (0,39.50) width=768 height=984.50) + (customFixedPositionRect (219.64,935) width=980 height=1225) + (obscuredInset width=0 height=39.50) + (scale 1.14) + (inStableState 0) + (timestamp 736446.61) + (verticalVelocity -11.36)) + + * Shared/VisibleContentRectUpdateInfo.cpp: + (WebKit::VisibleContentRectUpdateInfo::dump): + (WebKit::operator<<): + * Shared/VisibleContentRectUpdateInfo.h: + * UIProcess/ios/WKContentView.mm: + (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): + +2016-11-15 Simon Fraser + + [iOS WK2] Scroll view scrolling and zooming animations can keep running across page loads + https://bugs.webkit.org/show_bug.cgi?id=164810 + + Reviewed by Tim Horton. + + Scrolling and zooming animations can leak across page loads, which makes tests flakey, + and is unexpected by users. + + Tested by scrollingcoordinator/ios/sync-layer-positions-after-scroll.html followed by + scrollingcoordinator/ios/ui-scrolling-tree.html + + * UIProcess/API/Cocoa/WKWebView.mm: + (-[WKWebView _didCommitLoadForMainFrame]): + +2016-11-15 Jon Lee + + Report active video and audio capture devices separately + https://bugs.webkit.org/show_bug.cgi?id=164769 + + Reviewed by Eric Carlson. + + Replace kWKMediaHasActiveCaptureDevice with kWKMediaHasActiveAudioCaptureDevice and + kWKMediaHasActiveVideoCaptureDevice + + * UIProcess/API/C/WKPage.cpp: + (WKPageGetMediaState): + * UIProcess/API/C/WKPagePrivate.h: + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::isPlayingMediaDidChange): Update the mask to include the two + bits. + +2016-11-14 Simon Fraser + + [iOS WK2] Implement support for visual viewports + https://bugs.webkit.org/show_bug.cgi?id=164765 + + Reviewed by Tim Horton. + + Adopt the visual viewport scrolling model in iOS WK2. + + Pass the parameters used for computing the layout viewport up to WK2 via RemoteLayerTreeTransaction. + These are stored on WebPageProxy. When they change, _didCommitLayerTree triggers a -_updateVisibleContentRects. + + WebPageProxy::computeCustomFixedPositionRect() is the function that computes the "override" layout viewport. + It starts with the baseLayoutViewportSize from the web process (which is based on the initial containing block + size), then ensures that it's no smaller than the unobscured content rect, since it makes no sense for the + layout viewport to be smaller than the visual viewport. The static FrameView::computeLayoutViewportOrigin() + is then use to "push" the layout viewport around as the visual viewport changes. + + * Shared/VisibleContentRectUpdateInfo.h: + * Shared/WebCoreArgumentCoders.cpp: Encode LayoutSize and LayoutPoint. + (IPC::ArgumentCoder::encode): + (IPC::ArgumentCoder::decode): + (IPC::ArgumentCoder::encode): + (IPC::ArgumentCoder::decode): + * Shared/WebCoreArgumentCoders.h: + * Shared/mac/RemoteLayerTreeTransaction.h: + (WebKit::RemoteLayerTreeTransaction::baseLayoutViewportSize): + (WebKit::RemoteLayerTreeTransaction::setBaseLayoutViewportSize): + (WebKit::RemoteLayerTreeTransaction::minStableLayoutViewportOrigin): + (WebKit::RemoteLayerTreeTransaction::setMinStableLayoutViewportOrigin): + (WebKit::RemoteLayerTreeTransaction::maxStableLayoutViewportOrigin): + (WebKit::RemoteLayerTreeTransaction::setMaxStableLayoutViewportOrigin): + * Shared/mac/RemoteLayerTreeTransaction.mm: + (WebKit::RemoteLayerTreeTransaction::encode): + (WebKit::RemoteLayerTreeTransaction::decode): + (WebKit::RemoteLayerTreeTransaction::description): + * UIProcess/API/Cocoa/WKWebView.mm: + (-[WKWebView _didCommitLayerTree:]): + * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h: + (WebKit::RemoteScrollingCoordinatorProxy::visualViewportEnabled): Accessor. + * UIProcess/WebPageProxy.h: + (WebKit::WebPageProxy::customFixedPositionRect): + * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: + (WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect): + * UIProcess/ios/WKContentView.mm: + (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInset:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): + (-[WKContentView _didCommitLayerTree:]): + * UIProcess/ios/WebPageProxyIOS.mm: + (WebKit::WebPageProxy::computeCustomFixedPositionRect): When visual viewports are enabled, compute + the layout viewport rect, taking the baseLayoutViewportSize and the current unobscured rect into account. + (WebKit::WebPageProxy::updateLayoutViewportParameters): + * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: + (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): + * WebProcess/WebPage/WebPage.cpp: Encode in the transaction the layout viewport parameters (with minor refactor). + (WebKit::WebPage::willCommitLayerTree): + * WebProcess/WebPage/ios/WebPageIOS.mm: + (WebKit::WebPage::updateVisibleContentRects): This is where the web process receives the new override layout viewport + from the web process (with some logging). + +2016-11-15 Jon Lee + + Remove HasMediaCaptureDevice + https://bugs.webkit.org/show_bug.cgi?id=164767 + + + Reviewed by Eric Carlson. + + * UIProcess/API/C/WKPage.cpp: Remove kWKMediaHasCaptureDevice. + (WKPageGetMediaState): + * UIProcess/API/C/WKPagePrivate.h: + +2016-11-15 Daniel Bates + + Disallow loads using HTTP 0.9 at the ResourceHandle/NetworkDataTask level + https://bugs.webkit.org/show_bug.cgi?id=164662 + + + Reviewed by Alex Christensen and Brady Eidson. + + Make changes to NetworkDataTask similar to the changes made to ResourceHandle so as to + disallow non-default port HTTP 0.9 loads when using the ENABLE(NETWORK_SESSION) networking + code path in WebKit2. + + * NetworkProcess/NetworkDataTask.cpp: + (WebKit::NetworkDataTask::didReceiveResponse): Added. Fail the load if it is using HTTP 0.9. + Otherwise notify the client that we received a response. + * NetworkProcess/NetworkDataTask.h: + * NetworkProcess/NetworkDataTaskBlob.cpp: + (WebKit::NetworkDataTaskBlob::resume): Substitute dispatchDidReceiveResponse() for didReceiveResponse() + as the latter has been renamed to the former. + (WebKit::NetworkDataTaskBlob::getSizeForNext): Ditto. + (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse): Renamed from didReceiveResponse(). + * NetworkProcess/NetworkDataTaskBlob.h: + * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: + * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: + (WebKit::NetworkDataTaskCocoa::didReceiveResponse): Deleted. + * NetworkProcess/soup/NetworkDataTaskSoup.cpp: + (WebKit::NetworkDataTaskSoup::didSendRequest): Substitute dispatchDidReceiveResponse() for didReceiveResponse() + as the latter has been renamed to the former. + (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse): Renamed from didReceiveResponse(). Also + remove the local variable response and inline its value into the call to ResourceHandle::didReceiveResponse() + as this variable is used exactly once in this function and its name does not describe its purpose any more + than its value. + (WebKit::NetworkDataTaskSoup::didRequestNextPart): Substitute dispatchDidReceiveResponse() for didReceiveResponse() + as the latter has been renamed to the former. + * NetworkProcess/soup/NetworkDataTaskSoup.h: + +2016-11-14 Alex Christensen + + Move SecurityOrigin::createFromDatabaseIdentifier to SecurityOriginData + https://bugs.webkit.org/show_bug.cgi?id=164720 + + Reviewed by Brady Eidson. + + * DatabaseProcess/DatabaseProcess.cpp: + (WebKit::DatabaseProcess::indexedDatabaseOrigins): + * DatabaseProcess/DatabaseProcess.h: + * NetworkProcess/NetworkProcess.cpp: + (WebKit::fetchDiskCacheEntries): + * Shared/API/c/WKSecurityOriginRef.cpp: + (WKSecurityOriginCreateFromDatabaseIdentifier): + * Shared/WebsiteData/WebsiteData.cpp: + (WebKit::WebsiteData::Entry::encode): + (WebKit::WebsiteData::Entry::decode): + * Shared/WebsiteData/WebsiteData.h: + * UIProcess/API/C/WKKeyValueStorageManager.cpp: + (WKKeyValueStorageManagerGetStorageDetailsByOrigin): + * UIProcess/Storage/LocalStorageDatabaseTracker.cpp: + (WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince): + (WebKit::LocalStorageDatabaseTracker::origins): + * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: + (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): + (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): + * UIProcess/WebPageProxy.cpp: + (WebKit::WebPageProxy::exceededDatabaseQuota): + (WebKit::WebPageProxy::reachedApplicationCacheOriginQuota): + (WebKit::WebPageProxy::requestGeolocationPermissionForFrame): + * UIProcess/WebsiteData/WebsiteDataStore.cpp: + (WebKit::WebsiteDataStore::fetchData): + (WebKit::WebsiteDataStore::removeData): + (WebKit::WebsiteDataStore::mediaKeyOrigins): + * WebProcess/InjectedBundle/API/c/WKBundle.cpp: + (WKBundleSetDatabaseQuota): + * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: + (WebKit::WebMediaKeyStorageManager::getMediaKeyOrigins): + * WebProcess/Storage/StorageAreaImpl.cpp: + (WebKit::StorageAreaImpl::create): + (WebKit::StorageAreaImpl::StorageAreaImpl): + (WebKit::StorageAreaImpl::securityOrigin): + * WebProcess/Storage/StorageAreaImpl.h: + * WebProcess/Storage/StorageAreaMap.cpp: + (WebKit::StorageAreaMap::dispatchSessionStorageEvent): + (WebKit::StorageAreaMap::dispatchLocalStorageEvent): + * WebProcess/Storage/StorageAreaMap.h: + (WebKit::StorageAreaMap::securityOrigin): + * WebProcess/Storage/StorageNamespaceImpl.cpp: + (WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap): + (WebKit::StorageNamespaceImpl::storageArea): + * WebProcess/Storage/StorageNamespaceImpl.h: + * WebProcess/WebCoreSupport/WebChromeClient.cpp: + (WebKit::WebChromeClient::exceededDatabaseQuota): + * WebProcess/WebProcess.cpp: + (WebKit::WebProcess::fetchWebsiteData): + +2016-11-14 Brent Fulgham + + [Mac][iOS][WK2] Tighten permissions to change CapsLock delay + https://bugs.webkit.org/show_bug.cgi?id=164725 + + + Reviewed by Alexey Proskuryakov. + + * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: Limit access + to the IOKit connection that actually needs it. + +2016-11-14 Brent Fulgham + + Unreviewed sandbox fix after r208702 + + Correct version check to avoid breaking users in Safari Technology Preview + or WebKit nightlies. + + * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: + * WebProcess/com.apple.WebProcess.sb.in: + +2016-11-14 Pranjal Jumde + + Keychain access in WebKit should be limited to a single process. Earlier this was blocked on the networking framework requiring direct access to keychain, this will be resolved in the upcoming version of macOS. + https://bugs.webkit.org/show_bug.cgi?id=163710 + + + Reviewed by Darin Adler. + + * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: + * WebProcess/com.apple.WebProcess.sb.in: + 2016-11-13 Darin Adler Remove many includes of ExceptionCode.h