2016-02-29 Ada Chan Adopt the new version of AVOutputDeviceMenuController's showMenuForRect method. https://bugs.webkit.org/show_bug.cgi?id=154823 Reviewed by Tim Horton. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::showPlaybackTargetPicker): (WebKit::WebPageProxy::customPlaybackActionSelected): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::showPlaybackTargetPicker): * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::customPlaybackActionSelected): 2016-02-29 Brent Fulgham [WK2] Stub support for WebsiteDataTypeResourceLoadStatistics https://bugs.webkit.org/show_bug.cgi?id=154689 Reviewed by Sam Weinig. * Shared/WebsiteData/WebsiteDataType.h: Add new WebsiteDataTypeResourceLoadStatistics. * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (dataTypesToString): Handle new type. * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): Ditto. (WebKit::toWKWebsiteDataTypes): Ditto. * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: Add new _WebsiteDataTypeResourceLoadStatistics. 2016-03-01 Alex Christensen Correctly keep track of NetworkDataTasks with and without credentials when using NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154876 Reviewed by Brady Eidson. I was seeing an assertion failure from ASSERT(!m_session.m_dataTaskMap.contains(taskIdentifier())) in the NetworkDataTask constructor sometimes. This is because a task identifier is not enough information to uniquely find a NetworkDataTask in a NetworkSession since r196034 because there are two NSURLSessions in a NetworkSession, one with credentials and one without. The assertion would fire in a case like if we made the first NetworkDataTask with credentials (taskIdentifier is 1) and the first NetworkDataTask without credentials before the first NetworkDataTask with credentials was finished. In that case, the taskIdentifier would also be 1, which would conflict with the other taskIdentifier. That taskIdentifier would uniquely identify the task in the correct NSURLSession, though, so the solution is to keep a map for each NSURLSession in the NetworkSession. * NetworkProcess/NetworkDataTask.h: * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTask::NetworkDataTask): (WebKit::NetworkDataTask::~NetworkDataTask): (WebKit::NetworkDataTask::suspend): (WebKit::serverTrustCredential): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:]): (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]): (-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): (WebKit::NetworkSession::clearCredentials): (WebKit::NetworkSession::dataTaskForIdentifier): (WebKit::NetworkSession::addDownloadID): 2016-03-01 Andreas Kling REGRESSION (r154616): Accelerated drawing is off during the initial load Reviewed by Tim Horton. Load preferences before instantiating the first DrawingArea. This ensures that we do the initial paint using accelerated drawing, and avoids allocating persistent data structures only needed by the software rendering path. * WebProcess/WebPage/WebPage.cpp: 2016-03-01 Alex Christensen Fix tests when using NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154866 Reviewed by Brady Eidson. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::globalCustomProtocolManager): (WebKit::NetworkSession::setCustomProtocolManager): Use a static NeverDestroyed instead of a local NeverDestroyed. This fix was suggested by Darin after I broke the custom protocol tests in r197362. (WebKit::NetworkSession::clearCredentials): In r197223 I added code that I thought cleared the credentials of a session, but it was actually trying (and failing) to remove the credentials from the NSURLCredentialStorage that were stored with NSURLCredentialPersistencePermanent. This was causing credentials stored in an NSURLSession with NSURLCredentialPersistenceForSession to remain for the next tests, and was causing credentials from previous tests, usually from http/tests/loading/basic-credentials-sent-automatically.html, to be used in future tests. Creating a new NSURLSession is the equivalent of CredentialStorage::clearCredentials because it removes all credentials stored with NSURLCredentialPersistenceForSession. 2016-03-01 Carlos Garcia Campos NetworkCache: Web process leaks resource buffer when using shareable reasources https://bugs.webkit.org/show_bug.cgi?id=154852 Reviewed by Darin Adler. ResourceLoader::didReceiveBuffer() expects a PassRefPtr, but we are passing a raw pointer making PassRefPtr to take another reference instead of transfering the ownership as expected. * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::didReceiveResource): 2016-02-29 Zan Dobersek ThreadedCompositor: clean up composition-specific resources before shutting down the thread https://bugs.webkit.org/show_bug.cgi?id=154793 Reviewed by Carlos Garcia Campos. * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::ThreadedCompositor::runCompositingThread): Before concluding the compositing thread run, clean up all the resources that were allocated at the start, and in the reverse order. Specifically, we now also deallocate the CoordinatedGraphicsScene and the SimpleViewportController objects. This way these are not deallocated on the main thread when the ThreadedCompositor destructor would otherwise clean them up. 2016-02-29 Zan Dobersek ThreadSafeCoordinatedSurface: remove the unused private create() static method https://bugs.webkit.org/show_bug.cgi?id=154792 Reviewed by Carlos Garcia Campos. Remove the static ThreadSafeCoordinatedSurface::create() method that accepted a std::unique_ptr object as its third parameter. This was not used anywhere. * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp: (WebKit::ThreadSafeCoordinatedSurface::create): Deleted. * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.h: 2016-02-29 Simon Fraser Remove the experimental feature of antialiased font dilation https://bugs.webkit.org/show_bug.cgi?id=154843 Reviewed by Zalan Bujtas. Remove the "antialiased font dilation" code path, and related prefs. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetAntialiasedFontDilationEnabled): (WKPreferencesGetAntialiasedFontDilationEnabled): * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _antialiasedFontDilationEnabled]): Deleted. (-[WKPreferences _setAntialiasedFontDilationEnabled:]): Deleted. * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Deleted. 2016-02-29 Brady Eidson Modern IDB: WebKit 2 IPC layer easily confused about multiple web processes being connected. https://bugs.webkit.org/show_bug.cgi?id=154837 Reviewed by Alex Christensen. The crux of the bug is that WebProcesses cannot assign themselves server-unique identifiers... The server must do that for them. A once-per-session-per-WebProcess sync message and a few updates to connection management fix this. * DatabaseProcess/DatabaseToWebProcessConnection.cpp: (WebKit::DatabaseToWebProcessConnection::didReceiveSyncMessage): (WebKit::generateConnectionToServerIdentifier): (WebKit::DatabaseToWebProcessConnection::establishIDBConnectionToServer): * DatabaseProcess/DatabaseToWebProcessConnection.h: * DatabaseProcess/DatabaseToWebProcessConnection.messages.in: * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: (WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): (WebKit::generateConnectionToServerIdentifier): Deleted. * WebProcess/Databases/WebToDatabaseProcessConnection.cpp: (WebKit::WebToDatabaseProcessConnection::didReceiveMessage): (WebKit::WebToDatabaseProcessConnection::idbConnectionToServerForSession): * WebProcess/Databases/WebToDatabaseProcessConnection.h: 2016-02-29 Alex Christensen Don't call NetworkProcess::singleton from WebProcess when using NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154829 Reviewed by Anders Carlsson. We were calling NetworkProcess::singleton when making the default session in the WebProcess, which caused bad things to happen. We also were never clearing the credentials in the WebProcess between tests because it used to always call NetworkProcess::singleton, which caused flaky tests. This fixes repeatable crashes in http/tests/media/media-document-referer.html and http/tests/media/media-document.html when using NetworkSession. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::NetworkProcess): (WebKit::NetworkProcess::~NetworkProcess): * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::configurationForType): (WebKit::globalCustomProtocolManager): (WebKit::NetworkSession::setCustomProtocolManager): (WebKit::NetworkSession::defaultSession): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::clearCachedCredentials): 2016-02-29 Gavin Barraclough RefCounter::Event -> RefCounterEvent https://bugs.webkit.org/show_bug.cgi?id=154767 Reviewed by Darin Adler. RefCounter::Event is kinda verbose to use, and there is no need for this to be specific to a particular typeof RefCounter. Move the enum class up to the top level & rename to RefCounterEvent. Also remove UserObservablePageToken - this is vestigial & not really offering anything over just using UserObservablePageCounter::Token directly. * UIProcess/Plugins/PluginProcessManager.cpp: (WebKit::PluginProcessManager::PluginProcessManager): * UIProcess/Plugins/PluginProcessManager.h: * UIProcess/Plugins/mac/PluginProcessManagerMac.mm: (WebKit::PluginProcessManager::updateProcessSuppressionDisabled): * UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::ProcessThrottler): (WebKit::m_backgroundCounter): (WebKit::m_suspendMessageCount): * UIProcess/ProcessThrottler.h: * UIProcess/WebPageProxy.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): (WebKit::m_processSuppressionDisabledForPageCounter): (WebKit::m_hiddenPageThrottlingAutoIncreasesCounter): * UIProcess/WebProcessPool.h: 2016-02-29 Konstantin Tokarev Fixed compilation with !ENABLE(DATABASE_PROCESS). https://bugs.webkit.org/show_bug.cgi?id=154813 Reviewed by Michael Catanzaro. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::terminateDatabaseProcess): Added missing #if guard. 2016-02-29 Adrien Plazas [GTK] Touch slider test fails due to assertion in webkitWebViewBaseTouchEvent() https://bugs.webkit.org/show_bug.cgi?id=153829 Reviewed by Carlos Garcia Campos. Once a touch event sequence is identified as a gesture, remove it from the list of handled touch events. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseTouchEvent): 2016-02-29 Csaba Osztrogonác [Mac][cmake] Unreviewed buildfix after r197177. Just for fun. * PlatformMac.cmake: 2016-02-28 Sam Weinig Reimplement WKPageGroup in terms of WKUserContentController https://bugs.webkit.org/show_bug.cgi?id=154804 Reviewed by Dan Bernstein. Instead of having both WebPageGroup and WebUserContentControllerProxy both keep track of user scripts and user stylesheets, give WebPageGroup a WebUserContentControllerProxy and let it take care of things. This allows us to remove a ton of duplicate code, and provides a convenient way for clients currently using PageGroup based user content insertion to start using UserContentController, since they can now be used at the same time. When using WKPageConfigurationRef, the rule is: - If you don't set a WKUserContentControllerRef, the one from the WKPageGroupRef will be used. - If you do set a WKUserContentControllerRef, it will be used, and the one from the WKPageGroupRef will do nothing for that web view. * DerivedSources.make: Remove WebPageGroupProxy. It no longer is a MessageReceiver. * Shared/WebPageGroupData.cpp: (WebKit::WebPageGroupData::encode): (WebKit::WebPageGroupData::decode): * Shared/WebPageGroupData.h: Stop encoding/decoding user content, instead just encode the identifier to the UserContentController. * UIProcess/API/C/WKPageGroup.cpp: (WKPageGroupGetUserContentController): * UIProcess/API/C/WKPageGroup.h: Add getter for the underlying WKUserContentControllerRef. * UIProcess/API/cpp/WKRetainPtr.h: (WebKit::retainWK): Add retainWK() helper to match RetainPtr's retainPtr() helper. * UIProcess/WebPageGroup.cpp: (WebKit::WebPageGroup::WebPageGroup): (WebKit::WebPageGroup::userContentController): (WebKit::WebPageGroup::addUserStyleSheet): (WebKit::WebPageGroup::addUserScript): (WebKit::WebPageGroup::removeAllUserStyleSheets): (WebKit::WebPageGroup::removeAllUserScripts): (WebKit::WebPageGroup::removeAllUserContent): (WebKit::WebPageGroup::addUserContentExtension): (WebKit::WebPageGroup::removeUserContentExtension): (WebKit::WebPageGroup::removeAllUserContentExtensions): * UIProcess/WebPageGroup.h: Pass through to the WebUserContentControllerProxy. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::finishInitializingWebPageAfterProcessLaunch): (WebKit::WebPageProxy::creationParameters): * UIProcess/WebPageProxy.h: WebPageProxies always have a WebUserContentControllerProxy now, so it can go in a Ref and a few branches can be removed. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createWebPage): If a UserContentController is not passed in, use the one from the PageGroup. * WebKit2.xcodeproj/project.pbxproj: Remove files. * WebProcess/InjectedBundle/InjectedBundle.cpp: Add some #includes that are now needed. * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::getOrCreate): * WebProcess/UserContent/WebUserContentController.h: Modernize WebUserContentController::getOrCreate to return a Ref. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::m_shouldDispatchFakeMouseMoveEvents): (WebKit::WebPage::addUserScript): (WebKit::WebPage::addUserStyleSheet): (WebKit::WebPage::removeAllUserContent): * WebProcess/WebPage/WebPage.h: Store the WebUserContentController in Ref, remove unnecessary branches/asserts. * WebProcess/WebPage/WebPageGroupProxy.cpp: (WebKit::WebPageGroupProxy::WebPageGroupProxy): (WebKit::WebPageGroupProxy::~WebPageGroupProxy): (WebKit::WebPageGroupProxy::userContentController): (WebKit::WebPageGroupProxy::addUserStyleSheet): Deleted. (WebKit::WebPageGroupProxy::addUserScript): Deleted. (WebKit::WebPageGroupProxy::removeAllUserStyleSheets): Deleted. (WebKit::WebPageGroupProxy::removeAllUserScripts): Deleted. (WebKit::WebPageGroupProxy::removeAllUserContent): Deleted. (WebKit::WebPageGroupProxy::addUserContentExtension): Deleted. (WebKit::WebPageGroupProxy::removeUserContentExtension): Deleted. (WebKit::WebPageGroupProxy::removeAllUserContentExtensions): Deleted. * WebProcess/WebPage/WebPageGroupProxy.h: Store a WebUserContentController in a Ref, remove now unnecessary message handling functions. * WebProcess/WebPage/WebPageGroupProxy.messages.in: Removed. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didReceiveMessage): Remove routing to WebPageGroupProxy, which is no longer a MessageReceiver. 2016-02-28 Sam Weinig Bind _WKUserStyleSheets to _WKUserContentWorlds to allow for grouping of user content by associating to a world https://bugs.webkit.org/show_bug.cgi?id=154798 Reviewed by Dan Bernstein. Treat _WKUserStyleSheets like WKUserScripts and allow them to be bound to a _WKUserContentWorld. The immediate benefit of this is allowing a client to bind a set of user content (scripts and stylesheets for now) to a world and have them easily remove all user content associated with that world easily. * Shared/API/APIArray.h: Add helpers removeAllMatching and removeAllOfTypeMatching. * UIProcess/API/APIUserStyleSheet.h: Add API::UserContentWorld member. * UIProcess/API/Cocoa/WKUserContentController.mm: (-[WKUserContentController _removeAllUserScriptsAssociatedWithUserContentWorld:]): (-[WKUserContentController _removeAllUserStyleSheetsAssociatedWithUserContentWorld:]): * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: Add _removeAllUserScriptsAssociatedWithUserContentWorld and _removeAllUserStyleSheetsAssociatedWithUserContentWorld. * UIProcess/API/Cocoa/WKUserScript.mm: (-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]): (toStringVector): Deleted. * UIProcess/API/Cocoa/_WKUserContentWorldInternal.h: (API::toStringVector): Move toStringVector to a location where it can be shared. * UIProcess/API/Cocoa/_WKUserStyleSheet.h: * UIProcess/API/Cocoa/_WKUserStyleSheet.mm: (-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]): Add new initializer which has a world to be bound to. While here, match WKUserScript and add support for the legacy whitelist and blacklists. * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::addProcess): (WebKit::WebUserContentControllerProxy::removeProcess): (WebKit::WebUserContentControllerProxy::addUserContentWorldUse): (WebKit::WebUserContentControllerProxy::shouldSendRemoveUserContentWorldsMessage): (WebKit::WebUserContentControllerProxy::removeUserContentWorldUses): (WebKit::WebUserContentControllerProxy::addUserScript): (WebKit::WebUserContentControllerProxy::removeUserScript): (WebKit::WebUserContentControllerProxy::removeAllUserScripts): (WebKit::WebUserContentControllerProxy::addUserStyleSheet): (WebKit::WebUserContentControllerProxy::removeUserStyleSheet): (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets): * UIProcess/UserContent/WebUserContentControllerProxy.h: Refactor to share the code which decides whether to send AddUserContentWorlds/RemoveUserContentWorlds messages. * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::addUserContentWorlds): (WebKit::WebUserContentController::removeUserContentWorlds): (WebKit::WebUserContentController::addUserScripts): (WebKit::WebUserContentController::removeUserScript): (WebKit::WebUserContentController::removeAllUserScripts): (WebKit::WebUserContentController::addUserStyleSheets): (WebKit::WebUserContentController::removeUserStyleSheet): (WebKit::WebUserContentController::removeAllUserStyleSheets): * WebProcess/UserContent/WebUserContentController.h: * WebProcess/UserContent/WebUserContentController.messages.in: Add support for binding stylesheets to worlds and allow removing all the scripts/stylesheets from a set of worlds at once by passing Vectors of world identifiers in the remove messages. 2016-02-27 Commit Queue Unreviewed, rolling out r197204, r197207, r197211, r197217, r197218, and r197219. https://bugs.webkit.org/show_bug.cgi?id=154780 Caused crashes in WebVideoFullscreenManagerProxy (Requested by ap on #webkit). Reverted changesets: "Add support for playbackControlsManager" https://bugs.webkit.org/show_bug.cgi?id=154742 http://trac.webkit.org/changeset/197204 "Attempted build fix." http://trac.webkit.org/changeset/197207 "Attempted build fix." http://trac.webkit.org/changeset/197211 "Attempted 32-bit build fix." http://trac.webkit.org/changeset/197217 "Another 32-bit build fix." http://trac.webkit.org/changeset/197218 "32-bit!!!" http://trac.webkit.org/changeset/197219 2016-02-26 Carlos Garcia Campos Unreviewed. Fix GTK+ clean build. Add missing header include. * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: 2016-02-26 Carlos Garcia Campos Network cache: old pages returned by disk cache on history navigation after session is restored https://bugs.webkit.org/show_bug.cgi?id=153230 Reviewed by Chris Dumez. Since r181734, the network cache never revalidates resources for history navigation. This is good for the memory cache, but in the case of disk cache, we might end up with outdated pages when restoring the session. When restoring the session happens because of an API request (we also restore the session when recovering from a web process crash), we should revalidate back forward list requests in the disk cache if needed. This will only happen the first time they are loaded after a session restore. After a web process crash, resources will be used uncondionally from the disk cache. * WebProcess/WebPage/WebBackForwardListProxy.cpp: (WebKit::WebBackForwardListProxy::addItemFromUIProcess): Use Ref&& instead of PassRefPtr. * WebProcess/WebPage/WebBackForwardListProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WePage::WebPage): Call restoreSessionInternal passing No as restoredByAPIRequest parameter. (WebKit::WebPage::restoreSessionInternal): Set restoredFromSession flag to the created HistoryItem if the item was restored from session by an API request. (WebKit::WebPage::restoreSession): Call restoreSessionInternal passing Yes as restoredByAPIRequest parameter. * WebProcess/WebPage/WebPage.h: 2016-02-26 Michael Catanzaro Fix a typo. Unreviewed. Shame I didn't notice in the previous commit. * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::removeUserContentWorld): 2016-02-26 Michael Catanzaro Fix GTK and maybe EFL build after r197172. Unreviewed. * CMakeLists.txt: * UIProcess/API/gtk/WebKitUserContent.cpp: (_WebKitUserScript::_WebKitUserScript): * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::removeUserContentWorld): (WebKit::WebUserContentController::addUserScripts): (WebKit::WebUserContentController::removeUserScript): (WebKit::WebUserContentController::removeAllUserScripts): 2016-02-26 Michael Catanzaro [GTK] Fix order of parameters in gtkdoc for webkit_web_view_get_snapshot Unreviewed. * UIProcess/API/gtk/WebKitWebView.cpp: 2016-02-26 Brady Eidson Modern IDB: New database versions are never committed to SQLite. and https://bugs.webkit.org/show_bug.cgi?id=154741 Modern IDB: If a database handle is not open, files are not actually deleted from disk https://bugs.webkit.org/show_bug.cgi?id=154756 Reviewed by Alex Christensen. Add WK2 SPI to force termination of the database process. * UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _terminateDatabaseProcess]): * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::terminateDatabaseProcess): * UIProcess/WebProcessPool.h: 2016-02-26 Alex Christensen Clear credentials and prevent unauthorized credential storage when using NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154755 Reviewed by Brady Eidson. Credentials from previous tests were being used sometimes, notably in http/tests/misc/401-alternative-content.php when running multiple credential-based tests with the same WebKitTestRunner. * NetworkProcess/NetworkDataTask.h: * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::clearCachedCredentials): (WebKit::NetworkProcess::ensurePrivateBrowsingSession): * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTask::NetworkDataTask): (WebKit::NetworkDataTask::tryPasswordBasedAuthentication): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::~NetworkSession): (WebKit::NetworkSession::clearCredentials): (WebKit::NetworkSession::dataTaskForIdentifier): 2016-02-26 Gavin Barraclough Page TimerAlignmentIntervalIncrease mechanism should have upper limit https://bugs.webkit.org/show_bug.cgi?id=154744 Reviewed by Geoff Garen. There would be diminishing returns from throttling timers in background pages infinitely. Add a heuristic to limit appropriately. The flow of data here is WebPageProxy informs WebProcessPool of the number of pages participating in this mechanism, WebProcessPool computes an apropriate limit and pushes this out to the WebProcesses, which in turn update each of their pages. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): - Call updateHidenPageThrottingAutoIncreases on creation. (WebKit::WebPageProxy::updateHidenPageThrottingAutoIncreases): - If increasing timer throttling is enabled increment the counter on WebProcessPool. (WebKit::WebPageProxy::preferencesDidChange): - Call updateHidenPageThrottingAutoIncreases on preferences change. * UIProcess/WebPageProxy.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): - initialize new RefCounter. (WebKit::WebProcessPool::updateHidenPageThrottingAutoIncreaseLimit): - When count of participating pages changes, update the limit. * UIProcess/WebProcessPool.h: * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::setHiddenPageTimerThrottlingIncreaseLimit): - Propagate limit to WebCore::Page. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::setHiddenPageTimerThrottlingIncreaseLimit): - Propagate limit to WebPages. * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: - Added new message. 2016-02-26 Beth Dakin Attempted build fix. * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setUpVideoControlsManagerWithID): (WebKit::WebVideoFullscreenManagerProxy::resetMediaState): 2016-02-26 Anders Carlsson Fix Yosemite build. * UIProcess/API/Cocoa/_WKWebsiteDataSize.mm: (-[_WKWebsiteDataSize sizeOfDataTypes:]): 2016-02-26 Beth Dakin Add support for playbackControlsManager https://bugs.webkit.org/show_bug.cgi?id=154742 -and corresponding- rdar://problem/23833753 Reviewed by Jer Noble. WebVideoFullscreenManagerProxy ensures the model and interface for the UIProcess side of the playbackControlsManager. It also caches the m_controlsManagerContextId so that it can return the controlsManagerInterface. * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h: * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in: * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setUpVideoControlsManagerWithID): (WebKit::WebVideoFullscreenManagerProxy::controlsManagerInterface): Pipe isPlayingMediaDidChange() to WebViewImpl, and use that information to update WebViewImplAdditions. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::isPlayingMediaDidChange): * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::isPlayingMediaDidChange): (WebKit::WebPageProxy::isPlayingVideoWithAudio): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::isPlayingAudio): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::isPlayingMediaDidChange): Pipe setUpVideoControlsManager to the WebVideoFullscreenManager. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::setUpVideoControlsManager): * WebProcess/WebCoreSupport/WebChromeClient.h: Ensure the model an interface for the playbackControlsManager on the WebProcess side and pass the message to the UIProcess to do the same. * WebProcess/cocoa/WebVideoFullscreenManager.h: * WebProcess/cocoa/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::setUpVideoControlsManager): 2016-02-26 Anders Carlsson WKWebsiteDataStore/WKWebsiteDataRecord needs to provide size information about each type of data https://bugs.webkit.org/show_bug.cgi?id=154750 Reviewed by Tim Horton. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::fetchWebsiteData): WebsiteData::Entry now takes a size. * NetworkProcess/NetworkProcess.cpp: (WebKit::fetchDiskCacheEntries): If necessary, compute sizes. (WebKit::NetworkProcess::fetchWebsiteData): Just pass 0 for the CF cache for now. * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: FetchWebsiteData now takes a OptionSet. * Shared/WebsiteData/WebsiteData.cpp: (WebKit::WebsiteData::Entry::encode): (WebKit::WebsiteData::Entry::decode): Encode and decode the size. * Shared/WebsiteData/WebsiteData.h: Add size. * Shared/WebsiteData/WebsiteDataFetchOption.h: Add new enum. * UIProcess/API/C/WKApplicationCacheManager.cpp: (WKApplicationCacheManagerGetApplicationCacheOrigins): Pass an empty OptionSet. * UIProcess/API/C/WKResourceCacheManager.cpp: (WKResourceCacheManagerGetCacheOrigins): Pass an empty OptionSet. * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (-[WKWebsiteDataRecord description]): If we have a size, print it out as well. (-[WKWebsiteDataRecord _dataSize]): Return a size if we have one. * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): Call through to the SPI. (-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]): Compute the right options. * UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h: Import WKWebsiteDataStorePrivate.h. * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Add SPI. * UIProcess/API/Cocoa/_WKWebsiteDataSize.h: * UIProcess/API/Cocoa/_WKWebsiteDataSize.mm: (-[_WKWebsiteDataSize initWithSize:]): (-[_WKWebsiteDataSize totalSize]): (-[_WKWebsiteDataSize sizeOfDataTypes:]): Add _WKWebsiteDataSize header. * UIProcess/API/Cocoa/_WKWebsiteDataSizeInternal.h: Add IPI header. * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::fetchWebsiteData): This now takes a OptionSet. * UIProcess/Network/NetworkProcessProxy.h: Update members. * UIProcess/WebsiteData/WebsiteDataRecord.h: Add a hash map from types to sizes. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): This now takes a OptionSet. * UIProcess/WebsiteData/WebsiteDataStore.h: Update member functions. * WebKit2.xcodeproj/project.pbxproj: Add new files. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::fetchWebsiteData): This now takes a OptionSet. 2016-02-26 Anders Carlsson Add a toWebsiteDataType and reimplement toWebsiteDataTypes using it https://bugs.webkit.org/show_bug.cgi?id=154746 Reviewed by Sam Weinig. * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataType): (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): 2016-02-26 Anders Carlsson Add WTF::OptionSet and use it for the website data types enum https://bugs.webkit.org/show_bug.cgi?id=154733 Reviewed by Geoffrey Garen. This is a pretty mechanical change: Convert all uses of the WebsiteDataTypes enum to WTF::OptionSet. Rename the WebsiteDataTypes enum to WebsiteDataType (since it only represents a single data type), and rename headers. Encode and decode WTF::OptionSet properly. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::fetchWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteDataForOrigins): * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/DatabaseProcess.messages.in: * NetworkProcess/NetworkProcess.cpp: (WebKit::fetchDiskCacheEntries): (WebKit::NetworkProcess::fetchWebsiteData): (WebKit::NetworkProcess::deleteWebsiteData): (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * Platform/IPC/ArgumentCoders.h: (IPC::ArgumentCoder>::encode): (IPC::ArgumentCoder>::decode): * Scripts/webkit/messages.py: (class_template_headers): * Shared/WebsiteData/WebsiteData.h: * Shared/WebsiteData/WebsiteDataType.h: Renamed from Source/WebKit2/Shared/WebsiteData/WebsiteDataTypes.h. * UIProcess/API/C/WKApplicationCacheManager.cpp: (WKApplicationCacheManagerGetApplicationCacheOrigins): (WKApplicationCacheManagerDeleteEntriesForOrigin): (WKApplicationCacheManagerDeleteAllEntries): * UIProcess/API/C/WKResourceCacheManager.cpp: (toWebsiteDataTypes): (WKResourceCacheManagerClearCacheForOrigin): * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::fetchWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteDataForOrigins): * UIProcess/Databases/DatabaseProcessProxy.h: * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::fetchWebsiteData): (WebKit::NetworkProcessProxy::deleteWebsiteData): (WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins): * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::fetchWebsiteData): (WebKit::WebProcessProxy::deleteWebsiteData): (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): * UIProcess/WebProcessProxy.h: * UIProcess/WebsiteData/WebsiteDataRecord.cpp: (WebKit::WebsiteDataRecord::add): (WebKit::WebsiteDataRecord::addCookieHostName): (WebKit::WebsiteDataRecord::addPluginDataHostName): * UIProcess/WebsiteData/WebsiteDataRecord.h: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::computeNetworkProcessAccessTypeForDataFetch): (WebKit::computeWebProcessAccessTypeForDataFetch): (WebKit::WebsiteDataStore::fetchData): (WebKit::computeNetworkProcessAccessTypeForDataRemoval): (WebKit::computeWebProcessAccessTypeForDataRemoval): (WebKit::WebsiteDataStore::removeData): * UIProcess/WebsiteData/WebsiteDataStore.h: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::fetchWebsiteData): (WebKit::WebProcess::deleteWebsiteData): (WebKit::WebProcess::deleteWebsiteDataForOrigins): * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: 2016-02-26 Sam Weinig Try to fix the Yosemite build again. * UIProcess/API/Cocoa/WKUserScript.mm: (toStringVector): (-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]): 2016-02-26 Sam Weinig Try to fix the Yosemite build. * UIProcess/API/Cocoa/WKUserScriptPrivate.h: 2016-02-25 Anders Carlsson Cache::traverse should pass the record info to its traversal handler https://bugs.webkit.org/show_bug.cgi?id=154695 Reviewed by Antti Koivisto. * NetworkProcess/NetworkProcess.cpp: (WebKit::fetchDiskCacheEntries): (WebKit::clearDiskCacheEntries): * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::traverse): * NetworkProcess/cache/NetworkCache.h: 2016-02-25 Gavin Barraclough RefCounter value changed callback should be called on all changes (not just zero edge). https://bugs.webkit.org/show_bug.cgi?id=154699 Reviewed by Anders Carlsson. RefCounter currently only triggers a callback when the count goes from zero to non-zero and vice-versa. Change that, to be useful to more clients. * UIProcess/Plugins/PluginProcessManager.cpp: (WebKit::PluginProcessManager::PluginProcessManager): - Updated for change in RefCounter callback siganture. * UIProcess/Plugins/PluginProcessManager.h: - Updated for change in RefCounter callback siganture. * UIProcess/Plugins/mac/PluginProcessManagerMac.mm: (WebKit::PluginProcessManager::updateProcessSuppressionDisabled): - updated logic for enabling process supression. * UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::ProcessThrottler): - Updated for change in RefCounter callback siganture. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): - Updated for change in RefCounter callback siganture. 2016-02-26 Andreas Kling Remove unused CFNetwork disk cache mmap optimization in WebKit2. Reviewed by Darin Adler. Nuke all the code related to the mmap optimization we had for CFNetwork's disk cache. This code has not been used since we moved to the WebKit2 network cache. * NetworkProcess/Downloads/PendingDownload.h: * NetworkProcess/NetworkLoadClient.h: * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::sendBufferMaybeAborting): Deleted. * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformLowMemoryHandler): Deleted. (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): Deleted. * NetworkProcess/mac/NetworkDiskCacheMonitor.h: Removed. * NetworkProcess/mac/NetworkDiskCacheMonitor.mm: Removed. * NetworkProcess/mac/NetworkLoadMac.mm: (WebKit::NetworkLoad::willCacheResponseAsync): Deleted. * NetworkProcess/mac/NetworkResourceLoaderMac.mm: Removed. * WebKit2.xcodeproj/project.pbxproj: 2016-02-26 Commit Queue Unreviewed, rolling out r197168. https://bugs.webkit.org/show_bug.cgi?id=154728 crashing on some devices (Requested by kling on #webkit). Reverted changeset: "[Darwin] Use vm_kernel_page_size for WTF::pageSize()." https://bugs.webkit.org/show_bug.cgi?id=154726 http://trac.webkit.org/changeset/197168 2016-02-25 Sam Weinig Allow WKUserScripts to be run in isolated worlds https://bugs.webkit.org/show_bug.cgi?id=154701 Reviewed by Anders Carlsson. Adds support for using isolated worlds, called _WKUserContentWorlds in the SPI, from the UIProcess. * Shared/API/APIObject.h: * Shared/Cocoa/APIObject.mm: * UIProcess/API/APIUserContentWorld.cpp: Added. (API::generateIdentifier): (API::UserContentWorld::worldWithName): (API::UserContentWorld::normalWorld): (API::UserContentWorld::UserContentWorld): (API::UserContentWorld::~UserContentWorld): * UIProcess/API/APIUserContentWorld.h: Added. Add new UserContentWorld type. * UIProcess/API/APIUserScript.h: Bind each user script to a particular _WKUserContentWorld. * UIProcess/API/C/WKUserScriptRef.cpp: (WKUserScriptCreateWithSource): (WKUserScriptCopySource): Existing APIs create user scripts for the normal world, preserving existing behavior. * UIProcess/API/Cocoa/WKUserScript.mm: (-[WKUserScript initWithSource:injectionTime:forMainFrameOnly:]): Existing APIs create user scripts for the normal world, preserving existing behavior. (-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]): Add a new initializer which takes a world to bind to. Also add support for the legacy whitelist/blacklist mechanism while we are here, as the expected client needs these as well. (-[WKUserScript _userContentWorld]): Add accessor for the bound world. * UIProcess/API/Cocoa/WKUserScriptInternal.h: * UIProcess/API/Cocoa/WKUserScriptPrivate.h: Added. Add new private header. * UIProcess/API/Cocoa/_WKUserContentWorld.h: Added. * UIProcess/API/Cocoa/_WKUserContentWorld.mm: Added. (+[_WKUserContentWorld worldWithName:]): (+[_WKUserContentWorld normalWorld]): (-[_WKUserContentWorld dealloc]): (-[_WKUserContentWorld name]): (-[_WKUserContentWorld _apiObject]): * UIProcess/API/Cocoa/_WKUserContentWorldInternal.h: Added. Add SPI wrapper. * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::addProcess): (WebKit::WebUserContentControllerProxy::addUserScript): (WebKit::WebUserContentControllerProxy::removeUserScript): (WebKit::WebUserContentControllerProxy::removeAllUserScripts): (WebKit::WebUserContentControllerProxy::addUserStyleSheet): * UIProcess/UserContent/WebUserContentControllerProxy.h: (WebKit::WebUserContentControllerProxy::userScripts): (WebKit::WebUserContentControllerProxy::userStyleSheets): Add support for registering the worlds with the associated WebContentProcesses and then using their identifiers to map user scripts to the correct world. * WebKit2.xcodeproj/project.pbxproj: Add new files. * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h: * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm: (-[WKWebProcessPlugInScriptWorld name]): Expose the name property. * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp: (WKBundleScriptWorldCopyName): * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h: Expose the name property. * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: (WebKit::allWorlds): (WebKit::InjectedBundleScriptWorld::create): (WebKit::InjectedBundleScriptWorld::getOrCreate): (WebKit::InjectedBundleScriptWorld::normalWorld): (WebKit::InjectedBundleScriptWorld::InjectedBundleScriptWorld): (WebKit::InjectedBundleScriptWorld::~InjectedBundleScriptWorld): (WebKit::InjectedBundleScriptWorld::coreWorld): (WebKit::InjectedBundleScriptWorld::clearWrappers): * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h: (WebKit::InjectedBundleScriptWorld::name): Add the name property and do some drive-by RefPtr -> Ref conversions. * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::userContentControllers): (WebKit::worldMap): (WebKit::WebUserContentController::getOrCreate): (WebKit::WebUserContentController::~WebUserContentController): (WebKit::WebUserContentController::addUserContentWorlds): (WebKit::WebUserContentController::removeUserContentWorld): (WebKit::WebUserContentController::addUserScripts): (WebKit::WebUserContentController::removeUserScript): (WebKit::WebUserContentController::removeAllUserScripts): (WebKit::WebUserContentController::addUserStyleSheets): * WebProcess/UserContent/WebUserContentController.h: * WebProcess/UserContent/WebUserContentController.messages.in: Track and use worlds passed from the UIProcess. 2016-02-26 Andreas Kling [Darwin] Use vm_kernel_page_size for WTF::pageSize(). Reviewed by Antti Koivisto. Use WTF::pageSize() for the SharedMemory page size. * Platform/mac/SharedMemoryMac.cpp: (WebKit::SharedMemory::systemPageSize): 2016-02-25 Ryuan Choi [EFL] Remove WebUIPopupMenuClient https://bugs.webkit.org/show_bug.cgi?id=154717 Reviewed by Gyuyoung Kim. WebUIPopupMenuClient is only for EFL to expose WebPopupMenuProxy and WebPopupItem to WK C APIs. This patch removes it and related code. * PlatformEfl.cmake: Removed WKPopupItem related files from source list. * UIProcess/API/C/efl/WKAPICastEfl.h: Removed WKPopupMenu related code. * UIProcess/API/C/efl/WKPageEfl.cpp: Removed. * UIProcess/API/C/efl/WKPageEfl.h: Removed. * UIProcess/API/C/efl/WKPopupItem.cpp: Removed. * UIProcess/API/C/efl/WKPopupItem.h: Removed. * UIProcess/API/C/efl/WKPopupMenuListener.cpp: Removed. * UIProcess/API/C/efl/WKPopupMenuListener.h: Removed. * UIProcess/API/efl/EwkView.cpp: (EwkView::requestPopupMenu): * UIProcess/API/efl/EwkView.h: * UIProcess/API/efl/ewk_popup_menu.cpp: (EwkPopupMenu::EwkPopupMenu): (EwkPopupMenu::close): (EwkPopupMenu::setSelectedIndex): * UIProcess/API/efl/ewk_popup_menu_item.cpp: Used WebPopupItem and others instead of WK C APIs. * UIProcess/API/efl/ewk_popup_menu_item_private.h: Ditto. * UIProcess/API/efl/ewk_popup_menu_private.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::close): Removed unnecessary EFL guards. (WebKit::WebPageProxy::showPopupMenu): Ditto. (WebKit::WebPageProxy::hidePopupMenu): Ditto. * UIProcess/WebPageProxy.h: * UIProcess/WebPopupMenuProxy.h: * UIProcess/efl/PageUIClientEfl.cpp: Removed WKPopupMenuListener related code. (WebKit::PageUIClientEfl::PageUIClientEfl): Deleted. (WebKit::PageUIClientEfl::showPopupMenu): Deleted. (WebKit::PageUIClientEfl::hidePopupMenu): Deleted. * UIProcess/efl/PageUIClientEfl.h: * UIProcess/efl/WebPageProxyEfl.cpp: (WebKit::WebPageProxy::initializeUIPopupMenuClient): Deleted. * UIProcess/efl/WebPopupMenuListenerEfl.cpp: (WebKit::WebPopupMenuListenerEfl::WebPopupMenuListenerEfl): Deleted. (WebKit::WebPopupMenuListenerEfl::valueChanged): Deleted. * UIProcess/efl/WebPopupMenuListenerEfl.h: (WebKit::WebPopupMenuListenerEfl::create): Deleted. * UIProcess/efl/WebPopupMenuProxyEfl.cpp: Used WebPopupItem and others instead of WK C APIs. * UIProcess/efl/WebPopupMenuProxyEfl.h: Ditto. (WebKit::WebPopupMenuProxyEfl::create): * UIProcess/efl/WebUIPopupMenuClient.cpp: Removed. * UIProcess/efl/WebUIPopupMenuClient.h: Removed. * UIProcess/efl/WebView.cpp: (WebKit::WebView::createPopupMenuProxy): Used WebPopupItem and others instead of WK C APIs. 2016-02-25 Andreas Kling [iOS] Enable PageCache backing store clearing optimization for WebKit2. Reviewed by Anders Carlsson. We had an optimization for iOS where we'd tear down the compositing tree for pages in the page cache, to save memory, but we were only enabling it when instantiating a WebKit1 web view. This patch enables the optimization for WebKit2 as well. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): 2016-02-25 Ada Chan Update the definition of ENABLE_VIDEO_PRESENTATION_MODE for Mac platform https://bugs.webkit.org/show_bug.cgi?id=154702 Reviewed by Dan Bernstein. * Configurations/FeatureDefines.xcconfig: 2016-02-25 Jiewen Tan Restrict information passed with navigation action which is triggered by untrusted event https://bugs.webkit.org/show_bug.cgi?id=154571 Reviewed by Andy Estes. When navigation action is triggered by an untrusted event, we should be more restricted of what information should be passed to the clients to lower the risk that clients could be fooled by the untrusted event. In this patch, we drop the modifiers for key state events and set the mouse button to NoButton for mouse events. * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp: (WebKit::InjectedBundleNavigationAction::modifiersForNavigationAction): 2016-02-25 Ada Chan Hook up fullscreenMayReturnToInline() in WKPageUIClient https://bugs.webkit.org/show_bug.cgi?id=154661 Reviewed by Tim Horton. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): * UIProcess/API/C/WKPageUIClient.h: 2016-02-25 Gavin Barraclough Should template RefCounter instead of RefCounter::Token https://bugs.webkit.org/show_bug.cgi?id=154691 Reviewed by Anders Carlsson. Mechanical update per RefCounter interface change. * UIProcess/Plugins/PluginProcessManager.h: (WebKit::PluginProcessManager::processSuppressionDisabledToken): (WebKit::PluginProcessManager::processSuppressionDisabled): * UIProcess/ProcessThrottler.h: (WebKit::ProcessThrottler::foregroundActivityToken): (WebKit::ProcessThrottler::backgroundActivityToken): * UIProcess/WebProcessPool.h: 2016-02-25 Brady Eidson Remove LegacyIDB. https://bugs.webkit.org/show_bug.cgi?id=150854 Reviewed by Alex Christensen. * CMakeLists.txt: * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::getOrCreateLegacyUniqueIDBDatabase): Deleted. (WebKit::DatabaseProcess::removeLegacyUniqueIDBDatabase): Deleted. * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/DatabaseToWebProcessConnection.cpp: (WebKit::DatabaseToWebProcessConnection::didClose): (WebKit::DatabaseToWebProcessConnection::didReceiveMessage): Deleted. (WebKit::DatabaseToWebProcessConnection::didReceiveSyncMessage): Deleted. (WebKit::DatabaseToWebProcessConnection::establishIDBConnection): Deleted. (WebKit::DatabaseToWebProcessConnection::removeDatabaseProcessIDBConnection): Deleted. * DatabaseProcess/DatabaseToWebProcessConnection.h: * DatabaseProcess/DatabaseToWebProcessConnection.messages.in: * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp: Removed. * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h: Removed. * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in: Removed. * DatabaseProcess/IndexedDB/IDBIdentifier.h: Removed. * DatabaseProcess/IndexedDB/IDBSerialization.cpp: Removed. * DatabaseProcess/IndexedDB/IDBSerialization.h: Removed. * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp: Removed. * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.h: Removed. * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp: Removed. * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.h: Removed. * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h: Removed. * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp: Removed. * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.h: Removed. * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp: Removed. * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h: Removed. * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: Removed. * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h: Removed. * DerivedSources.make: * Shared/WebCrossThreadCopier.cpp: (WebCore::LegacyUniqueIDBDatabaseIdentifier>::copy): Deleted. (WebCore::IDBIdentifier>::copy): Deleted. * Shared/WebCrossThreadCopier.h: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp: Removed. * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h: Removed. * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: Removed. * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h: Removed. * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in: Removed. * WebProcess/Databases/WebDatabaseProvider.cpp: (WebKit::WebDatabaseProvider::createIDBFactoryBackend): Deleted. * WebProcess/Databases/WebDatabaseProvider.h: * WebProcess/Databases/WebToDatabaseProcessConnection.cpp: (WebKit::WebToDatabaseProcessConnection::didReceiveMessage): Deleted. (WebKit::WebToDatabaseProcessConnection::registerWebIDBServerConnection): Deleted. (WebKit::WebToDatabaseProcessConnection::removeWebIDBServerConnection): Deleted. * WebProcess/Databases/WebToDatabaseProcessConnection.h: * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: 2016-02-25 Brady Eidson Modern IDB: WebKit 2 IPC layer. https://bugs.webkit.org/show_bug.cgi?id=153808 Reviewed by Alex Christensen. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): This ASSERT fires on most WK2 tests. Alex said remove it. * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: (WebKit::WebIDBConnectionToServer::putOrAdd): Properly encode the overwrite flag. * WebProcess/Databases/WebDatabaseProvider.h: Enable Modern IDB. 2016-02-25 Eric Carlson [MediaStream] MediaDeviceInfo deviceId and groupId must be unique to the page's origin https://bugs.webkit.org/show_bug.cgi?id=153163 Reviewed by Tim Horton. * CMakeLists.txt: Add WKFrameHandleRef.cpp. * Shared/API/c/WKBase.h: Add WKFrameHandleRef. * UIProcess/API/APIUIClient.h: (API::UIClient::decidePolicyForUserMediaPermissionRequest): Add parameter top level document security context. (API::UIClient::checkUserMediaPermissionForOrigin): Ditto. * UIProcess/API/C/WKAPICast.h: Add FrameHandle. * UIProcess/API/C/WKFrameHandleRef.cpp: Added. * UIProcess/API/C/WKFrameHandleRef.h: Added. * UIProcess/API/C/WKFrameInfoRef.cpp: (WKFrameInfoGetFrameHandleRef): Added. * UIProcess/API/C/WKFrameInfoRef.h: * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): Add parameters to decidePolicyForUserMediaPermissionRequest and checkUserMediaPermissionForOrigin for top level document security context. * UIProcess/API/C/WKPageUIClient.h: Ditto. * UIProcess/API/C/WKUserMediaPermissionCheck.cpp: (WKUserMediaPermissionCheckSetUserMediaAccessInfo): Renamed from WKUserMediaPermissionCheckSetHasPersistentPermission, add parameter for top level document security context. (WKUserMediaPermissionCheckSetHasPersistentPermission): Deleted. * UIProcess/API/C/WKUserMediaPermissionCheck.h: * UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp: (webkitUserMediaPermissionRequestCreate): Add top level document origin. * UIProcess/UserMediaPermissionCheckProxy.cpp: (WebKit::UserMediaPermissionCheckProxy::setUserMediaAccessInfo): Renamed from setHasPersistentPermission. (WebKit::UserMediaPermissionCheckProxy::setHasPersistentPermission): Deleted. * UIProcess/UserMediaPermissionCheckProxy.h: * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::didCompleteUserMediaPermissionCheck): Add parameter for device id hash salt. * UIProcess/UserMediaPermissionRequestManagerProxy.h: * UIProcess/UserMediaPermissionRequestProxy.h: (WebKit::UserMediaPermissionRequestProxy::requiresAudio): Deleted, unused. (WebKit::UserMediaPermissionRequestProxy::requiresVideo): Ditto. (WebKit::UserMediaPermissionRequestProxy::firstVideoDeviceUID): Ditto. (WebKit::UserMediaPermissionRequestProxy::firstAudioDeviceUID): Ditto. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestUserMediaPermissionForFrame): Pass through parameter for top level document security context. (WebKit::WebPageProxy::checkUserMediaPermissionForFrame): Ditto. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebKit2.xcodeproj/project.pbxproj: Add WKFrameHandleRef.cpp|.h. * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: (WebKit::UserMediaPermissionRequestManager::startUserMediaRequest): Pass through parameter for top level document security context. (WebKit::UserMediaPermissionRequestManager::startUserMediaPermissionCheck): Ditto. (WebKit::UserMediaPermissionRequestManager::didCompleteUserMediaPermissionCheck): Pass through device id hash salt. * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCompleteUserMediaPermissionCheck): Ditto. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2016-02-24 Carlos Garcia Campos [GTK] Tearing when entering AC mode https://bugs.webkit.org/show_bug.cgi?id=150955 Reviewed by Michael Catanzaro. When entering accelerated compositing mode, we keep rendering the non accelerated contents until we have the first frame of accelerated compositing contents. When the view is created hidden, for example when the browser opens a link in a new tab, the view is not realized until it is mapped. The native surface handle for compositing, needed by the web process to render accelerated compositing contents, is not available until the view is realized, because it depends on the properties of the parent. When a web view is mapped for the first time, and then realized, we send the native surface handle for compositing to the web process, and keep rendering the non composited contents until we get the first frame, but in this case we never had non composited contents and we end up rendering an untinitalized surface. This sometimes just produces flickering and sometimes rendering artifacts. We can prevent this from happening by realizing the web view as soon as possible. A GtkWidget can't be realized until it has been added to a toplevel, so we can realize our view right after it is added to a toplevel window, and wait until the view is actually mapped to notify the web process that it has been added to a window. This way can we enter accelerated compositing mode before the web view is mapped, so that when mapped we don't try to paint the previous contents and don't need to wait for the first frame. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (toplevelWindowFocusInEvent): Handle the case of the window being hidden when receiving focus in. According to gtk_window_focus_in_event, this can happen. (webkitWebViewBaseSetToplevelOnScreenWindow): When the web view is removed from its toplevel parent, update the IsInWindow and WindowIsActive flags accordingly. When the view is added to a toplevel, realize it and don't update the window flags, they will be updated when the view is mapped the first time. (webkitWebViewBaseMap): Also update IsInWindow and WindowIsActive flags if needed. This way, if for example you open a youtube video in a new tab, the video won't start playing until you visit the tab, like we did when the view was realized on map. (webkitWebViewBaseHierarchyChanged): Use hierarchy-changed signal instead of parent-set to be notified when the view is added to or removed from a toplevel. (webkit_web_view_base_class_init): Implement hierarchy-changed instead of parent-set. (webkitWebViewBaseRealize): Do not call webkitWebViewBaseSetToplevelOnScreenWindow on realize, it's now webkitWebViewBaseSetToplevelOnScreenWindow the one realizing the view. * UIProcess/cairo/BackingStoreCairo.cpp: (WebKit::BackingStore::createBackend): Do not realize the view here, it should be realized already at this point. If it's not realized at this point is because it hasn't been added to a toplevel and gtk_widget_realize will not work anyway. (WebKit::BackingStore::paint): This is changing the cairo source operator, so save/restore the cairo context to ensure it doesn't affect other drawing done after this. 2016-02-24 Nikos Andronikos [web-animations] Add AnimationTimeline, DocumentTimeline and add extensions to Document interface https://bugs.webkit.org/show_bug.cgi?id=151688 Reviewed by Dean Jackson. Enables the WEB_ANIMATIONS compiler switch. * Configurations/FeatureDefines.xcconfig: 2016-02-24 Gavin Barraclough Add WKPreference for HiddenPageDOMTimerThrottlingAutoIncreases https://bugs.webkit.org/show_bug.cgi?id=154655 Reviewed by Geoff Garen. Just plumbing WebCore.settings.setHiddenPageDOMTimerThrottlingAutoIncreases through as WKPreferencesSetHiddenPageDOMTimerThrottlingAutoIncreases. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetHiddenPageDOMTimerThrottlingAutoIncreases): (WKPreferencesGetHiddenPageDOMTimerThrottlingAutoIncreases): * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _hiddenPageDOMTimerThrottlingAutoIncreases]): (-[WKPreferences _setHiddenPageDOMTimerThrottlingAutoIncreases:]): * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2016-02-24 Alex Christensen Fix downloads when using NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154620 Reviewed by Brady Eidson. This fixes all the _WKDownload API tests when using NetworkSession. * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::willDecidePendingDownloadDestination): When we store the NetworkDataTask in m_downloadsWaitingForDestination, we want to remove its owner from m_pendingDownloads to prevent memory leaks. (WebKit::DownloadManager::continueDecidePendingDownloadDestination): If a file exists and the UIProcess has told us to overwrite the file, delete the file before starting a new download in its place. This used to be done by CFNetwork in NSURLDownload's setDestination:allowOverwrite:, but the NSURLSession equivalent (setting NSURLSessionDataTask's _pathToDownloadTaskFile attribute) does not overwrite the file for us. (WebKit::DownloadManager::cancelDownload): If a download is canceled while it is waiting for its destination from the UIProcess, the Download object does not exist yet. Instead, we have a completion handler stored in m_downloadsWaitingForDestination. In this case, we want to send the UIProcess a DownloadProxy::DidCancel message, which I did through NetworkProcess::pendingDownloadCanceled because the DownloadManager is not a MessageSender, and then call the completion handler with PolicyIgnore to cancel the download. (WebKit::DownloadManager::downloadFinished): * NetworkProcess/Downloads/DownloadManager.h: * NetworkProcess/Downloads/PendingDownload.cpp: (WebKit::PendingDownload::continueCanAuthenticateAgainstProtectionSpace): (WebKit::PendingDownload::didBecomeDownload): (WebKit::PendingDownload::didFailLoading): (WebKit::PendingDownload::messageSenderConnection): (WebKit::PendingDownload::didConvertToDownload): Deleted. * NetworkProcess/Downloads/PendingDownload.h: * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: (WebKit::Download::cancel): Send a didCancel message to the UIProcess when a download was cancelled. Use cancelByProducingResumeData so we can resume canceled downloads. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): didConvertToDownload is needed when using NetworkSession to tell the NetworkResourceLoader not to call cancel on the NetworkLoad after converting it to a download. * NetworkProcess/NetworkDataTask.h: (WebKit::NetworkDataTask::setPendingDownload): (WebKit::NetworkDataTask::pendingDownloadLocation): * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::convertTaskToDownload): (WebKit::NetworkLoad::setPendingDownloadID): (WebKit::NetworkLoad::didReceiveResponseNetworkSession): Don't call findPendingDownloadLocation as a method on the NetworkDataTask to avoid memory leaks in DownloadManager.m_pendingDownloads. (WebKit::NetworkLoad::didBecomeDownload): Call m_client.didBecomeDownload which is being separated from didConvertToDownload. The former is called after the NetworkDataTask becomes a Download, the latter is called as soon as convertMainResourceLoadToDownload is called. * NetworkProcess/NetworkLoadClient.h: * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::continueWillSendRequest): (WebKit::NetworkProcess::pendingDownloadCanceled): Send a DownloadProxy::DidCancel message when a pending download is canceled. (WebKit::NetworkProcess::findPendingDownloadLocation): (WebKit::NetworkProcess::continueDecidePendingDownloadDestination): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didConvertToDownload): (WebKit::NetworkResourceLoader::didBecomeDownload): Separate setting m_didConvertToDownload, which needs to happen before the didReceiveResponse completion handler is called to tell the NetworkResourceLoader not to call cancel in NetworkResourceLoader::abort, from deleting the NetworkLoad, which can be done after the NSURLSessionDataTask has been converted to a NSURLSessionDownloadTask. * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTask::failureTimerFired): (WebKit::NetworkDataTask::setPendingDownloadLocation): (WebKit::NetworkDataTask::transferSandboxExtensionToDownload): (WebKit::NetworkDataTask::suggestedFilename): (WebKit::NetworkDataTask::currentRequest): (WebKit::NetworkDataTask::findPendingDownloadLocation): Deleted. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]): Take the downloadID if it failed because we will report that download as failed and not use it again. (WebKit::NetworkSession::takeDownloadID): * UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync): (WebKit::DownloadProxy::decideDestinationWithSuggestedFilename): 2016-02-24 Anders Carlsson Add more WebKitAdditions extension points https://bugs.webkit.org/show_bug.cgi?id=154648 rdar://problem/24820040 Reviewed by Beth Dakin. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _initializeWithConfiguration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration copyWithZone:]): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2016-02-24 Ryosuke Niwa Move FocusNavigationScope into FocusController.cpp https://bugs.webkit.org/show_bug.cgi?id=154630 Reviewed by Darin Adler. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::nextAssistableElement): 2016-02-23 Brian Burg Web Inspector: don't run the protocol generator once per output file https://bugs.webkit.org/show_bug.cgi?id=154635 Reviewed by Myles C. Maxfield. * DerivedSources.make: Use $(firstword, ...) to take just one file as the target to be built so that the generator runs only once. Make isn't really designed to coalesce multiple file outputs to one production rule. 2016-02-23 Dan Bernstein [Xcode] Linker errors display mangled names, but no longer should https://bugs.webkit.org/show_bug.cgi?id=154632 Reviewed by Sam Weinig. * Configurations/Base.xcconfig: Stop setting LINKER_DISPLAYS_MANGLED_NAMES to YES. 2016-02-23 Gavin Barraclough Remove HIDDEN_PAGE_DOM_TIMER_THROTTLING feature define https://bugs.webkit.org/show_bug.cgi?id=112323 Reviewed by Chris Dumez. This feature is controlled by a runtime switch, and defaults off. * Configurations/FeatureDefines.xcconfig: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2016-02-23 Anders Carlsson WKWebView should implement NSCoding https://bugs.webkit.org/show_bug.cgi?id=137160 rdar://problem/17380562 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKUserContentController.mm: (-[WKUserContentController initWithCoder:]): We need to call [self init] here, so that the wrapper will be initialized. * UIProcess/API/Cocoa/WKWebView.h: -initWithCoder: shouldn't be unavailable, it should be a designated initializer. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _initializeWithConfiguration:]): Move initialization out into a common method. (-[WKWebView initWithFrame:configuration:]): Call -initializeWithConfiguration: here. (-[WKWebView initWithCoder:]): Decode everything. (-[WKWebView encodeWithCoder:]): Encode everything. 2016-02-23 Anders Carlsson Fix an API test. * UIProcess/API/APIWebsiteDataStore.cpp: (API::WebsiteDataStore::defaultDataStore): Make sure to initialize WebKit2. 2016-02-23 Anders Carlsson WKWebViewConfiguration should encode more of its properties https://bugs.webkit.org/show_bug.cgi?id=154611 Reviewed by Sam Weinig. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration encodeWithCoder:]): (-[WKWebViewConfiguration initWithCoder:]): 2016-02-23 Anders Carlsson WKUserContentController should conform to NSCoding https://bugs.webkit.org/show_bug.cgi?id=154609 Reviewed by Sam Weinig. Since we just want to be able to encode WKUserContentController from WKWebViewConfiguration, we don't encode anything inside WKUserContentController. * UIProcess/API/Cocoa/WKUserContentController.h: * UIProcess/API/Cocoa/WKUserContentController.mm: (-[WKUserContentController encodeWithCoder:]): (-[WKUserContentController initWithCoder:]): 2016-02-23 Anders Carlsson WKProcessPool should conform to NSCoding https://bugs.webkit.org/show_bug.cgi?id=154608 Reviewed by Sam Weinig. Add +[WKProcessPool _sharedProcessPool] and encode/decode whether the process pool is shared. * UIProcess/API/Cocoa/WKProcessPool.h: * UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool encodeWithCoder:]): (-[WKProcessPool initWithCoder:]): (+[WKProcessPool _sharedProcessPool]): * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: 2016-02-23 Anders Carlsson WKWebsiteDataStore should conform to NSCoding https://bugs.webkit.org/show_bug.cgi?id=154605 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore initWithCoder:]): (-[WKWebsiteDataStore encodeWithCoder:]): 2016-02-23 Anders Carlsson Fix iOS build. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration initWithCoder:]): 2016-02-23 Anders Carlsson WKWebViewConfiguration should conform to NSCoding https://bugs.webkit.org/show_bug.cgi?id=154602 Reviewed by Beth Dakin. * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration encodeWithCoder:]): (-[WKWebViewConfiguration initWithCoder:]): 2016-02-23 Anders Carlsson WKPreferences should conform to NSCoding https://bugs.webkit.org/show_bug.cgi?id=154597 Reviewed by Sam Weinig. Add NSCoding implementation. * UIProcess/API/Cocoa/WKPreferences.h: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences encodeWithCoder:]): (-[WKPreferences initWithCoder:]): 2016-02-23 Alex Christensen Implement downloads with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154473 Reviewed by Brady Eidson. * NetworkProcess/Downloads/Download.cpp: (WebKit::Download::~Download): (WebKit::Download::didStart): (WebKit::Download::shouldDecodeSourceDataOfMIMEType): (WebKit::Download::decideDestinationWithSuggestedFilename): (WebKit::Download::didCreateDestination): * NetworkProcess/Downloads/Download.h: (WebKit::Download::downloadID): (WebKit::Download::setSandboxExtension): * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::startDownload): (WebKit::DownloadManager::dataTaskBecameDownloadTask): (WebKit::DownloadManager::continueCanAuthenticateAgainstProtectionSpace): (WebKit::DownloadManager::continueWillSendRequest): (WebKit::DownloadManager::willDecidePendingDownloadDestination): (WebKit::DownloadManager::continueDecidePendingDownloadDestination): (WebKit::DownloadManager::convertHandleToDownload): * NetworkProcess/Downloads/DownloadManager.h: * NetworkProcess/NetworkDataTask.h: (WebKit::NetworkDataTask::clearClient): NetworkDataTasks can now outlive their client, so we need to make client a pointer with the ability to be nulled from the client's destructor. (WebKit::NetworkDataTask::pendingDownloadID): (WebKit::NetworkDataTask::pendingDownload): (WebKit::NetworkDataTask::setPendingDownload): (WebKit::NetworkDataTask::pendingDownloadLocation): (WebKit::NetworkDataTask::client): Deleted. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::~NetworkLoad): (WebKit::NetworkLoad::convertTaskToDownload): (WebKit::NetworkLoad::setPendingDownloadID): (WebKit::NetworkLoad::didReceiveResponseNetworkSession): Don't call the didReceiveResponse completion handler immediately when we know we are going to turn the load into a download. Instead, save the completion handler until after we have determined the download destination and set it in the NetworkDataTask. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::continueWillSendRequest): (WebKit::NetworkProcess::findPendingDownloadLocation): (WebKit::NetworkProcess::continueDecidePendingDownloadDestination): (WebKit::NetworkProcess::setCacheModel): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTask::NetworkDataTask): (WebKit::NetworkDataTask::~NetworkDataTask): (WebKit::NetworkDataTask::didSendData): (WebKit::NetworkDataTask::didReceiveChallenge): (WebKit::NetworkDataTask::didCompleteWithError): (WebKit::NetworkDataTask::didReceiveResponse): (WebKit::NetworkDataTask::didReceiveData): (WebKit::NetworkDataTask::didBecomeDownload): (WebKit::NetworkDataTask::willPerformHTTPRedirection): (WebKit::NetworkDataTask::scheduleFailure): (WebKit::NetworkDataTask::failureTimerFired): (WebKit::NetworkDataTask::findPendingDownloadLocation): (WebKit::NetworkDataTask::setPendingDownloadLocation): (WebKit::NetworkDataTask::tryPasswordBasedAuthentication): (WebKit::NetworkDataTask::transferSandboxExtensionToDownload): (WebKit::NetworkDataTask::currentRequest): (WebKit::NetworkDataTask::cancel): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:]): (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]): This delegate callback is used for downloads, too. (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]): (-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): Call didCreateDestination now, which is after the file has been opened on the disk. A DownloadProxy::DidStart message is now sent from NetworkProcess::findPendingDownloadLocation before we ask the UIProcess where the download should end up on disk. Null check the NetworkDataTask's client before using it because it is now a pointer that could be null. * UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::shouldDecodeSourceDataOfMIMEType): (WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync): (WebKit::DownloadProxy::decideDestinationWithSuggestedFilename): (WebKit::DownloadProxy::didCreateDestination): * UIProcess/Downloads/DownloadProxy.h: * UIProcess/Downloads/DownloadProxy.messages.in: 2016-02-23 Brian Burg Connect WebAutomationSession to its backend dispatcher as if it were an agent and add stub implementations https://bugs.webkit.org/show_bug.cgi?id=154518 Reviewed by Timothy Hatcher. Add a domain dispatcher for the 'Automation' domain, and register the WebAutomationSession itself as the handler for Automation commands. Stub out these command implementations so the code will compile. * UIProcess/Automation/Automation.json: Fix the createWindow command's parameters and description. Add an ErrorMessage string enumeration and document how it can be used to signal well-known errors to the frontend. * UIProcess/Automation/WebAutomationSession.cpp: (WebKit::WebAutomationSession::WebAutomationSession): Add the domain backend dispatcher. It further parses commands that were deemed valid by the generic dispatcher and match the 'Automation' domain prefix. (WebKit::WebAutomationSession::getWindows): (WebKit::WebAutomationSession::openWindow): (WebKit::WebAutomationSession::closeWindow): Stub these out with our new ErrorMessage enumeration and a macro to make this code pattern more readable. * UIProcess/Automation/WebAutomationSession.h: Add new declarations and members. 2016-02-23 Antti Koivisto Remove tab suspension code https://bugs.webkit.org/show_bug.cgi?id=154585 Reviewed by Andreas Kling. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::registerUserDefaultsIfNeeded): (WebKit::WebProcessPool::platformInitializeWebProcess): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2016-02-22 Ryuan Choi [EFL] Merge WebView and WebViewEfl https://bugs.webkit.org/show_bug.cgi?id=154445 Reviewed by Gyuyoung Kim. * PlatformEfl.cmake: Removed WebViewEfl.cpp from source list. * UIProcess/API/C/efl/WKViewEfl.cpp: Removed type cast for WebViewEfl. * UIProcess/API/efl/EwkView.cpp: Ditto. * UIProcess/API/efl/EwkView.h: * UIProcess/API/efl/GestureRecognizer.cpp: Removed type cast for WebViewEfl. * UIProcess/API/efl/WebAccessibility.cpp: Removed unnecessary includes. * UIProcess/API/efl/ewk_view.cpp: Ditto. * UIProcess/efl/ViewClientEfl.cpp: Ditto. * UIProcess/efl/WebColorPickerClient.cpp: Ditto. * UIProcess/efl/WebColorPickerClient.h: * UIProcess/efl/WebColorPickerEfl.cpp: (WebKit::WebColorPickerEfl::WebColorPickerEfl): * UIProcess/efl/WebColorPickerEfl.h: (WebKit::WebColorPickerEfl::create): * UIProcess/efl/WebView.cpp: * UIProcess/efl/WebView.h: * UIProcess/efl/WebViewEfl.cpp: Removed. * UIProcess/efl/WebViewEfl.h: Ditto. 2016-02-22 Brian Burg Web Inspector: add 'Automation' protocol domain and generate its backend classes separately in WebKit2 https://bugs.webkit.org/show_bug.cgi?id=154509 Reviewed by Timothy Hatcher. Add a new 'Automation' domain which presents an RPC interface for sending automation commands to an active WebAutomationSession in the UIProcess via RemoteInspector. This is similar to how the Inspector backend communicates bidirectionally with a remote Inspector frontend. Add build system logic to generate JSON-RPC protocol bindings for the 'Automation' domain using the inspector code generators. Move automation-related files that are not API or SPI into their own directory. * Configurations/BaseTarget.xcconfig: Tell where JavaScriptCore's private headers are, since that's where the code generators live. * CMakeLists.txt: Look in UIProcess/Automation directory. * PlatformMac.cmake: * DerivedSources.make: Generate protocol bindings for a single domain. The names of the generated files will be improved in a follow-up patch so that they do not clash with generated files in JavaScriptCore. * UIProcess/Automation/Automation.json: Added. * UIProcess/Automation/WebAutomationSession.cpp: Renamed from Source/WebKit2/UIProcess/WebAutomationSession.cpp. (WebKit::WebAutomationSession::WebAutomationSession): (WebKit::WebAutomationSession::~WebAutomationSession): Set up a backend dispatcher and frontend router. They will be used later. (WebKit::WebAutomationSession::dispatchMessageFromRemote): Forward messages from the remote to the backend dispatcher. When an agent / command handler is registered, it will receive the message. (WebKit::WebAutomationSession::connect): (WebKit::WebAutomationSession::disconnect): Connenct and disconnect the frontend router to the remote channel. * UIProcess/Automation/WebAutomationSession.h: Renamed from Source/WebKit2/UIProcess/WebAutomationSession.h. * WebKit2.xcodeproj/project.pbxproj: Add and move files. 2016-02-16 Ada Chan Implement basic functionality in WebVideoFullscreenInterfaceMac. https://bugs.webkit.org/show_bug.cgi?id=153241 Reviewed by Beth Dakin. * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): (WebKit::WebVideoFullscreenManagerProxy::exitFullscreen): (WebKit::WebVideoFullscreenManagerProxy::preparedToReturnToInline): * UIProcess/PageClient.h: * UIProcess/WebPageProxy.h: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::rootViewToWindow): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::rootViewToWindow): * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::supportsVideoFullscreen): * WebProcess/cocoa/WebVideoFullscreenManager.h: * WebProcess/cocoa/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::supportsVideoFullscreen): 2016-02-22 Commit Queue Unreviewed, rolling out r196935. https://bugs.webkit.org/show_bug.cgi?id=154557 This change causes timeouts and crashes in LayoutTests (Requested by ryanhaddad on #webkit). Reverted changeset: "Enable AVFoundationNSURLSessionEnabled by default" https://bugs.webkit.org/show_bug.cgi?id=154469 http://trac.webkit.org/changeset/196935 2016-02-22 Anders Carlsson Remove _mockCaptureDevicesEnabled getter and setter https://bugs.webkit.org/show_bug.cgi?id=154550 Reviewed by Beth Dakin. The _mockCaptureDevicesEnabled property isn't declared anywhere, and this should be a WKWebViewConfiguration parameter if we ever want to expose it in the modern API. * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _mockCaptureDevicesEnabled]): Deleted. (-[WKPreferences _setMockCaptureDevicesEnabled:]): Deleted. 2016-02-22 Konstantin Tokarev [cmake] Moved library setup code to WEBKIT_FRAMEWORK macro. https://bugs.webkit.org/show_bug.cgi?id=154450 Reviewed by Alex Christensen. * CMakeLists.txt: Used WebKit2_SOURCES variable instead of separate WebKit2_DERIVED_SOURCES for compatibility with WEBKIT_FRAMEWORK macro. There is no real need to separate derived sources from others. * PlatformGTK.cmake: Ditto. 2016-02-22 Carlos Alberto Lopez Perez [CMake] Unreviewed build fix after r196942. * CMakeLists.txt: WKPluginSiteDataManager.cpp is gone. 2016-02-22 Keith Rollin Add mechanism to disable memory pressure handling https://bugs.webkit.org/show_bug.cgi?id=154254 Reviewed by Chris Dumez. Add a mechanism to disable WebKit's response to memory pressure triggers. This was asked for by another group for testing purposes. In order to disable WebKit's memory pressure handling, execute the following from the command line: defaults write com.apple.Safari WebKitSuppressMemoryPressureHandler -bool true To revert to standard behavior, delete the key or set it to False. This flag is used when a new sub-process is being spawned. The value is read and stored in an initialization parameter block, which is then sent to the new sub-process. In actuality, only the UI, WebContent, and Network processes heed the flag. The Plugin process isn't instrumented to heed this flag for three reasons. First, the Plugin process installs its memory pressure handler in initializeProcess, not initializePluginProcess. This is contrary to when the other processes install their handlers, which is in initializeProcess, not initializeProcess. So in order to accomodate the Plugin process, we'd need to modify ChildProcessInitializationParameters. Doing this is awkward at best, but also seems to be opposed to what's supposed to be done in initializeProcess and conveyed in ChildProcessInitializationParameters. And even if we did add a boolean to this structure and added support for conveying it through the XPC port, it would end up being a Plugin process-only boolean in a general parameter block, which seems asymmetric with the other processes. Second, there's no convenient Cocoa function called in the flow that spawns the Plugin process, meaning that there's no convenient place to call NSUserDefaults to get the flag's value. And third, the Plugin process doesn't elegantly respond to the memory pressure trigger anyway. It might terminate itself, but that's it. As for the Database process, it doesn't seem to support responding to memory pressure at all, so we don't send it a flag telling it to ignore it. Internally, the memory pressure handler is suppressed by not calling MemoryPressureHandler::install() if the flag is set. In the case of the Network process, the flag is saved so that it can be checked later in other places that manually kick off the memory pressure handling procedure. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::lowMemoryHandler): (WebKit::NetworkProcess::initializeNetworkProcess): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode): (WebKit::NetworkProcessCreationParameters::decode): * NetworkProcess/NetworkProcessCreationParameters.h: * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::platformInitializeNetworkProcess): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): 2016-02-22 Anders Carlsson Get rid of WKPluginSiteDataManager https://bugs.webkit.org/show_bug.cgi?id=154470 Reviewed by Tim Horton. * Shared/API/c/WKBase.h: * UIProcess/API/C/WKContext.cpp: (WKContextGetPluginSiteDataManager): Deleted. * UIProcess/API/C/WKContext.h: * UIProcess/API/C/WKPluginSiteDataManager.cpp: Removed. (WKPluginSiteDataManagerGetTypeID): Deleted. (WKPluginSiteDataManagerGetSitesWithData): Deleted. (WKPluginSiteDataManagerClearSiteData): Deleted. (WKPluginSiteDataManagerClearAllSiteData): Deleted. * UIProcess/API/C/WKPluginSiteDataManager.h: Removed. * WebKit2.xcodeproj/project.pbxproj: 2016-02-21 Brent Fulgham [WK2][Mac] Allow processes to set "fast-dev-casheable" bit https://bugs.webkit.org/show_bug.cgi?id=154503 Reviewed by Alexey Proskuryakov. Update the various sandbox profiles with a declaration that using the system-fctl to touch the "hot file" flag (to support caching operations) is allowed. * DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in: Add sandbox permission. * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb: Ditto. * WebProcess/com.apple.WebProcess.sb.in: Ditto. 2016-02-22 Commit Queue Unreviewed, rolling out r196891. https://bugs.webkit.org/show_bug.cgi?id=154539 it broke Production builds (Requested by brrian on #webkit). Reverted changeset: "Web Inspector: add 'Automation' protocol domain and generate its backend classes separately in WebKit2" https://bugs.webkit.org/show_bug.cgi?id=154509 http://trac.webkit.org/changeset/196891 2016-02-22 Jer Noble Enable AVFoundationNSURLSessionEnabled by default https://bugs.webkit.org/show_bug.cgi?id=154469 Reviewed by Sam Weinig. * Shared/WebPreferencesDefinitions.h: 2016-02-21 Brian Burg Web Inspector: add 'Automation' protocol domain and generate its backend classes separately in WebKit2 https://bugs.webkit.org/show_bug.cgi?id=154509 Reviewed by Timothy Hatcher. Add a new 'Automation' domain which presents an RPC interface for sending automation commands to an active WebAutomationSession in the UIProcess via RemoteInspector. This is similar to how the Inspector backend communicates bidirectionally with a remote Inspector frontend. Add build system logic to generate JSON-RPC protocol bindings for the 'Automation' domain using the inspector code generators. Move automation-related files that are not API or SPI into their own directory. * Configurations/BaseTarget.xcconfig: Tell where JavaScriptCore's private headers are, since that's where the code generators live. * CMakeLists.txt: Look in UIProcess/Automation directory. * PlatformMac.cmake: * DerivedSources.make: Generate protocol bindings for a single domain. The names of the generated files will be improved in a follow-up patch so that they do not clash with generated files in JavaScriptCore. * UIProcess/Automation/Automation.json: Added. * UIProcess/Automation/WebAutomationSession.cpp: Renamed from Source/WebKit2/UIProcess/WebAutomationSession.cpp. (WebKit::WebAutomationSession::WebAutomationSession): (WebKit::WebAutomationSession::~WebAutomationSession): Set up a backend dispatcher and frontend router. They will be used later. (WebKit::WebAutomationSession::dispatchMessageFromRemote): Forward messages from the remote to the backend dispatcher. When an agent / command handler is registered, it will receive the message. (WebKit::WebAutomationSession::connect): (WebKit::WebAutomationSession::disconnect): Connenct and disconnect the frontend router to the remote channel. * UIProcess/Automation/WebAutomationSession.h: Renamed from Source/WebKit2/UIProcess/WebAutomationSession.h. * WebKit2.xcodeproj/project.pbxproj: Add and move files. 2016-02-20 Olivier Blin [cmake] Use ICU include dirs in WebKit2 and WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=154479 Reviewed by Michael Catanzaro. * CMakeLists.txt: 2016-02-19 Brian Burg WebAutomationSession should tell its delegate when its remote end disconnects https://bugs.webkit.org/show_bug.cgi?id=154426 Reviewed by Timothy Hatcher. The client might want to free up resources or close spawned windows if the remote end has disconnected from the automation session. * UIProcess/API/APIAutomationSessionClient.h: (API::AutomationSessionClient::didDisconnectFromRemote): Added. (API::AutomationSessionClient::didRequestNewWindow): Remove WebProcessPool* argument as it is never used. * UIProcess/API/Cocoa/_WKAutomationSession.h: * UIProcess/API/Cocoa/_WKAutomationSession.mm: (-[_WKAutomationSession isPaired]): Expose whether the session is paired with a remote end. * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Add method. * UIProcess/Cocoa/AutomationSessionClient.h: Add method. Remove WebProcessPool* argument as it is never used. * UIProcess/Cocoa/AutomationSessionClient.mm: (WebKit::AutomationSessionClient::AutomationSessionClient): (WebKit::AutomationSessionClient::didRequestNewWindow): (WebKit::AutomationSessionClient::didDisconnectFromRemote): Add necessary forwarding boilerplate. * UIProcess/WebAutomationSession.cpp: (WebKit::WebAutomationSession::disconnect): Inform the client. 2016-02-19 Beth Dakin Enhance EditorState to include TypingAttributes, alignment, and color https://bugs.webkit.org/show_bug.cgi?id=154424 Reviewed by Dean Jackson and Sam Weinig. TypingAttributes is already available for iOS and GTK. This patch hooks that up on Mac as well, and it moves the calculation of that to the shared file since there is no reason for this to be written in an iOS-only way. This patch also adds textColor and textAlignment to EditorState, and since those are not technically platform-specific either, they are also calculated in the shared editorState() function. * Shared/EditorState.cpp: (WebKit::EditorState::PostLayoutData::encode): (WebKit::EditorState::PostLayoutData::decode): * Shared/EditorState.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::editorState): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformEditorState): 2016-02-19 Anders Carlsson Purge as much as we can from WKDeprecatedFunctions.cpp https://bugs.webkit.org/show_bug.cgi?id=154459 Reviewed by Sam Weinig. * Shared/API/c/WKDeprecatedFunctions.cpp: (WKArrayIsMutable): Deleted. (WKPageSetVisibilityState): Deleted. (WKDictionaryIsMutable): Deleted. (WKDictionaryAddItem): Deleted. (WKDictionaryRemoveItem): Deleted. (WKPreferencesSetRegionBasedColumnsEnabled): Deleted. (WKPreferencesGetRegionBasedColumnsEnabled): Deleted. (WKPreferencesSetMultithreadedWebGLEnabled): Deleted. (WKPreferencesGetMultithreadedWebGLEnabled): Deleted. (WKPreferencesSetScreenFontSubstitutionEnabled): Deleted. (WKPreferencesGetScreenFontSubstitutionEnabled): Deleted. (WKInspectorIsDebuggingJavaScript): Deleted. (WKInspectorToggleJavaScriptDebugging): Deleted. (WKInspectorIsProfilingJavaScript): Deleted. (WKInspectorToggleJavaScriptProfiling): Deleted. (WKContextGetProcessModel): Deleted. (WKGraphicsContextGetCGContext): Deleted. (WKContextGetProcessSuppressionEnabled): Deleted. (WKContextSetProcessSuppressionEnabled): Deleted. 2016-02-19 Brady Eidson Add "databaseProcessDidCrash" to the WKContextClient; Adopt it in WKTR. https://bugs.webkit.org/show_bug.cgi?id=154428 Reviewed by Jer Noble. * UIProcess/API/C/WKContext.h: * UIProcess/API/C/mac/WKContextPrivateMac.h: * UIProcess/API/C/mac/WKContextPrivateMac.mm: (WKContextGetDatabaseProcessIdentifier): * UIProcess/WebContextClient.cpp: (WebKit::WebContextClient::databaseProcessDidCrash): * UIProcess/WebContextClient.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::databaseProcessCrashed): (WebKit::WebProcessPool::databaseProcessIdentifier): * UIProcess/WebProcessPool.h: 2016-02-18 Gwang Yoon Hwang [GTK] Limit the number of tiles according to the visible area https://bugs.webkit.org/show_bug.cgi?id=126122 Reviewed by Carlos Garcia Campos. * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::initialize): Because we creates nonCompositingLayer with a size of current view, we should not apply the currently visible rect when creating / deleting tiles. (WebKit::LayerTreeHostGtk::flushPendingLayerChanges): Passes the current visible rect to the GraphicsLayers. 2016-02-18 Brady Eidson Modern IDB: Fix IDBGetResult encoder/decoder. https://bugs.webkit.org/show_bug.cgi?id=154421 Reviewed by Alex Christensen. No new tests, as Modern IDB is still disabled for WK2. But if you manually enable it, "Basic IndexedDB Seems To Work" * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. * Shared/WebCoreArgumentCoders.h: 2016-02-18 Brady Eidson Modern IDB: Implement server->client operations in WK2. https://bugs.webkit.org/show_bug.cgi?id=154411 Reviewed by Alex Christensen. No change in behavior yet; Just laying the groundwork. * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: (WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient): (WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient): * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: (WebKit::WebIDBConnectionToServer::didDeleteDatabase): (WebKit::WebIDBConnectionToServer::didOpenDatabase): (WebKit::WebIDBConnectionToServer::didAbortTransaction): (WebKit::WebIDBConnectionToServer::didCommitTransaction): (WebKit::WebIDBConnectionToServer::didCreateObjectStore): (WebKit::WebIDBConnectionToServer::didDeleteObjectStore): (WebKit::WebIDBConnectionToServer::didClearObjectStore): (WebKit::WebIDBConnectionToServer::didCreateIndex): (WebKit::WebIDBConnectionToServer::didDeleteIndex): (WebKit::WebIDBConnectionToServer::didPutOrAdd): (WebKit::WebIDBConnectionToServer::didGetRecord): (WebKit::WebIDBConnectionToServer::didGetCount): (WebKit::WebIDBConnectionToServer::didDeleteRecord): (WebKit::WebIDBConnectionToServer::didOpenCursor): (WebKit::WebIDBConnectionToServer::didIterateCursor): (WebKit::WebIDBConnectionToServer::fireVersionChangeEvent): (WebKit::WebIDBConnectionToServer::didStartTransaction): (WebKit::WebIDBConnectionToServer::notifyOpenDBRequestBlocked): * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: * WebProcess/Databases/WebToDatabaseProcessConnection.cpp: (WebKit::WebToDatabaseProcessConnection::didReceiveMessage): 2016-02-18 Brian Burg RemoteInspector deadlocks if _WKAutomationDelegate creates/registers a target synchronously https://bugs.webkit.org/show_bug.cgi?id=154359 Reviewed by Joseph Pecoraro. * UIProcess/Cocoa/AutomationClient.mm: (WebKit::AutomationClient::requestAutomationSession): Make an NSString out of the String reference so it gets captured correctly. 2016-02-18 Brady Eidson Modern IDB: Implement client->server operations in WK2. https://bugs.webkit.org/show_bug.cgi?id=154400 Reviewed by Alex Christensen. No change in behavior yet; Just laying the groundwork. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::idbServer): * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/DatabaseToWebProcessConnection.cpp: (WebKit::DatabaseToWebProcessConnection::didReceiveMessage): * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h: * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: (WebKit::WebIDBConnectionToClient::deleteDatabase): (WebKit::WebIDBConnectionToClient::openDatabase): (WebKit::WebIDBConnectionToClient::abortTransaction): (WebKit::WebIDBConnectionToClient::commitTransaction): (WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction): (WebKit::WebIDBConnectionToClient::createObjectStore): (WebKit::WebIDBConnectionToClient::deleteObjectStore): (WebKit::WebIDBConnectionToClient::clearObjectStore): (WebKit::WebIDBConnectionToClient::createIndex): (WebKit::WebIDBConnectionToClient::deleteIndex): (WebKit::WebIDBConnectionToClient::putOrAdd): (WebKit::WebIDBConnectionToClient::getRecord): (WebKit::WebIDBConnectionToClient::getCount): (WebKit::WebIDBConnectionToClient::deleteRecord): (WebKit::WebIDBConnectionToClient::openCursor): (WebKit::WebIDBConnectionToClient::iterateCursor): (WebKit::WebIDBConnectionToClient::establishTransaction): (WebKit::WebIDBConnectionToClient::databaseConnectionClosed): (WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded): (WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent): * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in: 2016-02-18 ChangSeok Oh [GTK][Threaded Compositor] The web inspector doesn't work when using the threaded compositor https://bugs.webkit.org/show_bug.cgi?id=154067 Reviewed by Carlos Garcia Campos. The forceCompositingMode should be true for threaded compositor. We set it true for a normal webView in _WebKitSettingsPrivate() but we do not for inspector anywhere. So DrawingArea is not properly created for the inspector. Let's move the setting to WebPreferences::platformInitializeStore which is a common place for the webView and the inspector. * UIProcess/API/gtk/WebKitSettings.cpp: (_WebKitSettingsPrivate::_WebKitSettingsPrivate): Deleted. * UIProcess/gtk/WebPreferencesGtk.cpp: (WebKit::WebPreferences::platformInitializeStore): 2016-02-18 Commit Queue Unreviewed, rolling out r196765. https://bugs.webkit.org/show_bug.cgi?id=154402 Broke Safari (Requested by andersca on #webkit). Reverted changeset: "Remove two unused functions" https://bugs.webkit.org/show_bug.cgi?id=154397 http://trac.webkit.org/changeset/196765 2016-02-18 Anders Carlsson Remove two unused functions https://bugs.webkit.org/show_bug.cgi?id=154397 Reviewed by Tim Horton. * UIProcess/API/C/WKContext.cpp: (WKContextGetPluginSiteDataManager): Deleted. (WKContextGetResourceCacheManager): Deleted. * UIProcess/API/C/WKContext.h: 2016-02-18 Carlos Garcia Campos [GTK] Use G_TYPE_ERROR instead of G_TYPE_POINTER for GError parameters of signals https://bugs.webkit.org/show_bug.cgi?id=153786 Reviewed by Michael Catanzaro. It's binary compatible and it's needed by binding generator to properly identify those parameters as GError. * UIProcess/API/gtk/WebKitDownload.cpp: (webkit_download_class_init): * UIProcess/API/gtk/WebKitPrintOperation.cpp: (webkit_print_operation_class_init): * UIProcess/API/gtk/WebKitWebResource.cpp: (webkit_web_resource_class_init): * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_class_init): * UIProcess/API/gtk/webkit2marshal.list: 2016-02-18 Ryuan Choi [EFL] Move WebView from CoordinatedGraphics to efl https://bugs.webkit.org/show_bug.cgi?id=154332 Reviewed by Csaba Osztrogonác. * PlatformEfl.cmake: * UIProcess/efl/WebView.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp. * UIProcess/efl/WebView.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.h. * UIProcess/efl/WebViewClient.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/WebViewClient.cpp. * UIProcess/efl/WebViewClient.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/WebViewClient.h. 2016-02-17 Brady Eidson Modern IDB: Rename some "UniqueIDBDatabase" classes that conflict with new classes in WebCore. https://bugs.webkit.org/show_bug.cgi?id=154363. Reviewed by Alex Christensen. Adding "Legacy" to the front of the name fixes problems for now. And all of this gunk will go away after Modern IDB is done, anyways. * CMakeLists.txt: * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::getOrCreateLegacyUniqueIDBDatabase): (WebKit::DatabaseProcess::removeLegacyUniqueIDBDatabase): (WebKit::DatabaseProcess::getOrCreateUniqueIDBDatabase): Deleted. (WebKit::DatabaseProcess::removeUniqueIDBDatabase): Deleted. * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp: (WebKit::DatabaseProcessIDBConnection::establishConnection): * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h: * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.cpp: Renamed from Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp. (WebKit::LegacyUniqueIDBDatabase::calculateAbsoluteDatabaseFilename): (WebKit::LegacyUniqueIDBDatabase::LegacyUniqueIDBDatabase): (WebKit::LegacyUniqueIDBDatabase::~LegacyUniqueIDBDatabase): (WebKit::LegacyUniqueIDBDatabase::filenameForDatabaseName): (WebKit::LegacyUniqueIDBDatabase::databaseFilenameIdentifier): (WebKit::LegacyUniqueIDBDatabase::canShareDatabases): (WebKit::LegacyUniqueIDBDatabase::registerConnection): (WebKit::LegacyUniqueIDBDatabase::unregisterConnection): (WebKit::LegacyUniqueIDBDatabase::shutdown): (WebKit::LegacyUniqueIDBDatabase::shutdownBackingStore): (WebKit::LegacyUniqueIDBDatabase::didShutdownBackingStore): (WebKit::LegacyUniqueIDBDatabase::deleteDatabase): (WebKit::LegacyUniqueIDBDatabase::getOrEstablishIDBDatabaseMetadata): (WebKit::LegacyUniqueIDBDatabase::openBackingStoreAndReadMetadata): (WebKit::LegacyUniqueIDBDatabase::didOpenBackingStoreAndReadMetadata): (WebKit::LegacyUniqueIDBDatabase::openTransaction): (WebKit::LegacyUniqueIDBDatabase::beginTransaction): (WebKit::LegacyUniqueIDBDatabase::commitTransaction): (WebKit::LegacyUniqueIDBDatabase::resetTransaction): (WebKit::LegacyUniqueIDBDatabase::rollbackTransaction): (WebKit::LegacyUniqueIDBDatabase::postTransactionOperation): (WebKit::LegacyUniqueIDBDatabase::didCompleteTransactionOperation): (WebKit::LegacyUniqueIDBDatabase::changeDatabaseVersion): (WebKit::LegacyUniqueIDBDatabase::didChangeDatabaseVersion): (WebKit::LegacyUniqueIDBDatabase::didCreateObjectStore): (WebKit::LegacyUniqueIDBDatabase::didDeleteObjectStore): (WebKit::LegacyUniqueIDBDatabase::didClearObjectStore): (WebKit::LegacyUniqueIDBDatabase::didCreateIndex): (WebKit::LegacyUniqueIDBDatabase::didDeleteIndex): (WebKit::LegacyUniqueIDBDatabase::didCompleteBoolRequest): (WebKit::LegacyUniqueIDBDatabase::createObjectStore): (WebKit::LegacyUniqueIDBDatabase::deleteObjectStore): (WebKit::LegacyUniqueIDBDatabase::clearObjectStore): (WebKit::LegacyUniqueIDBDatabase::createIndex): (WebKit::LegacyUniqueIDBDatabase::deleteIndex): (WebKit::LegacyUniqueIDBDatabase::putRecord): (WebKit::LegacyUniqueIDBDatabase::getRecord): (WebKit::LegacyUniqueIDBDatabase::openCursor): (WebKit::LegacyUniqueIDBDatabase::cursorAdvance): (WebKit::LegacyUniqueIDBDatabase::cursorIterate): (WebKit::LegacyUniqueIDBDatabase::count): (WebKit::LegacyUniqueIDBDatabase::deleteRange): (WebKit::LegacyUniqueIDBDatabase::openBackingStoreTransaction): (WebKit::LegacyUniqueIDBDatabase::beginBackingStoreTransaction): (WebKit::LegacyUniqueIDBDatabase::commitBackingStoreTransaction): (WebKit::LegacyUniqueIDBDatabase::resetBackingStoreTransaction): (WebKit::LegacyUniqueIDBDatabase::rollbackBackingStoreTransaction): (WebKit::LegacyUniqueIDBDatabase::changeDatabaseVersionInBackingStore): (WebKit::LegacyUniqueIDBDatabase::createObjectStoreInBackingStore): (WebKit::LegacyUniqueIDBDatabase::deleteObjectStoreInBackingStore): (WebKit::LegacyUniqueIDBDatabase::clearObjectStoreInBackingStore): (WebKit::LegacyUniqueIDBDatabase::createIndexInBackingStore): (WebKit::LegacyUniqueIDBDatabase::deleteIndexInBackingStore): (WebKit::LegacyUniqueIDBDatabase::putRecordInBackingStore): (WebKit::LegacyUniqueIDBDatabase::didPutRecordInBackingStore): (WebKit::LegacyUniqueIDBDatabase::getRecordFromBackingStore): (WebKit::LegacyUniqueIDBDatabase::didGetRecordFromBackingStore): (WebKit::LegacyUniqueIDBDatabase::openCursorInBackingStore): (WebKit::LegacyUniqueIDBDatabase::didOpenCursorInBackingStore): (WebKit::LegacyUniqueIDBDatabase::advanceCursorInBackingStore): (WebKit::LegacyUniqueIDBDatabase::didAdvanceCursorInBackingStore): (WebKit::LegacyUniqueIDBDatabase::iterateCursorInBackingStore): (WebKit::LegacyUniqueIDBDatabase::didIterateCursorInBackingStore): (WebKit::LegacyUniqueIDBDatabase::countInBackingStore): (WebKit::LegacyUniqueIDBDatabase::didCountInBackingStore): (WebKit::LegacyUniqueIDBDatabase::deleteRangeInBackingStore): (WebKit::LegacyUniqueIDBDatabase::didDeleteRangeInBackingStore): (WebKit::LegacyUniqueIDBDatabase::didEstablishTransaction): (WebKit::LegacyUniqueIDBDatabase::didResetTransaction): (WebKit::LegacyUniqueIDBDatabase::resetAllTransactions): (WebKit::LegacyUniqueIDBDatabase::finalizeRollback): (WebKit::LegacyUniqueIDBDatabase::absoluteDatabaseDirectory): (WebKit::LegacyUniqueIDBDatabase::postMainThreadTask): (WebKit::LegacyUniqueIDBDatabase::performNextMainThreadTask): (WebKit::LegacyUniqueIDBDatabase::postDatabaseTask): (WebKit::LegacyUniqueIDBDatabase::performNextDatabaseTask): * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabase.h: Renamed from Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h. (WebKit::LegacyUniqueIDBDatabase::create): (WebKit::LegacyUniqueIDBDatabase::identifier): * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.cpp: Renamed from Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.cpp. (WebKit::LegacyUniqueIDBDatabaseIdentifier::LegacyUniqueIDBDatabaseIdentifier): (WebKit::LegacyUniqueIDBDatabaseIdentifier::isHashTableDeletedValue): (WebKit::LegacyUniqueIDBDatabaseIdentifier::hash): (WebKit::LegacyUniqueIDBDatabaseIdentifier::isNull): (WebKit::LegacyUniqueIDBDatabaseIdentifier::isolatedCopy): (WebKit::operator==): * DatabaseProcess/IndexedDB/LegacyUniqueIDBDatabaseIdentifier.h: Renamed from Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.h. (WebKit::LegacyUniqueIDBDatabaseIdentifier::databaseName): (WebKit::LegacyUniqueIDBDatabaseIdentifier::openingOrigin): (WebKit::LegacyUniqueIDBDatabaseIdentifier::mainFrameOrigin): (WebKit::LegacyUniqueIDBDatabaseIdentifierHash::hash): (WebKit::LegacyUniqueIDBDatabaseIdentifierHash::equal): (WebKit::LegacyUniqueIDBDatabaseIdentifierHashTraits::isEmptyValue): * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: (WebKit::UniqueIDBDatabaseBackingStoreSQLite::UniqueIDBDatabaseBackingStoreSQLite): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getOrEstablishMetadata): * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h: * Shared/WebCrossThreadCopier.cpp: (WebCore::LegacyUniqueIDBDatabaseIdentifier>::copy): (WebCore::UniqueIDBDatabaseIdentifier>::copy): Deleted. * Shared/WebCrossThreadCopier.h: * WebKit2.xcodeproj/project.pbxproj: 2016-02-17 Anders Carlsson Remove WebContextSupplement::shouldTerminate, it's no longer used https://bugs.webkit.org/show_bug.cgi?id=154367 Reviewed by Sam Weinig. * UIProcess/WebContextSupplement.h: (WebKit::WebContextSupplement::shouldTerminate): Deleted. * UIProcess/WebCookieManagerProxy.cpp: (WebKit::WebCookieManagerProxy::shouldTerminate): Deleted. * UIProcess/WebCookieManagerProxy.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::shouldTerminate): Deleted. 2016-02-17 Brian Burg RemoteInspector deadlocks if _WKAutomationDelegate creates/registers a target synchronously https://bugs.webkit.org/show_bug.cgi?id=154359 Reviewed by Joseph Pecoraro. RemoteInspector always grabs a lock whenever receiving or sending XPC messages. If it forwards a new session request via _WKAutomationDelegate, and the client synchronously creates and registers a session, then RemoteInspector will try to grab the lock again while adding the session to its registry, causing a deadlock. * UIProcess/Cocoa/AutomationClient.mm: (WebKit::AutomationClient::requestAutomationSession): Add a dispatch_async() to protect clients from accidentally deadlocking. They shouldn't have to care about RemoteInspector's locking mechanisms. 2016-02-17 Anders Carlsson Remove an unused function https://bugs.webkit.org/show_bug.cgi?id=154358 Reviewed by Sam Weinig. * Platform/cg/CGUtilities.cpp: (WebKit::paintBitmapContext): Deleted. * Platform/cg/CGUtilities.h: 2016-02-17 Brady Eidson Modern IDB: More Encoder/Decoder/Messaging scaffolding for WK2 IPC. https://bugs.webkit.org/show_bug.cgi?id=154356 Reviewed by Alex Christensen. No change in behavior yet; Just laying the groundwork. * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: (WebKit::WebIDBConnectionToClient::didDeleteDatabase): (WebKit::WebIDBConnectionToClient::didOpenDatabase): (WebKit::WebIDBConnectionToClient::didAbortTransaction): (WebKit::WebIDBConnectionToClient::didCommitTransaction): (WebKit::WebIDBConnectionToClient::didCreateObjectStore): (WebKit::WebIDBConnectionToClient::didDeleteObjectStore): (WebKit::WebIDBConnectionToClient::didClearObjectStore): (WebKit::WebIDBConnectionToClient::didCreateIndex): (WebKit::WebIDBConnectionToClient::didDeleteIndex): (WebKit::WebIDBConnectionToClient::didPutOrAdd): (WebKit::WebIDBConnectionToClient::didGetRecord): (WebKit::WebIDBConnectionToClient::didGetCount): (WebKit::WebIDBConnectionToClient::didDeleteRecord): (WebKit::WebIDBConnectionToClient::didOpenCursor): (WebKit::WebIDBConnectionToClient::didIterateCursor): (WebKit::WebIDBConnectionToClient::fireVersionChangeEvent): (WebKit::WebIDBConnectionToClient::didStartTransaction): (WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked): * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in: 2016-02-17 Alex Christensen Fix GTK build after r196720. * UIProcess/API/gtk/WebKitUIClient.cpp: 2016-02-17 Anders Carlsson Need listener-based version of runBeforeUnloadConfirmPanel https://bugs.webkit.org/show_bug.cgi?id=154354 rdar://problem/23736691 Reviewed by Sam Weinig. * Shared/API/APIObject.h: * Shared/API/c/WKBase.h: * UIProcess/API/APIUIClient.h: (API::UIClient::runBeforeUnloadConfirmPanel): * UIProcess/API/C/WKPage.cpp: (fixUpBotchedPageUIClient): (WebKit::RunBeforeUnloadConfirmPanelResultListener::create): (WebKit::RunBeforeUnloadConfirmPanelResultListener::~RunBeforeUnloadConfirmPanelResultListener): (WebKit::RunBeforeUnloadConfirmPanelResultListener::call): (WKPageRunBeforeUnloadConfirmPanelResultListenerGetTypeID): (WKPageRunBeforeUnloadConfirmPanelResultListenerCall): (WKPageSetPageUIClient): * UIProcess/API/C/WKPageUIClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: 2016-02-17 Simon Fraser PDFPlugin's scrollableArea container is not properly unregistered when page is going into the PageCache https://bugs.webkit.org/show_bug.cgi?id=148182 Reviewed by Brent Fulgham. When handling Command-arrow key while showing a scrollable PDF, the timing of PDFPlugin teardown and navigation could result in PDFPlugin::destroy() getting the wrong FrameView, so the old FrameView was left with a stale pointer in its scrollableAreaSet. Fix this by adding an explicit willDetatchRenderer() which is called on the plugin before the Frame gets a new FrameView. Also narrow the scope of the RefPtr in HTMLPlugInElement::defaultEventHandler() so that the Widget is not kept alive over a possible navigation. I was unable to make an automated test, because reproducing the bug requires handling a Command-arrow key event in a way that the last ref to a Widget is held over the event handling, and this wasn't possible in an iframe. * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h: * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::willDetatchRenderer): * WebProcess/Plugins/Plugin.h: (WebKit::Plugin::willDetatchRenderer): * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::willDetatchRenderer): * WebProcess/Plugins/PluginView.h: 2016-02-17 Brady Eidson Modern IDB: Encoder/Decoder/Messaging scaffolding for WK2 IPC. https://bugs.webkit.org/show_bug.cgi?id=154351 Reviewed by Alex Christensen. No change in behavior yet; Just laying the groundwork. Implement in all of the client->server message sends, requiring many Encoder/Decoders for IDB objects to also be implemented: * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: (WebKit::WebIDBConnectionToServer::deleteDatabase): (WebKit::WebIDBConnectionToServer::openDatabase): (WebKit::WebIDBConnectionToServer::abortTransaction): (WebKit::WebIDBConnectionToServer::commitTransaction): (WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction): (WebKit::WebIDBConnectionToServer::createObjectStore): (WebKit::WebIDBConnectionToServer::deleteObjectStore): (WebKit::WebIDBConnectionToServer::clearObjectStore): (WebKit::WebIDBConnectionToServer::createIndex): (WebKit::WebIDBConnectionToServer::deleteIndex): (WebKit::WebIDBConnectionToServer::putOrAdd): (WebKit::WebIDBConnectionToServer::getRecord): (WebKit::WebIDBConnectionToServer::getCount): (WebKit::WebIDBConnectionToServer::deleteRecord): (WebKit::WebIDBConnectionToServer::openCursor): (WebKit::WebIDBConnectionToServer::iterateCursor): (WebKit::WebIDBConnectionToServer::establishTransaction): (WebKit::WebIDBConnectionToServer::databaseConnectionClosed): (WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded): (WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent): 2016-02-17 Alex Christensen Copy http body when being redirected with 308 with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154348 Reviewed by Brady Eidson. This fixes http/tests/security/cors-post-redirect-308.html which used to assert in ResourceRequest::doUpdateResourceHTTPBody * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTask::willPerformHTTPRedirection): 2016-02-17 Brady Eidson Modern IDB: More WK2 IPC Scaffolding. https://bugs.webkit.org/show_bug.cgi?id=154317 Reviewed by Alex Christensen. No change in behavior yet; Just laying the groundwork. * CMakeLists.txt: * DerivedSources.make: * WebKit2.xcodeproj/project.pbxproj: * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: (WebKit::WebIDBConnectionToClient::deleteDatabase): (WebKit::WebIDBConnectionToClient::openDatabase): (WebKit::WebIDBConnectionToClient::abortTransaction): (WebKit::WebIDBConnectionToClient::commitTransaction): (WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction): (WebKit::WebIDBConnectionToClient::createObjectStore): (WebKit::WebIDBConnectionToClient::deleteObjectStore): (WebKit::WebIDBConnectionToClient::clearObjectStore): (WebKit::WebIDBConnectionToClient::createIndex): (WebKit::WebIDBConnectionToClient::deleteIndex): (WebKit::WebIDBConnectionToClient::putOrAdd): (WebKit::WebIDBConnectionToClient::getRecord): (WebKit::WebIDBConnectionToClient::getCount): (WebKit::WebIDBConnectionToClient::deleteRecord): (WebKit::WebIDBConnectionToClient::openCursor): (WebKit::WebIDBConnectionToClient::iterateCursor): (WebKit::WebIDBConnectionToClient::establishTransaction): (WebKit::WebIDBConnectionToClient::databaseConnectionClosed): (WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded): (WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent): * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in: Added. * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: (WebKit::WebIDBConnectionToServer::didDeleteDatabase): (WebKit::WebIDBConnectionToServer::didOpenDatabase): (WebKit::WebIDBConnectionToServer::didAbortTransaction): (WebKit::WebIDBConnectionToServer::didCommitTransaction): (WebKit::WebIDBConnectionToServer::didCreateObjectStore): (WebKit::WebIDBConnectionToServer::didDeleteObjectStore): (WebKit::WebIDBConnectionToServer::didClearObjectStore): (WebKit::WebIDBConnectionToServer::didCreateIndex): (WebKit::WebIDBConnectionToServer::didDeleteIndex): (WebKit::WebIDBConnectionToServer::didPutOrAdd): (WebKit::WebIDBConnectionToServer::didGetRecord): (WebKit::WebIDBConnectionToServer::didGetCount): (WebKit::WebIDBConnectionToServer::didDeleteRecord): (WebKit::WebIDBConnectionToServer::didOpenCursor): (WebKit::WebIDBConnectionToServer::didIterateCursor): * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in: Added. 2016-02-17 Alex Christensen CMake build fix after r196698. * PlatformMac.cmake: 2016-02-17 Alex Christensen CMake build fix after r196698. * CMakeLists.txt: 2016-02-17 Anders Carlsson Remove unused media cache manager code https://bugs.webkit.org/show_bug.cgi?id=154339 Reviewed by Tim Horton. * DerivedSources.make: * Shared/API/c/WKBase.h: * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKContext.cpp: (WKContextGetMediaCacheManager): Deleted. * UIProcess/API/C/WKContext.h: * UIProcess/API/C/WKMediaCacheManager.cpp: Removed. (WKMediaCacheManagerGetTypeID): Deleted. (WKMediaCacheManagerGetHostnamesWithMediaCache): Deleted. (WKMediaCacheManagerClearCacheForHostname): Deleted. (WKMediaCacheManagerClearCacheForAllHostnames): Deleted. * UIProcess/API/C/WKMediaCacheManager.h: Removed. * UIProcess/WebMediaCacheManagerProxy.cpp: Removed. (WebKit::WebMediaCacheManagerProxy::supplementName): Deleted. (WebKit::WebMediaCacheManagerProxy::create): Deleted. (WebKit::WebMediaCacheManagerProxy::WebMediaCacheManagerProxy): Deleted. (WebKit::WebMediaCacheManagerProxy::~WebMediaCacheManagerProxy): Deleted. (WebKit::WebMediaCacheManagerProxy::processPoolDestroyed): Deleted. (WebKit::WebMediaCacheManagerProxy::processDidClose): Deleted. (WebKit::WebMediaCacheManagerProxy::shouldTerminate): Deleted. (WebKit::WebMediaCacheManagerProxy::refWebContextSupplement): Deleted. (WebKit::WebMediaCacheManagerProxy::derefWebContextSupplement): Deleted. (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache): Deleted. (WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache): Deleted. (WebKit::WebMediaCacheManagerProxy::clearCacheForHostname): Deleted. (WebKit::WebMediaCacheManagerProxy::clearCacheForAllHostnames): Deleted. * UIProcess/WebMediaCacheManagerProxy.h: Removed. * UIProcess/WebMediaCacheManagerProxy.messages.in: Removed. * UIProcess/WebProcessPool.cpp: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/MediaCache/WebMediaCacheManager.cpp: Removed. (WebKit::WebMediaCacheManager::supplementName): Deleted. (WebKit::WebMediaCacheManager::WebMediaCacheManager): Deleted. (WebKit::WebMediaCacheManager::getHostnamesWithMediaCache): Deleted. (WebKit::WebMediaCacheManager::clearCacheForHostname): Deleted. (WebKit::WebMediaCacheManager::clearCacheForAllHostnames): Deleted. * WebProcess/MediaCache/WebMediaCacheManager.h: Removed. * WebProcess/MediaCache/WebMediaCacheManager.messages.in: Removed. * WebProcess/WebProcess.cpp: (WebKit::m_webSQLiteDatabaseTracker): Deleted. 2016-02-16 Dean Jackson Allow double tap to zoom in fast-click pages https://bugs.webkit.org/show_bug.cgi?id=154318 Reviewed by Simon Fraser and Benjamin Poulain. Most of the patch comes from Jon Lee. Our fast-click algorithm exposed a number of cases where people missed the double-tap-to-zoom behaviour. In particular, when you double tap on a large body of text, typical in blogs and articles. This patch enhances the algorithm to have a parallel double-tap gesture recognizer in the situations where fast-click is enabled. This new gesture recongizer does not cause the single tap to block for 350ms, so clicks are still dispatched fast. If it fires, we already have some information about whether we have a pending double tap, based on the first tap. * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::disableDoubleTapGesturesDuringTapIfNecessary): Remove the optimization that only told the content view to disable on pages that allowed double taps. We now allow them even on fast click pages. * UIProcess/ios/WKContentViewInteraction.h: Add the new UITapGestureRecognizer for double taps in fast click pages. This is called nonBlockingDoubleTapGestureRecognizer because, unlike the existing DoubleTapGestureRecognizer, this one does not force the singleTapRecognizer to wait. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): Set up the new UITapGestureRecognizer. (-[WKContentView cleanupInteraction]): And remove it when we're done. (-[WKContentView _removeDefaultGestureRecognizers]): Ditto. (-[WKContentView _addDefaultGestureRecognizers]): (-[WKContentView _inspectorNodeSearchRecognized:]): Something happened, we are no longer in a potential double tap situation. (-[WKContentView _disableDoubleTapGesturesDuringTapIfNecessary:]): Remove the check for potential tap in progress. (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): (-[WKContentView gestureRecognizerShouldBegin:]): (-[WKContentView _highlightLongPressRecognized:]): Again, something happened, so we are no longer in a double tap situation. (-[WKContentView _longPressRecognized:]): Ditto. (-[WKContentView _singleTapRecognized:]): Ditto. (-[WKContentView _doubleTapRecognized:]): Ditto. (-[WKContentView _resetIsDoubleTapPending]): (-[WKContentView _fastDoubleTapRecognized:]): We're now pending a double tap. (-[WKContentView _twoFingerDoubleTapRecognized:]): (-[WKContentView _didNotHandleTapAsClick:]): If we get here and we have a pending double tap, then trigger a zoom operation. (-[WKContentView _setDoubleTapGesturesEnabled:]): 2016-02-16 Alex Christensen CMake build fix. * PlatformMac.cmake: 2016-02-16 Alex Christensen Use NSURLCredential from serverTrust when evaluating server trust AuthenticationChallenges with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154316 Reviewed by Brady Eidson. This fixes http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html and many other layout tests that use https because it allows https connections with servers with self-signed certificates when TestController::canAuthenticateAgainstProtectionSpace in WebKitTestRunner says it's OK, or when any other WKPageNavigationClient says it's ok. * NetworkProcess/NetworkDataTask.h: * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::serverTrustCredential): 2016-02-16 Anders Carlsson Use pid_t everywhere, instead of PlatformProcessIdentifier https://bugs.webkit.org/show_bug.cgi?id=154306 Reviewed by Sam Weinig. * Platform/IPC/Connection.h: * Platform/PlatformProcessIdentifier.h: Removed. * UIProcess/API/efl/tests/test_ewk2_context.cpp: (TEST_F): * UIProcess/ChildProcessProxy.h: (WebKit::ChildProcessProxy::processIdentifier): * UIProcess/Launcher/ProcessLauncher.cpp: (WebKit::ProcessLauncher::didFinishLaunchingProcess): * UIProcess/Launcher/ProcessLauncher.h: (WebKit::ProcessLauncher::processIdentifier): * UIProcess/Launcher/mac/ProcessLauncherMac.mm: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::processIdentifier): * UIProcess/WebPageProxy.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::networkProcessIdentifier): * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.h: * WebKit2.xcodeproj/project.pbxproj: 2016-02-16 Anders Carlsson Remove WebKit2 header cruft https://bugs.webkit.org/show_bug.cgi?id=154309 Reviewed by Sam Weinig. * WebKit2.xcodeproj/project.pbxproj: * mac/WKError.h: Removed. * mac/WKPreferences.h: Removed. 2016-02-16 Anders Carlsson Remove unused environment variable classes https://bugs.webkit.org/show_bug.cgi?id=154308 Reviewed by Tim Horton. * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.h: Removed. * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm: Removed. (WebKit::DynamicLinkerEnvironmentExtractor::DynamicLinkerEnvironmentExtractor): Deleted. (WebKit::DynamicLinkerEnvironmentExtractor::processEnvironmentVariable): Deleted. (WebKit::DynamicLinkerEnvironmentExtractor::processLoadCommand): Deleted. (WebKit::DynamicLinkerEnvironmentExtractor::processLoadCommands): Deleted. (WebKit::DynamicLinkerEnvironmentExtractor::processSingleArchitecture): Deleted. (WebKit::DynamicLinkerEnvironmentExtractor::processFatFile): Deleted. (WebKit::DynamicLinkerEnvironmentExtractor::getExtractedEnvironmentVariables): Deleted. * UIProcess/Launcher/mac/EnvironmentVariables.cpp: Removed. (WebKit::EnvironmentVariables::EnvironmentVariables): Deleted. (WebKit::EnvironmentVariables::~EnvironmentVariables): Deleted. (WebKit::EnvironmentVariables::set): Deleted. (WebKit::EnvironmentVariables::get): Deleted. (WebKit::EnvironmentVariables::appendValue): Deleted. (WebKit::EnvironmentVariables::valueIfVariableHasName): Deleted. (WebKit::EnvironmentVariables::createStringForVariable): Deleted. (WebKit::EnvironmentVariables::copyEnvironmentVariables): Deleted. (WebKit::EnvironmentVariables::dump): Deleted. * UIProcess/Launcher/mac/EnvironmentVariables.h: Removed. (WebKit::EnvironmentVariables::environmentPointer): Deleted. * UIProcess/Launcher/mac/ProcessLauncherMac.mm: * WebKit2.xcodeproj/project.pbxproj: 2016-02-16 Alex Christensen Add checks before redirecting with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154298 Reviewed by Andy Estes. * NetworkProcess/NetworkDataTask.h: (WebKit::NetworkDataTask::create): (WebKit::NetworkDataTask::setPendingDownload): * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTask::NetworkDataTask): (WebKit::NetworkDataTask::~NetworkDataTask): (WebKit::NetworkDataTask::willPerformHTTPRedirection): Implemented based on ResourceHandle::willSendRequest but with two notable exceptions: 1. When using NSURLConnection, the last http method and the current http method are not always equal, and this check needs to change the current http method to match the last http method when being redirected with an http status code 307. When using NSURLSession, the current http method is already updated properly. 2. I did not copy the part of ResourceHandle::willSendRequest that uses a CredentialStorage. I'm trying to avoid using CredentialStorages with NSURLSession. (WebKit::NetworkDataTask::scheduleFailure): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): 2016-02-16 Brady Eidson Modern IDB: WK2 IPC Scaffolding. https://bugs.webkit.org/show_bug.cgi?id=154296 Reviewed by Alex Christensen. No change in behavior yet; Just laying the groundwork. * CMakeLists.txt: * WebKit2.xcodeproj/project.pbxproj: * DatabaseProcess/DatabaseToWebProcessConnection.cpp: (WebKit::DatabaseToWebProcessConnection::establishIDBConnectionToServer): (WebKit::DatabaseToWebProcessConnection::removeIDBConnectionToServer): * DatabaseProcess/DatabaseToWebProcessConnection.h: * DatabaseProcess/DatabaseToWebProcessConnection.messages.in: * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: Added. (WebKit::WebIDBConnectionToClient::create): (WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient): (WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient): (WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): (WebKit::WebIDBConnectionToClient::messageSenderConnection): (WebKit::WebIDBConnectionToClient::connectionToClient): (WebKit::WebIDBConnectionToClient::didDeleteDatabase): (WebKit::WebIDBConnectionToClient::didOpenDatabase): (WebKit::WebIDBConnectionToClient::didAbortTransaction): (WebKit::WebIDBConnectionToClient::didCommitTransaction): (WebKit::WebIDBConnectionToClient::didCreateObjectStore): (WebKit::WebIDBConnectionToClient::didDeleteObjectStore): (WebKit::WebIDBConnectionToClient::didClearObjectStore): (WebKit::WebIDBConnectionToClient::didCreateIndex): (WebKit::WebIDBConnectionToClient::didDeleteIndex): (WebKit::WebIDBConnectionToClient::didPutOrAdd): (WebKit::WebIDBConnectionToClient::didGetRecord): (WebKit::WebIDBConnectionToClient::didGetCount): (WebKit::WebIDBConnectionToClient::didDeleteRecord): (WebKit::WebIDBConnectionToClient::didOpenCursor): (WebKit::WebIDBConnectionToClient::didIterateCursor): (WebKit::WebIDBConnectionToClient::fireVersionChangeEvent): (WebKit::WebIDBConnectionToClient::didStartTransaction): (WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked): * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: Added. * Platform/Logging.h: * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: Added. (WebKit::generateConnectionToServerIdentifier): (WebKit::WebIDBConnectionToServer::create): (WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): (WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer): (WebKit::WebIDBConnectionToServer::messageSenderConnection): (WebKit::WebIDBConnectionToServer::coreConnectionToServer): (WebKit::WebIDBConnectionToServer::deleteDatabase): (WebKit::WebIDBConnectionToServer::openDatabase): (WebKit::WebIDBConnectionToServer::abortTransaction): (WebKit::WebIDBConnectionToServer::commitTransaction): (WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction): (WebKit::WebIDBConnectionToServer::createObjectStore): (WebKit::WebIDBConnectionToServer::deleteObjectStore): (WebKit::WebIDBConnectionToServer::clearObjectStore): (WebKit::WebIDBConnectionToServer::createIndex): (WebKit::WebIDBConnectionToServer::deleteIndex): (WebKit::WebIDBConnectionToServer::putOrAdd): (WebKit::WebIDBConnectionToServer::getRecord): (WebKit::WebIDBConnectionToServer::getCount): (WebKit::WebIDBConnectionToServer::deleteRecord): (WebKit::WebIDBConnectionToServer::openCursor): (WebKit::WebIDBConnectionToServer::iterateCursor): (WebKit::WebIDBConnectionToServer::establishTransaction): (WebKit::WebIDBConnectionToServer::databaseConnectionClosed): (WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded): (WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent): * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: Added. * WebProcess/Databases/WebDatabaseProvider.cpp: (WebKit::WebDatabaseProvider::idbConnectionToServerForSession): * WebProcess/Databases/WebDatabaseProvider.h: * WebProcess/Databases/WebToDatabaseProcessConnection.cpp: (WebKit::WebToDatabaseProcessConnection::idbConnectionToServerForSession): * WebProcess/Databases/WebToDatabaseProcessConnection.h: 2016-02-16 Sam Weinig Revert r195826. * Platform/spi/ios/UIKitSPI.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _createAndConfigureDoubleTapGestureRecognizer]): (-[WKContentView _singleTapCommited:]): 2016-02-16 Csaba Osztrogonác [Mac][cmake] Unreviewed buildfix after r196488. Just for fun. * PlatformMac.cmake: 2016-02-15 Dan Bernstein Removed unused files after r196478. * Configurations/DatabaseProcess.xcconfig: Removed. * Configurations/NetworkProcess.xcconfig: Removed. * Configurations/PluginProcess.xcconfig: Removed. * Configurations/WebContentProcess.xcconfig: Removed. * WebKit2.xcodeproj/project.pbxproj: 2016-02-15 ChangSeok Oh [ThreadedCompositor] position:fixed elements do not have their own layers when threaded compositor is enabled. https://bugs.webkit.org/show_bug.cgi?id=154100 Reviewed by Carlos Garcia Campos. Currently, fixed elements are redrawn to a backing store every time layout or scroll happens. It results in the bad effect on performance-wise. Letting fixed element have separate layers is necessary when threaded compositor is enabled at least. Because async scrolling requires it. * WebProcess/WebPage/DrawingAreaImpl.cpp: (WebKit::DrawingAreaImpl::updatePreferences): 2016-02-15 Alex Christensen Implement content sniffing check with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154261 Reviewed by Andy Estes. This fixes http/tests/xmlhttprequest/small-chunks-response-text.html when using NetworkSession. * NetworkProcess/NetworkDataTask.h: (WebKit::NetworkDataTask::create): * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTask::NetworkDataTask): Content sniffing is enabled by default. Disable it if the NetworkLoadParameters say not to. This is analogous to behavior in ResourceHandle::createNSURLConnection. 2016-02-15 Alex Christensen Move Download authentication code to AuthenticationManager https://bugs.webkit.org/show_bug.cgi?id=154132 Reviewed by Sam Weinig. When a video element makes a request that receives an authentication challenge, the AuthenticationManager receives an AuthenticationChallenge without an AuthenticationClient. As a result, Download::receivedCredential and other functions were being called, which sent a message to the challenge's sender. This functionality is not specific to downloads, so I moved it from Download to AuthenticationManager. This fixes http/tests/media/video-auth.html when using NetworkSession because I use AuthenticationManager::receivedCredential if there is no AuthenticationClient instead of improperly asserting that there is always an AuthenticationClient if there is no completionHandler. * NetworkProcess/Downloads/Download.h: * NetworkProcess/Downloads/ios/DownloadIOS.mm: (WebKit::Download::platformDidFinish): (WebKit::Download::receivedCredential): Deleted. (WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted. (WebKit::Download::receivedCancellation): Deleted. (WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted. (WebKit::Download::receivedChallengeRejection): Deleted. * NetworkProcess/Downloads/mac/DownloadMac.mm: (WebKit::Download::platformDidFinish): (WebKit::Download::receivedCredential): Deleted. (WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted. (WebKit::Download::receivedCancellation): Deleted. (WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted. (WebKit::Download::receivedChallengeRejection): Deleted. * NetworkProcess/Downloads/soup/DownloadSoup.cpp: (WebKit::Download::platformDidFinish): (WebKit::Download::receivedCredential): Deleted. (WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted. (WebKit::Download::receivedCancellation): Deleted. (WebKit::Download::continueWithoutCredential): Deleted. (WebKit::Download::useCredential): Deleted. (WebKit::Download::cancelAuthenticationChallenge): Deleted. (WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted. (WebKit::Download::receivedChallengeRejection): Deleted. * PlatformEfl.cmake: * PlatformGTK.cmake: * PlatformMac.cmake: * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): (WebKit::AuthenticationManager::useCredentialForSingleChallenge): (WebKit::AuthenticationManager::continueWithoutCredentialForChallenge): (WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge): (WebKit::AuthenticationManager::cancelChallenge): (WebKit::AuthenticationManager::cancelSingleChallenge): (WebKit::AuthenticationManager::performDefaultHandling): (WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge): (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue): (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): * Shared/Authentication/AuthenticationManager.h: (WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount): * Shared/Authentication/cocoa: Added. * Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: Added. (WebKit::AuthenticationManager::receivedCredential): (WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential): (WebKit::AuthenticationManager::receivedCancellation): (WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling): (WebKit::AuthenticationManager::receivedChallengeRejection): * Shared/Authentication/soup: Added. * Shared/Authentication/soup/AuthenticationManagerSoup.cpp: Added. (WebKit::AuthenticationManager::receivedCredential): (WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential): (WebKit::AuthenticationManager::receivedCancellation): (WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling): (WebKit::AuthenticationManager::receivedChallengeRejection): * WebKit2.xcodeproj/project.pbxproj: 2016-02-15 Gyuyoung Kim [CMake][Mac] Remove WKNPAPIPlugInContainer.mm in WebKit2/PlatformMac.cmake https://bugs.webkit.org/show_bug.cgi?id=154234 Reviewed by Csaba Osztrogonác. * PlatformMac.cmake: Remove WKNPAPIPlugInContainer.mm. 2016-02-14 Chris Dumez Unreviewed, land an additional Mac CMake build fix. * PlatformMac.cmake: 2016-02-14 Brian Burg WKAutomationDelegate's requestAutomationSession should take a suggested session identifier https://bugs.webkit.org/show_bug.cgi?id=154012 Reviewed by Darin Adler. Add a string parameter to the delegate method for requesting a new session. * UIProcess/API/APIAutomationClient.h: (API::AutomationClient::didRequestAutomationSession): (API::AutomationClient::requestAutomationSession): Deleted. Rename the client method to better match the delegate method's name. * UIProcess/API/Cocoa/_WKAutomationDelegate.h: * UIProcess/Cocoa/AutomationClient.h: * UIProcess/Cocoa/AutomationClient.mm: (WebKit::AutomationClient::AutomationClient): (WebKit::AutomationClient::requestAutomationSession): 2016-02-13 Carlos Garcia Campos Unreviewed. Fix GTK+ and hopefully EFL build after r196499. * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp: (WebKit::ProcessLauncher::launchProcess): * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: (WebKit::ProcessLauncher::launchProcess): * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: (WebKit::PluginProcessProxy::platformGetLaunchOptions): 2016-02-12 Beth Dakin REGRESSION: Link preview is slow and unreliable https://bugs.webkit.org/show_bug.cgi?id=154197 -and corresponding- rdar://problem/24428064 Reviewed by Tim Horton. This patch rolls http://trac.webkit.org/changeset/187471 back in. That was how we fixed this problem ages ago. We rolled it out because it very mysteriously seemed to cause a memory regression, but we want to track that separately and not leave this performance regression in its place in the meantime. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateViewState): (WebKit::WebPageProxy::dispatchViewStateChange): (WebKit::WebPageProxy::updateActivityToken): 2016-02-12 Anders Carlsson Get rid of a 6 year old compiler workaround https://bugs.webkit.org/show_bug.cgi?id=154198 Reviewed by Sam Weinig. * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::connectToService): (WebKit::createService): 2016-02-12 Anders Carlsson Fix ASan build. * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::copyASanDynamicLibraryPath): Deleted. 2016-02-12 Anders Carlsson Remove NPAPI for showing preference panes https://bugs.webkit.org/show_bug.cgi?id=154193 Reviewed by Dan Bernstein. No plug-ins ended up adopting this API, so there's no point in keeping it around. * PluginProcess/PluginControllerProxy.h: * PluginProcess/mac/PluginControllerProxyMac.mm: (WebKit::PluginControllerProxy::openPluginPreferencePane): Deleted. * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::NetscapePluginModule::getPluginInfo): Deleted. * Shared/Plugins/PluginModuleInfo.h: * UIProcess/Plugins/PluginProcessProxy.h: * UIProcess/Plugins/PluginProcessProxy.messages.in: * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::openPluginPreferencePane): Deleted. * WebKit2.xcodeproj/project.pbxproj: * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_GetValue): Deleted. * WebProcess/Plugins/Netscape/NetscapePlugin.h: * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: (WebKit::NetscapePlugin::openPluginPreferencePane): Deleted. (WebKit::NetscapePlugin::plugInContainer): Deleted. (WebKit::NetscapePlugin::platformDestroy): Deleted. * WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainer.h: Removed. * WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainer.mm: Removed. (-[WKNPAPIPlugInContainer dealloc]): Deleted. (-[WKNPAPIPlugInContainer _invalidate]): Deleted. (-[WKNPAPIPlugInContainer openPlugInPreferencePane]): Deleted. * WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainerInternal.h: Removed. * WebProcess/Plugins/PluginController.h: * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::openPluginPreferencePane): Deleted. * WebProcess/Plugins/PluginView.h: 2016-02-12 Anders Carlsson Remove PowerPC cruft https://bugs.webkit.org/show_bug.cgi?id=154191 Reviewed by Dan Bernstein. * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::getPluginArchitecture): Deleted. 2016-02-12 Anders Carlsson Remove more unneeded process launching code https://bugs.webkit.org/show_bug.cgi?id=154190 Reviewed by Tim Horton. * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::getLaunchOptions): Deleted. * UIProcess/Databases/mac/DatabaseProcessProxyMac.mm: Removed. (WebKit::DatabaseProcessProxy::platformGetLaunchOptions): Deleted. * UIProcess/Launcher/ProcessLauncher.h: * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::getLaunchOptions): Deleted. * UIProcess/Network/mac/NetworkProcessProxyMac.mm: (WebKit::NetworkProcessProxy::platformGetLaunchOptions): Deleted. * UIProcess/Plugins/PluginProcessProxy.h: * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::pluginNeedsExecutableHeap): Deleted. (WebKit::PluginProcessProxy::platformGetLaunchOptions): Deleted. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::getLaunchOptions): Deleted. * UIProcess/mac/WebProcessProxyMac.mm: (WebKit::WebProcessProxy::platformGetLaunchOptions): Deleted. * WebKit2.xcodeproj/project.pbxproj: 2016-02-12 Anders Carlsson Use different process types for 32-bit and 64-bit plug-ins https://bugs.webkit.org/show_bug.cgi?id=154186 Reviewed by Tim Horton. * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::getLaunchOptions): * UIProcess/Launcher/ProcessLauncher.h: * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::serviceName): (WebKit::shouldLeakBoost): * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::getLaunchOptions): * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::getLaunchOptions): Deleted. * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::platformGetLaunchOptions): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::getLaunchOptions): 2016-02-12 Beth Dakin Re-name isClickableElement in InteractionInformationAtPosition to isElement https://bugs.webkit.org/show_bug.cgi?id=154179 Reviewed by Enrica Casucci. The bool is set for all elements, so it’s just confusing to call it a clickableElement instead of just element. * Shared/ios/InteractionInformationAtPosition.h: * Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode): (WebKit::InteractionInformationAtPosition::decode): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizerShouldBegin:]): (-[WKContentView _highlightLongPressRecognized:]): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2016-02-12 Anders Carlsson Remove more unused process launcher code https://bugs.webkit.org/show_bug.cgi?id=154181 Reviewed by Tim Horton. * UIProcess/Launcher/ProcessLauncher.cpp: (WebKit::ProcessLauncher::processTypeAsString): Deleted. (WebKit::ProcessLauncher::getProcessTypeFromString): Deleted. * UIProcess/Launcher/ProcessLauncher.h: 2016-02-12 Anders Carlsson Remove more unused process launching code https://bugs.webkit.org/show_bug.cgi?id=154178 Reviewed by Tim Horton. * UIProcess/Databases/mac/DatabaseProcessProxyMac.mm: (WebKit::shouldUseXPC): Deleted. (WebKit::DatabaseProcessProxy::platformGetLaunchOptions): Deleted. * UIProcess/Launcher/ProcessLauncher.h: * UIProcess/Launcher/mac/EnvironmentVariables.cpp: (WebKit::EnvironmentVariables::preexistingProcessServiceNameKey): Deleted. (WebKit::EnvironmentVariables::preexistingProcessTypeKey): Deleted. * UIProcess/Launcher/mac/EnvironmentVariables.h: * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::ProcessLauncher::launchProcess): (WebKit::setUpTerminationNotificationHandler): Deleted. (WebKit::addDYLDEnvironmentAdditions): Deleted. (WebKit::tryPreexistingProcess): Deleted. (WebKit::createProcess): Deleted. * UIProcess/Network/mac/NetworkProcessProxyMac.mm: (WebKit::shouldUseXPC): Deleted. (WebKit::NetworkProcessProxy::platformGetLaunchOptions): Deleted. * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::platformGetLaunchOptions): Deleted. * UIProcess/ios/WebProcessProxyIOS.mm: (WebKit::WebProcessProxy::platformGetLaunchOptions): Deleted. * UIProcess/mac/WebProcessProxyMac.mm: (WebKit::shouldUseXPC): Deleted. (WebKit::WebProcessProxy::platformGetLaunchOptions): Deleted. 2016-02-12 Brian Burg Add a WebKit SPI for creating an automation session and advertise the active session via RemoteInspector https://bugs.webkit.org/show_bug.cgi?id=153934 Reviewed by Dan Bernstein and Joseph Pecoraro. An automation session is the main place where WebKit support for user agent automation is implemented. A session encapsulates the state (default timeouts, page identifier mappings), objects (active automation WebPages) and logic (how to open a window, run JS, send user input, etc.) used to implement automation commands. A process pool can only have one session at a time. The session is created by the WebKit client in response to a request that comes through _WKAutomationDelegate. When a session is set on the process pool, it is advertised to remote drivers and debuggers as a RemoteControllableTarget. A remote driver can use the existing RemoteInspector API to connect to the session and send it automation commands. The session has a delegate so that WebKit clients can perform actions that are outside the scope of WebKit, such as creating new tabs, enumerating windows, or sending native user inputs. This patch adds AutomationSession classes at the API and implementation level in WebKit2. The implementation class contains RemoteInspector support, which cannot be used directly by WebKit clients. AutomationSessionDelegate classes exist at both the API and implementation level to bridge between Objective-C delegates and C++ clients. All code related to RemoteInspector and RemoteAutomationTarget must be guarded by ENABLE(REMOTE_INSPECTOR). * Shared/API/APIObject.h: Add new API type 'AutomationSession'. * Shared/Cocoa/APIObject.mm: (API::Object::newObject): Allocate in the wrapper. * UIProcess/API/APIAutomationSessionClient.h: Added. (API::AutomationSessionClient::~AutomationSessionClient): (API::AutomationSessionClient::didRequestNewWindow): Delegate window creation to the client. * UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _setAutomationSession:]): Keep at most one WebAutomationSession at a time. * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: * UIProcess/API/Cocoa/_WKAutomationSession.h: Added. * UIProcess/API/Cocoa/_WKAutomationSession.mm: Added. (-[_WKAutomationSession init]): Construct the API object in the implementation wrapper. (-[_WKAutomationSession dealloc]): Clear the client before calling the implementation destructor. (-[_WKAutomationSession sessionIdentifier]): (-[_WKAutomationSession setSessionIdentifier:]): Store the session identifier string in the implementation. (-[_WKAutomationSession delegate]): (-[_WKAutomationSession setDelegate:]): Create an Objective-C adapter for the delegate if not nil and set it as the implementation's client. (-[_WKAutomationSession _apiObject]): * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Added. * UIProcess/API/Cocoa/_WKAutomationSessionInternal.h: Added. (wrapper): * UIProcess/Cocoa/AutomationSessionClient.h: Added. Set up the boilerplate for caching delegate method availability. It will include more methods later. * UIProcess/Cocoa/AutomationSessionClient.mm: Added. Forward requests to the SPI delegate. (WebKit::AutomationSessionClient::AutomationSessionClient): (WebKit::AutomationSessionClient::didRequestNewWindow): Delegate window creation to the client. * UIProcess/WebAutomationSession.cpp: Added. (WebKit::WebAutomationSession::WebAutomationSession): By default, a session should be available and not paired to any particular remote driver. (WebKit::WebAutomationSession::~WebAutomationSession): Require callers to clear the client first. (WebKit::WebAutomationSession::setClient): (WebKit::WebAutomationSession::dispatchMessageFromRemote): Stub this out for now. (WebKit::WebAutomationSession::connect): (WebKit::WebAutomationSession::disconnect): To prevent multiple connection attempts, mark the target as paired when a remote client has connected. * UIProcess/WebAutomationSession.h: Added. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setAutomationSession): Store the session object and tell it to register itself. Unregistering happens automatically in RemoteControllableTarget::~RemoteControllableTarget. * UIProcess/WebProcessPool.h: * WebKit2.xcodeproj/project.pbxproj: Add files and headers. 2016-02-12 Anders Carlsson Get rid of NetscapePluginModule::createPluginMIMETypesPreferences https://bugs.webkit.org/show_bug.cgi?id=154173 Reviewed by Dan Bernstein. * Shared/Plugins/Netscape/NetscapePluginModule.h: * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::NetscapePluginModule::createPluginMIMETypesPreferences): Deleted. 2016-02-11 Anders Carlsson Remove legacy processes from WebKit2 https://bugs.webkit.org/show_bug.cgi?id=154119 Reviewed by Darin Adler. * Configurations/BaseLegacyProcess.xcconfig: Removed. * DatabaseProcess/EntryPoint/mac/LegacyProcess/DatabaseProcessMain.mm: Removed. (DatabaseProcessMain): Deleted. * DatabaseProcess/EntryPoint/mac/LegacyProcess/Info.plist: Removed. * NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist: Removed. * NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm: Removed. (NetworkProcessMain): Deleted. * PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist: Removed. * PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm: Removed. (WebKit::PluginProcessMainDelegate::PluginProcessMainDelegate): Deleted. (PluginProcessMain): Deleted. * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h: Removed. (WebKit::ChildProcessMainDelegate::ChildProcessMainDelegate): Deleted. (WebKit::ChildProcessMain): Deleted. * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.mm: Removed. (WebKit::ChildProcessMainDelegate::~ChildProcessMainDelegate): Deleted. (WebKit::ChildProcessMainDelegate::installSignalHandlers): Deleted. (WebKit::ChildProcessMainDelegate::doPreInitializationWork): Deleted. (WebKit::ChildProcessMainDelegate::getConnectionIdentifier): Deleted. (WebKit::ChildProcessMainDelegate::getClientIdentifier): Deleted. (WebKit::ChildProcessMainDelegate::getClientProcessName): Deleted. (WebKit::ChildProcessMainDelegate::getExtraInitializationData): Deleted. (WebKit::ChildProcessMainDelegate::startRunLoop): Deleted. (WebKit::ChildProcessMainDelegate::doPostRunWork): Deleted. * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm: Removed. (WebKit::closeUnusedFileDescriptors): Deleted. (WebKit::BootstrapMain): Deleted. (main): Deleted. * WebKit2.xcodeproj/project.pbxproj: * WebProcess/EntryPoint/mac/LegacyProcess/Info.plist: Removed. * WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm: Removed. (WebKit::WebContentProcessMainDelegate::WebContentProcessMainDelegate): Deleted. (WebContentProcessMain): Deleted. 2016-02-12 Carlos Garcia Campos [GTK] HTTP auth dialog incorrectly rendered with Accelerated Compositing enabled https://bugs.webkit.org/show_bug.cgi?id=154159 Reviewed by Michael Catanzaro. There are two problems here, first we are changing the cairo operator when rendering the xcomposite window pixmap without a proper save/restore, so it affects the drawing that happens after that, and second problem is that we are not rendering the gray background in AC mode because we are returning earlier. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewRenderAcceleratedCompositingResults): (webkitWebViewBaseDraw): 2016-02-12 Carlos Alberto Lopez Perez [GTK] Allow applications to disable Accelerated Compositing mode. https://bugs.webkit.org/show_bug.cgi?id=154147 Reviewed by Carlos Garcia Campos. * UIProcess/gtk/WebPreferencesGtk.cpp: (WebKit::WebPreferences::platformInitializeStore): if the environment variable WEBKIT_DISABLE_COMPOSITING_MODE is defined, then disable AC. 2016-02-11 Commit Queue Unreviewed, rolling out r196453. https://bugs.webkit.org/show_bug.cgi?id=154142 This change broke internal iOS builds (Requested by ryanhaddad on #webkit). Reverted changeset: "Move Download authentication code to AuthenticationManager" https://bugs.webkit.org/show_bug.cgi?id=154132 http://trac.webkit.org/changeset/196453 2016-02-11 Anders Carlsson Use the system PluginProcess.app for generating plug-in MIME type preferences https://bugs.webkit.org/show_bug.cgi?id=154139 Reviewed by Dan Bernstein. * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::createPropertyListFile): 2016-02-11 Beth Dakin EditingRangeIsRelativeTo::Document and NSRangeIsRelativeTo::Document should be called EditableRoot instead https://bugs.webkit.org/show_bug.cgi?id=154138 Reviewed by Alexey Proskuryakov. EditableRoot is much more accurate than Document. * Shared/EditingRange.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::insertText): (WebKit::WebViewImpl::selectedRangeWithCompletionHandler): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::rangeFromEditingRange): * WebProcess/WebPage/WebPage.h: 2016-02-11 Alex Christensen Move Download authentication code to AuthenticationManager https://bugs.webkit.org/show_bug.cgi?id=154132 Reviewed by Sam Weinig. When a video element makes a request that receives an authentication challenge, the AuthenticationManager receives an AuthenticationChallenge without an AuthenticationClient. As a result, Download::receivedCredential and other functions were being called, which sent a message to the challenge's sender. This functionality is not specific to downloads, so I moved it from Download to AuthenticationManager. This fixes http/tests/media/video-auth.html when using NetworkSession because I use AuthenticationManager::receivedCredential if there is no AuthenticationClient instead of improperly asserting that there is always an AuthenticationClient if there is no completionHandler. * NetworkProcess/Downloads/Download.h: * NetworkProcess/Downloads/ios/DownloadIOS.mm: (WebKit::Download::platformDidFinish): (WebKit::Download::receivedCredential): Deleted. (WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted. (WebKit::Download::receivedCancellation): Deleted. (WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted. (WebKit::Download::receivedChallengeRejection): Deleted. * NetworkProcess/Downloads/mac/DownloadMac.mm: (WebKit::Download::platformDidFinish): (WebKit::Download::receivedCredential): Deleted. (WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted. (WebKit::Download::receivedCancellation): Deleted. (WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted. (WebKit::Download::receivedChallengeRejection): Deleted. * NetworkProcess/Downloads/soup/DownloadSoup.cpp: (WebKit::Download::platformDidFinish): (WebKit::Download::receivedCredential): Deleted. (WebKit::Download::receivedRequestToContinueWithoutCredential): Deleted. (WebKit::Download::receivedCancellation): Deleted. (WebKit::Download::continueWithoutCredential): Deleted. (WebKit::Download::useCredential): Deleted. (WebKit::Download::cancelAuthenticationChallenge): Deleted. (WebKit::Download::receivedRequestToPerformDefaultHandling): Deleted. (WebKit::Download::receivedChallengeRejection): Deleted. * PlatformEfl.cmake: * PlatformGTK.cmake: * PlatformMac.cmake: * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): (WebKit::AuthenticationManager::useCredentialForSingleChallenge): (WebKit::AuthenticationManager::continueWithoutCredentialForChallenge): (WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge): (WebKit::AuthenticationManager::cancelChallenge): (WebKit::AuthenticationManager::cancelSingleChallenge): (WebKit::AuthenticationManager::performDefaultHandling): (WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge): (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue): (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): * Shared/Authentication/AuthenticationManager.h: (WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount): * Shared/Authentication/cocoa: Added. * Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: Added. (WebKit::AuthenticationManager::receivedCredential): (WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential): (WebKit::AuthenticationManager::receivedCancellation): (WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling): (WebKit::AuthenticationManager::receivedChallengeRejection): * Shared/Authentication/soup: Added. * Shared/Authentication/soup/AuthenticationManagerSoup.cpp: Added. (WebKit::AuthenticationManager::receivedCredential): (WebKit::AuthenticationManager::receivedRequestToContinueWithoutCredential): (WebKit::AuthenticationManager::receivedCancellation): (WebKit::AuthenticationManager::receivedRequestToPerformDefaultHandling): (WebKit::AuthenticationManager::receivedChallengeRejection): * WebKit2.xcodeproj/project.pbxproj: 2016-02-11 Beth Dakin Soft spaces are often tracked in the wrong spot https://bugs.webkit.org/show_bug.cgi?id=154127 -and corresponding- rdar://problem/24493140 Reviewed by Sam Weinig. Soft spaces are in the wrong space now for two reasons. First of all, the NSRange we get from the accepted candidate is relative to the paragraph start, so without this patch, soft spaces are only ever right for the first paragraph. Secondly, if focus changes for any reason other than text insertion, soft spaces are also wrong because they need to be re-set. New enum can be used to indicate what an EditingRange is relative to. * Shared/EditingRange.h: (WebKit::EditingRange::EditingRange): didHandleAcceptedCandidate is a new message that gets sent from the WebProcess. This lets us track a bool m_isHandlingAcceptedCandidate. * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::didHandleAcceptedCandidate): Re-set the m_softSpaceRange on selection changes so long as m_isHandlingAcceptedCandidate is false. * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::selectionDidChange): Set m_isHandlingAcceptedCandidate to true. (WebKit::WebViewImpl::handleAcceptedCandidate): Set m_isHandlingAcceptedCandidate to false. (WebKit::WebViewImpl::didHandleAcceptedCandidate): insertTextAsync takes a new parameter indicating what the replacementRange is relative to. If needToRemoveSoftSpace is true, then the replacementRange is relative to the paragraph. (WebKit::WebViewImpl::insertText): Pipe didHandleAcceptedCandidate through to WebViewImpl. * UIProcess/PageClient.h: insertTextAsync takes an EditingRangeIsRelativeTo. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::insertTextAsync): Pipe didHandleAcceptedCandidate through to WebViewImpl. (WebKit::WebPageProxy::didHandleAcceptedCandidate): * UIProcess/WebPageProxy.h: New message lets the WebProcess tell the UIProcess when the candidate has been accepted. * UIProcess/WebPageProxy.messages.in: Pipe didHandleAcceptedCandidate through to WebViewImpl. * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didHandleAcceptedCandidate): insertTextAsync takes an EditingRangeIsRelativeTo. Pass that through to rangeFromEditingRange to get the correct range. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::insertTextAsync): Use the EditingRangeIsRelativeTo to find the right WebCore::Range. (WebKit::WebPage::rangeFromEditingRange): Take EditingRangeIsRelativeTo in a few places. * WebProcess/WebPage/WebPage.h: InsertTextAsync takes a EditingRangeIsRelativeTo. * WebProcess/WebPage/WebPage.messages.in: Send didHandleAccpetedCandidate to the UIProcess * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::handleAcceptedCandidate): 2016-02-11 Alex Christensen Use BlobResourceHandle when loading blob urls, even when using NetworkSession https://bugs.webkit.org/show_bug.cgi?id=154096 Reviewed by Brady Eidson. This fixes at least http/tests/xmlhttprequest/blob-request-byte-range.html. * NetworkProcess/NetworkDataTask.h: Renamed NetworkDataTaskClient::didReceiveResponse to didReceiveResponseNetworkSession to avoid conflicting with ResourceHandleClient::didReceiveResponse. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): Make a BlobResourceHandle instead of a NetworkDataTask if we have a request for a blob url. (WebKit::NetworkLoad::~NetworkLoad): (WebKit::NetworkLoad::setDefersLoading): (WebKit::NetworkLoad::cancel): (WebKit::NetworkLoad::continueWillSendRequest): (WebKit::NetworkLoad::continueDidReceiveResponse): (WebKit::NetworkLoad::sharedDidReceiveResponse): (WebKit::NetworkLoad::convertTaskToDownload): (WebKit::NetworkLoad::setPendingDownloadID): (WebKit::NetworkLoad::didReceiveChallenge): (WebKit::NetworkLoad::didReceiveResponseNetworkSession): (WebKit::NetworkLoad::cannotShowURL): (WebKit::NetworkLoad::didReceiveResponseAsync): (WebKit::NetworkLoad::willSendRequestAsync): (WebKit::NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync): (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): (WebKit::NetworkLoad::supportsDataArray): (WebKit::NetworkLoad::didReceiveDataArray): (WebKit::NetworkLoad::didSendData): (WebKit::NetworkLoad::receivedCancellation): (WebKit::NetworkLoad::didReceiveResponse): Deleted. Compile ResourceHandleClient when using NetworkSession because it is used for blobs now. Also, add null checks because we now have NetworkLoads where either m_task or m_handle is always null. * NetworkProcess/NetworkLoad.h: (WebKit::NetworkLoad::pendingDownloadID): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): * NetworkProcess/mac/NetworkLoadMac.mm: (WebKit::NetworkLoad::willCacheResponseAsync): 2016-02-11 Frederic Wang Bug 154103 - [GTK] Build error after bug 154046 https://bugs.webkit.org/show_bug.cgi?id=154103 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitUserContent.cpp: (_WebKitUserStyleSheet::_WebKitUserStyleSheet): (webkitUserStyleSheetGetUserStyleSheet): * UIProcess/API/gtk/WebKitUserContentPrivate.h: 2016-02-10 Jiewen Tan Rename *Event::create* which creates events for bindings to *Event::createForBindings* and cleanup corresponding paths https://bugs.webkit.org/show_bug.cgi?id=153903 Reviewed by Darin Adler. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::nextAssistableElement): 2016-02-10 Anders Carlsson Add SPI to remove individual user scripts or user style sheets https://bugs.webkit.org/show_bug.cgi?id=154046 rdar://problem/23596352 Reviewed by Sam Weinig. * UIProcess/API/Cocoa/WKUserContentController.mm: (-[WKUserContentController _removeUserScript:]): (-[WKUserContentController _userStyleSheets]): (-[WKUserContentController _addUserStyleSheet:]): (-[WKUserContentController _removeUserStyleSheet:]): * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy): (WebKit::WebUserContentControllerProxy::addProcess): (WebKit::WebUserContentControllerProxy::removeUserScript): (WebKit::WebUserContentControllerProxy::addUserStyleSheet): (WebKit::WebUserContentControllerProxy::removeUserStyleSheet): (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets): * UIProcess/UserContent/WebUserContentControllerProxy.h: (WebKit::WebUserContentControllerProxy::userStyleSheets): * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::removeUserScript): (WebKit::WebUserContentController::removeUserStyleSheet): * WebProcess/UserContent/WebUserContentController.h: * WebProcess/UserContent/WebUserContentController.messages.in: 2016-02-10 Alex Christensen Fix assertions when loading from WebProcess https://bugs.webkit.org/show_bug.cgi?id=154079 Reviewed by Anders Carlsson. Assertions were failing, mostly when using NetworkProcess, and mostly involving Top Sites. When we do loading from the WebProcess (which we should eventually not allow), we were sometimes using a private browsing session that did not exist because the UIProcess had told the NetworkProcess to create a private browsing session with the given SessionID, but the WebProcess was not told about the private browsing session. Also, sometimes we were calling NetworkProcess::singleton() from the WebProcess, which caused problems with the PlatformStrategies object being reset. This prevents that, too. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): Added an assertion that we have a network session when we have just made a NetworkingContext with the given SessionID. * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::defaultSession): (WebKit::NetworkSession::NetworkSession): * NetworkProcess/mac/RemoteNetworkingContext.mm: (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Call NetworkProcess::singleton only when we know we are in the network process. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Tell the WebProcesses about the new private session, too. Sometimes they use the new private session. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::ensurePrivateBrowsingSession): (WebKit::WebProcess::destroyPrivateBrowsingSession): Removed useless macros that were always true for all WK2 clients. 2016-02-10 Dan Bernstein [Mac] Stop installing the legacy processes https://bugs.webkit.org/show_bug.cgi?id=154062 Reviewed by Anders Carlsson. * Configurations/All.xcconfig: Removed the legacy processes from EXCLUDED_SOURCE_FILE_NAMES for iOS, now that they are no longer included in a Copy Files build phase. * Configurations/BaseLegacyProcess.xcconfig: Set SKIP_INSTALL to YES for OS X as well. * WebKit2.xcodeproj/project.pbxproj: Removed the Copy Files build phase that copied the processes into the framework in engineering builds. Renamed the “Add current version symlinks” script build phase to “Add XPCServices symlink”, and changed it to do just that. 2016-02-09 Carlos Garcia Campos REGRESSION(r196183): [GTK] Broke TestInspector https://bugs.webkit.org/show_bug.cgi?id=153945 Reviewed by Michael Catanzaro. When the inspector view is detached and not added to a window, which happens when it's closed, the inspector view is destroyed because it doesn't have a parent anymore. When the inspector view is destroyed we notify the web process that the inspector was closed. Before r196183 this was not a problem, because the call to WebInspectorProxy::didClose() from platformDetach() returned early because WebInspectorProxy::didClose() had already set m_inspectorPage to nullptr. In r196183 m_inspectorPage is set to nullptr after platformDetach(), so we end up trying to detach the inpector view again. To prevent this cycle, we should disconnect the destroyed signal handler from the inspector view when platformDetach() is called from WebInspectorProxy::didClose(). * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::platformDetach): 2016-02-09 Commit Queue Unreviewed, rolling out r196341. https://bugs.webkit.org/show_bug.cgi?id=154056 This change broke existing API tests on Mac and iOS (Requested by ryanhaddad on #webkit). Reverted changeset: "Add SPI to remove individual user scripts or user style sheets" https://bugs.webkit.org/show_bug.cgi?id=154046 http://trac.webkit.org/changeset/196341 2016-02-09 Anders Carlsson Add SPI to remove individual user scripts or user style sheets https://bugs.webkit.org/show_bug.cgi?id=154046 rdar://problem/23596352 Reviewed by Sam Weinig. * UIProcess/API/Cocoa/WKUserContentController.mm: (-[WKUserContentController _removeUserScript:]): (-[WKUserContentController _userStyleSheets]): (-[WKUserContentController _addUserStyleSheet:]): (-[WKUserContentController _removeUserStyleSheet:]): * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy): (WebKit::WebUserContentControllerProxy::addProcess): (WebKit::WebUserContentControllerProxy::removeUserScript): (WebKit::WebUserContentControllerProxy::addUserStyleSheet): (WebKit::WebUserContentControllerProxy::removeUserStyleSheet): (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets): * UIProcess/UserContent/WebUserContentControllerProxy.h: (WebKit::WebUserContentControllerProxy::userStyleSheets): * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::removeUserScript): (WebKit::WebUserContentController::removeUserStyleSheet): * WebProcess/UserContent/WebUserContentController.h: * WebProcess/UserContent/WebUserContentController.messages.in: 2016-02-07 Gavin Barraclough GetValueFunc/PutValueFunc should not take both slotBase and thisValue https://bugs.webkit.org/show_bug.cgi?id=154009 Reviewed by Geoff Garen. In JavaScript there are two types of properties - regular value properties, and accessor properties. One difference between these is how they are reflected by getOwnPropertyDescriptor, and another is what object they operate on in the case of a prototype access. If you access a value property of a prototype object it return a value pertinent to the prototype, but in the case of a prototype object returning an accessor, then the accessor function is applied to the base object of the access. JSC supports special 'custom' properties implemented as a c++ callback, and these custom properties can be used to implement either value- or accessor-like behavior. getOwnPropertyDescriptor behavior is selected via the CustomAccessor attribute. Value- or accessor-like object selection is current supported by passing both the slotBase and the thisValue to the callback,and hoping it uses the right one. This is probably inefficient, bug-prone, and leads to crazy like JSBoundSlotBaseFunction. Instead, just pass one thisValue to the callback functions, consistent with CustomAccessor. * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::getOwnPropertyNames): (WebKit::JSNPObject::propertyGetter): (WebKit::JSNPObject::methodGetter): * WebProcess/Plugins/Netscape/JSNPObject.h: - Merged slotBase & thisValue to custom property callbacks. 2016-02-09 Jer Noble [Mac] Exiting fullscreen through the placeholder action leaves window in empty state https://bugs.webkit.org/show_bug.cgi?id=152979 Reviewed by Brent Fulgham. In r194593, we relaxed the _fullScreenState requirement in -finishedExitFullScreenAnimation: to handle the case where the request to exit fullscreen came from outside the process. However, in so doing, we allowed -finishedExitFullScreenAnimation: to be called twice, and in so doing, leave the original window empty of its WebView. Tighten up the restriction of _fullScreenState to allow only the "InFullScreen" state (to take care of the external exit command) and the "ExitingFullScreen" state, to handle the normal teardown path. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): 2016-02-04 Jer Noble [Mac] Adopt NSURLSession properties in AVAssetResourceLoader https://bugs.webkit.org/show_bug.cgi?id=153873 Reviewed by Eric Carlson. Add a WebKit2 preference to control the WebCore isAVFoundationNSURLSessionEnabled() setting. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetAVFoundationNSURLSessionEnabled): (WKPreferencesGetAVFoundationNSURLSessionEnabled): * UIProcess/API/C/WKPreferencesRef.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2016-02-09 Anders Carlsson All 32-bit plug-ins should use the XPC service https://bugs.webkit.org/show_bug.cgi?id=154036 rdar://problem/16059483 Reviewed by Dan Bernstein. Silverlight expects malloced memory from the tiny zone to be executable. It also expects the data segment from its coreclr image to be executable. Make this possible by: 1. Shimming mach_vm_map, making sure to add the VM_PROT_EXECUTABLE bit to any memory in the tiny zone. 2. Go through the address space, looking for any existing ranges from the tiny zone and mach_vm_protect them to be executable. 3. Register with dyld so we'll get callbacks whenever a library is bound, look for the coreclr image, and mach_vm_protect its __DATA segment to be executable. * Platform/spi/Cocoa/DyldSPI.h: Copied from Source/WebKit2/PluginProcess/mac/PluginProcessShim.h. * PluginProcess/mac/PluginProcessMac.mm: (WebKit::isMallocMemoryTag): (WebKit::shouldMapMemoryExecutable): (WebKit::initializeShim): (WebKit::PluginProcess::platformInitializeProcess): * PluginProcess/mac/PluginProcessShim.h: * PluginProcess/mac/PluginProcessShim.mm: (WebKit::shimMachVMMap): * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::platformGetLaunchOptions): (WebKit::shouldUseXPC): Deleted. * WebKit2.xcodeproj/project.pbxproj: 2016-02-09 Fujii Hironori possible buffer overrun in Connection::processMessage of Source/WebKit2/Platform/IPC/unix/ConnectionUnix.cpp https://bugs.webkit.org/show_bug.cgi?id=153637 Reviewed by Carlos Garcia Campos. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::processMessage): Fix invalid arguments of memmove. 2016-02-09 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.11.5 release. * gtk/NEWS: Add release notes for 2.11.5. 2016-02-08 Carlos Garcia Campos [GTK] WebKitWebView should send crossing events to the WebProcess https://bugs.webkit.org/show_bug.cgi?id=153740 Reviewed by Michael Catanzaro. We don't currently handle crossing events in the web view (enter/leave). That's why if you hover a scrollbar and leave the window, the scrollbar is still rendered as hovered. * Shared/gtk/WebEventFactory.cpp: (WebKit::buttonForEvent): Handle the case of GDK_ENTER_NOTIFY and GDK_LEAVE_NOTIFY events. (WebKit::WebEventFactory::createWebMouseEvent): Ditto. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseRealize): Add GDK_ENTER_NOTIFY_MASK and GDK_LEAVE_NOTIFY_MASK flags to the web view event mask. (webkitWebViewBaseCrossingNotifyEvent): Handle enter/leave notify events by generating a mouse move event, ensuring the double to int conversion will not cause any problem. (webkit_web_view_base_class_init): Add an implementation for enter_notify_event and leave_notify_event. 2016-02-08 Carlos Garcia Campos Infinite loop when processing mouse events synchronously https://bugs.webkit.org/show_bug.cgi?id=153995 Reviewed by Darin Adler. This happened with WTR in the GTK+ port after landing patch in bug #153740. The thing is that WTR forces events handling IPC messages to be synchronous. When a drag and drop operation is in progress, the web process ignores mouse move events and replies with DidReceiveEvent signal. The DidReceiveEvent message handler in WebPageProxy checks if we have a m_nextMouseMoveEvent and handles it, but when all this happens synchronously the m_nextMouseMoveEvent is the current one because we haven't returned yet from handleMouseEvent(). We need to invalidate the m_nextMouseMoveEvent before calling handleMouseEvent(). * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didReceiveEvent): 2016-02-08 Jeremy Jones Remove __weak from WKAirPlayRoutePicker.mm to fix build warning. https://bugs.webkit.org/show_bug.cgi?id=153985 rdar://problem/24485348 Reviewed by Darin Adler. Remove __weak since it is only available when using ARC. * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: 2016-02-08 Danilo Cesar Lemes de Paula [GTK] Fix crash when creating webview with g_object_new https://bugs.webkit.org/show_bug.cgi?id=153989 Reviewed by Carlos Garcia Campos. g_object_new(WEBKIT_TYPE_WEB_VIEW, NULL) crashes webkit as _WebKitWebViewBasePrivate constructor requires a mainloop, but webkit is only initialized when a context is created (which doesn't happen with a direct call to g_object_new). * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkit_web_view_base_class_init): 2016-02-08 Commit Queue Unreviewed, rolling out r196253. https://bugs.webkit.org/show_bug.cgi?id=153990 Caused several crashes in GTK+ bots (Requested by KaL on #webkit). Reverted changeset: "[GTK] WebKitWebView should send crossing events to the WebProcess" https://bugs.webkit.org/show_bug.cgi?id=153740 http://trac.webkit.org/changeset/196253 2016-02-08 Carlos Garcia Campos [GTK] WebKitWebView should send crossing events to the WebProcess https://bugs.webkit.org/show_bug.cgi?id=153740 Reviewed by Michael Catanzaro. We don't currently handle crossing events in the web view (enter/leave). That's why if you hover a scrollbar and leave the window, the scrollbar is still rendered as hovered. * Shared/gtk/WebEventFactory.cpp: (WebKit::buttonForEvent): Handle the case of GDK_ENTER_NOTIFY and GDK_LEAVE_NOTIFY events. (WebKit::WebEventFactory::createWebMouseEvent): Ditto. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseRealize): Add GDK_ENTER_NOTIFY_MASK and GDK_LEAVE_NOTIFY_MASK flags to the web view event mask. (webkitWebViewBaseCrossingNotifyEvent): Handle enter/leave notify events by generating a mouse move event, ensuring the double to int conversion will not cause any problem. (webkit_web_view_base_class_init): Add an implementation for enter_notify_event and leave_notify_event. 2016-02-06 Daniel Bates Call CFRelease() on SecRequirementRef when no longer needed https://bugs.webkit.org/show_bug.cgi?id=153954 Reviewed by Dan Bernstein. * Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::initializeSandbox): 2016-02-06 Darin Adler Finish auditing call sites of upper() and lower(), eliminate many, and rename the functions https://bugs.webkit.org/show_bug.cgi?id=153905 Reviewed by Sam Weinig. * NetworkProcess/CustomProtocols/CustomProtocolManager.h: Use ASCII case-insensitive hash for set of registered schemes. * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::getPluginInfoFromPropertyLists): Use convertToASCIILowercase for MIME type and for file extensions. * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp: (WebKit::NetscapePluginModule::parseMIMEDescription): Use convertToASCIILowercase for MIME description. * UIProcess/API/efl/ewk_context.cpp: (ewk_context_preferred_languages_set): Use convertToASCIILowercase for language. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_set_preferred_languages): Use convertToASCIILowercase for language. * UIProcess/Plugins/PluginInfoStore.cpp: (WebKit::PluginInfoStore::findPluginForExtension): Use Vector::contains instead of writing it out using std::find. (WebKit::pathExtension): Lowercase the result with convertToASCIILowercase instead of leaving that to the caller. (WebKit::PluginInfoStore::findPlugin): Removed call to lower since pathExtension handles that now. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::findPlugin): Use convertToASCIILowercase for MIME type. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::globalURLSchemesWithCustomProtocolHandlers): Use an ASCII case-insensitive hash. (WebKit::WebProcessPool::registerGlobalURLSchemeAsHavingCustomProtocolHandlers): Remove lowercasing, since the hash is now ASCII case-insensitive. (WebKit::WebProcessPool::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers): Ditto. * UIProcess/WebProcessPool.h: Use an ASCII case-insensitive hash. * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::initialize): Use convertToASCIILowercase on parameter names and values. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::pluginSupportsExtension): Use convertToASCIILowercase for extension assertion. Also use a modern for loop. (WebKit::WebFrameLoaderClient::objectContentType): Make the checks for empty MIME types a little less redundant. Reordered logic to avoid checking the list of supported MIME types extra times, and to eliminate the need for a boolean. Use convertToASCIILowercase on the extension. 2016-02-06 Carlos Garcia Campos Unreviewed. Fix more incorrect ASSERT introduced in r196053. * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: (WebKit::NetscapePluginX11::handleMouseEvent): (WebKit::NetscapePluginX11::handleWheelEvent): (WebKit::NetscapePluginX11::setFocus): (WebKit::NetscapePluginX11::handleMouseEnterEvent): (WebKit::NetscapePluginX11::handleMouseLeaveEvent): (WebKit::NetscapePluginX11::handleKeyboardEvent): 2016-02-05 Timothy Hatcher Web Inspector: Error when closing page with WebInspector open https://bugs.webkit.org/show_bug.cgi?id=152867 rdar://problem/24099423 Reviewed by Brian Burg. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::didClose): Null out m_inspectorPage after platformDetach(), so the views can be cleaned up correctly. 2016-02-05 Alex Christensen Move NetworkDataTask to its own header and source files https://bugs.webkit.org/show_bug.cgi?id=153922 Reviewed by Tim Horton. Also renamed NetworkSessionTaskClient to NetworkDataTaskClient. * NetworkProcess/NetworkDataTask.h: Added. (WebKit::NetworkDataTaskClient::~NetworkDataTaskClient): (WebKit::NetworkDataTask::create): (WebKit::NetworkDataTask::client): (WebKit::NetworkDataTask::pendingDownloadID): (WebKit::NetworkDataTask::pendingDownload): (WebKit::NetworkDataTask::setPendingDownloadID): (WebKit::NetworkDataTask::setPendingDownload): * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkSession.h: (WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient): Deleted. (WebKit::NetworkDataTask::create): Deleted. (WebKit::NetworkDataTask::client): Deleted. (WebKit::NetworkDataTask::pendingDownloadID): Deleted. (WebKit::NetworkDataTask::pendingDownload): Deleted. (WebKit::NetworkDataTask::setPendingDownloadID): Deleted. (WebKit::NetworkDataTask::setPendingDownload): Deleted. * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: Added. (WebKit::NetworkDataTask::NetworkDataTask): (WebKit::NetworkDataTask::~NetworkDataTask): (WebKit::NetworkDataTask::scheduleFailure): (WebKit::NetworkDataTask::failureTimerFired): (WebKit::NetworkDataTask::tryPasswordBasedAuthentication): (WebKit::NetworkDataTask::cancel): (WebKit::NetworkDataTask::resume): (WebKit::NetworkDataTask::suspend): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::takeDownloadID): (WebKit::NetworkDataTask::NetworkDataTask): Deleted. (WebKit::NetworkDataTask::~NetworkDataTask): Deleted. (WebKit::NetworkDataTask::scheduleFailure): Deleted. (WebKit::NetworkDataTask::failureTimerFired): Deleted. (WebKit::NetworkDataTask::tryPasswordBasedAuthentication): Deleted. (WebKit::NetworkDataTask::cancel): Deleted. (WebKit::NetworkDataTask::resume): Deleted. (WebKit::NetworkDataTask::suspend): Deleted. * WebKit2.xcodeproj/project.pbxproj: 2016-02-05 Alex Christensen Clean up Blob code https://bugs.webkit.org/show_bug.cgi?id=153910 Reviewed by Alexey Proskuryakov. * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: (WebKit::NetworkBlobRegistry::NetworkBlobRegistry): (WebKit::NetworkBlobRegistry::registerFileBlobURL): * NetworkProcess/FileAPI/NetworkBlobRegistry.h: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::registerFileBlobURL): (WebKit::NetworkConnectionToWebProcess::registerBlobURL): * WebProcess/FileAPI/BlobRegistryProxy.cpp: (WebKit::BlobRegistryProxy::registerFileBlobURL): * WebProcess/FileAPI/BlobRegistryProxy.h: 2016-02-05 Dan Bernstein [Cocoa] Get rid of unused SPI declarations https://bugs.webkit.org/show_bug.cgi?id=153915 Reviewed by Tim Horton. * Platform/spi/Cocoa/NSInvocationSPI.h: Removed NSInvocation SPI method declaration. * Platform/spi/ios/SafariServicesSPI.h: Removed. * UIProcess/API/Cocoa/WKSecurityOrigin.mm: (-[WKSecurityOrigin methodSignatureForSelector:]): Deleted. (-[WKSecurityOrigin forwardInvocation:]): Deleted. * UIProcess/ios/WKContentViewInteraction.mm: Removed unused #import. * WebKit2.xcodeproj/project.pbxproj: Removed reference to deleted header. 2016-02-04 Daniel Bates WebKit for iOS Simulator fails to build with public iOS SDK https://bugs.webkit.org/show_bug.cgi?id=153881 Reviewed by Alex Christensen. Add version guards around SPI that is now API as of iOS SDK 9.2. Until we upgrade the iOS EWS and iOS buildbots to use the 9.2 SDK we need to keep these SPI declarations to avoid breaking the build. * Platform/spi/ios/UIKitSPI.h: 2016-02-04 Joseph Pecoraro Web Inspector: Give nested inspectors their own process pool https://bugs.webkit.org/show_bug.cgi?id=153880 Reviewed by Timothy Hatcher. When inspecting the inspector both inspectors were using the same Inspector process and sharing the same VM. This meant that profiling information was confusing (memory and JavaScript sampling) because it was showing data about both inspectors sharing the same process. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::inspectorProcessPool): (WebKit::WebInspectorProxy::isInspectorProcessPool): Have two process pools. The main inspector process pool (1st level inspectors) and a nested inspector process pool (inspecting the inspector, only expected by WebKit developers). * UIProcess/WebInspectorProxy.h: * UIProcess/efl/WebInspectorProxyEfl.cpp: (WebKit::WebInspectorProxy::platformCreateInspectorPage): * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::platformCreateInspectorPage): * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCreateInspectorPage): Pass the inspectionLevel to determine the appropriate pool to use. 2016-02-04 Csaba Osztrogonác Fix the !ENABLE(NETSCAPE_PLUGIN_API) build after r196053 https://bugs.webkit.org/show_bug.cgi?id=153878 Unreviewed buildfix. * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.h: 2016-02-04 Chris Dumez Unreviewed, rolling out r196067. Re-enable speculative revalidation now that we have measured the impact on the perf bots Reverted changeset: "Unreviewed, rolling out r195555." https://bugs.webkit.org/show_bug.cgi?id=153443 http://trac.webkit.org/changeset/196067 2016-02-03 Alex Christensen Report wasBlocked and cannotShowURL errors when using NetworkSession https://bugs.webkit.org/show_bug.cgi?id=153846 Reviewed by Antti Koivisto. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): (WebKit::NetworkLoad::didSendData): (WebKit::NetworkLoad::wasBlocked): (WebKit::NetworkLoad::cannotShowURL): (WebKit::NetworkLoad::didReceiveResponseAsync): * NetworkProcess/NetworkLoad.h: NetworkDataTask is now RefCounted so we can protect it when reporting errors which delete the NetworkLoad. * NetworkProcess/NetworkSession.h: (WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient): (WebKit::NetworkDataTask::create): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::takeDownloadID): (WebKit::NetworkDataTask::NetworkDataTask): Check the validity of the requested url and check if the port is allowed like we do in the ResourceHandle constructor. (WebKit::NetworkDataTask::~NetworkDataTask): Don't remove the task from the NetworkSession's map if we didn't make it because there was an error. (WebKit::NetworkDataTask::scheduleFailure): (WebKit::NetworkDataTask::failureTimerFired): Implemented like ResourceHandle's. (WebKit::NetworkDataTask::tryPasswordBasedAuthentication): (WebKit::NetworkDataTask::resume): (WebKit::NetworkDataTask::suspend): Handle the failure timer like we do in ResourceHandle::setDefersLoading. 2016-02-02 Alex Christensen Use proposed credentials in authentication challenges with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=153811 Reviewed by Darin Adler. This fixes http/tests/xmlhttprequest/basic-auth-default.html * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkDataTask::tryPasswordBasedAuthentication): Use the proposed credential if there is one. This matches behavior in ResourceHandle::tryHandlePasswordBasedAuthentication. 2016-02-03 Jessie Berlin Build fix. [NSEvent context] has always returned nil. Replace uses with nullptr. * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::postFakeMouseMovedEventForFlagsChangedEvent): * UIProcess/mac/WebPopupMenuProxyMac.mm: (WebKit::WebPopupMenuProxyMac::showPopupMenu): 2016-02-03 Dan Bernstein [iOS] Engineering builds use manual sandboxing, but don’t need to https://bugs.webkit.org/show_bug.cgi?id=153834 Reviewed by Anders Carlsson. Now that engineering builds use the non-re-execing variant of XPC services, they can be statically sandboxed and no longer need to be manually sandboxed. * Configurations/DebugRelease.xcconfig: Don’t set WK_MANUAL_SANDBOXING_ENABLED to YES. * WebKit2.xcodeproj/project.pbxproj: Let Xcode make changes to the built product references. 2016-02-03 Chris Dumez Unreviewed, rolling out r195555. Temporarily disable speculative revalidation to measure the impact on the bots Reverted changeset: "[WK2][NetworkCache] Enable speculative revalidation" https://bugs.webkit.org/show_bug.cgi?id=153443 http://trac.webkit.org/changeset/195555 2016-02-03 Daniel Bates REGRESSION (r194660): Legacy WebProcess crashes in ChildProcess::initializeSandbox() https://bugs.webkit.org/show_bug.cgi?id=153734 Reviewed by Dan Bernstein. Fixes an issue where clients that used the legacy WebProcess bootstrapping process would crash. Additionally, only consider the extra initialization parameter user-directory-suffix for unsigned apps (e.g. WebKitTestRunner). * Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::initializeSandbox): 2016-02-03 Csaba Osztrogonác Unreviewed speculative buildfix after r195979. * PlatformMac.cmake: 2016-02-03 Carlos Garcia Campos [GTK] Reduce IPC traffic due to view state changes https://bugs.webkit.org/show_bug.cgi?id=153745 Reviewed by Sergio Villar Senin. Very often view state changes happen one after another in a very short period of time, even in the same run loop iteration. For example, when you switch to the web view window, the view is focused and the active window flag changes as well. In that case we are sending two messages to the web process and the page updates its status according to the new flags in two steps. So, we could group all state changes happening in the same run loop iteration and notify about them all in the next iteration. This also prevents unnecessary changes of state when we quickly go back to a previous state, for example in focus follows mouse configurations if you move the mouse outside the window and then inside the window again quickly. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate): Use VirewState::Flags to keep the web view state instead of boolean, and also to keep the flags that need to be updated. Use a timer to update web view state flags. (_WebKitWebViewBasePrivate::updateViewStateTimerFired): Call WebPageProxy::viewStateDidChange() and reset the flags that need to be updated. (webkitWebViewBaseScheduleUpdateViewState): Update the flags that need to be updated and schedule the timer if it's not active. (toplevelWindowFocusInEvent): Use the flags and schedule an update. (toplevelWindowFocusOutEvent): Ditto. (toplevelWindowStateEvent): Also mark the view as hidden when minimized. (webkitWebViewBaseSetToplevelOnScreenWindow): Connect to window-state-event instead of deprecated visibility-notify-event. (webkitWebViewBaseMap): Use the flags and schedule an update. (webkitWebViewBaseUnmap): Ditto. (webkitWebViewBaseSetFocus): Ditto. (webkitWebViewBaseIsInWindowActive): Use the flags. (webkitWebViewBaseIsFocused): Ditto (webkitWebViewBaseIsVisible): Ditto. (webkitWebViewBaseIsInWindow): Removed this since it was unused. * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: 2016-02-03 Carlos Garcia Campos Unreviewed. Fix incorrect ASSERT introduced in r196053. * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: (WebKit::NetscapePluginX11::paint): Ensure the plugin is not windowed if paint() is called. 2016-02-02 Carlos Garcia Campos [UNIX] Add support for windowless NPAPI plugins with no UI in non X11 platforms https://bugs.webkit.org/show_bug.cgi?id=151992 Reviewed by Darin Adler. We are currently disabling all plugins when running under wayland, for example. There are some plugins, like the one used by extensions.gnome.org, that don't do any rendering, so there's not reason not to support those plugins under wayland or any other unix non-x11 platform. X11 specific code has been moved to a new class NetscapePluginX11, only used under X11. The common code is in NetscapePluginUnix.cpp that will use the X11 implementatin only when needed and available. For windowed plugins we will fail the initialization under non-X11 plaforms, while for windowless plugins we will just return early from paint method. * PlatformEfl.cmake: Add new files to compilation. * PlatformGTK.cmake: Ditto. * UIProcess/API/gtk/WebKitSettings.cpp: (webkit_settings_set_enable_plugins): Do not disable plugins in wayland. * UIProcess/gtk/WebPreferencesGtk.cpp: (WebKit::WebPreferences::platformInitializeStore): Ditto. * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_GetValue): Use PlatformDisplay instead of NetscapePlugin::x11HostDisplay() and don't claim to support X11 specific features under non-x11 platforms. * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::NetscapePlugin): Remove X11 and GTK specific memebers that are now moved to a dedicated class NetscapePluginX11. * WebProcess/Plugins/Netscape/NetscapePlugin.h: (WebKit::NetscapePlugin::frameRectInWindowCoordinates): Make this public. (WebKit::NetscapePlugin::clipRect): Add getter. (WebKit::NetscapePlugin::size): Ditto. (WebKit::NetscapePlugin::isWindowed): Ditto. (WebKit::NetscapePlugin::isVisible): Ditto. * WebProcess/Plugins/Netscape/unix/NetscapePluginUnix.cpp: Added. (WebKit::NetscapePlugin::platformPreInitialize): (WebKit::NetscapePlugin::platformPostInitialize): (WebKit::NetscapePlugin::platformDestroy): (WebKit::NetscapePlugin::platformInvalidate): (WebKit::NetscapePlugin::platformGeometryDidChange): (WebKit::NetscapePlugin::platformVisibilityDidChange): (WebKit::NetscapePlugin::platformPaint): (WebKit::NetscapePlugin::platformHandleMouseEvent): (WebKit::NetscapePlugin::platformHandleWheelEvent): (WebKit::NetscapePlugin::platformSetFocus): (WebKit::NetscapePlugin::wantsPluginRelativeNPWindowCoordinates): (WebKit::NetscapePlugin::platformHandleMouseEnterEvent): (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent): (WebKit::NetscapePlugin::platformHandleKeyboardEvent): * WebProcess/Plugins/Netscape/unix/NetscapePluginUnix.h: Added. (WebKit::NetscapePluginUnix::~NetscapePluginUnix): * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: (WebKit::getPluginDisplay): (WebKit::displayDepth): (WebKit::x11HostDisplay): (WebKit::NetscapePluginX11::create): (WebKit::NetscapePluginX11::NetscapePluginX11): (WebKit::NetscapePluginX11::~NetscapePluginX11): (WebKit::NetscapePluginX11::windowType): (WebKit::NetscapePluginX11::window): (WebKit::NetscapePluginX11::geometryDidChange): (WebKit::NetscapePluginX11::visibilityDidChange): (WebKit::NetscapePluginX11::paint): (WebKit::initializeXEvent): (WebKit::NetscapePluginX11::handleMouseEvent): (WebKit::NetscapePluginX11::handleWheelEvent): (WebKit::NetscapePluginX11::setFocus): (WebKit::NetscapePluginX11::handleMouseEnterEvent): (WebKit::NetscapePluginX11::handleMouseLeaveEvent): (WebKit::NetscapePluginX11::handleKeyboardEvent): (WebKit::setCommonMouseEventFields): Deleted. (WebKit::setXKeyEventFields): Deleted. * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.h: Added. 2016-02-02 Gyuyoung Kim Remove ENABLE(GLOBAL_FASTMALLOC_NEW) guard in WebMemorySamplerLinux.cpp https://bugs.webkit.org/show_bug.cgi?id=153812 Reviewed by Darin Adler. r164261 already removed ENABLE_GLOBAL_FASTMALLOC_NEW guard though, WebMemorySamplerLinux is still using it. That's why EFL and GTK memory sampler don't show fast malloc memory use. * Shared/linux/WebMemorySamplerLinux.cpp: (WebKit::WebMemorySampler::sampleWebKit): Deleted. 2016-02-02 Enrica Casucci Provide handleKeyWebEvent with completion handler. https://bugs.webkit.org/show_bug.cgi?id=153806 rdar://problem/24399218 Reviewed by Tim Horton. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView handleKeyWebEvent:withCompletionHandler:]): (-[WKContentView _didHandleKeyEvent:eventWasHandled:]): 2016-02-02 Alex Christensen Fix authentication with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=153779 Reviewed by Brady Eidson. This fixes many tests, including http/tests/xmlhttprequest/cross-origin-authorization.html. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): NetworkingContexts are not used with NetworkSession. NetworkSession is used instead. Pass allowStoredCredentials to the NetworkLoad so it knows whether to use a session with credential storage or not. (WebKit::NetworkLoad::didReceiveChallenge): Always call continueCanAuthenticateAgainstProtectionSpace because we might need credentials for synchronous requests. (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): Reject the protection space if we cannot authenticate against this protection space. If the protection space is not password-based (such as ServerTrustEvaluationRequested) and we can authenticate against this protection space, then perform default handling instead of asking the UI process for a password, which wouldn't mean anything. * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkSession.h: Use a NSURLSession with configuration.URLCredentialStorage = nil but with the same cookie storage for requests without credentials. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::NetworkSession): (WebKit::NetworkSession::~NetworkSession): (WebKit::NetworkSession::dataTaskForIdentifier): (WebKit::NetworkSession::takeDownloadID): (WebKit::NetworkDataTask::NetworkDataTask): * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace): Always send a reply message so we can always do the callbacks of NSURLSession delegates. 2016-02-01 Dave Hyatt Add a line grid pagination SPI to WebKit. https://bugs.webkit.org/show_bug.cgi?id=153757 Reviewed by Anders Carlsson. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): (WebKit::WebPageCreationParameters::decode): * Shared/WebPageCreationParameters.h: * UIProcess/API/C/WKPage.cpp: (WKPageSetPaginationLineGridEnabled): (WKPageGetPaginationLineGridEnabled): * UIProcess/API/C/WKPagePrivate.h: * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController setPaginationLineGridEnabled:]): (-[WKBrowsingContextController paginationLineGridEnabled]): * UIProcess/API/Cocoa/WKBrowsingContextControllerPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _paginationLineGridEnabled]): (-[WKWebView _setPaginationLineGridEnabled:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::setPaginationLineGridEnabled): (WebKit::WebPageProxy::creationParameters): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::paginationLineGridEnabled): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setPaginationLineGridEnabled): WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2016-02-02 Adrien Plazas [GTK] Several tests fail due to assert not reached in DrawingArea::dispatchAfterEnsuringDrawing() https://bugs.webkit.org/show_bug.cgi?id=153785 Reviewed by Carlos Garcia Campos. * UIProcess/DrawingAreaProxyImpl.cpp: (WebKit::DrawingAreaProxyImpl::dispatchAfterEnsuringDrawing): * UIProcess/DrawingAreaProxyImpl.h: 2016-02-01 Joseph Pecoraro Web Inspector: High Level Memory Overview Instrument https://bugs.webkit.org/show_bug.cgi?id=153516 Reviewed by Brian Burg. * Configurations/FeatureDefines.xcconfig: 2016-02-01 Alex Christensen Fix CMake build. * PlatformMac.cmake: 2016-02-01 Dan Bernstein More iOS build fix. * Platform/spi/ios/UIKitSPI.h: 2016-02-01 Dan Bernstein iOS build fix. * Platform/IPC/mac/ConnectionMac.mm: 2016-02-01 Dan Bernstein Copy sandbox profiles during installhdrs. Reviewed by Anders Carlsson. * Configurations/SandboxProfiles.xcconfig: 2016-02-01 Dan Bernstein [Cocoa] Remove some more __has_include guards https://bugs.webkit.org/show_bug.cgi?id=153774 Reviewed by Tim Horton. Guard private header includes with #if USE(APPLE_INTERNAL_SDK) rather than with __has_include. * Platform/IPC/mac/ConnectionMac.mm: * Platform/IPC/mac/ImportanceAssertion.h: * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: * Shared/cf/ArgumentCodersCF.cpp: * Shared/mac/ChildProcessMac.mm: * Shared/mac/SecItemShim.cpp: 2016-02-01 Dan Bernstein [Xcode] Let Xcode know that the WebKit XPC service products are XPC services https://bugs.webkit.org/show_bug.cgi?id=153773 Reviewed by Tim Horton. * Configurations/BaseXPCService.xcconfig: Removed now-redundant definitions of MACH_O_TYPE and WRAPPER_EXTENSION. * WebKit2.xcodeproj/project.pbxproj: Updated product types. 2016-02-01 Tim Horton Crash using WKPDFView, in -[UIPDFPageView showContent] https://bugs.webkit.org/show_bug.cgi?id=153770 Reviewed by Anders Carlsson. When scrolling, we throw away UIPDFPageViews, but forget to unhook their delegates. In some cases (also because their delegate is a raw pointer, not weak), they can call back into a deleted WKPDFView, causing a crash. * UIProcess/ios/WKPDFView.mm: (detachViewForPage): Add a helper to detach a page view, and unhook its delegates. (-[WKPDFView _clearPages]): (-[WKPDFView _revalidateViews]): Make use of the new helper. 2016-02-01 Dan Bernstein [iOS] Remove some file upload code only needed before iOS 9 https://bugs.webkit.org/show_bug.cgi?id=153754 Reviewed by Darin Adler. * Platform/spi/ios/UIKitSPI.h: Removed conditional forward declaration of SPI. * UIProcess/ios/forms/WKFileUploadPanel.mm: (photoLibraryIcon): Removed check for HAVE_WEBKIT_DOC_PICKER_ICONS, which is always true in iOS 9 and later. (cameraIcon): Ditto. (-[WKFileUploadPanel presentWithParameters:resultListener:]): Removed branch for when UIDocumentMenuViewController doesn’t respond to -_initIgnoringApplicationEntitlementForImportOfTypes:. (-[WKFileUploadPanel _showMediaSourceSelectionSheet]): Deleted now-unused method. 2016-02-01 Anders Carlsson Stop linking to PassKit https://bugs.webkit.org/show_bug.cgi?id=153746 Reviewed by Tim Horton. * Configurations/WebKit.xcconfig: 2016-02-01 Dan Bernstein [Cocoa] Get rid of WK_ macros for initializers https://bugs.webkit.org/show_bug.cgi?id=153744 Reviewed by Anders Carlsson. * Shared/API/Cocoa/WKFoundation.h: Removed definitions of WK_DESIGNATED_INITIALIZER and WK_UNAVAILABLE. * mac/postprocess-framework-headers.sh: Removed rules for rewriting the above macros. Also removed Foundation import that became unnecessary, and definitions that were only needed before iOS 8. Replaced instances of the above macros with their expansions. * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: * UIProcess/API/Cocoa/WKSecurityOrigin.h: * UIProcess/API/Cocoa/WKWebView.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.h: 2016-02-01 Csaba Osztrogonác One more unreviewed speculative buildfix after r195755. * PlatformMac.cmake: 2016-02-01 Csaba Osztrogonác Unreviewed speculative buildfix after r195755. * PlatformMac.cmake: 2016-02-01 Csaba Osztrogonác Unreviewed speculative buildfix after r195795. * PlatformMac.cmake: Remove Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm. 2016-01-31 Darin Adler Get rid of most calls to String::upper; mostly replace them with convertToASCIIUppercase https://bugs.webkit.org/show_bug.cgi?id=153715 Reviewed by Gyuyoung Kim. * UIProcess/API/efl/tests/test_ewk2_text_checker.cpp: Use convertToASCIIUppercase on language names. 2016-01-31 Dan Bernstein [Cocoa] Remove __has_include guards around use of WebKitAdditions https://bugs.webkit.org/show_bug.cgi?id=153728 Reviewed by Andy Estes. Guard WebKitAdditions includes with #if USE(APPLE_INTERNAL_SDK) rather than with __has_include. * Shared/Cocoa/WebKitAdditions.mm: * Shared/WebCoreArgumentCoders.h: * Shared/mac/RemoteLayerBackingStore.mm: * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::reattachToWebProcess): (WebKit::WebPageProxy::resetState): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::m_shouldDispatchFakeMouseMoveEvents): 2016-01-31 Timothy Horton Include the right WebKitAdditions files * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetState): 2016-01-31 Darin Adler Replace CaseFoldingHash with ASCIICaseInsensitiveHash https://bugs.webkit.org/show_bug.cgi?id=153639 Reviewed by Filip Pizlo. * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Use ASCIICaseInsensitiveHash for MIME types. MIME types are all ASCII. * UIProcess/Plugins/PlugInAutoStartProvider.h: Use ASCIICaseInsensitiveHash for origins. Origin strings should use ASCII case insensitive matching and should not fold non-ASCII case. * WebProcess/WebPage/WebPage.h: Use ASCIICaseInsensitiveHash for MIME types. MIME types are all ASCII. * WebProcess/WebProcess.cpp: (WebKit::addCaseFoldedCharacters): Use ASCIICaseInsensitiveHash to hash plug-in origin strings. (See rationale above.) (WebKit::hashForPlugInOrigin): Updated comment. 2016-01-31 Gyuyoung Kim Use std::make_unique<> when creating an unique_ptr object. https://bugs.webkit.org/show_bug.cgi?id=153705 Reviewed by Darin Adler. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): Use std::make_unique<> instead of RunLoopObserver::create(). 2016-01-30 Dan Bernstein [Cocoa] Get rid of many WK_ macros for nullability https://bugs.webkit.org/show_bug.cgi?id=153718 Sam Weinig reviewed an earlier version of this change, and Simon Fraser rubber-stamped this version. * Shared/API/Cocoa/WKFoundation.h: Removed definitions of WK_ASSUME_NONNULL_{BEGIN, END}, WK_NULLABLE, WK_NULL_UNSPECIFIED, and WK_NULLABLE_PROPERTY. Removed the !__has_feature(assume_nonnull) case. * mac/postprocess-framework-headers.sh: Removed rules for rewriting the above macros. Also chanegd to rewrite WK_NULLABLE_SPECIFIER to the modern _Nullable instead of __nullable. Replaced instances of the above macros with their expansions. * UIProcess/API/Cocoa/WKBackForwardList.h: * UIProcess/API/Cocoa/WKBackForwardListItem.h: * UIProcess/API/Cocoa/WKError.h: * UIProcess/API/Cocoa/WKFrameInfo.h: * UIProcess/API/Cocoa/WKNavigationAction.h: * UIProcess/API/Cocoa/WKNavigationDelegate.h: * UIProcess/API/Cocoa/WKNavigationResponse.h: * UIProcess/API/Cocoa/WKScriptMessage.h: * UIProcess/API/Cocoa/WKScriptMessageHandler.h: * UIProcess/API/Cocoa/WKSecurityOrigin.h: * UIProcess/API/Cocoa/WKUIDelegate.h: * UIProcess/API/Cocoa/WKUserContentController.h: * UIProcess/API/Cocoa/WKUserScript.h: * UIProcess/API/Cocoa/WKWebView.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * UIProcess/API/Cocoa/WKWindowFeatures.h: * UIProcess/API/Cocoa/_WKContextMenuElementInfo.h: * UIProcess/API/Cocoa/_WKElementInfo.h: * UIProcess/API/Cocoa/_WKPreviewElementInfo.h: * UIProcess/API/Cocoa/_WKUserStyleSheet.h: 2016-01-30 Dan Bernstein Reverted r195914, because at least one of the build.webkit.org builders still uses a compiler that doesn’t understand _Nullable. * Shared/API/Cocoa/WKFoundation.h: * UIProcess/API/Cocoa/WKBackForwardList.h: * UIProcess/API/Cocoa/WKBackForwardListItem.h: * UIProcess/API/Cocoa/WKError.h: * UIProcess/API/Cocoa/WKFrameInfo.h: * UIProcess/API/Cocoa/WKNavigationAction.h: * UIProcess/API/Cocoa/WKNavigationDelegate.h: * UIProcess/API/Cocoa/WKNavigationResponse.h: * UIProcess/API/Cocoa/WKScriptMessage.h: * UIProcess/API/Cocoa/WKScriptMessageHandler.h: * UIProcess/API/Cocoa/WKSecurityOrigin.h: * UIProcess/API/Cocoa/WKUIDelegate.h: * UIProcess/API/Cocoa/WKUserContentController.h: * UIProcess/API/Cocoa/WKUserScript.h: * UIProcess/API/Cocoa/WKWebView.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * UIProcess/API/Cocoa/WKWindowFeatures.h: * UIProcess/API/Cocoa/_WKContextMenuElementInfo.h: * UIProcess/API/Cocoa/_WKElementInfo.h: * UIProcess/API/Cocoa/_WKPreviewElementInfo.h: * UIProcess/API/Cocoa/_WKUserStyleSheet.h: * mac/postprocess-framework-headers.sh: 2016-01-30 Commit Queue Unreviewed, rolling out r195911. https://bugs.webkit.org/show_bug.cgi?id=153723 Caused frequent assertion failures on bots (Requested by ap on #webkit). Reverted changeset: "Replace CaseFoldingHash with ASCIICaseInsensitiveHash" https://bugs.webkit.org/show_bug.cgi?id=153639 http://trac.webkit.org/changeset/195911 2016-01-30 Dan Bernstein [Cocoa] Get rid of WK_ macros for nullability https://bugs.webkit.org/show_bug.cgi?id=153718 Reviewed by Sam Weinig. * Shared/API/Cocoa/WKFoundation.h: Removed definitions of WK_ASSUME_NONNULL_{BEGIN, END}, WK_NULLABLE, WK_NULL_UNSPECIFIED, WK_NULLABLE_SPECIFIER, and WK_NULLABLE_PROPERTY. * mac/postprocess-framework-headers.sh: Removed rules for rewriting those macros. Replaced instances of those macros with their expansions, but using the modern _Nullable instead of __nullable: * UIProcess/API/Cocoa/WKBackForwardList.h: * UIProcess/API/Cocoa/WKBackForwardListItem.h: * UIProcess/API/Cocoa/WKError.h: * UIProcess/API/Cocoa/WKFrameInfo.h: * UIProcess/API/Cocoa/WKNavigationAction.h: * UIProcess/API/Cocoa/WKNavigationDelegate.h: * UIProcess/API/Cocoa/WKNavigationResponse.h: * UIProcess/API/Cocoa/WKScriptMessage.h: * UIProcess/API/Cocoa/WKScriptMessageHandler.h: * UIProcess/API/Cocoa/WKSecurityOrigin.h: * UIProcess/API/Cocoa/WKUIDelegate.h: * UIProcess/API/Cocoa/WKUserContentController.h: * UIProcess/API/Cocoa/WKUserScript.h: * UIProcess/API/Cocoa/WKWebView.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * UIProcess/API/Cocoa/WKWindowFeatures.h: * UIProcess/API/Cocoa/_WKContextMenuElementInfo.h: * UIProcess/API/Cocoa/_WKElementInfo.h: * UIProcess/API/Cocoa/_WKPreviewElementInfo.h: * UIProcess/API/Cocoa/_WKUserStyleSheet.h: 2016-01-30 Darin Adler Replace CaseFoldingHash with ASCIICaseInsensitiveHash https://bugs.webkit.org/show_bug.cgi?id=153639 Reviewed by Filip Pizlo. * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Use ASCIICaseInsensitiveHash for MIME types. MIME types are all ASCII. * UIProcess/Plugins/PlugInAutoStartProvider.h: Use ASCIICaseInsensitiveHash for origins. Origin strings should use ASCII case insensitive matching and should not fold non-ASCII case. * WebProcess/WebPage/WebPage.h: Use ASCIICaseInsensitiveHash for MIME types. MIME types are all ASCII. * WebProcess/WebProcess.cpp: (WebKit::addCaseFoldedCharacters): Use ASCIICaseInsensitiveHash to hash plug-in origin strings. (See rationale above.) (WebKit::hashForPlugInOrigin): Updated comment. 2016-01-30 Jeremy Huddleston Sequoia [GTK] Use configured python executable when executing generate-inspector-gresource-manifest.py https://bugs.webkit.org/show_bug.cgi?id=153712 Reviewed by Michael Catanzaro. * PlatformGTK.cmake: 2016-01-29 Ada Chan Enable VIDEO_PRESENTATION_MODE only in Debug and Release builds on Mac https://bugs.webkit.org/show_bug.cgi?id=153665 Reviewed by Dan Bernstein. * Configurations/FeatureDefines.xcconfig: 2016-01-29 Dan Bernstein Don’t use the “.Development” suffix for engineering builds targeting iOS devices, because the XPC cache is only aware of the unsuffixed service identifiers. Reviewed by Chris Dumez. * Configurations/DebugRelease.xcconfig: 2016-01-29 Enrica Casucci One more iOS build fix. Unreviewed. * Platform/spi/ios/UIKitSPI.h: 2016-01-29 Enrica Casucci iOS build fix after r195826. Unreviewed. * Platform/spi/ios/UIKitSPI.h: 2016-01-29 Enrica Casucci Disable text interaction with pencil. https://bugs.webkit.org/show_bug.cgi?id=153655 rdar://problem/24337778 Reviewed by Tim Horton. * Platform/spi/ios/UIKitSPI.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _createAndConfigureDoubleTapGestureRecognizer]): (-[WKContentView _singleTapCommited:]): 2016-01-29 Mario Sanchez Prada [GTK] WebProcess crashes when quickly attempting many DnD operations https://bugs.webkit.org/show_bug.cgi?id=138468 Reviewed by Michael Catanzaro. Guard all the new DnD-related code under GTK_CHECK_VERSION #if's to make sure we don't bump the required version of GTK+ up to 3.16, and it's buildable again with GTK+ >= 3.6. * UIProcess/gtk/DragAndDropHandler.cpp: (WebKit::DragAndDropHandler::DragAndDropHandler): (WebKit::DragAndDropHandler::startDrag): (WebKit::DragAndDropHandler::fillDragData): (WebKit::DragAndDropHandler::finishDrag): * UIProcess/gtk/DragAndDropHandler.h: 2016-01-28 Antti Koivisto Enable background tab suspension by default on OSX https://bugs.webkit.org/show_bug.cgi?id=153629 Reviewed by Andreas Kling. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::registerUserDefaultsIfNeeded): 2016-01-28 Dan Bernstein [Cocoa] Use the non-Development variants of XPC services for development https://bugs.webkit.org/show_bug.cgi?id=152545 Reviewed by Darin Adler. The purpose of the Development variants of the WebKit XPC services is to allow the service to link against the development WebKit dylibs rather than the system ones. Instead, we accomplish this here by including dyld environment load commands in the normal services when the WebKit dylibs are expected to be relocated. A new build setting, WK_RELOCATABLE_FRAMEWORKS, controls this. To make it easy to identify engineering builds of the services at runtime, they can be given a distinctive suffix. A new build setting, WK_XPC_SERVICE_SUFFIX, controls this. * Configurations/DebugRelease.xcconfig: Set WK_RELOCATABLE_FRAMEWORKS to YES and WK_XPC_SERVICE_SUFFIX to ".Development". * Configurations/BaseTarget.xcconfig: Make the quoted value of the WK_XPC_SERVICE_SUFFIX build setting available as a preprocessor macro. * Configurations/BaseXPCService.xcconfig: - Simplify the definition of INSTALL_PATH now that there are no Development variants. - Define WK_RELOCATABLE_FRAMEWORKS_LDFLAGS when building relocatable frameworks to include -dyld_env options setting DYLD_FRAMEWORK_PATH to point to the directory containing WebKit.framework and DYLD_LIBRARY_PATH to the framework’€™s Frameworks subdirectory. When not building relocatable frameworks, define WK_RELOCATABLE_FRAMEWORKS_LDFLAGS to include a -headerpad option allowing dyld environment load commands to be added after the fact. - Add WK_RELOCATABLE_FRAMEWORKS_LDFLAGS to OTHER_LDFLAGS. - Define WK_XPC_SERVICE_INSERT_LIBRARIES_DIR when building relocatable frameworks to be the path to the Frameworks subdirectory of the WebKit framework containing the service. When not building relocatable frameworks, define it to the absolute path of the Frameworks subdirectory of the installed WebKit framework. * Configurations/DatabaseService.xcconfig: Append WK_XPC_SERVICE_SUFFIX to PRODUCT_NAME, and remove no-longer-used definition of WK_XPC_SERVICE_VARIANT. * Configurations/NetworkService.xcconfig: Append WK_XPC_SERVICE_SUFFIX to PRODUCT_NAME, add WK_RELOCATABLE_FRAMEWORKS_LDFLAGS to OTHER_LDFLAGS, and remove no-longer-used definition of WK_XPC_SERVICE_VARIANT. * Configurations/PluginService.32.xcconfig: Ditto. * Configurations/PluginService.64.xcconfig: Ditto. * Configurations/WebContentService.xcconfig: Ditto. * Configurations/DatabaseService.Development.xcconfig: Removed. * Configurations/NetworkService.Development.xcconfig: Removed. * Configurations/PluginService.32.Development.xcconfig: Removed. * Configurations/PluginService.64.Development.xcconfig: Removed. * Configurations/WebContentService.Development.xcconfig: Removed. * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development: Removed. * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development/Info.plist: Removed. * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist: Set CFBundleIdentifier to PRODUCT_NAME in order to include the optional suffix. * NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development: Removed. * NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info-OSX.plist: Removed. * NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info-iOS.plist: Removed. * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist: Set CFBundleIdentifier to PRODUCT_NAME in order to include the optional suffix. Use WK_XPC_SERVICE_INSERT_LIBRARIES_DIR in the value of DYLD_INSERT_LIBRARIES. * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist: Set CFBundleIdentifier to PRODUCT_NAME in order to include the optional suffix. * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-iOS.plist: Ditto. * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist: Ditto. * PluginProcess/EntryPoint/mac/XPCService/PluginService.Development: Removed. * PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist: Removed. * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development: Removed. * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-OSX.plist: Removed. * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-iOS.plist: Removed. * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: Set CFBundleIdentifier to PRODUCT_NAME in order to include the optional suffix. Use WK_XPC_SERVICE_INSERT_LIBRARIES_DIR in the value of DYLD_INSERT_LIBRARIES. * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist: Set CFBundleIdentifier to PRODUCT_NAME in order to include the optional suffix. * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist: Ditto. * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm: Removed. * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm: (WebKit::XPCServiceEventHandler): If stdout and stderr file descriptors are included in the bootstrap message, hook them up to the service’s stdout and stderr, like the Development services do. (main): Moved code from XPCServiceMain.Development.mm to handle the optional OverrideLanguages array. * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::addDYLDEnvironmentAdditions): Addressed a FIXME. (WebKit::serviceName): Removed forDevelopment argument and .Development service names. Added WK_XPC_SERVICE_SUFFIX to the names. (WebKit::connectToService): Updated for removal of forDevelopment argument. Removed "framework-executable-path" key from the bootstrap message, because it was only used in the Development variants. (WebKit::connectToReExecService): Deleted. (WebKit::createService): Removed call to connectToReExecService. Instead pass forDevelopment to connectToService. * WebKit2.xcodeproj/project.pbxproj: Removed references to removed files. Removed targets for Development services. Removed Development services from script build phase that copies services into the framework in engineering builds, and made it respect WK_XPC_SERVICE_SUFFIX. 2016-01-28 Enrica Casucci Should avoid navigation for some data detector urls. https://bugs.webkit.org/show_bug.cgi?id=153600 Reviewed by Tim Horton. When a tap is commited, we normally generate a synthetic click if the node responds to click events. This patch adds the logic to prevent that from happening if the node is a data detector link with certain characteristics (calendar event, telephone, etc.). If this is the case, we compute the interaction information as position, send it over to the UI process and notify that we did not handle the tap. The page client is now also notified of this event and can show the data detector sheet if appropriate. * UIProcess/PageClient.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::toolTipChanged): (WebKit::PageClientImpl::didNotHandleTapAsClick): (WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest): * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView clearSelection]): (-[WKContentView _didNotHandleTapAsClick:]): (-[WKContentView _positionInformationDidChange:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didNotHandleTapAsClick): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::commitPotentialTap): 2016-01-28 Brent Fulgham [iOS] Update Web Process sandbox profile for audiodeviceclock access https://bugs.webkit.org/show_bug.cgi?id=153571 Reviewed by Alexey Proskuryakov. * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: 2016-01-26 Ada Chan Get WebVideoFullscreenManager and related classes to also compile for Mac platform with video presentation mode support. https://bugs.webkit.org/show_bug.cgi?id=153221 Reviewed by Eric Carlson. * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h: * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in: * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm: Enabled also for Mac with video presentation mode support. (-[WKLayerHostView makeBackingLayer]): Make sure this view uses CALayerHost for its layer. (WebKit::WebVideoFullscreenManagerProxy::invalidate): (WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface): (WebKit::WebVideoFullscreenManagerProxy::ensureInterface): (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Replace WebCore::WebVideoFullscreenInterfaceAVKit with PlatformWebVideoFullscreenInterface. (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): +[UIWindow _synchronizeDrawingAcrossProcesses] is not available on Mac. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::reattachToWebProcess): (WebKit::WebPageProxy::viewDidLeaveWindow): (WebKit::WebPageProxy::resetState): * UIProcess/WebPageProxy.h: The code that creates m_videoFullscreenManager is now enabled also on Mac with video presentation mode support. * WebProcess/WebCoreSupport/WebChromeClient.cpp: * WebProcess/WebCoreSupport/WebChromeClient.h: Enable the API related to the video fullscreen layer also on Mac with video presentation mode support. * WebProcess/WebPage/WebPage.cpp: * WebProcess/WebPage/WebPage.h: The code that creates m_videoFullscreenManager is now enabled also on Mac with video presentation mode support. * WebProcess/cocoa/WebVideoFullscreenManager.h: * WebProcess/cocoa/WebVideoFullscreenManager.messages.in: * WebProcess/cocoa/WebVideoFullscreenManager.mm: Enabled also for Mac with video presentation mode support. (WebKit::WebVideoFullscreenManager::supportsVideoFullscreen): Return false for now on Mac. 2016-01-28 Darin Adler Remove equalIgnoringCase since all callers really wanted equalIgnoringASCIICase https://bugs.webkit.org/show_bug.cgi?id=153411 Reviewed by Ryosuke Niwa. * Shared/API/c/WKString.cpp: (WKStringIsEqualToUTF8CStringIgnoringCase): Use equalIgnoringASCIICase. This is a change in behavior for callers who passed non-ASCII letters to this function and expected case insensitive comparison. * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::streamDidReceiveResponse): Use equalIgnoringASCIICase. No change in behavior because this is just checking a fixed ASCII MIME type. (WebKit::PDFPlugin::manualStreamDidReceiveResponse): Ditto. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::streamDidReceiveResponse): Ditto. (WebKit::PDFPlugin::manualStreamDidReceiveResponse): Ditto. 2016-01-27 Alex Christensen Fix CMake build after r195722. * PlatformMac.cmake: Include new file. 2016-01-27 Dan Bernstein Fix other builds. * Configurations/WebKit.xcconfig: 2016-01-27 Anders Carlsson Fix build. * Configurations/WebKit.xcconfig: 2016-01-27 Krzysztof Czech [EFL] Remove unused accessibility related code https://bugs.webkit.org/show_bug.cgi?id=153543 Reviewed by Darin Adler. Do not need to load external library to expose WebKit's accessibility tree. There have been changes in EFL/Elementary in terms of support of accessibility and we should follow those. * WebProcess/efl/WebProcessMainEfl.cpp: (eailLibraryPath): Deleted. (eail): Deleted. 2016-01-27 Enrica Casucci Cache results of data detection in the UI process when load completes. https://bugs.webkit.org/show_bug.cgi?id=153560 Reviewed by Tim Horton. This patch changes when the results of data detections are sent to the UIProcess. Before this change, they were only provided as part of InteractionInformationAtPosition, which is populated when long press gesture is triggered. We need to have the results available if the client wants to allow navigation to a data detector link, in order to allow them to retrieve the full url. With this change, we now send the results as soon as they are computed and keep them in the WebPageProxy object so that they can be fetched when necessary from a WKWebView private interface. * Shared/Cocoa/DataDetectionResult.h: Added. * Shared/Cocoa/DataDetectionResult.mm: Added. (WebKit::DataDetectionResult::encode): (WebKit::DataDetectionResult::decode): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _snapshotLayerContentsForBackForwardListItem:]): (-[WKWebView _dataDetectionResults]): (-[WKWebView _didRelaunchProcess]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::setDataDetectionResult): (WebKit::WebPageProxy::saveRecentSearches): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::websiteDataStore): (WebKit::WebPageProxy::dataDetectionResults): (WebKit::WebPageProxy::scrollingCoordinatorProxy): * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView ensurePositionInformationIsUpToDate:]): (-[WKContentView _dataDetectionResults]): (-[WKContentView gestureRecognizerShouldBegin:]): * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength): (WebKit::WebFrameLoaderClient::dispatchDidFinishDataDetection): (WebKit::WebFrameLoaderClient::dispatchDidFinishLoading): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): (WebKit::WebPage::setDataDetectionResults): (WebKit::WebPage::willCommitLayerTree): * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::shouldExtendIncrementalRenderingSuppression): 2016-01-27 Anders Carlsson Include the right WebKitAdditions files https://bugs.webkit.org/show_bug.cgi?id=153572 Reviewed by Tim Horton. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::reattachToWebProcess): 2016-01-27 Daniel Bates Move ContentSecurityPolicy.{cpp, h} to its own directory https://bugs.webkit.org/show_bug.cgi?id=153527 Reviewed by Sam Weinig. Add ${WEBCORE_DIR}/page/csp to the list of WebKit2 include directories. * CMakeLists.txt: 2016-01-27 Anders Carlsson Add WebKitAdditions extension points to WebCore, WebKit and WebKitLegacy https://bugs.webkit.org/show_bug.cgi?id=153550 Reviewed by Sam Weinig. * DerivedSources.make: Add the ability for WebKitAdditions to add new message receivers. * Shared/Cocoa/WebKitAdditions.mm: Added. Add addition files. * Shared/WebCoreArgumentCoders.h: Add extension points. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::reattachToWebProcess): (WebKit::WebPageProxy::resetState): Add extension points. * UIProcess/WebPageProxy.h: Add extension points. * WebKit2.xcodeproj/project.pbxproj: Add new files. * WebProcess/WebPage/WebPage.cpp: Add extension points. 2016-01-27 Chris Dumez window.atob() should ignore spaces in input https://bugs.webkit.org/show_bug.cgi?id=153522 Reviewed by Benjamin Poulain. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformSave): 2016-01-27 Ryosuke Niwa Add API to access closed shadowRoot in InjectedBundle https://bugs.webkit.org/show_bug.cgi?id=153533 Reviewed by Antti Koivisto. Added WKBundleScriptWorldMakeAllShadowRootsOpen to make all shadow roots open. This is needed to keep supporting certain browser-level features such as autofill. * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp: (WKBundleScriptWorldMakeAllShadowRootsOpen): Added. * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h: * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: (WebKit::InjectedBundleScriptWorld::makeAllShadowRootsOpen): Added. * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h: 2016-01-27 Zhuo Li Need ability to specify alternate image for AutoFill button in input fields. https://bugs.webkit.org/show_bug.cgi?id=153116. rdar://problem/23384854. Reviewed by Darin Adler. * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: (toAutoFillButtonType): Convert the WebKit AutoFill button type enum to WebCore AutoFill button type enum. (WKBundleNodeHandleSetHTMLInputElementAutoFillButtonEnabledWithButtonType): Added to be able to specify what the AutoFill button type is. None means the AutoFill button is not shown. (WKBundleNodeHandleSetHTMLInputElementAutoFillButtonEnabled): Deprecate this method. * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h: Declare an AutoFill button type enum. * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: (WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFillButtonEnabled): None means the AutoFill button is not enabled. (WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFillButtonEnabledWithButtonType): Use the new parameter to specify what the AutoFill button type is. * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h: Ditto. 2016-01-27 Dan Bernstein More trying to fix the build. * Configurations/WebKit.xcconfig: 2016-01-27 Alexey Proskuryakov Remove ENABLE_CURRENTSRC https://bugs.webkit.org/show_bug.cgi?id=153545 Reviewed by Simon Fraser. * Configurations/FeatureDefines.xcconfig: 2016-01-27 Sam Weinig Try to fix the build. * Configurations/WebKit.xcconfig: 2016-01-26 Sam Weinig Attempt to force a rebuild. * DerivedSources.make: 2016-01-26 Tim Horton REGRESSION (r194557): Keyboard shortcuts stop working after the WKWebView is unparented and reparented https://bugs.webkit.org/show_bug.cgi?id=153492 Reviewed by Dan Bernstein. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView canBecomeFirstResponder]): (-[WKContentView becomeFirstResponder]): (-[WKContentView resignFirstResponder]): When WKWebView is unparented, WKContentView will attempt to resignFirstResponder upwards, first asking WKWebView. After r194557, WKWebView will accept first responder and forward it on to the WKContentView, which will happily accept it again, despite being the view that's trying to resign. This will cause us to completely lose first responder, where it was actually supposed to propagate up above WKWebView to the client. Keep track of when WKContentView is resigning first responder, and don't let it become first responder while it is doing so, breaking the cycle. * UIProcess/ios/WKContentView.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView canBecomeFirstResponder]): If the WKContentView is currently in the process of resigning first responder status, we shouldn't accept it, because clients expect to receive it. 2016-01-26 I-Ting Liu Implement wildcard matching for plug-in policy host. https://bugs.webkit.org/show_bug.cgi?id=153090 Reviewed by Darin Adler. WebPlatformStrategies decides the plug-in load policy for a host by looking for a matched hostname in the list of plug-in policies sent by Safari. This patch adds support for wildcard matching -- if there's a policy with hostname "*.example.com," the policy for "foo.example.com" would be replaced with that of "*.example.com" if there's no policy for this hostname. If there is more than one wildcard hostname, the host with the longest wildcard hostname will be used. This patch adds a helper function in StringUtilites that matches a string to another string, which may contain wildcard ('*') characters. * Platform/mac/StringUtilities.h: - Add WebKit::stringMatchesWildcardString. - Remove #if ENABLE(TELEPHONE_NUMBER_DETECTION) && PLATFORM(MAC) flag so that the compiler allows exposing StringUtilities.h. - Add #if __OBJC__ to allow the file to be included in WebPltformStrategies.cpp * Platform/mac/StringUtilities.mm: (WebKit::stringMatchesWildcardString): Return true if the entire first given String matches the second. The second string may contain wildcard characters. (WebKit::wildcardRegexPatternString): Return the regex expression from a wildcard string by replacing the wildcard character ('*') with (".*") and escaping regular expression metacharacters. (WebKit::formattedPhoneNumberString): To expose StringUtilities.h for tests, we removed #if ENABLE(TELEPHONE_NUMBER_DETECTION) && PLATFORM(MAC) flag in the header. Add a function that returns nil for #if !(ENABLE(TELEPHONE_NUMBER_DETECTION) && PLATFORM(MAC)) to fix the removal of the flag in the header file. * WebKit2.xcodeproj/project.pbxproj: Change the file attribute of StringUtilities.h from Project to Private for testing in TestWebKitAPI. * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::longestMatchedWildcardHostForHost): Return the wildcard hostname whose matched substring with the host is the longest. (WebKit::WebPlatformStrategies::replaceHostWithMatchedWildcardHost): Replace the look-up host with a matched wildcard host if there is a match and that the matched wildcard host's plug-in identifier is the same as that of the host. (WebKit::WebPlatformStrategies::pluginLoadClientPolicyForHost): Try to replace the look-up host with the wildcard host if there's no policy for the host. Restructure the function to reduce hashmap lookup. * WebProcess/WebCoreSupport/WebPlatformStrategies.h: Declare the methods. 2016-01-26 Anders Carlsson Remove -d flag from make invocation. * WebKit2.xcodeproj/project.pbxproj: 2016-01-26 Joseph Pecoraro Generalize ResourceUsageData gathering to be used outside of ResourceUsageOverlay https://bugs.webkit.org/show_bug.cgi?id=153509 Reviewed by Andreas Kling. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Rename the ENABLE flag. 2016-01-26 Commit Queue Unreviewed, rolling out r195602. https://bugs.webkit.org/show_bug.cgi?id=153526 broke more than it fixed (Requested by thorton on #webkit). Reverted changeset: "REGRESSION (r194557): Keyboard shortcuts stop working after the WKWebView is unparented and reparented" https://bugs.webkit.org/show_bug.cgi?id=153492 http://trac.webkit.org/changeset/195602 2016-01-26 Anders Carlsson WebKitAdditions should be able to modify derived source rules https://bugs.webkit.org/show_bug.cgi?id=153514 Reviewed by Tim Horton. * Configurations/BaseTarget.xcconfig: * Configurations/WebKit.xcconfig: Set WEBKITADDITIONS_HEADER_SEARCH_PATHS. * DerivedSources.make: Move the path computation earlier and include WebKitDerivedSourcesAdditions.make. * WebKit2.xcodeproj/project.pbxproj: Pass our WebKitAdditions paths as include paths to make. 2016-01-26 Anders Carlsson Add a private WKUIDelegate method for getting a presenting view controller for a WKWebView on iOS https://bugs.webkit.org/show_bug.cgi?id=153510 Reviewed by Dan Bernstein. * UIProcess/API/APIUIClient.h: (API::UIClient::presentingViewController): * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::presentingViewController): 2016-01-26 Dean Jackson [iOS] Documents without an explicit width should not get fast tapping https://bugs.webkit.org/show_bug.cgi?id=153465 Reviewed by Simon Fraser (and Wenson Hseih). As the title says, documents that do not set a viewport should not get the fast click behaviour. There were complaints that we broke double-tap to scroll in ImageDocuments where the image was narrow and long. The fix is to just keep a flag that tells the UI process if the width was explicit. However, it turns out that those ImageDocuments are given an explicit device-width, which is fine for scaling but really should behave as auto for fast tapping. So we also need to tell the UIProcess if the viewport arguments came from an ImageDocument. * Shared/mac/RemoteLayerTreeTransaction.h: Add two new flags into the transaction. (WebKit::RemoteLayerTreeTransaction::viewportMetaTagWidthWasExplicit): (WebKit::RemoteLayerTreeTransaction::setViewportMetaTagWidthWasExplicit): (WebKit::RemoteLayerTreeTransaction::viewportMetaTagCameFromImageDocument): (WebKit::RemoteLayerTreeTransaction::setViewportMetaTagCameFromImageDocument): * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTransaction::encode): (WebKit::RemoteLayerTreeTransaction::decode): (WebKit::RemoteLayerTreeTransaction::description): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): Notice whether or not the viewport width was explicit. (-[WKWebView _allowsDoubleTapGestures]): Return yes if the width was not explicit, or if the viewport came from an ImageDocument. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::willCommitLayerTree): 2016-01-26 Tim Horton REGRESSION (r194557): Keyboard shortcuts stop working after the WKWebView is unparented and reparented https://bugs.webkit.org/show_bug.cgi?id=153492 Reviewed by Dan Bernstein. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView canBecomeFirstResponder]): (-[WKContentView becomeFirstResponder]): (-[WKContentView resignFirstResponder]): When WKWebView is unparented, WKContentView will attempt to resignFirstResponder upwards, first asking WKWebView. After r194557, WKWebView will accept first responder and forward it on to the WKContentView, which will happily accept it again, despite being the view that's trying to resign. This will cause us to completely lose first responder, where it was actually supposed to propagate up above WKWebView to the client. Keep track of when WKContentView is resigning first responder, and don't let it become first responder while it is doing so, breaking the cycle. 2016-01-25 Ada Chan Move WebVideoFullscreenManager and related classes from iOS specific folders to cocoa folders https://bugs.webkit.org/show_bug.cgi?id=153473 Reviewed by Eric Carlson. * DerivedSources.make: Add new paths. * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.h: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h. * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.messages.in: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in. * UIProcess/Cocoa/WebVideoFullscreenManagerProxy.mm: Renamed from Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm. (WebKit::WebVideoFullscreenManagerProxy::setSeekableRangesVector): Fix a style error by moving the opening curly brace to the same line as the for statement. * WebKit2.xcodeproj/project.pbxproj: Update due to changes to the file locations. * WebProcess/cocoa/WebVideoFullscreenManager.h: Renamed from Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h. * WebProcess/cocoa/WebVideoFullscreenManager.messages.in: Renamed from Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.messages.in. * WebProcess/cocoa/WebVideoFullscreenManager.mm: Renamed from Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm. (WebKit::WebVideoFullscreenInterfaceContext::setSeekableRanges): Fix a style error by adding a missing space after a comma. 2016-01-26 Daniel Bates WebKitTestRunner: Credential cache is not cleared between tests https://bugs.webkit.org/show_bug.cgi?id=153407 Reviewed by Alexey Proskuryakov. Expose SPI to call CredentialStorage::clearCredentials() on the default network storage session to clear cached credentials. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::clearCachedCredentials): Added. * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: Added message ClearCachedCredentials(). * UIProcess/API/C/WKContext.cpp: (WKContextClearCachedCredentials): Added. * UIProcess/API/C/WKContextPrivate.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::clearCachedCredentials): Notify all web processes and the network process to clear cached credentials. * UIProcess/WebProcessPool.h: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::clearCachedCredentials): Clear cached credentials in the default network storage session. * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: Added message ClearCachedCredentials(). 2016-01-26 Mario Sanchez Prada [GTK] WebProcess crashes when quickly attempting many DnD operations https://bugs.webkit.org/show_bug.cgi?id=138468 Reviewed by Michael Catanzaro. Do not allow different DnD operations over the same element at the same time, so that any new attempt to DnD an element happening before a previous attempt has ended will take precedence, cancelling the older operation before going ahead with the new one. This is consistent with how WebCore::EventHandler handles DnD operations, preventing the web process from crashing in scenarios where the user might try to perform many DnD operations over the same element very quickly. * UIProcess/gtk/DragAndDropHandler.cpp: (WebKit::DragAndDropHandler::DragAndDropHandler): Initialized new member. (WebKit::DragAndDropHandler::startDrag): Ensure a previous DnD operation is cancelled before handling the new one that has just started. (WebKit::DragAndDropHandler::fillDragData): Protect against calling this function from webkitWebViewBaseDragDataGet for already cancelled operations. (WebKit::DragAndDropHandler::finishDrag): Protect against calling this function from webkitWebViewBaseDragEnd for already cancelled operations. * UIProcess/gtk/DragAndDropHandler.h: 2016-01-25 Enrica Casucci Add support for DataDetectors in WK (iOS). https://bugs.webkit.org/show_bug.cgi?id=152989 rdar://problem/22855960 Reviewed by Tim Horton. Moving InteractionInformationAtPosition files to platform folder, since this is only used on iOS and changing from .cpp to .mm. The structure is extended to include data detection specific fields and the relevant encode/decode functions have been updated to handle the new fields. The patch also adds a new WKUIDelegatePrivate method to allow the client to provide additional context for data detection actions. * Platform/spi/ios/UIKitSPI.h: * Shared/InteractionInformationAtPosition.cpp: Removed. * Shared/InteractionInformationAtPosition.h: Removed. * Shared/ios/InteractionInformationAtPosition.h: Copied from Shared/InteractionInformationAtPosition.h. * Shared/ios/InteractionInformationAtPosition.mm: Copied from Shared/InteractionInformationAtPosition.cpp. (WebKit::InteractionInformationAtPosition::encode): (WebKit::InteractionInformationAtPosition::decode): * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/WebPageProxy.h: * UIProcess/ios/WKActionSheetAssistant.h: * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant showDataDetectorsSheet]): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView actionSheetAssistantDidStopInteraction:]): (-[WKContentView dataDetectionContextForActionSheetAssistant:]): (-[WKContentView selectedTextForActionSheetAssistant:]): (-[WKContentView _dataForPreviewItemController:atPosition:type:]): * UIProcess/ios/WebPageProxyIOS.mm: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2016-01-25 Commit Queue Unreviewed, rolling out r195543. https://bugs.webkit.org/show_bug.cgi?id=153451 regressed performance of test bots by ~6% (Requested by dydz on #webkit). Reverted changeset: "WebKitTestRunner: Credential cache is not cleared between tests" https://bugs.webkit.org/show_bug.cgi?id=153407 http://trac.webkit.org/changeset/195543 2016-01-25 Chris Dumez [WK2][NetworkCache] Enable speculative revalidation https://bugs.webkit.org/show_bug.cgi?id=153443 Reviewed by Antti Koivisto. Enable speculative revalidation to better evaluate performance and robustness. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::registerUserDefaultsIfNeeded): 2016-01-25 Beth Dakin Handle soft spaces after accepted candidates https://bugs.webkit.org/show_bug.cgi?id=153331 -and corresponding- rdar://problem/23958418 Reviewed by Darin Adler. New member variable m_softSpaceRange keeps track to the NSRange of a soft space if the last text that was inserted has a soft space at the end. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::WebViewImpl): The space at the end of candidates is a soft space. If that space exists, cache the range of the space in m_softSpaceRange. (WebKit::WebViewImpl::handleAcceptedCandidate): When new text is inserted, find out if it is being inserted right after a soft space. If it is, then [NSSpellChecker deletesAutospaceBeforeString] will tell us if the space needs to be removed. If that is the case, then set the replacementString to the soft space. (WebKit::WebViewImpl::insertText): 2016-01-25 Daniel Bates WebKitTestRunner: Credential cache is not cleared between tests https://bugs.webkit.org/show_bug.cgi?id=153407 Reviewed by Brady Eidson. Add SPI to call NetworkStorageSession::switchToNewTestingSession() to create a new testing session. The new testing session will have an empty credential cache. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::switchToNewTestingSession): Added. * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: Added message SwitchToNewTestingSession(). * UIProcess/API/C/WKContext.cpp: (WKContextResetTestingNetworkSession): Added. * UIProcess/API/C/WKContextPrivate.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::resetTestingNetworkSession): Added. * UIProcess/WebProcessPool.h: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::switchToNewTestingSession): Added. * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: Added message SwitchToNewTestingSession(). 2016-01-22 Ryosuke Niwa document.createElement should be able to create a custom element https://bugs.webkit.org/show_bug.cgi?id=153173 Reviewed by Darin Adler. Use createElementForBindings here since this is for SPI. * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm: (-[WKDOMDocument createElement:]): (-[WKDOMDocument createTextNode:]): 2016-01-24 Alex Christensen Report upload progress to NetworkLoadClient when using NetworkSession https://bugs.webkit.org/show_bug.cgi?id=153388 Reviewed by Darin Adler. This fixes http/tests/xmlhttprequest/upload-onload-event.html and a few other tests. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didBecomeDownload): (WebKit::NetworkLoad::didSendData): (WebKit::NetworkLoad::didReceiveResponseAsync): * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkSession.h: (WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate initWithNetworkSession:]): (-[WKNetworkSessionDelegate URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:]): (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): 2016-01-24 Gyuyoung Kim Reduce PassRefPtr uses in dom - 4 https://bugs.webkit.org/show_bug.cgi?id=153270 Reviewed by Darin Adler. As a step to remove PassRefPtr uses, this patch reduces the uses in WebCore/dom. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::focusPluginElement): 2016-01-23 Alex Christensen CMake build fix after r195494. * PlatformMac.cmake: WebKit2 needs to be able to find DataDetectors.h. 2016-01-23 Alex Christensen Use credentials from a URL with NetworkSession like we did with ResourceHandle https://bugs.webkit.org/show_bug.cgi?id=153328 Reviewed by Alexey Proskuryakov. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): createDataTaskWithRequest is being removed, so use std::make_unique directly instead. Also, create the task even if we are deferring loading. Don't call resume if we are deferring loading. * NetworkProcess/NetworkSession.h: Callbacks are not just used in NetworkSessionTaskClient, so declare them outside. The NetworkDataTask now takes a ResourceRequest so we can strip its credentials. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): Try credentials stored with the NetworkDataTask before asking the client for credentials. (WebKit::NetworkSession::~NetworkSession): (WebKit::NetworkSession::dataTaskForIdentifier): (WebKit::NetworkSession::takeDownloadID): (WebKit::NetworkDataTask::NetworkDataTask): Strip the credentials from the url before creating the task because we do not know the authentication type. We will use these credentials when a challenge is received. (WebKit::NetworkDataTask::~NetworkDataTask): (WebKit::NetworkDataTask::tryPasswordBasedAuthentication): If we have credentials from the initial URL, try using them if it is appropriate. (WebKit::NetworkDataTask::cancel): (WebKit::NetworkSession::createDataTaskWithRequest): Deleted. * Shared/Authentication/AuthenticationManager.h: 2016-01-22 Dan Bernstein REGRESSION (r184215): Staged XPC services load non-staged shims https://bugs.webkit.org/show_bug.cgi?id=153389 Reviewed by Alexey Proskuryakov. * Configurations/Shim.xcconfig: Don’t override the install name when using a staged install path. 2016-01-22 Enrica Casucci Add support for DataDetectors in WK (iOS). https://bugs.webkit.org/show_bug.cgi?id=152989 rdar://problem/22855960 Reviewed by Tim Horton. * UIProcess/API/Cocoa/WKWebView.mm: (fromWKDataDetectorTypes): Changed parameter to uint64_t to successfully compare against WKDataDetectorTypeAll. 2016-01-17 Ada Chan Add a mode parameter to MediaControllerInterface::supportsFullscreen() and ChromeClient::supportsVideoFullscreen(). https://bugs.webkit.org/show_bug.cgi?id=153220 Reviewed by Eric Carlson. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::supportsVideoFullscreen): * WebProcess/WebCoreSupport/WebChromeClient.h: 2016-01-22 Tim Horton Reproducible "Unhanded web process message 'WebUserContentController:AddUserScripts'" and friends https://bugs.webkit.org/show_bug.cgi?id=153193 Reviewed by Darin Adler. The WebPageProxy constructor assumes that if its WebProcess is already running, it can add itself to the existing WebUserContentController(Proxy) and all will be well. However, if the API client constructs a different WKUserContentController for two views, and forces them both into the same process, WebPageProxy's constructor sends a message with a WebUserContentController ID that doesn't exist yet on the WebProcess side (because createWebPage, which usually brings it up, hasn't happened yet), and we drop the message on the floor (and get the aforementioned logging). * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::initializeWebPageAfterProcessLaunch): Instead of connecting our WebUserContentControllerProxy and WebVisitedLinkStoreProxy to our WebProcessProxy in the constructor, when doing so might send messages to the WebProcess that arrive before their corresponding WebProcess objects have been created, do this in initializeWebPageAfterProcessLaunch, which always runs during-or-after inititalizeWebPage (and always after the CreateWebPage message goes out). (WebKit::WebPageProxy::initializeWebPage): Mark us as needing initializeWebPageAfterProcessLaunch run, and run it right now if the WebProcess is already up. (WebKit::WebPageProxy::processDidFinishLaunching): If the WebProcess wasn't up at the end of initializeWebPage, we'll eventually end up here after it is launched, and will initializeWebPageAfterProcessLaunch. (WebKit::WebPageProxy::resetStateAfterProcessExited): If the WebProcess dies, we don't want to initializeWebPageAfterProcessLaunch until after initializeWebPage runs again, so make sure the flag isn't set. * UIProcess/WebPageProxy.h: 2016-01-22 Darin Adler Reduce use of equalIgnoringCase to just ignore ASCII case https://bugs.webkit.org/show_bug.cgi?id=153266 Reviewed by Ryosuke Niwa. * UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::hasOnlySecureContent): Use the protocolIs function from WebCore instead of calling startsWith. * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::initialize): Use equalLettersIgnoringASCIICase. 2016-01-21 Brent Fulgham [Mac] Tooltips do not honor some types of obscuring windows https://bugs.webkit.org/show_bug.cgi?id=153263 Reviewed by Simon Fraser. Recognize that the current WebView is obscured by comparing the current event's Window Number against the Window Number of the current WebView. If they don't match, something is in the way. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::windowIsFrontWindowUnderMouse): Added. * UIProcess/PageClient.h: (WebKit::PageClient::windowIsFrontWindowUnderMouse): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleMouseEvent): Check if the current WebView is obscured. If it is, clear the tooltip and return. * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::windowIsFrontWindowUnderMouse): Added. 2016-01-22 Youenn Fablet Remove PassRefPtr from ResourceRequest and FormData https://bugs.webkit.org/show_bug.cgi?id=153229 Reviewed by Chris Dumez. * NetworkProcess/NetworkResourceLoadParameters.cpp: (WebKit::NetworkResourceLoadParameters::decode): * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): 2016-01-21 Simon Fraser REGRESSION (r168244): Content in horizontal-bt page is offset such that only the end is viewable and there is a white gap at the top https://bugs.webkit.org/show_bug.cgi?id=136019 Reviewed by Dan Bernstein. Now call frameView.positionForRootContentLayer(), and add a FIXME questioning the behavior in horizontal b-t documents. However, this code isn't hit now that we always do extended backgrounds, so never have shadow layers. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::shadowLayerPositionForFrame): 2016-01-21 Dean Jackson Move _allowsDoubleTapGestures implementation out of category https://bugs.webkit.org/show_bug.cgi?id=153329 Reviewed by Simon Fraser. We were generating a linker warning because the implementation was located inside the WKPrivate category. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _allowsDoubleTapGestures]): Move this out of the category. 2016-01-21 Dean Jackson [iOS] Crash in _endPotentialTapAndEnableDoubleTapGesturesIfNecessary https://bugs.webkit.org/show_bug.cgi?id=153326 Reviewed by Anders Carlsson. UIKit's UIGestureRecognizer could call back into the WKContentView after the associated WKWebView has disappeared. The fix is to explicitly null the WKWebView reference as we deallocate. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView dealloc]): Tell the WKContentView we are going away. * UIProcess/ios/WKContentView.h: * UIProcess/ios/WKContentView.mm: (-[WKContentView _webViewDestroyed]): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _endPotentialTapAndEnableDoubleTapGesturesIfNecessary]): Only do something if the WKWebView is still around. 2016-01-21 Beth Dakin Add the ability to update WebKitAdditions to WK2 https://bugs.webkit.org/show_bug.cgi?id=153320 -and corresponding- rdar://problem/23639629 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/API/mac/WKView.mm: * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::createWeakPtr): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::updateWebViewImplAdditions): (WebKit::WebViewImpl::showCandidates): (WebKit::WebViewImpl::webViewImplAdditionsWillDestroyView): (WebKit::trackingAreaOptions): (WebKit::WebViewImpl::~WebViewImpl): (WebKit::WebViewImpl::becomeFirstResponder): (WebKit::WebViewImpl::selectionDidChange): (WebKit::WebViewImpl::handleRequestedCandidates): (WebKit::textCheckingResultFromNSTextCheckingResult): 2016-01-19 Ada Chan Make it possible to enable VIDEO_PRESENTATION_MODE on other Cocoa platforms. https://bugs.webkit.org/show_bug.cgi?id=153218 Reviewed by Eric Carlson. * Configurations/FeatureDefines.xcconfig: 2016-01-20 Alex Christensen Fix CMake build after r195300. * PlatformMac.cmake: Include editing/mac to find DataDetection.h. 2016-01-20 Alex Christensen Ask UI Process before sending redirect requests when downloading https://bugs.webkit.org/show_bug.cgi?id=153041 Reviewed by Darin Adler. * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::continueCanAuthenticateAgainstProtectionSpace): (WebKit::DownloadManager::continueWillSendRequest): (WebKit::DownloadManager::convertHandleToDownload): * NetworkProcess/Downloads/DownloadManager.h: * NetworkProcess/Downloads/PendingDownload.cpp: (WebKit::PendingDownload::willSendRedirectedRequest): (WebKit::PendingDownload::continueWillSendRequest): * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace): (WebKit::NetworkProcess::continueWillSendRequest): (WebKit::NetworkProcess::setCacheModel): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * UIProcess/API/APIDownloadClient.h: (API::DownloadClient::didCancel): (API::DownloadClient::processDidCrash): (API::DownloadClient::canAuthenticateAgainstProtectionSpace): (API::DownloadClient::willSendRequest): * UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::didReceiveAuthenticationChallenge): (WebKit::DownloadProxy::canAuthenticateAgainstProtectionSpace): (WebKit::DownloadProxy::willSendRequest): (WebKit::DownloadProxy::didReceiveResponse): * UIProcess/Downloads/DownloadProxy.h: * UIProcess/Downloads/DownloadProxy.messages.in: 2016-01-20 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.11.4 release. * gtk/NEWS: Add release notes for 2.11.4. 2016-01-19 Enrica Casucci Add support for DataDetectors in WK (iOS). https://bugs.webkit.org/show_bug.cgi?id=152989 rdar://problem/22855960 Reviewed by Tim Horton. This is the first step toward implementing Data Detectors support in WK2. The patch adds a new property to the configuration object to indicate the type of detection desired and propagates to the WebProcess. * Configurations/FeatureDefines.xcconfig: * Shared/WebPreferencesDefinitions.h: * UIProcess/API/Cocoa/WKWebView.mm: (fromWKDataDetectorTypes): (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration copyWithZone:]): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2016-01-19 Commit Queue Unreviewed, rolling out r195300. https://bugs.webkit.org/show_bug.cgi?id=153244 enrica wants more time to fix Windows (Requested by thorton on #webkit). Reverted changeset: "Add support for DataDetectors in WK (iOS)." https://bugs.webkit.org/show_bug.cgi?id=152989 http://trac.webkit.org/changeset/195300 2016-01-19 Enrica Casucci Add support for DataDetectors in WK (iOS). https://bugs.webkit.org/show_bug.cgi?id=152989 rdar://problem/22855960 Reviewed by Tim Horton. This is the first step toward implementing Data Detectors support in WK2. The patch adds a new property to the configuration object to indicate the type of detection desired and propagates to the WebProcess. * Configurations/FeatureDefines.xcconfig: * Shared/WebPreferencesDefinitions.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration copyWithZone:]): * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: Added. (WebKit::WebPage::fromWKDataDetectorTypes): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): * WebProcess/WebPage/WebPage.h: 2016-01-19 Commit Queue Unreviewed, rolling out r187471. https://bugs.webkit.org/show_bug.cgi?id=153236 purportedly caused a significant memory regression and want to see if that is true (Requested by thorton on #webkit). Reverted changeset: "First in-window viewStateChange synchronously blocks despite not previously being in-window" https://bugs.webkit.org/show_bug.cgi?id=147344 http://trac.webkit.org/changeset/187471 2016-01-19 Carlos Garcia Campos [GTK] Runtime critical warnings when loading a URL after a session restore https://bugs.webkit.org/show_bug.cgi?id=153233 Reviewed by Michael Catanzaro. This happens when doing a normal load after restoring the back forward list from session state and the list contained forward items. In that case the forward items are removed from the list and we try to reference a WebBackForwardListItem wrapper that hasn't been created. We create the wrappers on demand, and when the back forward list is populated from session state, items are added to the list without creating their wrappers. That was not possible before, and that's why we assumed that any item that is removed from the list should have a wrapper already created. * UIProcess/API/gtk/WebKitBackForwardList.cpp: (webkitBackForwardListChanged): If we don't have a wrapper for the removed item, create a new one to be passed to the signal, but without adding it to the map. 2016-01-19 Ryosuke Niwa CharacterData::setData doesn't need ExceptionCode as an out argument https://bugs.webkit.org/show_bug.cgi?id=153225 Reviewed by Antti Koivisto. * WebProcess/InjectedBundle/API/mac/WKDOMText.mm: (-[WKDOMText setData:]): 2016-01-18 Ryuan Choi [EFL] Remove wkView() from EwkView https://bugs.webkit.org/show_bug.cgi?id=152604 Reviewed by Gyuyoung Kim. * UIProcess/API/efl/EwkView.cpp: (EwkViewEventHandler::handleEvent): (EwkViewEventHandler::handleEvent): (EwkView::EwkView): (EwkView::create): (EwkView::wkPage): (EwkView::isVisible): (EwkView::setVisible): (EwkView::setDeviceScaleFactor): (EwkView::deviceSize): (EwkView::displayTimerFired): (EwkView::setViewportPosition): (EwkView::requestExitFullScreen): (EwkView::contentsSize): (EwkView::setThemePath): (EwkView::feedTouchEvent): (EwkView::createGLSurface): (EwkView::showContextMenu): (EwkView::requestPopupMenu): (EwkView::webView): (EwkView::handleEvasObjectCalculate): (EwkView::handleEvasObjectColorSet): (EwkView::handleEwkViewFocusIn): (EwkView::handleEwkViewFocusOut): (EwkView::feedTouchEvents): (EwkView::takeSnapshot): (EwkView::scrollBy): (EwkView::setBackgroundColor): (EwkView::backgroundColor): * UIProcess/API/efl/EwkView.h: (EwkView::wkView): Deleted. * UIProcess/API/efl/GestureRecognizer.cpp: (WebKit::GestureHandler::handleSingleTap): * UIProcess/API/efl/ewk_view.cpp: (EWKViewCreate): (EWKViewGetWKView): (ewk_view_fullscreen_exit): (ewk_view_layout_fixed_set): (ewk_view_layout_fixed_get): (ewk_view_layout_fixed_size_set): (ewk_view_layout_fixed_size_get): (ewk_view_bg_color_get): (ewk_view_contents_size_get): * UIProcess/efl/PageViewportControllerClientEfl.cpp: (WebKit::PageViewportControllerClientEfl::setPageScaleFactor): * UIProcess/efl/ViewClientEfl.cpp: (WebKit::ViewClientEfl::webProcessDidRelaunch): (WebKit::ViewClientEfl::ViewClientEfl): (WebKit::ViewClientEfl::~ViewClientEfl): 2016-01-18 Zan Dobersek Sink the Vector buffer into the SerializedScriptValue constructor https://bugs.webkit.org/show_bug.cgi?id=142634 Reviewed by Darin Adler. Update API::SerializedScriptValue::adopt() to take in a Vector rvalue, moving it into the WebCore::SerializedScriptValue::adopt() call. Update other places that are affected by the SerializedScriptValue changes. * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex): * Shared/API/APISerializedScriptValue.h: (API::SerializedScriptValue::adopt): * Shared/UserData.cpp: (WebKit::UserData::decode): * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::didPostMessage): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::scriptValueCallback): * WebProcess/WebCoreSupport/SessionStateConversion.cpp: (WebKit::applyFrameState): 2016-01-18 Olivier Blin [EFL][GTK][WK2] Fix UIProcess build with GStreamer and without VIDEO https://bugs.webkit.org/show_bug.cgi?id=153135 Reviewed by Michael Catanzaro. GStreamer builds fail when WebAudio is enabled but VIDEO disabled. This change makes the flag more consistent around the decicePolicyForInstallMissingMediaPluginsPermissionRequest() method: ENABLE(VIDEO) && USE(GSTREAMER) everywhere, while the code used to test either one or the other. This does not enable InstallMissingMediaPlugins for WebAudio, since no code makes use of this in WebKitWebAudioSourceGStreamer. It also fixes a naming typo for the following method: decidePolicyForInstallMissingMediaPluginsPermissionRequest() * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::decidePolicyForInstallMissingMediaPluginsPermissionRequest): * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/PageClient.h: * UIProcess/efl/WebViewEfl.h: * UIProcess/gstreamer/WebPageProxyGStreamer.cpp: (WebKit::WebPageProxy::requestInstallMissingMediaPlugins): 2016-01-17 Jeremy Huddleston Sequoia Add quotes around ${CMAKE_SHARED_LINKER_FLAGS} in case it is unset https://bugs.webkit.org/show_bug.cgi?id=153175 Reviewed by Michael Catanzaro. * PlatformGTK.cmake: 2016-01-16 Jeremy Huddleston Sequoia Remove a now-irrelevant darwin build hack https://bugs.webkit.org/show_bug.cgi?id=153117 Reviewed by Michael Catanzaro. * PlatformGTK.cmake: 2016-01-16 Jon Honeycutt [iOS] Replace deprecated -[UIDocumentMenuViewController _setIgnoreApplicationEntitlementForImport:] Reviewed by Brent Fulgham. * Platform/spi/ios/UIKitSPI.h: Replace deprecated SPI with newer SPI. * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel presentWithParameters:resultListener:]): (-[WKFileUploadPanel _showDocumentPickerMenu]): Ditto. 2016-01-16 Michael Catanzaro [GTK] Unreviewed. Fix a typo in an API comment. * UIProcess/API/gtk/WebKitWebViewSessionState.cpp: 2016-01-16 Carlos Garcia Campos [GTK] GVariant runtime critical errors when encoding session data https://bugs.webkit.org/show_bug.cgi?id=153130 Reviewed by Michael Catanzaro. It happens when the FrameState has children, because the recursive serialization is wrong. Also fix serialization of documentSequenceNumber and itemSequenceNumber that are gint64, not guint64. * UIProcess/API/gtk/WebKitWebViewSessionState.cpp: (encodeFrameState): Let the caller open/init the given builder. Use a new builder to encode child states recursively. (encodePageState): Do the builder open/close for the FrameState encoding. (decodeFrameState): Get the variant of every child. 2016-01-15 Michael Catanzaro Fix internal Windows build https://bugs.webkit.org/show_bug.cgi?id=153142 Unreviewed addition to Alex's JSC patch, which was reviewed by Brent Fulgham. Pass -I${JAVASCRIPTCORE_DIR} to g-ir-scanner. * PlatformGTK.cmake: 2016-01-14 Simon Fraser Remove workaround for rdar://problem/23623670 https://bugs.webkit.org/show_bug.cgi?id=153107 rdar://problem/23633319 Reviewed by Tim Horton. Remove the code that uses IOSurfaceAcceleratorTransformSurface() when copying from back-to-front buffer, now that CGIOSurfaceContextCreate()-code path works correctly. * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::display): 2016-01-14 Beth Dakin WK1 and WK2 should share more candidate request code https://bugs.webkit.org/show_bug.cgi?id=153108 Reviewed by Simon Fraser. requestCandidatesForSelection() does not need to be exposed as an EditorClient function. WK1 can just call invoke this code from the existing respondToChangedSelection EditorClient function, which is what WK2 does. * WebProcess/WebCoreSupport/WebEditorClient.h: 2016-01-14 Beth Dakin WK2: Request completion candidates when needed https://bugs.webkit.org/show_bug.cgi?id=153040 -and corresponding- rdar://problem/24155631 Reviewed by Enrica Casucci and Tim Horton. Mac needs to support postLayoutData in order to have some layout-related editing information to request candidates. This patch re-shuffles some items in the struct so that they can be shared by Mac and iOS, and it adds 3 new items for Mac only. * Shared/EditorState.cpp: (WebKit::EditorState::encode): (WebKit::EditorState::decode): (WebKit::EditorState::PostLayoutData::encode): (WebKit::EditorState::PostLayoutData::decode): * Shared/EditorState.h: Request and handle candidates here in WebViewImpl, and cache the m_lastStringForCandidateRequest so that we can ensure the results we receive were received in a timely enough manner that they are still for the same String. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::selectionDidChange): When selection changes, request new candidates. (WebKit::WebViewImpl::requestCandidatesForSelectionIfNeeded): Once candidates have been received, we ask the sharedSpellChecker to show them. (WebKit::WebViewImpl::handleRequestedCandidates): If a candidate is accepted, we ask the WebProcess to accept it, so we start by converting the NSTextCheckingResult to a WebCore::TextCheckingResult. (WebKit::textCheckingResultFromNSTextCheckingResult): (WebKit::WebViewImpl::handleAcceptedCandidate): Ask the WebProcess to handle accepting the candidate. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleAcceptedCandidate): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.h: (WebKit::WebPage:: handleAcceptedCandidate): * WebProcess/WebPage/WebPage.messages.in: Now that Mac has some postLayoutData in the EditorState, fill that in in platformEditorState(). * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::platformEditorState): Ask WebCore::Editor to handle the accepted candidate. (WebKit::WebPage::handleAcceptedCandidate): 2016-01-14 Commit Queue Unreviewed, rolling out r195002. https://bugs.webkit.org/show_bug.cgi?id=153098 Crashes many/most editing tests (Requested by ap on #webkit). Reverted changeset: "WK2: Request completion candidates when needed" https://bugs.webkit.org/show_bug.cgi?id=153040 http://trac.webkit.org/changeset/195002 2016-01-14 Gyuyoung Kim [EFL][GTK][SeccompFilter] Fix build break when enabling --seccomp-filters https://bugs.webkit.org/show_bug.cgi?id=153094 Reviewed by Csaba Osztrogonác. diskCacheDirectory and cookiePersistentStoragePath were removed by r192796. But SyscallPolicy::addDefaultWebProcessPolicy has added directory permission to the removed paths. It looks two paths needs to be handled by network process. * Shared/linux/SeccompFilters/SyscallPolicy.cpp: (WebKit::SyscallPolicy::addDefaultWebProcessPolicy): Deleted. 2016-01-13 Alex Christensen Implement custom protocols when using NetworkSession https://bugs.webkit.org/show_bug.cgi?id=153078 Reviewed by Andy Estes. * NetworkProcess/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: (WebKit::generateCustomProtocolID): (+[WKCustomProtocol canInitWithRequest:]): (+[WKCustomProtocol canonicalRequestForRequest:]): (-[WKCustomProtocol initWithRequest:cachedResponse:client:]): (-[WKCustomProtocol startLoading]): (-[WKCustomProtocol stopLoading]): There's no need to have a static pointer when we can use NetworkProcess::singleton to access the process-global CustomProtocolManager, and add null checks because that's a good thing to do. (WebKit::CustomProtocolManager::CustomProtocolManager): Call UTF8Encoding when creating the CustomProtocolManager on the main thread to make sure it exists for when we decode URLS in ResourceResponses from IPC later, which is done on a different WorkQueue. (WebKit::CustomProtocolManager::initializeConnection): (WebKit::CustomProtocolManager::initialize): (WebKit::CustomProtocolManager::removeCustomProtocol): (WebKit::CustomProtocolManager::registerProtocolClass): (WebKit::CustomProtocolManager::registerScheme): * NetworkProcess/CustomProtocols/CustomProtocolManager.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::NetworkSession): Call registerProtocolClass to set configuration.protocolClasses if there is a CustomProtocolManager. 2016-01-13 Beth Dakin WK2: Request completion candidates when needed https://bugs.webkit.org/show_bug.cgi?id=153040 -and corresponding- rdar://problem/24155631 Reviewed by Enrica Casucci. Mac needs to support postLayoutData in order to have some layout-related editing information to request candidates. This patch re-shuffles some items in the struct so that they can be shared by Mac and iOS, and it adds 3 new items for Mac only. * Shared/EditorState.cpp: (WebKit::EditorState::encode): (WebKit::EditorState::decode): (WebKit::EditorState::PostLayoutData::encode): (WebKit::EditorState::PostLayoutData::decode): * Shared/EditorState.h: Request and handle candidates here in WebViewImpl, and cache the m_lastStringForCandidateRequest so that we can ensure the results we receive were received in a timely enough manner that they are still for the same String. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::selectionDidChange): When selection changes, request new candidates. (WebKit::WebViewImpl::requestCandidatesForSelectionIfNeeded): Once candidates have been received, we ask the sharedSpellChecker to show them. (WebKit::WebViewImpl::handleRequestedCandidates): If a candidate is accepted, we ask the WebProcess to accept it, so we start by converting the NSTextCheckingResult to a WebCore::TextCheckingResult. (WebKit::textCheckingResultFromNSTextCheckingResult): (WebKit::WebViewImpl::handleAcceptedCandidate): Ask the WebProcess to handle accepting the candidate. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleAcceptedCandidate): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.h: (WebKit::WebPage:: handleAcceptedCandidate): * WebProcess/WebPage/WebPage.messages.in: Now that Mac has some postLayoutData in the EditorState, fill that in in platformEditorState(). * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::platformEditorState): Ask WebCore::Editor to handle the accepted candidate. (WebKit::WebPage::handleAcceptedCandidate): 2016-01-12 Geoffrey Garen WebKit2 should have an API for eagerly querying whether the web process is responsive https://bugs.webkit.org/show_bug.cgi?id=153037 Reviewed by Tim Horton. WebKit2 provides a delegate notification when the web process doesn't respond to a message after a while. But there's no way to send a message eagerly and check for reply. We want this new mechanism so that navigation can terminate the web process eagerly if it is hung. * UIProcess/API/C/WKPage.cpp: (WKPageGetWebProcessIsResponsive): * UIProcess/API/C/WKPagePrivate.h: This is the new API. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::sendWheelEvent): Updated for interface change. (WebKit::WebPageProxy::getWebProcessIsResponsive): Calls through to the web process proxy. We claim that we are responsive when there is no web process because we assume that a fresh web process will not hang. * UIProcess/WebPageProxy.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::WebProcessProxy): (WebKit::WebProcessProxy::didBecomeUnresponsive): Keep a flag indicating whether the process is unresponsive so that we can fire unresponsiveness callbacks immediately for a hung process instead of waiting another 3s. (WebKit::WebProcessProxy::didBecomeResponsive): We don't fire responsiveness callbacks inside didBecomeResponsive because we assume that a responsive web process will invoke didReceiveMainThreadPing -- and we fire the callbacks there. (WebKit::WebProcessProxy::getIsResponsive): If the web process is already known to be unresponsive, fire the callback right away. Otherwise, queue it up to fire once we have an answer from a main thread ping. (WebKit::WebProcessProxy::didReceiveMainThreadPing): Fire any pending callbacks when we learn that the web process is responsive. * UIProcess/WebProcessProxy.h: 2016-01-12 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.11.3 release. * gtk/NEWS: Add release notes for 2.11.3. 2016-01-12 Geoffrey Garen WebPageProxy should reattach to the web process before navigating https://bugs.webkit.org/show_bug.cgi?id=153026 Reviewed by Anders Carlsson. This fixes a crash (and lots of other corruption) when force-quitting the web process during navigation. Some objects (like ViewGestureController) use one-time initialization to point to a ChildProcessProxy -- and, by design, we destroy them when the ChildProcessProxy becomes invalid (i.e., crashes or quits). If we navigate *before* creating a new, valid ChildProcessProxy, then we accidentally re-create these objects pointing to the old, invalid ChildProcessProxy. We need to wait until we have a valid ChildProcessProxy before we initialize these objects. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reattachToWebProcessWithItem): Navigate after reattaching to the web process so that lazily allocated helper objects point to the right ChildProcessProxy. 2016-01-12 Ryosuke Niwa Add a build flag for custom element https://bugs.webkit.org/show_bug.cgi?id=153005 Reviewed by Alex Christensen. * Configurations/FeatureDefines.xcconfig: 2016-01-12 Alex Christensen Ask for UI Process approval of ProtectionSpace when authenticating downloads with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=152999 Reviewed by Brady Eidson. * DerivedSources.make: I mistakenly added PendingDownload.messages.in in r194810, but this will not be needed because the PendingDownload is not a MessageReceiver. Rather, the NetworkProcess receives the messages and forwards their contents to the PendingDownload through its DownloadManager. * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::dataTaskBecameDownloadTask): (WebKit::DownloadManager::continueCanAuthenticateAgainstProtectionSpace): (WebKit::DownloadManager::convertHandleToDownload): * NetworkProcess/Downloads/DownloadManager.h: * NetworkProcess/Downloads/PendingDownload.cpp: (WebKit::PendingDownload::continueWillSendRequest): (WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync): Instead of taking a shortcut I added in r194810, send a message to the UI process and wait for its asynchronous reply to determine if we can authenticate against this protection space. (WebKit::PendingDownload::continueCanAuthenticateAgainstProtectionSpace): (WebKit::PendingDownload::didConvertToDownload): * NetworkProcess/Downloads/PendingDownload.h: * NetworkProcess/Downloads/PendingDownload.messages.in: Removed. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::cancelDownload): (WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace): (WebKit::NetworkProcess::setCacheModel): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * Shared/Authentication/AuthenticationManager.h: * UIProcess/API/APIDownloadClient.h: (API::DownloadClient::didFail): (API::DownloadClient::didCancel): (API::DownloadClient::processDidCrash): (API::DownloadClient::canAuthenticateAgainstProtectionSpace): * UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::didReceiveAuthenticationChallenge): (WebKit::DownloadProxy::canAuthenticateAgainstProtectionSpace): (WebKit::DownloadProxy::didReceiveResponse): * UIProcess/Downloads/DownloadProxy.h: * UIProcess/Downloads/DownloadProxy.messages.in: * WebKit2.xcodeproj/project.pbxproj: 2016-01-12 Carlos Garcia Campos Move ChildProcessProxy from Shared to UIProcess https://bugs.webkit.org/show_bug.cgi?id=125570 Reviewed by Darin Adler. ChildProcessProxy is only used by the UI process. * CMakeLists.txt: * PlatformGTK.cmake: * UIProcess/ChildProcessProxy.cpp: Renamed from Source/WebKit2/Shared/ChildProcessProxy.cpp. (WebKit::ChildProcessProxy::ChildProcessProxy): (WebKit::ChildProcessProxy::~ChildProcessProxy): (WebKit::ChildProcessProxy::fromConnection): (WebKit::ChildProcessProxy::getLaunchOptions): (WebKit::ChildProcessProxy::connect): (WebKit::ChildProcessProxy::terminate): (WebKit::ChildProcessProxy::state): (WebKit::ChildProcessProxy::sendMessage): (WebKit::ChildProcessProxy::addMessageReceiver): (WebKit::ChildProcessProxy::removeMessageReceiver): (WebKit::ChildProcessProxy::dispatchMessage): (WebKit::ChildProcessProxy::dispatchSyncMessage): (WebKit::ChildProcessProxy::didFinishLaunching): (WebKit::ChildProcessProxy::shutDownProcess): (WebKit::ChildProcessProxy::connectionWillOpen): * UIProcess/ChildProcessProxy.h: Renamed from Source/WebKit2/Shared/ChildProcessProxy.h. (WebKit::ChildProcessProxy::connection): (WebKit::ChildProcessProxy::processIdentifier): (WebKit::ChildProcessProxy::canSendMessage): (WebKit::ChildProcessProxy::send): (WebKit::ChildProcessProxy::sendSync): * WebKit2.xcodeproj/project.pbxproj: 2016-01-12 Carlos Garcia Campos [GTK] UI process crashes if webkit_web_view_get_tls_info is called before internal load-committed event https://bugs.webkit.org/show_bug.cgi?id=142375 Reviewed by Michael Catanzaro. Remove all the hacks to emit delayed load events now that the page cache resource load delegates are consistent with all other resource loads. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewLoadChanged): (webkitWebViewResourceLoadStarted): (webkit_web_view_get_tls_info): Add a g_return_val_if_fail to prevent this function from being misused. (webkitWebViewDisconnectMainResourceResponseChangedSignalHandler): Deleted. (webkitWebViewDispose): Deleted. (webkitWebViewEmitLoadChanged): Deleted. (webkitWebViewEmitDelayedLoadEvents): Deleted. (mainResourceResponseChangedCallback): Deleted. (waitForMainResourceResponseIfWaitingForResource): Deleted. 2016-01-11 Carlos Garcia Campos REGRESSION(r190717): [GTK] Popup menus stop working after being dismissed without selecting an item https://bugs.webkit.org/show_bug.cgi?id=152977 Reviewed by Michael Catanzaro. This happens since r190717 when you open a popup menu and without selecting any option it's dismissed (press ESC or click somewhere else). This is because I removed the code to track when the menu is unmapped, thinking that it was no longer necessary. But we need to send the DidChangeSelectedIndexForActivePopupMenu to the WebProcess with -1 as index to keep the web process in sync. * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: (WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk): (WebKit::WebPopupMenuProxyGtk::showPopupMenu): (WebKit::WebPopupMenuProxyGtk::cancelTracking): (WebKit::WebPopupMenuProxyGtk::menuItemActivated): (WebKit::WebPopupMenuProxyGtk::dismissMenuTimerFired): (WebKit::WebPopupMenuProxyGtk::menuUnmappedCallback): * UIProcess/gtk/WebPopupMenuProxyGtk.h: 2016-01-09 Andy Estes [Cocoa] Add SPI to opt out a URL scheme from the memory cache https://bugs.webkit.org/show_bug.cgi?id=152950 rdar://problem/24066652 Reviewed by Tim Horton. Added a alwaysRevalidatedURLSchemes property to _WKProcessPoolConfiguration. Taught WebProcess to add these schemes to SchemeRegistry when initializing a new web process. * Shared/API/Cocoa/WKFoundation.h: Added a newline to force re-postprocessing. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration alwaysRevalidatedURLSchemes]): (-[_WKProcessPoolConfiguration setAlwaysRevalidatedURLSchemes:]): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createNewWebProcess): * UIProcess/WebProcessPool.h: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::registerURLSchemeAsAlwaysRevalidated): * WebProcess/WebProcess.h: 2016-01-11 Anders Carlsson Get rid of CFMakeCollectable, it is a no-op https://bugs.webkit.org/show_bug.cgi?id=152988 Reviewed by Sam Weinig. * Shared/Cocoa/WKNSString.mm: * Shared/Cocoa/WKNSURL.mm: (-[WKNSURL _web_createTarget]): 2016-01-11 Commit Queue Unreviewed, rolling out r194866. https://bugs.webkit.org/show_bug.cgi?id=152986 This change broke the mac build (Requested by ryanhaddad on #webkit). Reverted changeset: "[Cocoa] Add SPI to opt out a URL scheme from the memory cache" https://bugs.webkit.org/show_bug.cgi?id=152950 http://trac.webkit.org/changeset/194866 2016-01-11 Andy Estes [Cocoa] Add SPI to opt out a URL scheme from the memory cache https://bugs.webkit.org/show_bug.cgi?id=152950 rdar://problem/24066652 Reviewed by Tim Horton. Added a alwaysRevalidatedURLSchemes property to _WKProcessPoolConfiguration. Taught WebProcess to add these schemes to SchemeRegistry when initializing a new web process. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration alwaysRevalidatedURLSchemes]): (-[_WKProcessPoolConfiguration setAlwaysRevalidatedURLSchemes:]): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createNewWebProcess): * UIProcess/WebProcessPool.h: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::registerURLSchemeAsAlwaysRevalidated): * WebProcess/WebProcess.h: 2016-01-11 Alex Christensen Fix Mac CMake build after r194810. * PlatformMac.cmake: PendingDownload isn't needed until NETWORK_SESSION is used by default. I'll figure this out when I make the switch. 2016-01-11 Mario Sanchez Prada [WK2][GTK] Propagate motion-notify-event signals from the WebView https://bugs.webkit.org/show_bug.cgi?id=152974 Reviewed by Carlos Garcia Campos. Always propagate motion-notify-event signals, regardless of what the web process does, so that we can listen for those events (which does not act on specific targets inside the webview) from the container widget too, and not just from the WebView itself. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseMotionNotifyEvent): Ensure the signal gets propagated. 2016-01-10 Dan Bernstein [Cocoa] Disable header postprocessing when building for El Capitan https://bugs.webkit.org/show_bug.cgi?id=152962 Reviewed by Anders Carlsson. * Configurations/WebKit.xcconfig: 2016-01-09 Dan Bernstein [Cocoa] Allow overriding the frameworks directory independently of using a staging install path https://bugs.webkit.org/show_bug.cgi?id=152926 Reviewed by Tim Horton. Introduce a new build setting, WK_OVERRIDE_FRAMEWORKS_DIR. When not empty, it determines where the frameworks are installed. Setting USE_STAGING_INSTALL_PATH to YES sets WK_OVERRIDE_FRAMEWORKS_DIR to $(SYSTEM_LIBRARY_DIR)/StagedFrameworks/Safari. Account for the possibility of WK_OVERRIDE_FRAMEWORKS_DIR containing spaces. * Configurations/BaseTarget.xcconfig: - Add quotes to account for spaces. - Define WEBKIT_FRAMEWORKS_DIR and UMBRELLA_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR. * WebKit2.xcodeproj/project.pbxproj: - In the Migrate WebKitLegacy Headers build phase, work around make’s inability to handle spaces in paths by creating a symlink to WEBKIT_LEGACY_PRIVATE_HEADERS_DIR under BUILT_PRODUCTS_DIR and using the symlink as the value of WEBKIT_LEGACY_PRIVATE_HEADERS_DIR. - In the Postprocess WKBase.h and Postprocess WKFoundation.h build phases, add quotes to account for spaces. * mac/MigrateHeadersFromWebKitLegacy.make: Use a BUILT_PRODUCTS_DIR-based path to the framework instead of a TARGET_BUILD_DIR-based one in order to avoid spaces. * mac/postprocess-framework-headers.sh: Add quotes to account for spaces. 2016-01-08 Alex Christensen Implement download authentication with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=152878 Reviewed by Brady Eidson. * DerivedSources.make: * NetworkProcess/Downloads/Download.h: * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::startDownload): * NetworkProcess/Downloads/PendingDownload.cpp: Added. (WebKit::PendingDownload::PendingDownload): (WebKit::PendingDownload::willSendRedirectedRequest): (WebKit::PendingDownload::continueWillSendRequest): (WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync): (WebKit::PendingDownload::continueCanAuthenticateAgainstProtectionSpace): (WebKit::PendingDownload::didConvertToDownload): (WebKit::PendingDownload::messageSenderConnection): (WebKit::PendingDownload::messageSenderDestinationID): * NetworkProcess/Downloads/PendingDownload.h: (WebKit::PendingDownload::PendingDownload): Deleted. * NetworkProcess/Downloads/PendingDownload.messages.in: Added. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::continueWillSendRequest): The completion handler should always be called. If m_currentRequest is null, then the request will not proceed, which is the same as canceling it. (WebKit::NetworkLoad::setPendingDownloadID): (WebKit::NetworkLoad::setPendingDownload): (WebKit::NetworkLoad::willPerformHTTPRedirection): (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): If this load is going to become a download, then call the PendingDownload version of didReceiveAuthenticationChallenge to communicate with the UI process directly because there wasn't necessarily a web process associated with this request that will become a download. * NetworkProcess/NetworkLoad.h: (WebKit::NetworkLoad::pendingDownloadID): * NetworkProcess/NetworkSession.h: (WebKit::NetworkDataTask::client): (WebKit::NetworkDataTask::pendingDownloadID): (WebKit::NetworkDataTask::pendingDownload): (WebKit::NetworkDataTask::setPendingDownloadID): (WebKit::NetworkDataTask::setPendingDownload): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: * PlatformMac.cmake: * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): * Shared/Authentication/AuthenticationManager.h: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace): Removed unnecessary protection and move null check to before using the pointer it checks. 2016-01-07 Simon Fraser Use an appropriate buffer format for swipe snapshots https://bugs.webkit.org/show_bug.cgi?id=152880 rdar://problem/23728299 Reviewed by Tim Horton. Choose an appropriate buffer format for swipe snapshots, and avoid converting them to YUV422. * UIProcess/API/Cocoa/WKWebView.mm: (WebKit::bufferFormat): (-[WKWebView _takeViewSnapshot]): 2016-01-07 Alex Christensen Progress towards implementing downloads with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=152760 Reviewed by Brady Eidson. * NetworkProcess/Downloads/Download.cpp: (WebKit::Download::Download): There's no need to store the unused NetworkSession&. (WebKit::Download::didStart): (WebKit::Download::didReceiveAuthenticationChallenge): Downloads with NetworkSession are NetworkLoads until the response is received, which is after authentication challenges are handled by NetworkLoad's code. (WebKit::Download::didReceiveResponse): * NetworkProcess/Downloads/Download.h: * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::startDownload): Create a PendingDownload, which is basically a NetworkLoad that knows that it will become a Download when the response is received, regardless of whether or not there is a Content-Disposition header. (WebKit::DownloadManager::dataTaskBecameDownloadTask): * NetworkProcess/Downloads/DownloadManager.h: * NetworkProcess/Downloads/PendingDownload.h: Added. (WebKit::PendingDownload::PendingDownload): Added a new NetworkLoadClient for requests that will become downloads. A PendingDownload contains a NetworkLoad so we can always keep them together and so it can handle setting its pending download id. * WebKit2.xcodeproj/project.pbxproj: * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): Avoid dereferencing a pointer if the NetworkSession hadn't been created when a NetworkLoad starts. This shouldn't be possible, but it's good to not assume that all pointers are non-null. (WebKit::NetworkLoad::cancel): Add a null check in case the constructor doesn't make m_task. (WebKit::NetworkLoad::convertTaskToDownload): (WebKit::NetworkLoad::setPendingDownloadID): Added for downloads that start with startDownload. The pending DownloadID is used to indicate that this request should always become a download, regardless of whether or not the response has a Content-Disposition header. (WebKit::NetworkLoad::willPerformHTTPRedirection): (WebKit::NetworkLoad::didReceiveResponse): * NetworkProcess/NetworkLoad.h: There's no need to store a DownloadID here. It's stored in the NetworkDataTask (m_task). * NetworkProcess/NetworkSession.h: (WebKit::NetworkDataTask::client): (WebKit::NetworkDataTask::pendingDownloadID): (WebKit::NetworkDataTask::setPendingDownloadID): (WebKit::NetworkDataTask::downloadID): Deleted. (WebKit::NetworkDataTask::setDownloadID): Deleted. Renamed downloadID and setDownloadID to pendingDownloadID and setPendingDownloadID, respectively, to indicate their use. They are not the current downloadID, but they are the downloadID of the download that will happen once the response is received and PolicyDownload will be returned in the completion handler. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): Call dataTaskBecameDownloadTask after didBecomeDownload because the networkDataTask is deleted by removing it from m_pendingDownloads in dataTaskBecameDownloadTask. 2016-01-06 Simon Fraser Add a setting and preferences to enable display-list drawing. Does nothing yet. https://bugs.webkit.org/show_bug.cgi?id=152807 Reviewed by Zalan Bujtas. WK2 debug pref for display-list drawing, defaults to off. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _displayListDrawingEnabled]): (-[WKPreferences _setDisplayListDrawingEnabled:]): * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2016-01-06 Daniel Bates Use code signed identifier as part of user directory suffix https://bugs.webkit.org/show_bug.cgi?id=152310 As pointed out by Sam Weinig, the year is 2016! I inadvertently added the copyright year 2015 instead of 2016. * Shared/mac/ChildProcessMac.mm: 2016-01-06 Simon Fraser [iOS] Revert overflow:hidden on the body affecting viewport scale (r186786) https://bugs.webkit.org/show_bug.cgi?id=152803 rdar://problem/22242515 Reviewed by Tim Horton. You can't assume that if an author uses overflow:hidden on the body, they have no content outside the body that is important. Sites like Google Translate put abspos elements outside the body. So revert the change. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::mainFrameDidLayout): Go back to using contents size. 2016-01-06 Anders Carlsson Add a smart block pointer https://bugs.webkit.org/show_bug.cgi?id=152799 Reviewed by Tim Horton. Use WTF::BlockPtr. * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): (-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): (-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): 2016-01-06 Daniel Bates Use code signed identifier as part of user directory suffix https://bugs.webkit.org/show_bug.cgi?id=152310 Reviewed by Brent Fulgham. * Shared/mac/ChildProcessMac.mm: (WebKit::findSecCodeForProcess): Added. (WebKit::ChildProcess::initializeSandbox): Modified to use an identifier from the code signature of the app/tool as part of the user directory suffix. 2016-01-06 Brian Burg Add a WebKit SPI for registering an automation controller with RemoteInspector https://bugs.webkit.org/show_bug.cgi?id=151576 Reviewed by Dan Bernstein and Joseph Pecoraro. _WKAutomationDelegate is a new SPI that allows WKProcessPool clients to decide policy and implement actions for remote automation. The SPI's implementation connects the client's delegate to RemoteInspector::Client. This allows the delegate to handle some commands, such as requestAutomationSession, that come over XPC from an external test runner but are not associated with a specific automation target. * PlatformMac.cmake: * UIProcess/API/APIAutomationClient.h: Added. Boilerplate for WebKit::AutomationClient. (API::AutomationClient::~AutomationClient): (API::AutomationClient::allowsRemoteAutomation): (API::AutomationClient::requestAutomationSession): * UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _automationDelegate]): Added. (-[WKProcessPool _setAutomationDelegate:]): Added. (-[WKProcessPool _automationCapabilitiesDidChange]): Added. * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Add delegate. * UIProcess/API/Cocoa/_WKAutomationDelegate.h: Added. This is a new delegate SPI of WKProcessPool; it corresponds to AutomationClient. * UIProcess/Cocoa/AutomationClient.h: Added. * UIProcess/Cocoa/AutomationClient.mm: Added. This implements a bridge between RemoteInspector::Client and _WKAutomationDelegate. Since the delegate can be called from JavaScriptCore, save the delegating WKProcessPool and pass it as the self parameter to delegate methods. (WebKit::AutomationClient::AutomationClient): (WebKit::AutomationClient::~AutomationClient): This client automatically registers and unregisters as a RemoteInspector::Client. (WebKit::AutomationClient::remoteAutomationAllowed): (WebKit::AutomationClient::requestAutomationSession): Forward requests from RemoteInspector to the automation delegate. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): (WebKit::WebProcessPool::setAutomationClient): Added. (WebKit::WebProcessPool::updateAutomationCapabilities): Added, it notifies RemoteInspector. * UIProcess/WebProcessPool.h: * WebKit2.xcodeproj/project.pbxproj: 2016-01-06 Gyuyoung Kim [EFL] Set WebKit2 process output name https://bugs.webkit.org/show_bug.cgi?id=152773 Reviewed by Benjamin Poulain. If we add *WebKit* prefix to each WK2 process, it is more clear when checking what process is running. So this patch sets wk2 process output name. * PlatformEfl.cmake: 2016-01-05 Alex Christensen Implement defersLoading with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=151818 Reviewed by Darin Adler. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): (WebKit::NetworkLoad::setDefersLoading): * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkDataTask::resume): (WebKit::NetworkDataTask::suspend): 2016-01-05 Tim Horton REGRESSION (r192432): Keyboard repeat doesn't work anymore for arrow keys/spacebar https://bugs.webkit.org/show_bug.cgi?id=152767 Reviewed by Dan Bernstein. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _didHandleKeyEvent:eventWasHandled:]): Instead of always bailing, call [super _handleKeyUIEvent:] if we aren't in an editable area, because we won't have done so in _handleKeyUIEvent. It's important that the event makes it to the root UIResponder (even if we handled it!) for key repeat to function. The double-scrolling case is still fixed because we notice the resent event coming back in to us and bail if we've already seen it. 2016-01-05 Jer Noble [Mac] Exiting fullscreen via Mission Control leaves fullcreen window frontmost on desktop https://bugs.webkit.org/show_bug.cgi?id=152733 Reviewed by Eric Carlson. Rather than ignore -windowDidExitFullScreen: notifications when fullscreen exit was not initiated by WebKit (and the -window:startCustomAnimationToEnterFullScreenWithDuration: method was not called), continue to exit fullscreen normally. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): 2016-01-05 Alex Christensen Clean up download code https://bugs.webkit.org/show_bug.cgi?id=152739 Reviewed by Brady Eidson. * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::DownloadManager): (WebKit::DownloadManager::didCreateDownload): (WebKit::DownloadManager::didDestroyDownload): (WebKit::DownloadManager::downloadProxyConnection): (WebKit::DownloadManager::downloadsAuthenticationManager): * NetworkProcess/Downloads/DownloadManager.h: Keep a Client& instead of a Client*. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::downloadManager): * NetworkProcess/NetworkSession.h: m_sessionID is not used. There is no need to store the sessionID if it is only used in the NetworkSession constructor. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::defaultSession): (WebKit::NetworkSession::NetworkSession): 2016-01-04 Carlos Garcia Campos [GTK] Allow to save and restore session https://bugs.webkit.org/show_bug.cgi?id=115600 Reviewed by Michael Catanzaro. Add new API to get and resore the web view session state. * PlatformGTK.cmake: Add new files to compilation. * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_get_session_state): Create a new WebKitWebViewSessionState representing the current session state. (webkit_web_view_restore_session_state): Restore the web view session state from the given WebKitWebViewSessionState. * UIProcess/API/gtk/WebKitWebView.h: * UIProcess/API/gtk/WebKitWebViewSessionState.cpp: Added. (_WebKitWebViewSessionState::_WebKitWebViewSessionState): (toExternalURLsPolicy): (toWebCoreExternalURLsPolicy): (toHTMLBodyElementType): (toHTTPBodyElementType): (encodeHTTPBody): (encodeFrameState): (encodePageState): (encodeBackForwardListItemState): (encodeBackForwardListState): (encodeSessionState): (decodeHTTPBody): (decodeFrameState): (decodeBackForwardListItemState): (decodeSessionState): (webkitWebViewSessionStateCreate): (webkitWebViewSessionStateGetSessionState): (webkit_web_view_session_state_new): Create a WebKitWebViewSessionState from serialized data. (webkit_web_view_session_state_ref): (webkit_web_view_session_state_unref): (webkit_web_view_session_state_serialize): Serialize the WebKitWebViewSessionState. * UIProcess/API/gtk/WebKitWebViewSessionState.h: Added. * UIProcess/API/gtk/WebKitWebViewSessionStatePrivate.h: Added. * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols. * UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Add webkit_web_view_session_state_get_type. * UIProcess/API/gtk/webkit2.h: Include WebKitWebViewSessionState.h. 2016-01-04 Alex Christensen Use unique_ptr for NetworkDataTasks and references for NetworkSessionTaskClients https://bugs.webkit.org/show_bug.cgi?id=152724 Reviewed by Andy Estes. There is no reason to have a NetworkSessionTaskClient* instead of a NetworkSessionTaskClient& just so we can clear it in the NetworkLoad destructor, which immediately calls ~NetworkDataTask. Also, NetworkDataTasks are owned only by the NetworkLoad, so there's no reason to refcount them. * NetworkProcess/Downloads/Download.h: * NetworkProcess/Downloads/DownloadManager.h: * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::~NetworkLoad): * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkSession.h: (WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient): (WebKit::NetworkDataTask::client): (WebKit::NetworkDataTask::downloadID): (WebKit::NetworkDataTask::setDownloadID): (WebKit::NetworkDataTask::clearClient): Deleted. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]): (-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): (WebKit::NetworkSession::~NetworkSession): (WebKit::NetworkSession::createDataTaskWithRequest): (WebKit::NetworkSession::dataTaskForIdentifier): (WebKit::NetworkDataTask::NetworkDataTask): 2016-01-04 Alex Christensen Progress towards implementing downloads with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=152716 Reviewed by Brady Eidson. * NetworkProcess/Downloads/Download.h: * NetworkProcess/Downloads/DownloadID.h: (WebKit::DownloadID::DownloadID): (WebKit::DownloadID::operator==): (WebKit::DownloadID::operator!=): (WebKit::DownloadID::downloadID): * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::startDownload): * NetworkProcess/Downloads/DownloadManager.h: (WebKit::DownloadManager::download): (WebKit::DownloadManager::isDownloading): * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: (WebKit::Download::resume): (WebKit::Download::platformInvalidate): (WebKit::Download::platformDidFinish): (WebKit::Download::start): Deleted. * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]): (-[WKNetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]): (-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): (-[WKNetworkSessionDelegate URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): When using NSURLSession, a data task is converted to a download task after the connection has already been established, the headers have been received, and WebCore looks at the response and decides that this connection should become a download. We call the didReceiveResponse to match the behavior of NSURLDownload, but this could be cleaned up later to match what is actually happening. We also do not need to tell the download to start because it has already started. (WebKit::NetworkSession::dataTaskForIdentifier): (WebKit::NetworkSession::addDownloadID): (WebKit::NetworkSession::downloadID): (WebKit::NetworkSession::takeDownloadID): (WebKit::NetworkDataTask::NetworkDataTask): NSURLSessionDownloadTask taskIdentifiers are unique to that NSURLSession, but we have one global DownloadManager in the NetworkProcess. We need to have each NetworkSession keep a map of taskIdentifiers to global DownloadID. 2016-01-04 Tim Horton Turn on gesture events when building for Yosemite https://bugs.webkit.org/show_bug.cgi?id=152704 rdar://problem/24042472 Reviewed by Anders Carlsson. * Configurations/FeatureDefines.xcconfig: 2016-01-04 Tim Horton Hardware keyboard key-commands stop responding when viewing PDFs https://bugs.webkit.org/show_bug.cgi?id=152712 Reviewed by Dan Bernstein. Maintain first responder status through any content view swapping, by making WKWebView become first responder if needed, and pushing first responder status down to the swapped-in content view if possible. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView becomeFirstResponder]): Make the current content view first responder instead of the WKContentView, in case we have a custom content view installed. (-[WKWebView canBecomeFirstResponder]): WKWebView can always become first responder, even if none of its children can. This makes it so that if a custom content view can't become first responder, WKWebView will take the responsibility. (-[WKWebView _setHasCustomContentView:loadedMIMEType:]): Return the responsibility of being first responder to the newly-installed content view if WKWebView is currently the first responder (either because of tab switching or because the previous content view did not support being first responder), if it supports being first responder. 2016-01-04 Commit Queue Unreviewed, rolling out r194544. https://bugs.webkit.org/show_bug.cgi?id=152711 This change caused assertions in existing inspector tests (Requested by ryanhaddad on #webkit). Reverted changeset: "Web Inspector: reproducible debug ASSERT when inspecting the inspector (WK2)" https://bugs.webkit.org/show_bug.cgi?id=152080 http://trac.webkit.org/changeset/194544 2016-01-04 Alex Christensen Fix Mac CMake build after r194378. * CMakeLists.txt: 2016-01-04 Brian Burg Web Inspector: reproducible debug ASSERT when inspecting the inspector (WK2) https://bugs.webkit.org/show_bug.cgi?id=152080 Reviewed by Timothy Hatcher. We hit an assert underneath ChildProcessProxy::addMessageReceiver when opening Inspector[2] because we try to add WebInpectorProxy as a message receiver twice for the same process. On investigating, I found several interrelated issues that caused this state of affairs: - WebInspectorProxy adds message receivers for inspector page's WebProcess and the inspected page's WebProcess. When inspecting the inspector, we mistakenly add a receiver again because the inspector is now the inspected page. - We mixed up process ids when adding message receivers. - invalidate() is re-entrant, causing us to try and double-remove the message receiver. Fix this by removing add/remove of message recievers for the inspector page when then inspected page is itself an inspector page. In that case, the receivers are managed by the inspector page's WebInspectorProxy instance. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::invalidate): Re-arrange to guard against useless reentrancy. (WebKit::WebInspectorProxy::didRelaunchInspectorPageProcess): (WebKit::WebInspectorProxy::eagerlyCreateInspectorPage): (WebKit::WebInspectorProxy::didClose): 2016-01-04 Alex Christensen Build fix after r194536 when using NetworkSession. * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::dataTaskBecameDownloadTask): (WebKit::DownloadManager::convertHandleToDownload): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): WTFMove changed underneath me. 2016-01-04 Alex Christensen Progress towards implementing downloads with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=152576 Reviewed by Brady Eidson. * NetworkProcess/Downloads/Download.cpp: (WebKit::Download::Download): (WebKit::Download::~Download): (WebKit::Download::didStart): (WebKit::Download::didReceiveAuthenticationChallenge): * NetworkProcess/Downloads/Download.h: (WebKit::Download::downloadID): * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::startDownload): (WebKit::DownloadManager::dataTaskBecameDownloadTask): (WebKit::DownloadManager::convertHandleToDownload): * NetworkProcess/Downloads/DownloadManager.h: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::convertTaskToDownload): * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkSession.h: (WebKit::NetworkDataTask::client): (WebKit::NetworkDataTask::clearClient): (WebKit::NetworkDataTask::downloadID): (WebKit::NetworkDataTask::setDownloadID): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): (-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): 2016-01-04 Michael Catanzaro [GTK] Rename _WebKitWebContextPrivate.context to _WebKitWebContextPrivate.processPool https://bugs.webkit.org/show_bug.cgi?id=152672 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitDownloadClient.cpp: (attachDownloadClientToContext): * UIProcess/API/gtk/WebKitInjectedBundleClient.cpp: (attachInjectedBundleClientToContext): * UIProcess/API/gtk/WebKitSecurityManager.cpp: (registerSecurityPolicyForURIScheme): * UIProcess/API/gtk/WebKitWebContext.cpp: (webkitWebContextConstructed): (webkitWebContextDispose): (webkit_web_context_set_cache_model): (webkit_web_context_get_cache_model): (webkit_web_context_clear_cache): (webkit_web_context_get_cookie_manager): (ensureFaviconDatabase): (webkit_web_context_set_favicon_database_directory): (webkit_web_context_set_additional_plugins_directory): (webkitWebContextGetPluginThread): (webkit_web_context_set_tls_errors_policy): (webkit_web_context_set_disk_cache_directory): (webkit_web_context_prefetch_dns): (webkit_web_context_allow_tls_certificate_for_host): (webkit_web_context_set_process_model): (webkit_web_context_set_web_process_count_limit): (webkitWebContextStartDownload): (webkitWebContextGetProcessPool): (webkitWebContextCreatePageForWebView): (webkitWebContextGetContext): Deleted. * UIProcess/API/gtk/WebKitWebContextPrivate.h: 2016-01-03 Simon Fraser Rename scrollPosition(Scrollbar*) to scrollOffset(ScrollbarOrientation) https://bugs.webkit.org/show_bug.cgi?id=152666 Reviewed by Dan Bernstein. Scrollbar values take offsets (zero-based), so rename the accessor used by scrollbars to set their value, and pass in an orientation, rather than a pointer to the scrollbar. * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h: * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::scrollOffset): (WebKit::PDFPlugin::scrollPosition): Renamed. 2015-12-31 Andy Estes Replace WTF::move with WTFMove https://bugs.webkit.org/show_bug.cgi?id=152601 Reviewed by Brady Eidson. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::postDatabaseTask): (WebKit::DatabaseProcess::fetchWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteDataForOrigins): (WebKit::DatabaseProcess::indexedDatabaseOrigins): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::postTransactionOperation): (WebKit::UniqueIDBDatabase::postMainThreadTask): (WebKit::UniqueIDBDatabase::postDatabaseTask): * NetworkProcess/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::startDownload): (WebKit::DownloadManager::convertHandleToDownload): (WebKit::DownloadManager::resumeDownload): * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm: (WebKit::NetworkServiceInitializerDelegate::NetworkServiceInitializerDelegate): * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: (WebKit::NetworkBlobRegistry::registerBlobURL): * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): (WebKit::NetworkConnectionToWebProcess::registerBlobURL): * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveData): (WebKit::NetworkLoad::didReceiveBuffer): (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): * NetworkProcess/NetworkProcess.cpp: (WebKit::fetchDiskCacheEntries): (WebKit::NetworkProcess::fetchWebsiteData): (WebKit::NetworkProcess::deleteWebsiteData): (WebKit::clearDiskCacheEntries): (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData): (WebKit::NetworkResourceLoader::NetworkResourceLoader): (WebKit::NetworkResourceLoader::retrieveCacheEntry): (WebKit::NetworkResourceLoader::didFinishLoading): (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): (WebKit::NetworkResourceLoader::validateCacheEntry): * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::retrieve): (WebKit::NetworkCache::Cache::store): (WebKit::NetworkCache::Cache::clear): * NetworkProcess/cache/NetworkCacheCoders.h: * NetworkProcess/cache/NetworkCacheDataSoup.cpp: (WebKit::NetworkCache::Data::empty): (WebKit::NetworkCache::Data::subrange): (WebKit::NetworkCache::concatenate): (WebKit::NetworkCache::Data::adoptMap): * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::runTaskInQueue): (WebKit::NetworkCache::fillDataFromReadBuffer): (WebKit::NetworkCache::IOChannel::readSyncInThread): * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): (WebKit::NetworkCache::SpeculativeLoad::didFinishLoading): (WebKit::NetworkCache::SpeculativeLoad::didComplete): * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::SpeculativeLoadManager::ExpiringEntry::ExpiringEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::takeCacheEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::create): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::setExistingSubresourcesEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad): (WebKit::NetworkCache::SpeculativeLoadManager::registerLoad): (WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage): (WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry): (WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry): (WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry): * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::Statistics::queryWasEverRequested): * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::ReadOperation::finish): (WebKit::NetworkCache::Storage::synchronize): (WebKit::NetworkCache::Storage::dispatchReadOperation): (WebKit::NetworkCache::Storage::dispatchWriteOperation): (WebKit::NetworkCache::Storage::retrieve): (WebKit::NetworkCache::Storage::store): (WebKit::NetworkCache::Storage::traverse): (WebKit::NetworkCache::Storage::clear): * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: (WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry): (WebKit::NetworkCache::SubresourcesEntry::updateSubresourceKeys): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkDataTask::NetworkDataTask): * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::clearDiskCache): * Platform/IPC/ArgumentCoders.h: (IPC::ArgumentCoder>::decode): * Platform/IPC/ArgumentDecoder.cpp: (IPC::ArgumentDecoder::ArgumentDecoder): * Platform/IPC/ArgumentEncoder.cpp: (IPC::ArgumentEncoder::addAttachment): (IPC::ArgumentEncoder::releaseAttachments): * Platform/IPC/Attachment.cpp: (IPC::Attachment::encode): * Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::processIncomingMessage): (IPC::Connection::SyncMessageState::dispatchMessages): (IPC::Connection::dispatchWorkQueueMessageReceiverMessage): (IPC::Connection::sendMessage): (IPC::Connection::sendSyncReply): (IPC::Connection::waitForMessage): (IPC::Connection::sendSyncMessage): (IPC::Connection::sendSyncMessageFromSecondaryThread): (IPC::Connection::waitForSyncReply): (IPC::Connection::processIncomingSyncReply): (IPC::Connection::processIncomingMessage): (IPC::Connection::sendOutgoingMessages): (IPC::Connection::dispatchSyncMessage): (IPC::Connection::enqueueIncomingMessage): (IPC::Connection::dispatchOneMessage): * Platform/IPC/Connection.h: (IPC::Connection::Identifier::Identifier): (IPC::Connection::send): (IPC::Connection::sendSync): * Platform/IPC/HandleMessage.h: (IPC::handleMessage): (IPC::handleMessageDelayed): * Platform/IPC/MessageDecoder.cpp: (IPC::MessageDecoder::MessageDecoder): (IPC::MessageDecoder::setImportanceAssertion): (IPC::MessageDecoder::unwrapForTesting): * Platform/IPC/MessageDecoder.h: (IPC::MessageDecoder::setMessageProcessingToken): * Platform/IPC/MessageEncoder.cpp: (IPC::MessageEncoder::wrapForTesting): * Platform/IPC/MessageRecorder.cpp: (IPC::MessageRecorder::recordOutgoingMessage): (IPC::MessageRecorder::recordIncomingMessage): (IPC::MessageRecorder::MessageProcessingToken::MessageProcessingToken): * Platform/IPC/MessageSender.cpp: (IPC::MessageSender::sendMessage): * Platform/IPC/MessageSender.h: (IPC::MessageSender::send): (IPC::MessageSender::sendSync): * Platform/IPC/glib/GSocketMonitor.cpp: (IPC::GSocketMonitor::start): * Platform/IPC/mac/ConnectionMac.mm: (IPC::Connection::open): (IPC::createMessageDecoder): (IPC::Connection::receiveSourceEventHandler): * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::processMessage): * Platform/unix/SharedMemoryUnix.cpp: (WebKit::SharedMemory::Handle::decode): (WebKit::SharedMemory::Handle::releaseAttachment): (WebKit::SharedMemory::Handle::adoptAttachment): * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm: (WebKit::PluginServiceInitializerDelegate::PluginServiceInitializerDelegate): * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::initializePluginProcess): * PluginProcess/WebProcessConnection.cpp: (WebKit::WebProcessConnection::addPluginControllerProxy): (WebKit::WebProcessConnection::createPluginInternal): * PluginProcess/mac/PluginProcessMac.mm: (WebKit::PluginProcess::platformInitializePluginProcess): * Scripts/webkit/LegacyMessageReceiver-expected.cpp: (Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): (Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): (Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): (Messages::WebPage::TestMultipleAttributes::DelayedReply::send): * Scripts/webkit/MessageReceiver-expected.cpp: (Messages::WebPage::GetPluginProcessConnection::DelayedReply::DelayedReply): (Messages::WebPage::GetPluginProcessConnection::DelayedReply::send): (Messages::WebPage::TestMultipleAttributes::DelayedReply::DelayedReply): (Messages::WebPage::TestMultipleAttributes::DelayedReply::send): * Scripts/webkit/messages.py: (generate_message_handler): * Shared/API/APIArray.cpp: (API::Array::create): (API::Array::createStringArray): (API::Array::copy): * Shared/API/APIArray.h: * Shared/API/APIDictionary.cpp: (API::Dictionary::create): (API::Dictionary::Dictionary): (API::Dictionary::keys): * Shared/API/APIPageGroupHandle.cpp: (API::PageGroupHandle::create): (API::PageGroupHandle::PageGroupHandle): (API::PageGroupHandle::decode): * Shared/API/APIString.h: * Shared/API/APIURL.h: (API::URL::create): (API::URL::URL): * Shared/API/Cocoa/RemoteObjectInvocation.h: (WebKit::RemoteObjectInvocation::ReplyInfo::ReplyInfo): * Shared/API/Cocoa/RemoteObjectInvocation.mm: (WebKit::RemoteObjectInvocation::RemoteObjectInvocation): (WebKit::RemoteObjectInvocation::decode): * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (ensureObjectStream): (createEncodedObject): * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: (initializeMethod): (-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:ofReply:]): * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): * Shared/API/c/WKArray.cpp: (WKArrayCreate): (WKArrayCreateAdoptingValues): * Shared/API/c/WKDictionary.cpp: (WKDictionaryCreate): * Shared/API/c/WKSharedAPICast.h: (WebKit::ProxyingRefPtr::ProxyingRefPtr): * Shared/APIWebArchive.mm: (API::WebArchive::WebArchive): (API::WebArchive::subresources): (API::WebArchive::subframeArchives): * Shared/AsyncRequest.cpp: (WebKit::AsyncRequest::AsyncRequest): (WebKit::AsyncRequest::setAbortHandler): * Shared/AsyncRequest.h: * Shared/BlockingResponseMap.h: (BlockingResponseMap::didReceiveResponse): * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::sendMessage): (WebKit::ChildProcessProxy::didFinishLaunching): * Shared/ChildProcessProxy.h: (WebKit::ChildProcessProxy::send): (WebKit::ChildProcessProxy::sendSync): * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::dispatchOnMainThread): (WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop): (WebKit::CoordinatedGraphicsScene::createLayer): (WebKit::CoordinatedGraphicsScene::syncRemoteContent): (WebKit::CoordinatedGraphicsScene::appendUpdate): * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp: (WebKit::ThreadSafeCoordinatedSurface::create): (WebKit::ThreadSafeCoordinatedSurface::ThreadSafeCoordinatedSurface): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::CompositingRunLoop::CompositingRunLoop): (WebKit::CompositingRunLoop::callOnCompositingRunLoop): (WebKit::ThreadedCompositor::callOnCompositingThread): * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: (WebKit::XPCServiceInitializerDelegate::XPCServiceInitializerDelegate): (WebKit::XPCServiceInitializer): * Shared/Plugins/Netscape/PluginInformation.cpp: (WebKit::createPluginInformationDictionary): * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.h: (WebKit::RemoteScrollingCoordinatorTransaction::setStateTreeToEncode): * Shared/SessionTracker.cpp: (WebKit::SessionTracker::setSession): * Shared/UserData.cpp: (WebKit::UserData::UserData): (WebKit::transformGraph): (WebKit::UserData::decode): * Shared/WebBackForwardListItem.cpp: (WebKit::WebBackForwardListItem::create): (WebKit::WebBackForwardListItem::WebBackForwardListItem): * Shared/WebBackForwardListItem.h: (WebKit::WebBackForwardListItem::setPageState): * Shared/WebCompiledContentExtension.cpp: (WebKit::WebCompiledContentExtension::create): (WebKit::WebCompiledContentExtension::WebCompiledContentExtension): * Shared/WebCompiledContentExtensionData.h: (WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData): * Shared/WebContextMenuItem.cpp: (WebKit::WebContextMenuItem::submenuItemsAsAPIArray): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::decode): (IPC::ArgumentCoder::decode): (IPC::ArgumentCoder::decode): (IPC::ArgumentCoder::decode): * Shared/WebKeyboardEvent.cpp: (WebKit::WebKeyboardEvent::WebKeyboardEvent): * Shared/WebPreferencesStore.h: (WebKit::WebPreferencesStore::Value::Value): * Shared/WebRenderLayer.cpp: (WebKit::WebRenderLayer::createArrayFromLayerList): * Shared/WebRenderObject.cpp: (WebKit::WebRenderObject::WebRenderObject): * Shared/WebTouchEvent.cpp: (WebKit::WebTouchEvent::WebTouchEvent): * Shared/efl/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebTouchEvent): * Shared/gtk/NativeWebKeyboardEventGtk.cpp: (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): * Shared/gtk/NativeWebTouchEventGtk.cpp: (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): * Shared/gtk/WebContextMenuItemGtk.cpp: (WebKit::WebContextMenuItemGtk::WebContextMenuItemGtk): * Shared/gtk/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebKeyboardEvent): (WebKit::WebEventFactory::createWebTouchEvent): * Shared/linux/SeccompFilters/OpenSyscall.cpp: (WebKit::OpenSyscall::createFromOpenatContext): (WebKit::OpenSyscall::createFromCreatContext): (WebKit::OpenSyscallResult::encode): * Shared/mac/ObjCObjectGraph.mm: (WebKit::ObjCObjectGraph::decode): * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::takeFrontContextPendingFlush): (WebKit::RemoteLayerBackingStore::Buffer::discard): * Shared/mac/RemoteLayerTreeTransaction.h: (WebKit::RemoteLayerTreeTransaction::setCallbackIDs): * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): (WebKit::RemoteLayerTreeTransaction::decode): (WebKit::RemoteLayerTreeTransaction::setCreatedLayers): (WebKit::RemoteLayerTreeTransaction::setDestroyedLayerIDs): (WebKit::RemoteLayerTreeTransaction::setLayerIDsWithNewlyUnreachableBackingStore): * Shared/soup/WebCoreArgumentCodersSoup.cpp: (IPC::ArgumentCoder::decodePlatformData): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/APISessionState.cpp: (API::SessionState::create): (API::SessionState::SessionState): * UIProcess/API/APIUserContentExtension.cpp: (API::UserContentExtension::UserContentExtension): * UIProcess/API/APIUserContentExtension.h: * UIProcess/API/APIUserContentExtensionStore.cpp: (API::compiledToFile): (API::createExtension): (API::UserContentExtensionStore::compileContentExtension): * UIProcess/API/APIUserScript.h: * UIProcess/API/APIWebsiteDataRecord.cpp: (API::WebsiteDataRecord::create): (API::WebsiteDataRecord::WebsiteDataRecord): * UIProcess/API/APIWebsiteDataStore.cpp: (API::WebsiteDataStore::create): (API::WebsiteDataStore::WebsiteDataStore): * UIProcess/API/C/WKApplicationCacheManager.cpp: (WKApplicationCacheManagerGetApplicationCacheOrigins): * UIProcess/API/C/WKKeyValueStorageManager.cpp: (WKKeyValueStorageManagerGetKeyValueStorageOrigins): (WKKeyValueStorageManagerGetStorageDetailsByOrigin): * UIProcess/API/C/WKPage.cpp: (WKPageCopySessionState): (WKPageRestoreFromSessionState): (WKPageSetPageContextMenuClient): (WKPageSetPageFindMatchesClient): (WKPageSetPageLoaderClient): (WebKit::RunJavaScriptAlertResultListener::create): (WebKit::RunJavaScriptAlertResultListener::RunJavaScriptAlertResultListener): (WebKit::RunJavaScriptConfirmResultListener::create): (WebKit::RunJavaScriptConfirmResultListener::RunJavaScriptConfirmResultListener): (WebKit::RunJavaScriptPromptResultListener::create): (WebKit::RunJavaScriptPromptResultListener::RunJavaScriptPromptResultListener): (WKPageSetPageUIClient): (WKPageSetPageNavigationClient): (WKPageCopyRelatedPages): * UIProcess/API/C/WKResourceCacheManager.cpp: (WKResourceCacheManagerGetCacheOrigins): * UIProcess/API/C/WKSessionStateRef.cpp: (WKSessionStateCreateFromData): * UIProcess/API/C/mac/WKContextPrivateMac.mm: (WKContextGetInfoForInstalledPlugIns): * UIProcess/API/C/mac/WKPagePrivateMac.mm: (-[WKObservablePageState initWithPage:]): * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm: (createWKArray): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView _takeViewSnapshot]): (-[WKWebView _restoreFromSessionStateData:]): (-[WKWebView _setInputDelegate:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (LazyInitialized::set): * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]): * UIProcess/API/Cocoa/_WKSessionState.mm: (-[_WKSessionState _initWithSessionState:]): * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm: (-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): * UIProcess/API/efl/ewk_database_manager.cpp: (EwkDatabaseManager::getDatabaseOrigins): * UIProcess/API/gtk/WebKitContextMenuItem.cpp: (webkitContextMenuItemToWebContextMenuItemGtk): * UIProcess/API/gtk/WebKitFileChooserRequest.cpp: (webkit_file_chooser_request_select_files): * UIProcess/API/gtk/WebKitNotificationProvider.cpp: (WebKitNotificationProvider::notificationCloseCallback): * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_prefetch_dns): (webkitWebContextCreatePageForWebView): * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_get_snapshot): * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseTouchEvent): (webkitWebViewBaseCreateWebPage): * UIProcess/API/gtk/WebKitWebsiteDataManager.cpp: (webkitWebsiteDataManagerCreate): (webkitWebsiteDataManagerGetDataStore): * UIProcess/API/mac/WKView.mm: (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): (-[WKView initWithFrame:configurationRef:]): * UIProcess/Cocoa/NavigationState.mm: (WebKit::tryAppLink): (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::WebViewImpl): (WebKit::WebViewImpl::takeViewSnapshot): * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp: (WebKit::CoordinatedLayerTreeHostProxy::dispatchUpdate): * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::fetchWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteDataForOrigins): * UIProcess/GenericCallback.h: (WebKit::CallbackMap::put): * UIProcess/InspectorServer/WebSocketServer.cpp: (WebKit::WebSocketServer::didAcceptConnection): * UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp: (WebKit::connectionCallback): * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::fetchWebsiteData): * UIProcess/Notifications/WebNotificationManagerProxy.cpp: (WebKit::WebNotificationManagerProxy::providerDidCloseNotifications): * UIProcess/Notifications/WebNotificationProvider.cpp: (WebKit::WebNotificationProvider::clearNotifications): * UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::Transaction::Transaction): * UIProcess/Plugins/PlugInAutoStartProvider.cpp: (WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy): * UIProcess/Plugins/PluginProcessManager.cpp: (WebKit::PluginProcessManager::pluginProcessToken): (WebKit::PluginProcessManager::fetchWebsiteData): (WebKit::PluginProcessManager::deleteWebsiteData): (WebKit::PluginProcessManager::deleteWebsiteDataForHostNames): * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::fetchWebsiteData): (WebKit::PluginProcessProxy::deleteWebsiteData): (WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames): * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: (WebKit::RemoteScrollingCoordinatorProxy::updateScrollingTree): * UIProcess/StatisticsRequest.cpp: (WebKit::StatisticsRequest::completedRequest): * UIProcess/Storage/LocalStorageDatabase.cpp: (WebKit::LocalStorageDatabase::create): (WebKit::LocalStorageDatabase::LocalStorageDatabase): * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::StorageArea::create): (WebKit::StorageManager::StorageArea::StorageArea): (WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::getSessionStorageOrigins): (WebKit::StorageManager::getLocalStorageOrigins): (WebKit::StorageManager::getLocalStorageOriginDetails): (WebKit::StorageManager::createTransientLocalStorageMap): (WebKit::StorageManager::createSessionStorageMap): * UIProcess/UserContent/WebScriptMessageHandler.cpp: (WebKit::WebScriptMessageHandler::create): (WebKit::WebScriptMessageHandler::WebScriptMessageHandler): * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::addUserStyleSheet): * UIProcess/ViewGestureController.cpp: (WebKit::ViewGestureController::SnapshotRemovalTracker::start): (WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackImmediately): * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::addItem): (WebKit::WebBackForwardList::backListAsAPIArrayWithLimit): (WebKit::WebBackForwardList::forwardListAsAPIArrayWithLimit): (WebKit::WebBackForwardList::removeAllItems): (WebKit::WebBackForwardList::clear): (WebKit::WebBackForwardList::restoreFromState): * UIProcess/WebCookieManagerProxy.cpp: (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): * UIProcess/WebFormClient.cpp: (WebKit::WebFormClient::willSubmitForm): * UIProcess/WebFrameListenerProxy.h: (WebKit::WebFrameListenerProxy::setNavigation): * UIProcess/WebFrameProxy.h: (WebKit::WebFrameProxy::contentFilterDidBlockLoad): * UIProcess/WebGrammarDetail.cpp: (WebKit::WebGrammarDetail::guesses): * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::createInspectorPage): * UIProcess/WebMediaCacheManagerProxy.cpp: (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache): * UIProcess/WebPageProxy.cpp: (WebKit::ExceededDatabaseQuotaRecords::add): (WebKit::WebPageProxy::create): (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::setHistoryClient): (WebKit::WebPageProxy::setNavigationClient): (WebKit::WebPageProxy::setLoaderClient): (WebKit::WebPageProxy::setPolicyClient): (WebKit::WebPageProxy::setFormClient): (WebKit::WebPageProxy::setUIClient): (WebKit::WebPageProxy::setFindClient): (WebKit::WebPageProxy::setFindMatchesClient): (WebKit::WebPageProxy::setDiagnosticLoggingClient): (WebKit::WebPageProxy::setContextMenuClient): (WebKit::WebPageProxy::reattachToWebProcessForReload): (WebKit::WebPageProxy::reattachToWebProcessWithItem): (WebKit::WebPageProxy::loadRequest): (WebKit::WebPageProxy::loadFile): (WebKit::WebPageProxy::loadData): (WebKit::WebPageProxy::loadHTMLString): (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::didChangeBackForwardList): (WebKit::WebPageProxy::setInitialFocus): (WebKit::WebPageProxy::validateCommand): (WebKit::WebPageProxy::handleWheelEvent): (WebKit::WebPageProxy::processNextQueuedWheelEvent): (WebKit::WebPageProxy::restoreFromSessionState): (WebKit::WebPageProxy::runJavaScriptInMainFrame): (WebKit::WebPageProxy::getRenderTreeExternalRepresentation): (WebKit::WebPageProxy::getSourceForFrame): (WebKit::WebPageProxy::getContentsAsString): (WebKit::WebPageProxy::getBytecodeProfile): (WebKit::WebPageProxy::getContentsAsMHTMLData): (WebKit::WebPageProxy::getSelectionOrContentsAsString): (WebKit::WebPageProxy::getSelectionAsWebArchiveData): (WebKit::WebPageProxy::getMainResourceDataOfFrame): (WebKit::WebPageProxy::getResourceDataFromFrame): (WebKit::WebPageProxy::getWebArchiveOfFrame): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForNewWindowAction): (WebKit::WebPageProxy::decidePolicyForResponse): (WebKit::WebPageProxy::sendMessage): (WebKit::WebPageProxy::exceededDatabaseQuota): (WebKit::WebPageProxy::getMarkedRangeAsync): (WebKit::WebPageProxy::getSelectedRangeAsync): (WebKit::WebPageProxy::characterIndexForPointAsync): (WebKit::WebPageProxy::firstRectForCharacterRangeAsync): (WebKit::WebPageProxy::takeSnapshot): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setHistoryClient): (WebKit::WebProcessPool::setDownloadClient): (WebKit::WebProcessPool::createWebPage): (WebKit::WebProcessPool::getStatistics): (WebKit::WebProcessPool::pluginInfoStoreDidLoadPlugins): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createWebPage): (WebKit::WebProcessProxy::addBackForwardItem): (WebKit::WebProcessProxy::fetchWebsiteData): * UIProcess/WebsiteData/WebsiteDataRecord.cpp: (WebKit::WebsiteDataRecord::add): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::create): (WebKit::WebsiteDataStore::WebsiteDataStore): (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::removeData): (WebKit::WebsiteDataStore::mediaKeyOrigins): * UIProcess/efl/InputMethodContextEfl.cpp: (WebKit::InputMethodContextEfl::InputMethodContextEfl): * UIProcess/efl/InputMethodContextEfl.h: (WebKit::InputMethodContextEfl::create): * UIProcess/efl/WebContextMenuProxyEfl.cpp: (WebKit::WebContextMenuProxyEfl::showContextMenu): * UIProcess/efl/WebUIPopupMenuClient.cpp: (WebUIPopupMenuClient::showPopupMenu): * UIProcess/gtk/InputMethodFilter.cpp: (WebKit::InputMethodFilter::filterKeyEvent): * UIProcess/gtk/KeyBindingTranslator.cpp: (WebKit::KeyBindingTranslator::commandsForKeyEvent): * UIProcess/gtk/RedirectedXCompositeWindow.cpp: (WebKit::XDamageNotifier::add): (WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): (WebKit::RedirectedXCompositeWindow::surface): * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant showImageSheet]): (-[WKActionSheetAssistant showLinkSheet]): * UIProcess/ios/WKContentView.mm: (-[WKContentView _commonInitializationWithProcessPool:configuration:]): (-[WKContentView initWithFrame:processPool:configuration:webView:]): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView actionSheetAssistant:decideActionsForElement:defaultActions:]): * UIProcess/ios/WKGeolocationProviderIOS.mm: (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]): (-[WKGeolocationProviderIOS geolocationAuthorizationDenied]): * UIProcess/ios/WKPDFView.mm: (-[WKPDFView actionSheetAssistant:decideActionsForElement:defaultActions:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::selectWithGesture): (WebKit::WebPageProxy::updateSelectionWithTouches): (WebKit::WebPageProxy::requestAutocorrectionData): (WebKit::WebPageProxy::applyAutocorrection): (WebKit::WebPageProxy::executeEditCommand): (WebKit::WebPageProxy::selectTextWithGranularityAtPoint): (WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection): (WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection): (WebKit::WebPageProxy::selectPositionAtPoint): (WebKit::WebPageProxy::beginSelectionInDirection): (WebKit::WebPageProxy::updateSelectionWithExtentPoint): (WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary): (WebKit::WebPageProxy::requestDictationContext): (WebKit::WebPageProxy::requestAutocorrectionContext): (WebKit::WebPageProxy::getLookupContextAtPoint): (WebKit::WebPageProxy::selectWithTwoTouches): (WebKit::WebPageProxy::moveSelectionByOffset): (WebKit::WebPageProxy::focusNextAssistedNode): * UIProcess/ios/WebVideoFullscreenManagerProxy.h: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface): * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]): * UIProcess/mac/LegacySessionStateCoding.cpp: (WebKit::HistoryEntryDataEncoder::finishEncoding): (WebKit::decodeFormData): (WebKit::decodeBackForwardTreeNode): (WebKit::decodeSessionHistoryEntries): * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::dispatchAfterEnsuringDrawing): * UIProcess/mac/ViewGestureController.h: (WebKit::ViewGestureController::setCustomSwipeViews): * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::PendingSwipeTracker::PendingSwipeTracker): * UIProcess/mac/ViewSnapshotStore.mm: (WebKit::ViewSnapshot::create): (WebKit::ViewSnapshot::ViewSnapshot): (WebKit::ViewSnapshot::setSurface): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync): (WebKit::WebPageProxy::fontAtSelection): * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (contextMenuItems): (WKBundlePageCopyOriginsWithApplicationCache): * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: (WKBundlePageOverlayCreate): * WebProcess/InjectedBundle/API/efl/ewk_extension.cpp: (EwkExtension::didCreatePage): * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: (webkitFrameGetOrCreate): (didInitiateLoadForResource): (willSendRequestForFrame): (didReceiveResponseForResource): (didReceiveContentLengthForResource): (didFinishLoadForResource): (didFailLoadForResource): (webkitWebPageDidReceiveMessage): * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::addUserScript): (WebKit::InjectedBundle::addUserStyleSheet): * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp: (WebKit::InjectedBundleBackForwardListItem::children): * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp: (WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems): * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp: (WebKit::InjectedBundlePageFormClient::willSendSubmitEvent): (WebKit::InjectedBundlePageFormClient::willSubmitForm): (WebKit::InjectedBundlePageFormClient::didAssociateFormControls): * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp: (WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame): * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::willSendRequest): * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_PostURL): * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::scheduleTimer): * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: (WebKit::convertStringToKeyCodes): * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin): * WebProcess/Plugins/PDF/PDFPlugin.mm: (-[WKPDFHUDAnimationDelegate initWithAnimationCompletionHandler:]): * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): * WebProcess/Storage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::create): (WebKit::StorageAreaMap::StorageAreaMap): * WebProcess/Storage/StorageNamespaceImpl.cpp: (WebKit::StorageNamespaceImpl::storageArea): * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::addUserContentExtensions): * WebProcess/WebCoreSupport/SessionStateConversion.cpp: (WebKit::toHTTPBody): (WebKit::toFrameState): (WebKit::applyFrameState): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm): (WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad): * WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp: (WebKit::WebPasteboardOverrides::addOverride): * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: (WebKit::WebEditorClient::executePendingEditorCommands): * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::findStringMatches): * WebProcess/WebPage/ViewUpdateDispatcher.cpp: (WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::createSubframe): (WebKit::WebFrame::create): (WebKit::WebFrame::WebFrame): (WebKit::WebFrame::didReceivePolicyDecision): (WebKit::WebFrame::childFrames): (WebKit::WebFrame::createSelectionSnapshot): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setInjectedBundleContextMenuClient): (WebKit::WebPage::setInjectedBundleFormClient): (WebKit::WebPage::setInjectedBundleUIClient): (WebKit::WebPage::trackedRepaintRects): (WebKit::WebPage::createDocumentLoader): * WebProcess/WebPage/WebPageGroupProxy.cpp: (WebKit::WebPageGroupProxy::addUserContentExtension): * WebProcess/WebPage/WebPageOverlay.cpp: (WebKit::WebPageOverlay::create): (WebKit::WebPageOverlay::WebPageOverlay): * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::computePagesForPrintingAndStartDrawingToPDF): * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: (WebKit::PlatformCAAnimationRemote::setTimingFunction): (WebKit::PlatformCAAnimationRemote::setValues): (WebKit::PlatformCAAnimationRemote::setTimingFunctions): * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm: (WebKit::RemoteLayerTreeContext::layerWasCreated): (WebKit::RemoteLayerTreeContext::buildTransaction): * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::flushLayers): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::BackingStoreFlusher): (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::transformObjectsToHandles): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenInterfaceContext::setLayerHostingContext): (WebKit::WebVideoFullscreenManager::createModelAndInterface): (WebKit::WebVideoFullscreenManager::setSeekableRanges): * WebProcess/soup/WebKitSoupRequestInputStream.cpp: (webkitSoupRequestInputStreamDidFailWithError): 2016-01-01 Simon Fraser Fix the iOS and EFL builds, after an over-eager commit-queue commit. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::restoreViewState): * WebProcess/WebPage/efl/WebPageEfl.cpp: (WebKit::WebPage::restorePageState): 2016-01-01 Simon Fraser Fix naming in HistoryItem to refer to scrollPositions https://bugs.webkit.org/show_bug.cgi?id=152646 Reviewed by Zalan Bujtas. HistoryItem stores a scrollPosition, so call it that. No behavior change. * Shared/SessionState.cpp: (WebKit::FrameState::encode): (WebKit::FrameState::decode): * Shared/SessionState.h: * UIProcess/mac/LegacySessionStateCoding.cpp: (WebKit::encodeFrameStateNode): (WebKit::decodeBackForwardTreeNode): * WebProcess/WebCoreSupport/SessionStateConversion.cpp: (WebKit::toFrameState): (WebKit::applyFrameState): 2016-01-01 Simon Fraser Fix reload and programmatic scrolling in RTL documents https://bugs.webkit.org/show_bug.cgi?id=152639 Reviewed by Zalan Bujtas. Reloading a left-scrolled RTL document would cause the content to appear at an odd offset, and programmatic sideways scrolls in RTL documents also jumped to the wrong location. Fix by resolving offset/position confusion in ScrollableArea::scrollPositionChanged() and the scrolling tree. ScrollableArea::scrollPositionChanged() was erroneously passing a scrollPosition to setScrollOffset(). ScrollingTreeFrameScrollingNode* were confused about offsets and positions. It turns out that the layer position is just -scrollPosition, but minimumScrollPosition() and maximumScrollPosition() need fixing to return positions, not offsets. ScrollingTreeFrameScrollingNode::viewToContentsOffset() was also doing incorrect math with scrollOrigin, which was detected by a failing test. Add more logging to the Scrolling channel. * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h: * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::setScrollOffset): 2016-01-01 Michael Catanzaro [SOUP] REGRESSION(r192761): Broke resource URIs for applications that use g_resource_load in a web extension https://bugs.webkit.org/show_bug.cgi?id=152634 Reviewed by Carlos Garcia Campos. Load GResource URIs locally, not in the network process. Applications expect calling g_resource_load in a web extension to make it possible to load resource URIs, but that doesn't work now that the network process is in use. Loading them locally solves this. * WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::scheduleLoad): 2016-01-01 Jeff Miller Update user-visible copyright strings to include 2016 https://bugs.webkit.org/show_bug.cgi?id=152531 Reviewed by Alexey Proskuryakov. * DatabaseProcess/EntryPoint/mac/LegacyProcess/Info.plist: * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService.Development/Info.plist: * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseService/Info.plist: * Info.plist: * NetworkProcess/EntryPoint/mac/LegacyProcess/Info.plist: * NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info-OSX.plist: * NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info-iOS.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/LegacyProcess/Info.plist: * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist: * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist: * PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist: * WebProcess/EntryPoint/mac/LegacyProcess/Info.plist: * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-OSX.plist: * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-iOS.plist: * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist: * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist: 2015-12-31 Simon Fraser Rename documentScrollOffsetRelativeTo* functions https://bugs.webkit.org/show_bug.cgi?id=152632 Reviewed by Zalan Bujtas. ScrollView::documentScrollOffsetRelativeTo* functions return scroll positions, not offsets, so rename them and fix their return types, and fix callers. Make their code more similar. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::determinePrimarySnapshottedPlugIn): (WebKit::WebPage::plugInIntersectsSearchRect): 2015-12-31 Simon Fraser [iOS WK2] Fix incorrect scrollPosition handling https://bugs.webkit.org/show_bug.cgi?id=152630 Reviewed by Zalan Bujtas. WebPage::updateVisibleContentRects() was setting the ScrollView's scroll position to a scrollOffset, which was counteracted by ScrollView::unobscuredContentRect() adding the scrollOrigin to the scrollPosition, which resulted in the correct rects, but an incorrect scrollPosition. Fix. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateVisibleContentRects): 2015-12-31 Michael Catanzaro Unreviewed, fix a log message * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::didReceiveResponse): 2015-12-31 David Kilzer Stop using USE(CFNETWORK) path on iOS https://bugs.webkit.org/show_bug.cgi?id=142540 Step 1/2: Do everything but turn off USE(CFNETWORK) internally. Original patch by Antti Koivisto on 2015-03-10 Reviewed by Daniel Bates. * NetworkProcess/Downloads/ios/DownloadIOS.mm: This is now the USE(CFNETWORK) && !USE(NETWORK_SESSION) code path. * NetworkProcess/Downloads/mac/DownloadMac.mm: This is now the !USE(CFNETWORK) && !USE(NETWORK_SESSION) code path. Make use of NSURLDownloadSPI.h. Ignore a deprecated delcaration warning now that we're using actual header declarations internally. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::initializeNetworkProcess): Update for iOS to use NSURLConnection loader. 2015-12-31 Andy Estes Fix warnings uncovered by migrating to WTF_MOVE https://bugs.webkit.org/show_bug.cgi?id=152601 Reviewed by Daniel Bates. * UIProcess/API/APIUIClient.h: (API::UIClient::actionsForElement): Moving a return value passed to the function by value is redundant, since it will be implicitly moved in this case. * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::actionsForElement): Ditto. 2015-12-30 Simon Fraser Add explicit conversions between scrollOffset and scrollPostion, and use them in a few places https://bugs.webkit.org/show_bug.cgi?id=152594 Reviewed by Sam Weinig. Add functions to ScrollableArea to convert between scrollPosition and scrollOffset, and use them in places where code did the math with scrollOrigin. * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect): * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect): 2015-12-30 Zan Dobersek [TexMap] Clean up TextureMapperAnimation, TextureMapperAnimations https://bugs.webkit.org/show_bug.cgi?id=152112 Reviewed by Darin Adler. * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp: (IPC::ArgumentCoder::decode): 2015-12-29 Simon Fraser Remove ScrollView::scrollOffset() in preparation for scrollOffset vs. scrollPosition clarification https://bugs.webkit.org/show_bug.cgi?id=152589 Reviewed by Sam Weinig. Current code uses scrollOffset vs. scrollPosition interchangeably, and confusingly. Longer term, I plan to make "scrollPosition" be the value that is relative to the contents, i.e. affected by scrollOrigin, and "scrollOffset" be the zero-based value that's used to set scrollbar values. To prepare for this, remove ScrollView::scrollOffset(), which is just the scrollPosition as an IntSize. Add some typedefs in ScrollableArea, which will slowly propagate through the code as position vs. offset is clarified. * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: (WebKit::InjectedBundleRangeHandle::renderedImage): * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h: * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::scrollPosition): (WebKit::PDFPlugin::minimumScrollPosition): (WebKit::PDFPlugin::maximumScrollPosition): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::scrollOffset): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scrollMainFrameIfNotAtMaxScrollPosition): (WebKit::WebPage::updateMainFrameScrollOffsetPinning): 2015-12-25 Andy Estes Stop moving local objects in return statements https://bugs.webkit.org/show_bug.cgi?id=152557 Reviewed by Brady Eidson. Calling std::move() on a local object in a return statement prevents the compiler from applying the return value optimization. Clang can warn about these mistakes with -Wpessimizing-move, although only when std::move() is called directly. I found these issues by temporarily replacing WTF::move with std::move and recompiling. * UIProcess/WebPageProxy.cpp: (WebKit::ExceededDatabaseQuotaRecords::createRecord): 2015-12-26 Joonghun Park [WK2][EFL] Use eina_file_path_join at platformDefaultIconDatabasePath in WebProcessPoolEfl https://bugs.webkit.org/show_bug.cgi?id=152565 Reviewed by Gyuyoung Kim. Use eina_file_path_join and EINA_PATH_SEP_S at platformDefaultIconDatabasePath instead of operator+ and separator "/" respectively to concatenate paths. * UIProcess/API/efl/APIWebsiteDataStoreEfl.cpp: * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::platformDefaultIconDatabasePath): 2015-12-25 David Kilzer ResourceError should store failingURL as URL instead of String to avoid reparsing and to address FIXME comments in ResourceErrorCF.cpp and ResourceErrorMac.mm Reviewed by Antti Koivisto. * NetworkProcess/Downloads/efl/DownloadSoupErrorsEfl.cpp: (WebKit::platformDownloadNetworkError): * NetworkProcess/Downloads/gtk/DownloadSoupErrorsGtk.cpp: (WebKit::platformDownloadNetworkError): * NetworkProcess/Downloads/soup/DownloadSoup.cpp: (WebKit::DownloadClient::didReceiveResponse): * NetworkProcess/Downloads/soup/DownloadSoupErrors.h: * Shared/soup/WebCoreArgumentCodersSoup.cpp: (IPC::ArgumentCoder::encodePlatformData): (IPC::ArgumentCoder::decodePlatformData): * UIProcess/API/gtk/WebKitLoaderClient.cpp: (LoaderClient::didFailProvisionalLoadWithErrorForFrame): (LoaderClient::didFailLoadWithErrorForFrame): * UIProcess/API/gtk/WebKitURISchemeRequest.cpp: (webkit_uri_scheme_request_finish_error): * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp: (WebKit::internalError): * WebProcess/WebCoreSupport/gtk/WebErrorsGtk.cpp: (WebKit::internalError): - Update for type change of 'failingURL' argument to ResourceError(). 2015-12-23 Simon Fraser Use "constrainedBetween" in more places https://bugs.webkit.org/show_bug.cgi?id=152543 Reviewed by Zalan Bujtas. Replace code that contrains points via shrunkTo/expandedTo() with calls to constrainedBetween(), and implement constrainedBetween() on IntPoint, FloatPoint and LayoutPoint. Convert some functions that return points to more modern syntax. * UIProcess/API/Cocoa/WKWebView.mm: (constrainContentOffset): 2015-12-22 Hunseop Jeong [EFL] ewk_application_cache_manager test failed after r193812 https://bugs.webkit.org/show_bug.cgi?id=152498 Reviewed by Gyuyoung Kim. Need to enable the offline_web_application_cache for the ewk_application_cache_manager test. * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp: (TEST_F): 2015-12-22 Andy Estes [CF] Replace CFNetwork-related WebKitSystemInterface calls with SPI https://bugs.webkit.org/show_bug.cgi?id=152463 Reviewed by Alexey Proskuryakov. Replaced WebkitSystemInterface calls that wrapped CFNetwork SPI with direct calls to SPI that is now forward declared in CFNetworkSPI.h. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::initializeNetworkSettings): * NetworkProcess/mac/NetworkProcessMac.mm: (WebKit::overrideSystemProxies): * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): 2015-12-22 Brent Fulgham Allow JavaScript to iterate over plugins for local SecurityOrigins https://bugs.webkit.org/show_bug.cgi?id=152489 Reviewed by Alexey Proskuryakov. The 'getWebVisiblePluginInfo' is filtering plugins, even when we want to list all plugins. To avoid this, we check the Document's SecurityOrigin. If no such origin exists, we construct a SecurityOrigin from the URL. If the relevant SecurityOrigin satsifies 'isLocal', we show all plugins. * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::getWebVisiblePluginInfo): 2015-12-21 Hunseop Jeong [EFL] test_ewk2_context failed after r192808 https://bugs.webkit.org/show_bug.cgi?id=151846 Reviewed by Gyuyoung Kim. As we can make the single WebProcess behavior by setting the miximum number of WebProcess to 1 after r192808, I remove the ewk_context_process_model_{set|get} apis and add the ewk_context_web_process_count_limit_{set|get} apis and tests. * UIProcess/API/efl/ewk_context.cpp: (EwkContext::EwkContext): (EwkContext::setProcessCountLimit): (EwkContext::processCountLimit): (ewk_context_web_process_count_limit_set): (ewk_context_web_process_count_limit_get): (EwkContext::setProcessModel): Deleted. (EwkContext::processModel): Deleted. (ewk_context_process_model_set): Deleted. (ewk_context_process_model_get): Deleted. * UIProcess/API/efl/ewk_context.h: * UIProcess/API/efl/ewk_context_private.h: * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: (EWK2UnitTest::EWK2UnitTestBase::SetUp): * UIProcess/API/efl/tests/test_ewk2_context.cpp: (TEST_F): Changed the ewk_context_{web|network}_process_model tests to ewk_context_{web|network}_process_count_limit tests. 2015-12-21 Joonghun Park [WK2][EFL] Use cacheDirectoryFileSystemRepresentation and websiteDataDirectoryFileSystemRepresentation to refactor APIWebsiteDataStoreEfl https://bugs.webkit.org/show_bug.cgi?id=152475 Reviewed by Gyuyoung Kim. Use cacheDirectoryFileSystemRepresentation and websiteDataDirectoryFileSystemRepresentation instead of to use efreet_cache_home_get and efreet_data_home_get directly. And also use EINA_PATH_SEP_S instead of "/" as directory separator, and WebCore::pathByAppendingComponent instead of operator+. * UIProcess/API/efl/APIWebsiteDataStoreEfl.cpp: (API::WebsiteDataStore::defaultApplicationCacheDirectory): (API::WebsiteDataStore::defaultNetworkCacheDirectory): (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): (API::WebsiteDataStore::defaultLocalStorageDirectory): (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): (API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): 2015-12-21 Antti Koivisto Factor NetworkResourceLoader code for storing a cache entry into a function https://bugs.webkit.org/show_bug.cgi?id=152467 Reviewed by Andreas Kling. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didFinishLoading): Having m_cacheEntryForValidation already implies canUseCache() so remove the test from this path. Move storing to the end of the function so we don't delay DidFinishResourceLoad message on it. (WebKit::NetworkResourceLoader::sendBufferMaybeAborting): (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): Factor to a function. Remove m_response.isHTTP() test as it is covered by NetworkCache::store(). Remove !isPrivateSession test as it is covered by NetworkResourceLoader::canUseCache(). (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): * NetworkProcess/NetworkResourceLoader.h: 2015-12-21 Antti Koivisto Limit cached redirect chain length https://bugs.webkit.org/show_bug.cgi?id=152477 Reviewed by Andreas Kling. Networking layer prevents cycles and limits the redirect chain length so creating cache cycles is difficult. For robustness the network cache should still limit the maximum redirect chain length. This patch adds a limit of five redirects both when storing and retrieving cache entries. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::canUseCache): (WebKit::NetworkResourceLoader::canUseCachedRedirect): (WebKit::NetworkResourceLoader::willSendRedirectedRequest): (WebKit::NetworkResourceLoader::continueWillSendRequest): (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): * NetworkProcess/NetworkResourceLoader.h: 2015-12-21 Dan Bernstein Different and incorrect flags are passed to sendSync when accessibility is enabled, SpinRunLoopWhileWaitingForReply https://bugs.webkit.org/show_bug.cgi?id=126021 Reviewed by Darin Adler. Get rid of SpinRunLoopWhileWaitingForReply because it’s not used anymore. * Platform/IPC/Connection.cpp: (IPC::Connection::waitForSyncReply): Removed the SpinRunLoopWhileWaitingForReply branch. * Platform/IPC/Connection.h: Removed SpinRunLoopWhileWaitingForReply. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::runBeforeUnloadConfirmPanel): Don’t check WebPage::synchronousMessagesShouldSpinRunLoop() and don’t specify SpinRunLoopWhileWaitingForReply. (WebKit::WebChromeClient::runJavaScriptAlert): Ditto. (WebKit::WebChromeClient::runJavaScriptConfirm): Ditto. (WebKit::WebChromeClient::runJavaScriptPrompt): Ditto. (WebKit::WebChromeClient::print): Ditto. (WebKit::WebChromeClient::exceededDatabaseQuota): Ditto. (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota): Ditto. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): Ditto. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::synchronousMessagesShouldSpinRunLoop): Deleted. * WebProcess/WebPage/WebPage.h: 2015-12-20 Joonghun Park [WK2][EFL] Use WebsiteDataStore instead of WebDatabaseManager which has been deleted in r194295 https://bugs.webkit.org/show_bug.cgi?id=152460 Reviewed by Gyuyoung Kim. Use WebsiteDataStore to support EFL WebDatabase API and to fix build break. * PlatformEfl.cmake: * UIProcess/API/APIWebsiteDataStore.cpp: * UIProcess/API/efl/APIWebsiteDataStoreEfl.cpp: Copied from Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp. (API::WebsiteDataStore::defaultApplicationCacheDirectory): (API::WebsiteDataStore::defaultNetworkCacheDirectory): (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): (API::WebsiteDataStore::defaultLocalStorageDirectory): (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): (API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): (API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): (API::WebsiteDataStore::defaultDataStoreConfiguration): * UIProcess/API/efl/ewk_context.cpp: (EwkContext::EwkContext): * UIProcess/API/efl/ewk_database_manager.cpp: (EwkDatabaseManager::EwkDatabaseManager): (EwkDatabaseManager::getDatabaseOrigins): * UIProcess/API/efl/ewk_database_manager_private.h: * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): 2015-12-20 Dan Bernstein Remove unused setToolbarHeight https://bugs.webkit.org/show_bug.cgi?id=152466 Reviewed by Darin Adler. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::platformSetToolbarHeight): Deleted. * UIProcess/WebInspectorProxy.h: (WebKit::WebInspectorProxy::setToolbarHeight): Deleted. * UIProcess/WebInspectorProxy.messages.in: * UIProcess/efl/WebInspectorProxyEfl.cpp: (WebKit::WebInspectorProxy::platformSetToolbarHeight): Deleted. * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::platformSetToolbarHeight): Deleted. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformSetToolbarHeight): Deleted. * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::setToolbarHeight): Deleted. * WebProcess/WebPage/WebInspectorUI.h: 2015-12-19 Dan Bernstein [Mac] WebKit contains dead source code for OS X Mavericks and earlier https://bugs.webkit.org/show_bug.cgi?id=152462 Reviewed by Alexey Proskuryakov. - Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions that became uniform across all OS X versions as a result: * Configurations/BaseTarget.xcconfig: * Configurations/BaseXPCService.xcconfig: * Configurations/DebugRelease.xcconfig: * Configurations/FeatureDefines.xcconfig: * Configurations/Version.xcconfig: * Configurations/WebKit.xcconfig: - Removed the definition of BUNDLE_LOCALIZATION_KEY: * Configurations/WebContentService.Development.xcconfig: * Configurations/WebContentService.xcconfig: - Added CFBundleFollowParentLocalization set to true: * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-OSX.plist: * WebProcess/EntryPoint/mac/XPCService/WebContentService.Development/Info-iOS.plist: * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist: * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist: * WebKit2.xcodeproj/project.pbxproj: Removed the “Add CFBundle Localization Info.plist Key” script build phases from the Web Content Service targets. - Simplified expressions involving __MAC_OS_X_VERSION_MIN_REQUIRED and removed code that was never getting compiled: * DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: * Platform/IPC/mac/ConnectionMac.mm: * Platform/IPC/mac/ImportanceAssertion.h: * Platform/mac/MenuUtilities.h: * Platform/mac/MenuUtilities.mm: * Platform/mac/StringUtilities.h: * Platform/mac/StringUtilities.mm: * Shared/API/Cocoa/WKFoundation.h: * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm: * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/mac/WKView.mm: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: * UIProcess/Launcher/mac/ProcessLauncherMac.mm: * UIProcess/mac/PageClientImpl.mm: * UIProcess/mac/WKImmediateActionController.h: * UIProcess/mac/WKImmediateActionController.mm: * UIProcess/mac/WebInspectorProxyMac.mm: * WebProcess/WebPage/FindController.cpp: * WebProcess/WebPage/WebPage.cpp: * WebProcess/com.apple.WebProcess.sb.in: * config.h: 2015-12-18 Antti Koivisto Cache redirects as separate entries https://bugs.webkit.org/show_bug.cgi?id=152424 Reviewed by Alex Christensen. We are currently caching redirect chains. This has correctness issues and can be inefficient in cases where multiple URLs redirect to the same destination. After this patch we write a cache entry for each redirect individually. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::sharedWillSendRedirectedRequest): * NetworkProcess/NetworkLoad.h: (WebKit::NetworkLoad::currentRequest): (WebKit::NetworkLoad::clearCurrentRequest): * NetworkProcess/NetworkLoadClient.h: Add original request as a parameter for willSendRedirectedRequest. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::~NetworkResourceLoader): (WebKit::NetworkResourceLoader::canUseCache): Factor to a function. (WebKit::NetworkResourceLoader::isSynchronous): (WebKit::NetworkResourceLoader::start): (WebKit::NetworkResourceLoader::retrieveCacheEntry): Factor to a function. Call dispatchWillSendRequestForCacheEntry for cached redirects. (WebKit::NetworkResourceLoader::startNetworkLoad): Make this take request as argument instead of always loading originalRequest(). (WebKit::NetworkResourceLoader::abort): (WebKit::NetworkResourceLoader::didFinishLoading): Remove redirect chain code. Store cache entry for current request instead of the original request. (WebKit::NetworkResourceLoader::didFailLoading): (WebKit::NetworkResourceLoader::willSendRedirectedRequest): Write cache entry for redirect. (WebKit::NetworkResourceLoader::continueWillSendRequest): If we are playing back cached redirect continue with another cache lookup. (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): No need to synthesize fake willSendRequest anymore. (WebKit::NetworkResourceLoader::validateCacheEntry): (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): Route via web process willSendRequest so cached redirects looks exactly like network ones. (WebKit::NetworkResourceLoader::messageSenderConnection): * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::makeUseDecision): Ignore validation headers for cached redirects. (WebKit::NetworkCache::makeRetrieveDecision): (WebKit::NetworkCache::makeStoreDecision): (WebKit::NetworkCache::Cache::retrieve): (WebKit::NetworkCache::Cache::store): Rename originalRequest -> request since it is not really the original request anymore in all cases. (WebKit::NetworkCache::Cache::storeRedirect): Stored redirects include the network layer generated ResourceRequest instead of body data. (WebKit::NetworkCache::Cache::update): * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): New constructor for making redirect entries. (WebKit::NetworkCache::Entry::encodeAsStorageRecord): (WebKit::NetworkCache::Entry::decodeStorageRecord): Encoding support. * NetworkProcess/cache/NetworkCacheEntry.h: (WebKit::NetworkCache::Entry::varyingRequestHeaders): (WebKit::NetworkCache::Entry::redirectRequest): * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: (WebKit::NetworkCache::SpeculativeLoad::~SpeculativeLoad): (WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest): * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey): 2015-12-18 Michael Catanzaro Avoid triggering clang's -Wundefined-bool-conversion https://bugs.webkit.org/show_bug.cgi?id=152408 Reviewed by Mark Lam. Use ASSERT_THIS_GC_OBJECT_INHERITS where needed. * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::callMethod): (WebKit::JSNPObject::callObject): (WebKit::JSNPObject::callConstructor): (WebKit::JSNPObject::deleteProperty): 2015-12-15 Anders Carlsson Get rid of WebDatabaseManager, it's been replaced by WebsiteDataStore https://bugs.webkit.org/show_bug.cgi?id=152318 Reviewed by Tim Horton. Build fixes by Ossy. * DerivedSources.make: * Shared/API/APIObject.h: * Shared/API/c/WKBase.h: * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKContext.cpp: (WKContextGetDatabaseManager): Deleted. * UIProcess/API/C/WKContext.h: * UIProcess/API/C/WKDatabaseManager.cpp: Removed. (WKDatabaseManagerGetTypeID): Deleted. (WKDatabaseManagerGetOriginKey): Deleted. (WKDatabaseManagerGetOriginQuotaKey): Deleted. (WKDatabaseManagerGetOriginUsageKey): Deleted. (WKDatabaseManagerGetDatabaseDetailsKey): Deleted. (WKDatabaseManagerGetDatabaseDetailsNameKey): Deleted. (WKDatabaseManagerGetDatabaseDetailsDisplayNameKey): Deleted. (WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey): Deleted. (WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey): Deleted. (WKDatabaseManagerGetDatabaseDetailsCreationTimeKey): Deleted. (WKDatabaseManagerGetDatabaseDetailsModificationTimeKey): Deleted. (WKDatabaseManagerSetClient): Deleted. (WKDatabaseManagerGetDatabasesByOrigin): Deleted. (WKDatabaseManagerGetDatabaseOrigins): Deleted. (WKDatabaseManagerDeleteDatabasesWithNameForOrigin): Deleted. (WKDatabaseManagerDeleteDatabasesForOrigin): Deleted. (WKDatabaseManagerDeleteAllDatabases): Deleted. (WKDatabaseManagerSetQuotaForOrigin): Deleted. * UIProcess/API/C/WKDatabaseManager.h: Removed. * UIProcess/WebDatabaseManagerProxy.cpp: Removed. (WebKit::WebDatabaseManagerProxy::supplementName): Deleted. (WebKit::WebDatabaseManagerProxy::originKey): Deleted. (WebKit::WebDatabaseManagerProxy::originQuotaKey): Deleted. (WebKit::WebDatabaseManagerProxy::originUsageKey): Deleted. (WebKit::WebDatabaseManagerProxy::databaseDetailsKey): Deleted. (WebKit::WebDatabaseManagerProxy::databaseDetailsNameKey): Deleted. (WebKit::WebDatabaseManagerProxy::databaseDetailsDisplayNameKey): Deleted. (WebKit::WebDatabaseManagerProxy::databaseDetailsExpectedUsageKey): Deleted. (WebKit::WebDatabaseManagerProxy::databaseDetailsCurrentUsageKey): Deleted. (WebKit::WebDatabaseManagerProxy::databaseDetailsCreationTimeKey): Deleted. (WebKit::WebDatabaseManagerProxy::databaseDetailsModificationTimeKey): Deleted. (WebKit::WebDatabaseManagerProxy::create): Deleted. (WebKit::WebDatabaseManagerProxy::WebDatabaseManagerProxy): Deleted. (WebKit::WebDatabaseManagerProxy::~WebDatabaseManagerProxy): Deleted. (WebKit::WebDatabaseManagerProxy::initializeClient): Deleted. (WebKit::WebDatabaseManagerProxy::processPoolDestroyed): Deleted. (WebKit::WebDatabaseManagerProxy::processDidClose): Deleted. (WebKit::WebDatabaseManagerProxy::shouldTerminate): Deleted. (WebKit::WebDatabaseManagerProxy::refWebContextSupplement): Deleted. (WebKit::WebDatabaseManagerProxy::derefWebContextSupplement): Deleted. (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin): Deleted. (WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin): Deleted. (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins): Deleted. (WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins): Deleted. (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin): Deleted. (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin): Deleted. (WebKit::WebDatabaseManagerProxy::deleteAllDatabases): Deleted. (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin): Deleted. (WebKit::WebDatabaseManagerProxy::didModifyOrigin): Deleted. (WebKit::WebDatabaseManagerProxy::didModifyDatabase): Deleted. * UIProcess/WebDatabaseManagerProxy.h: Removed. * UIProcess/WebDatabaseManagerProxy.messages.in: Removed. * UIProcess/WebDatabaseManagerProxyClient.cpp: Removed. (WebKit::WebDatabaseManagerProxyClient::didModifyOrigin): Deleted. (WebKit::WebDatabaseManagerProxyClient::didModifyDatabase): Deleted. * UIProcess/WebDatabaseManagerProxyClient.h: Removed. * UIProcess/WebProcessPool.cpp: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/InjectedBundle/InjectedBundle.cpp: * WebProcess/WebCoreSupport/WebDatabaseManager.cpp: Removed. (WebKit::WebDatabaseManager::supplementName): Deleted. (WebKit::WebDatabaseManager::WebDatabaseManager): Deleted. (WebKit::WebDatabaseManager::initialize): Deleted. (WebKit::WebDatabaseManager::getDatabasesByOrigin): Deleted. (WebKit::WebDatabaseManager::getDatabaseOrigins): Deleted. (WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin): Deleted. (WebKit::WebDatabaseManager::deleteDatabasesForOrigin): Deleted. (WebKit::WebDatabaseManager::deleteAllDatabases): Deleted. (WebKit::WebDatabaseManager::closeAllDatabases): Deleted. (WebKit::WebDatabaseManager::setQuotaForOrigin): Deleted. (WebKit::WebDatabaseManager::dispatchDidModifyOrigin): Deleted. (WebKit::WebDatabaseManager::dispatchDidModifyDatabase): Deleted. * WebProcess/WebCoreSupport/WebDatabaseManager.h: Removed. * WebProcess/WebCoreSupport/WebDatabaseManager.messages.in: Removed. * WebProcess/WebCoreSupport/ios/WebDatabaseManagerIOS.mm: Removed. (WebKit::WebDatabaseManager::dispatchDidAddNewOrigin): Deleted. (WebKit::WebDatabaseManager::dispatchDidDeleteDatabase): Deleted. (WebKit::WebDatabaseManager::dispatchDidDeleteDatabaseOrigin): Deleted. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::processWillSuspendImminently): (WebKit::m_webSQLiteDatabaseTracker): Deleted. 2015-12-18 Michael Catanzaro [GTK] Unreviewed, fix GtkDoc after r193620 * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: 2015-12-18 Dan Bernstein WebPage::didCompleteUserMediaPermissionCheck and WebPage::didReceiveUserMediaPermissionDecision are exported https://bugs.webkit.org/show_bug.cgi?id=152429 Reviewed by Tim Horton. * WebProcess/WebPage/WebPage.h: Removed WK_EXPORT specifiers from these two declarations. 2015-12-18 Alex Christensen Move networking code from Shared to NetworkProcess https://bugs.webkit.org/show_bug.cgi?id=152421 Reviewed by Antti Koivisto. Since recently removing the non-NetworkProcess configurations, this code is no longer shared with the WebProcess. * CMakeLists.txt: * DerivedSources.make: * NetworkProcess/CustomProtocols: Copied from Source/WebKit2/Shared/Network/CustomProtocols. * NetworkProcess/Downloads: Copied from Source/WebKit2/Shared/Downloads. * NetworkProcess/Downloads/Download.cpp: Copied from Source/WebKit2/Shared/Downloads/Download.cpp. * NetworkProcess/Downloads/Download.h: Copied from Source/WebKit2/Shared/Downloads/Download.h. * NetworkProcess/Downloads/DownloadID.h: Copied from Source/WebKit2/Shared/Downloads/DownloadID.h. * NetworkProcess/Downloads/DownloadManager.cpp: Copied from Source/WebKit2/Shared/Downloads/DownloadManager.cpp. * NetworkProcess/Downloads/DownloadManager.h: Copied from Source/WebKit2/Shared/Downloads/DownloadManager.h. * NetworkProcess/NetworkProcessCreationParameters.cpp: Copied from Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp. * NetworkProcess/NetworkProcessCreationParameters.h: Copied from Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h. * NetworkProcess/NetworkProcessSupplement.h: Copied from Source/WebKit2/Shared/Network/NetworkProcessSupplement.h. * NetworkProcess/NetworkResourceLoadParameters.cpp: Copied from Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.cpp. * NetworkProcess/NetworkResourceLoadParameters.h: Copied from Source/WebKit2/Shared/Network/NetworkResourceLoadParameters.h. * PlatformEfl.cmake: * PlatformGTK.cmake: * PlatformMac.cmake: * Shared/Downloads: Removed. * Shared/Downloads/Download.cpp: Removed. * Shared/Downloads/Download.h: Removed. * Shared/Downloads/DownloadAuthenticationClient.cpp: Removed. * Shared/Downloads/DownloadAuthenticationClient.h: Removed. * Shared/Downloads/DownloadID.h: Removed. * Shared/Downloads/DownloadManager.cpp: Removed. * Shared/Downloads/DownloadManager.h: Removed. * Shared/Downloads/cocoa: Removed. * Shared/Downloads/cocoa/DownloadCocoa.mm: Removed. * Shared/Downloads/efl: Removed. * Shared/Downloads/efl/DownloadSoupErrorsEfl.cpp: Removed. * Shared/Downloads/gtk: Removed. * Shared/Downloads/gtk/DownloadSoupErrorsGtk.cpp: Removed. * Shared/Downloads/ios: Removed. * Shared/Downloads/ios/DownloadIOS.mm: Removed. * Shared/Downloads/mac: Removed. * Shared/Downloads/mac/DownloadMac.mm: Removed. * Shared/Downloads/soup: Removed. * Shared/Downloads/soup/DownloadSoup.cpp: Removed. * Shared/Downloads/soup/DownloadSoupErrors.h: Removed. * Shared/Network: Removed. * Shared/Network/CustomProtocols: Removed. * Shared/Network/CustomProtocols/Cocoa: Removed. * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: Removed. * Shared/Network/CustomProtocols/CustomProtocolManager.h: Removed. * Shared/Network/CustomProtocols/CustomProtocolManager.messages.in: Removed. * Shared/Network/CustomProtocols/soup: Removed. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: Removed. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h: Removed. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp: Removed. * Shared/Network/NetworkProcessCreationParameters.cpp: Removed. * Shared/Network/NetworkProcessCreationParameters.h: Removed. * Shared/Network/NetworkProcessSupplement.h: Removed. * Shared/Network/NetworkResourceLoadParameters.cpp: Removed. * Shared/Network/NetworkResourceLoadParameters.h: Removed. * WebKit2.xcodeproj/project.pbxproj: 2015-12-18 Michael Catanzaro LayerTreeHostGtk triggers -Wunused-private-field https://bugs.webkit.org/show_bug.cgi?id=152410 Reviewed by Carlos Garcia Campos. Remove the unused member variable. * WebProcess/WebPage/gtk/LayerTreeHostGtk.h: 2015-12-18 Alex Christensen Add types for DownloadID and TaskIdentifier https://bugs.webkit.org/show_bug.cgi?id=152401 Reviewed by Brady Eidson. DownloadID and TaskIdentifier used to both be just uint64_t's. It is confusing to distinguish between them, so now they both have names. We need a HashMap instead of a HashMap. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::storageSession): (WebKit::NetworkConnectionToWebProcess::startDownload): (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): (WebKit::NetworkProcess::downloadRequest): (WebKit::NetworkProcess::resumeDownload): (WebKit::NetworkProcess::cancelDownload): (WebKit::NetworkProcess::getNetworkProcessStatistics): (WebKit::NetworkProcess::logDiagnosticMessage): (WebKit::NetworkProcess::logDiagnosticMessageWithResult): (WebKit::NetworkProcess::logDiagnosticMessageWithValue): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::createDataTaskWithRequest): (WebKit::NetworkSession::dataTaskForIdentifier): (WebKit::NetworkDataTask::resume): (WebKit::NetworkDataTask::taskIdentifier): Deleted. * Shared/Downloads/Download.cpp: (WebKit::Download::Download): (WebKit::Download::messageSenderDestinationID): * Shared/Downloads/Download.h: (WebKit::Download::downloadID): * Shared/Downloads/DownloadID.h: Added. (WebKit::DownloadID::DownloadID): (WebKit::DownloadID::operator==): (WebKit::DownloadID::downloadID): (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): (WTF::DownloadIDHash::hash): (WTF::DownloadIDHash::equal): (WTF::HashTraits::emptyValue): (WTF::HashTraits::constructDeletedValue): (WTF::HashTraits::isDeletedValue): * Shared/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::DownloadManager): (WebKit::DownloadManager::startDownload): (WebKit::DownloadManager::convertHandleToDownload): (WebKit::DownloadManager::resumeDownload): (WebKit::DownloadManager::cancelDownload): * Shared/Downloads/DownloadManager.h: (WebKit::DownloadManager::isDownloading): * UIProcess/API/C/WKDownload.cpp: (WKDownloadGetID): (WKDownloadCopyRequest): * UIProcess/Downloads/DownloadProxy.h: (WebKit::DownloadProxy::downloadID): (WebKit::DownloadProxy::request): (WebKit::DownloadProxy::resumeData): * UIProcess/Downloads/DownloadProxyMap.cpp: (WebKit::DownloadProxyMap::createDownloadProxy): (WebKit::DownloadProxyMap::downloadFinished): (WebKit::DownloadProxyMap::processDidClose): * UIProcess/Downloads/DownloadProxyMap.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::receivedPolicyDecision): (WebKit::WebPageProxy::frameDidBecomeFrameSet): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForResponse): (WebKit::WebPageProxy::decidePolicyForResponseSync): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::invalidatePolicyListener): (WebKit::WebFrame::didReceivePolicyDecision): (WebKit::WebFrame::startDownload): (WebKit::WebFrame::convertMainResourceLoadToDownload): * WebProcess/WebPage/WebFrame.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setSessionID): (WebKit::WebPage::didReceivePolicyDecision): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-12-17 Dan Bernstein Fixed a typo from r194022. * Configurations/WebKit.xcconfig: Changed PlugInProcessShim.dylib to PluginProcessShim.dylib. 2015-12-17 Commit Queue Unreviewed, rolling out r194250 and r194254. https://bugs.webkit.org/show_bug.cgi?id=152414 broke api tests (Requested by alexchristensen on #webkit). Reverted changesets: "Add types for DownloadID and TaskIdentifier" https://bugs.webkit.org/show_bug.cgi?id=152401 http://trac.webkit.org/changeset/194250 "Build fix after r194250" http://trac.webkit.org/changeset/194254 2015-12-17 Alex Christensen Build fix after r194250 * WebKit2.xcodeproj/project.pbxproj: Change target membership from all to WebKit. 2015-12-17 Alex Christensen Add types for DownloadID and TaskIdentifier https://bugs.webkit.org/show_bug.cgi?id=152401 Reviewed by Brady Eidson. DownloadID and TaskIdentifier used to both be just uint64_t's. It is confusing to distinguish between them, so now they both have names. We need a HashMap instead of a HashMap. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::storageSession): (WebKit::NetworkConnectionToWebProcess::startDownload): (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): (WebKit::NetworkProcess::downloadRequest): (WebKit::NetworkProcess::resumeDownload): (WebKit::NetworkProcess::cancelDownload): (WebKit::NetworkProcess::getNetworkProcessStatistics): (WebKit::NetworkProcess::logDiagnosticMessage): (WebKit::NetworkProcess::logDiagnosticMessageWithResult): (WebKit::NetworkProcess::logDiagnosticMessageWithValue): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::createDataTaskWithRequest): (WebKit::NetworkSession::dataTaskForIdentifier): (WebKit::NetworkDataTask::resume): (WebKit::NetworkDataTask::taskIdentifier): Deleted. * Shared/Downloads/Download.cpp: (WebKit::Download::Download): (WebKit::Download::messageSenderDestinationID): * Shared/Downloads/Download.h: (WebKit::Download::downloadID): * Shared/Downloads/DownloadID.h: Added. (WebKit::DownloadID::DownloadID): (WebKit::DownloadID::operator==): (WebKit::DownloadID::downloadID): (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): (WTF::DownloadIDHash::hash): (WTF::DownloadIDHash::equal): (WTF::HashTraits::emptyValue): (WTF::HashTraits::constructDeletedValue): (WTF::HashTraits::isDeletedValue): * Shared/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::DownloadManager): (WebKit::DownloadManager::startDownload): (WebKit::DownloadManager::convertHandleToDownload): (WebKit::DownloadManager::resumeDownload): (WebKit::DownloadManager::cancelDownload): * Shared/Downloads/DownloadManager.h: (WebKit::DownloadManager::isDownloading): * UIProcess/API/C/WKDownload.cpp: (WKDownloadGetID): (WKDownloadCopyRequest): * UIProcess/Downloads/DownloadProxy.h: (WebKit::DownloadProxy::downloadID): (WebKit::DownloadProxy::request): (WebKit::DownloadProxy::resumeData): * UIProcess/Downloads/DownloadProxyMap.cpp: (WebKit::DownloadProxyMap::createDownloadProxy): (WebKit::DownloadProxyMap::downloadFinished): (WebKit::DownloadProxyMap::processDidClose): * UIProcess/Downloads/DownloadProxyMap.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::receivedPolicyDecision): (WebKit::WebPageProxy::frameDidBecomeFrameSet): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForResponse): (WebKit::WebPageProxy::decidePolicyForResponseSync): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::invalidatePolicyListener): (WebKit::WebFrame::didReceivePolicyDecision): (WebKit::WebFrame::startDownload): (WebKit::WebFrame::convertMainResourceLoadToDownload): * WebProcess/WebPage/WebFrame.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setSessionID): (WebKit::WebPage::didReceivePolicyDecision): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-12-17 Simon Fraser Disable viewport "shrink to fit" outside of multitasking mode https://bugs.webkit.org/show_bug.cgi?id=152403 rdar://problem/23818102 Reviewed by Tim Horton. Plumb through a value that indicates whether the WKWebView is in split screen, and use it to conditionally enable shrink-to-fit mode only in split screen. * Shared/VisibleContentRectUpdateInfo.cpp: Added m_allowShrinkToFit, and sort the member variables, and encoding order, to optimize packing, with some initializers. (WebKit::VisibleContentRectUpdateInfo::encode): (WebKit::VisibleContentRectUpdateInfo::decode): * Shared/VisibleContentRectUpdateInfo.h: (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo): (WebKit::VisibleContentRectUpdateInfo::allowShrinkToFit): (WebKit::operator==): * UIProcess/API/Cocoa/WKWebView.mm: Add _allowsViewportShrinkToFit member variable, with getter and setter. (-[WKWebView _updateVisibleContentRects]): Unwrap the line. (-[WKWebView _setAllowsViewportShrinkToFit:]): (-[WKWebView _allowsViewportShrinkToFit]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: _allowsViewportShrinkToFit SPI. * UIProcess/WebPageProxy.h: Pass allowShrinkToFit through. * UIProcess/ios/WKContentView.mm: Ditto. (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateVisibleContentRects): Padd allowShrinkToFit to the web process via the VisibleContentRectUpdateInfo. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Store m_ignoreViewportScalingConstraints in a member variable since we can't get back to the prefs later. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateVisibleContentRects): This is the behavior change: call setCanIgnoreScalingConstraints() on the viewport configuration, consulting the pref (via m_ignoreViewportScalingConstraints) and the new visibleContentRectUpdateInfo.allowShrinkToFit(). 2015-12-16 Simon Fraser ViewportConfiguration functions should return a bool to say if anything changed https://bugs.webkit.org/show_bug.cgi?id=152353 Reviewed by Tim Horton. Rather than callers all checking whether setting ViewportConfiguration values changes state, have its functions return a bool if the values change. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::mainFrameDidLayout): (WebKit::WebPage::didCommitLoad): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::viewportPropertiesDidChange): (WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): 2015-12-16 Alex Christensen Progress towards implementing downloads with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=152371 Reviewed by Darin Adler. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::downloadRequest): (WebKit::NetworkProcess::resumeDownload): (WebKit::NetworkProcess::cancelDownload): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): * Shared/Authentication/AuthenticationManager.h: * Shared/Downloads/Download.cpp: (WebKit::Download::Download): (WebKit::Download::didReceiveAuthenticationChallenge): * Shared/Downloads/Download.h: * Shared/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::startDownload): (WebKit::DownloadManager::convertHandleToDownload): (WebKit::DownloadManager::resumeDownload): (WebKit::DownloadManager::cancelDownload): (WebKit::DownloadManager::downloadFinished): (WebKit::DownloadManager::didCreateDownload): * Shared/Downloads/DownloadManager.h: * Shared/Downloads/cocoa: Added. * Shared/Downloads/cocoa/DownloadCocoa.mm: Added. (WebKit::Download::start): (WebKit::Download::resume): (WebKit::Download::cancel): (WebKit::Download::platformInvalidate): * Shared/Downloads/ios/DownloadIOS.mm: * Shared/Downloads/mac/DownloadMac.mm: (WebKit::Download::start): (WebKit::Download::startWithHandle): (WebKit::Download::resume): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::resumeDownload): * UIProcess/WebProcessPool.h: * WebKit2.xcodeproj/project.pbxproj: 2015-12-16 Simon Fraser ViewportConfiguration functions should return a bool to say if anything changed https://bugs.webkit.org/show_bug.cgi?id=152353 Reviewed by Tim Horton. Rather than callers all checking whether setting ViewportConfiguration values changes state, have its functions return a bool if the values change. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::mainFrameDidLayout): (WebKit::WebPage::didCommitLoad): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::viewportPropertiesDidChange): (WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): 2015-12-16 Tim Horton REGRESSION (r191299): Zoom gestures are enabled even if allowsMagnification=NO https://bugs.webkit.org/show_bug.cgi?id=152373 Reviewed by Simon Fraser. * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::gestureEventWasNotHandledByWebCoreFromViewOnly): Don't pass the event on to ViewGestureController if we shouldn't handle it, just like we would have done in magnifyWithEvent before. 2015-12-16 Tim Horton REGRESSION (r194125): Crashes in touchesEndedWithEvent on occasion when interacting with the page https://bugs.webkit.org/show_bug.cgi?id=152366 Reviewed by Beth Dakin. * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::touchesEndedWithEvent): (WebKit::WebViewImpl::touchesCancelledWithEvent): NSTouch identifiers aren't pointer-comparable. We need to use isEqual to compare them and find the ones to remove. 2015-12-16 Simon Fraser Simplify isOverlayScrollbar() logic https://bugs.webkit.org/show_bug.cgi?id=152357 Reviewed by Beth Dakin. Replace code that checks for isOverlayScrollbar() explicitly with calls to new occupiedWidth()/occupiedHeight() functions on Scrollbar, which do the overlay scrollbar check internally. Add ScrollableArea::scrollbarIntrusion() which returns an IntSize with the occupiedWidth and occupiedHeight of any scrollbars, and use it in a few places. * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::updateScrollbars): (WebKit::PDFPlugin::maximumScrollPosition): 2015-12-16 Alex Christensen Build fix when using NETWORK_SESSION after r193972. Rubber-stamped by Joseph Pecoraro. Renamed NetworkSessionDelegate to WKNetworkSessionDelegate to conform to the newly-enforced style rule in check-for-inappropriate-objc-class-names. * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (toNSURLSessionAuthChallengeDisposition): (-[WKNetworkSessionDelegate initWithNetworkSession:]): (WebKit::NetworkSession::NetworkSession): (-[NetworkSessionDelegate initWithNetworkSession:]): Deleted. 2015-12-16 Alex Christensen Implement Web Timing when using NETWORK_SESSION https://bugs.webkit.org/show_bug.cgi?id=152285 Reviewed by Darin Adler. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[NetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (WebKit::NetworkSession::NetworkSession): Use functions moved to ResourceLoadTiming.h. setCollectsTimingData is for Mavericks, _timingDataOptions is post-Mavericks. 2015-12-16 Youenn Fablet [Fetch API] Add fetch API compile time flag https://bugs.webkit.org/show_bug.cgi?id=152254 Reviewed by Darin Adler. * Configurations/FeatureDefines.xcconfig: 2015-12-15 Tim Horton [Mac] Gesture Events should not have negative scale https://bugs.webkit.org/show_bug.cgi?id=151065 Reviewed by Anders Carlsson. * Shared/NativeWebGestureEvent.h: * Shared/mac/NativeWebGestureEventMac.mm: (WebKit::distanceForTouches): (WebKit::NativeWebGestureEvent::NativeWebGestureEvent): Compute the distance between the two oldest touches, and use that as the scale (really the gesture diameter) on the event, instead of passing through AppKit's magnification (which is computed differently). This matches the documented behavior of the existing gesture events on iOS. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView touchesBeganWithEvent:]): (-[WKWebView touchesMovedWithEvent:]): (-[WKWebView touchesEndedWithEvent:]): (-[WKWebView touchesCancelledWithEvent:]): * UIProcess/API/mac/WKView.mm: (-[WKView touchesBeganWithEvent:]): (-[WKView touchesMovedWithEvent:]): (-[WKView touchesEndedWithEvent:]): (-[WKView touchesCancelledWithEvent:]): Plumb touch events through to WebViewImpl. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::WebViewImpl): (WebKit::WebViewImpl::magnifyWithEvent): (WebKit::WebViewImpl::touchesOrderedByAge): (WebKit::WebViewImpl::touchesBeganWithEvent): (WebKit::WebViewImpl::touchesMovedWithEvent): (WebKit::WebViewImpl::touchesEndedWithEvent): (WebKit::WebViewImpl::touchesCancelledWithEvent): (WebKit::WebViewImpl::rotateWithEvent): Keep track of the most recent incoming touches, by identifier, in age order. Pass them through to NativeWebGestureEvent so it can determine the gesture diameter. 2015-12-15 Anders Carlsson Call DatabaseManager directly from WKBundle.cpp https://bugs.webkit.org/show_bug.cgi?id=152317 Reviewed by Tim Horton. This is in preparation for getting rid of some old database manager code. * WebProcess/InjectedBundle/API/c/WKBundle.cpp: (WKBundleClearAllDatabases): (WKBundleSetDatabaseQuota): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::clearAllDatabases): Deleted. (WebKit::InjectedBundle::setDatabaseQuota): Deleted. * WebProcess/InjectedBundle/InjectedBundle.h: 2015-12-15 Daniel Bates Guard code that uses class LayerTreeHost with USE(COORDINATED_GRAPHICS) or USE(TEXTURE_MAPPER) https://bugs.webkit.org/show_bug.cgi?id=152265 Reviewed by Tim Horton. We neither make use of LayerTreeHost on Mac nor on iOS. We should guard code that makes use of this class as applicable. This also fixes the iOS Simulator build when using Apple Internal software. * WebProcess/WebCoreSupport/WebChromeClient.cpp: Guard code that used LayerTreeHost. * WebProcess/WebPage/LayerTreeHost.cpp: Guard contents of file with USE(COORDINATED_GRAPHICS) || USE(TEXTURE_MAPPER). * WebProcess/WebPage/LayerTreeHost.h: Ditto. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scalePage): Ditto. (WebKit::WebPage::setDeviceScaleFactor): Ditto. * WebProcess/WebPage/WebPage.h: Substitute header LayerTreeContext.h for LayerTreeHost.h since we make use of the enum class LayerHostingMode. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateVisibleContentRects): Remove unnecessary code; DrawingArea::layerTreeHost() always returns nullptr on iOS. 2015-12-15 Zan Dobersek [TexMap] Operate with a reference to the TextureMapper wherever possible https://bugs.webkit.org/show_bug.cgi?id=152118 Reviewed by Martin Robinson. Replace pointers to the TextureMapper object with references. * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: (WebKit::CoordinatedBackingStoreTile::swapBuffers): (WebKit::CoordinatedBackingStore::paintTilesToTextureMapper): (WebKit::CoordinatedBackingStore::paintToTextureMapper): (WebKit::CoordinatedBackingStore::drawBorder): (WebKit::CoordinatedBackingStore::drawRepaintCounter): (WebKit::CoordinatedBackingStore::commitTileOperations): * Shared/CoordinatedGraphics/CoordinatedBackingStore.h: * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): (WebKit::CoordinatedGraphicsScene::paintToGraphicsContext): (WebKit::CoordinatedGraphicsScene::commitPendingBackingStoreOperations): 2015-12-14 YongGeol Jung [Coordinated Graphics] CSS transition effect is not shown when transformed with "%" unit. https://bugs.webkit.org/show_bug.cgi?id=152278 Reviewed by Darin Adler. boxSize is encoded as FloatSize type but decoded as IntSize type. So boxSize gets invalid value after decoding. Due to this layer goes to out of screen during animation. * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp: (IPC::ArgumentCoder::decode): 2015-12-14 Dan Bernstein REGRESSION (r194022): Production builds of PluginProcess crash on launch when not installed in /System https://bugs.webkit.org/show_bug.cgi?id=152291 Reviewed by Darin Adler. * Configurations/PluginProcess.xcconfig: Added a FIXME. * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::addDYLDEnvironmentAdditions): Set DYLD_LIBRARY_PATH to point to where the shims are. This is needed because starting in El Capitan, the processes’ main executables link directly against the shims, so the dynamic linker needs to be able to find them in the non-/System location. Also added a FIXME about not having to set DYLD_INSERT_LIBRARIES when the main executables link the them directly. 2015-12-14 Simon Fraser Dump some more data in the RemoteLayerTreeTransaction https://bugs.webkit.org/show_bug.cgi?id=152283 Reviewed by Dean Jackson. Dump some scale factors, viewport meta tag width and render tree size. * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTransaction::description): 2015-12-14 Tim Horton Frequent crash under -[WKPDFView web_setMinimumSize:]_block_invoke https://bugs.webkit.org/show_bug.cgi?id=152266 Reviewed by Simon Fraser. * UIProcess/ios/WKPDFView.mm: (-[WKPDFView web_setMinimumSize:]): We weren't retaining the UIScrollView, but depending on it surviving into this block's invocation. We don't need to do this asynchronously anymore because the referenced bug is fixed, so make it happen synchronously. This also fixes the crash because there's no opportunity for the scroll view to be released. 2015-12-14 Tim Horton TiledCoreAnimationDrawingAreaProxy::createFenceForGeometryUpdate() sets fence port on context twice https://bugs.webkit.org/show_bug.cgi?id=152239 Reviewed by Darin Adler. * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: (WebKit::TiledCoreAnimationDrawingAreaProxy::createFenceForGeometryUpdate): No need to setFencePort; createFencePort also installs it on the creating context. 2015-12-12 Alex Christensen Use existing code for redirects when using NETWORK_SESSION https://bugs.webkit.org/show_bug.cgi?id=152207 rdar://problem/23860624 Reviewed by Darin Adler. This fixes http/tests/cookies/set-cookie-on-redirect.html when using NETWORK_SESSION. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::continueWillSendRequest): (WebKit::NetworkLoad::convertTaskToDownload): (WebKit::NetworkLoad::willPerformHTTPRedirection): (WebKit::NetworkLoad::didReceiveChallenge): * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkSession.h: 2015-12-13 Tim Horton Adopt CGIOSurfaceContextCreateImageReference to avoid unnecessary readback https://bugs.webkit.org/show_bug.cgi?id=150988 Reviewed by Darin Adler. * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::createSelectionSnapshot): Adopt sinkIntoImage and drawConsumingImageBuffer in a few places. 2015-12-13 Dan Bernstein Another fix after r194018. * Configurations/BaseTarget.xcconfig: * Configurations/BaseXPCService.xcconfig: 2015-12-13 Dan Bernstein [Mac] Shims used by XPC services are installed inside legacy process bundles https://bugs.webkit.org/show_bug.cgi?id=152233 Reviewed by Sam Weinig. Have the shim dylibs installed in the framework’s Frameworks directory instead. * Configurations/BaseLegacyProcess.xcconfig: Simplified now that EXCLUDED_SHIM_FILE_NAME is no longer defined, because shims aren’t copied into legacy processes. * Configurations/NetworkProcess.xcconfig: Removed definition of EXCLUDED_SHIM_FILE_NAME. * Configurations/PluginProcess.xcconfig: Ditto. * Configurations/WebContentProcess.xcconfig: Ditto. * Configurations/Shim.xcconfig: Install the shims when building for OS X. Added definitions of INSTALL_PATH and DYLIB_INSTALL_NAME_BASE which are now common to all shims. * Configurations/PluginProcessShim.xcconfig: Removed definitions of INSTALL_PATH and DYLIB_INSTALL_NAME_BASE from here, now that they are defined for all shims in Shim.xcconfig. * Configurations/SecItemShim.xcconfig: Ditto. * Configurations/WebProcessShim.xcconfig: * Configurations/WebKit.xcconfig: Added the shims to EXCLUDED_SOURCE_FILE_NAMES for iOS. * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist: Changed the value of DYLD_INSERT_LIBRARIES to point to the shim’s new location. * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist: Ditto. * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: Ditto. * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::computeProcessShimPath): Changed to return the new paths, which are all inside the framework’s Frameworks directory. * WebKit2.xcodeproj/project.pbxproj: - Removed references to WRAPPER_NAME from the “Copy XPC services for engineering builds” build phase in the All target, becase WRAPPER_NAME is empty in an aggregate target. - Removed the PlugInProcess target’s dependency on the PluginProcessShim target and its Copy Plug-in Process Shim build phase. - Removed the NetworkProcess target’s dependency on the SecItemShim target and its Copy Sec Item Shim build phase. - Removed the WebProcess target’s dependency on the WebProcessShim target and its Copy WebProcessShim build phase. - Made the WebKit target depend on the shim targets, and added to it a Copy Shims build phase that copies the shims into the framework’s Frameworks directory. 2015-12-13 Dan Bernstein Build fix. * Configurations/PluginProcess.xcconfig: 2015-12-13 Dan Bernstein [Mac] Shims aren’t inserted properly on Yosemite when building with the El Capitan SDK https://bugs.webkit.org/show_bug.cgi?id=152229 Reviewed by Darin Adler. * Configurations/BaseTarget.xcconfig: Defined WK_LINK_SHIM on OS X to YES or NO based on the target version. * Configurations/BaseXPCService.xcconfig: Define WK_XPC_SERVICE_INFOPLIST_SUFFIX to "-10.9-10.10" when targeting those OS X versions. * Configurations/NetworkService.xcconfig: Use WK_XPC_SERVICE_INFOPLIST_SUFFIX in the definition of INFOPLIST_FILE. Use WK_LINK_SHIM in the definition of OTHER_LDFLAGS. * Configurations/PluginProcess.xcconfig: Use WK_LINK_SHIM in the definition of LDFLAGS_SHIM_Production for OS X. * Configurations/PluginService.32.xcconfig: Use WK_XPC_SERVICE_INFOPLIST_SUFFIX in the definition of INFOPLIST_FILE. Use WK_LINK_SHIM in the definition of OTHER_LDFLAGS. * Configurations/PluginService.64.xcconfig: Ditto. * Configurations/WebContentService.xcconfig: Ditto. 2015-12-12 Katlyn Graff Safari background tabs should be fully suspended where possible. https://bugs.webkit.org/show_bug.cgi?id=150515 Reviewed by Ryosuke Niwa. Added a runtime flag enabling tab suspension, default off. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::registerUserDefaultsIfNeeded): (WebKit::WebProcessPool::platformInitializeWebProcess): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-12-11 Eric Carlson [MediaStream] Add a setting to allow the mock media capture devices to be enabled and disabled https://bugs.webkit.org/show_bug.cgi?id=152197 Reviewed by Dean Jackson. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMockCaptureDevicesEnabled): (WKPreferencesGetMockCaptureDevicesEnabled): * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _mockCaptureDevicesEnabled]): (-[WKPreferences _setMockCaptureDevicesEnabled:]): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-12-11 Joseph Pecoraro check-for-inappropriate-objc-class-names should check all class names, not just externally visible ones https://bugs.webkit.org/show_bug.cgi?id=152156 Reviewed by Dan Bernstein. * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h: * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy): Rename internal classes with "_WK" prefix. 2015-12-10 Eric Carlson [MediaStream] Expose media capture devices persistent permissions to WebCore https://bugs.webkit.org/show_bug.cgi?id=152087 Reviewed by Chris Dumez. * CMakeLists.txt: Add UserMediaPermissionCheckProxy.cpp and WKUserMediaPermissionCheck.cpp. * Shared/API/APIObject.h: Define UserMediaPermissionCheck. * Shared/API/c/WKBase.h: Add WKUserMediaPermissionCheckRef typedef. * UIProcess/API/APIUIClient.h: (API::UIClient::checkUserMediaPermissionForOrigin): New. * UIProcess/API/C/WKAPICast.h: Add WKUserMediaPermissionCheckRef/UserMediaPermissionCheckProxy mapping. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): Implement checkUserMediaPermissionForOrigin. * UIProcess/API/C/WKPageUIClient.h: Add WKCheckUserMediaPermissionCallback typedef and add checkUserMediaPermissionForOrigin to WKPageUIClientV6. * UIProcess/API/C/WKUserMediaPermissionCheck.cpp: Added. (WKUserMediaPermissionCheckGetTypeID): (WKUserMediaPermissionCheckSetHasPermission): * UIProcess/API/C/WKUserMediaPermissionCheck.h: Added. * UIProcess/UserMediaPermissionCheckProxy.cpp: Added. (WebKit::UserMediaPermissionCheckProxy::UserMediaPermissionCheckProxy): (WebKit::UserMediaPermissionCheckProxy::setHasPermission): (WebKit::UserMediaPermissionCheckProxy::invalidate): * UIProcess/UserMediaPermissionCheckProxy.h: Added. (WebKit::UserMediaPermissionCheckProxy::create): * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::invalidateRequests): (WebKit::UserMediaPermissionRequestManagerProxy::createRequest): (WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision): (WebKit::UserMediaPermissionRequestManagerProxy::createUserMediaPermissionCheck): (WebKit::UserMediaPermissionRequestManagerProxy::didCompleteUserMediaPermissionCheck): * UIProcess/UserMediaPermissionRequestManagerProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestUserMediaPermissionForFrame): (WebKit::WebPageProxy::checkUserMediaPermissionForFrame): (WebKit::WebPageProxy::requestNotificationPermission): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebKit2.xcodeproj/project.pbxproj: Add UserMediaPermissionCheckProxy.*, and WKUserMediaPermissionCheck.*. * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: (WebKit::UserMediaPermissionRequestManager::startUserMediaRequest): Renamed from startRequest. (WebKit::UserMediaPermissionRequestManager::cancelUserMediaRequest): Renamed from cancelRequest. (WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision): m_requestToIDMap -> m_userMediaRequestToIDMap.remove. (WebKit::UserMediaPermissionRequestManager::startUserMediaPermissionCheck): New, start the request. (WebKit::UserMediaPermissionRequestManager::cancelUserMediaPermissionCheck): New, cancel the request. (WebKit::UserMediaPermissionRequestManager::didCompleteUserMediaPermissionCheck): New, all the request completion method. (WebKit::UserMediaPermissionRequestManager::startRequest): Deleted. (WebKit::UserMediaPermissionRequestManager::cancelRequest): Deleted. * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: * WebProcess/WebCoreSupport/WebUserMediaClient.cpp: (WebKit::WebUserMediaClient::requestUserMediaAccess): startRequest -> startUserMediaRequest. (WebKit::WebUserMediaClient::cancelUserMediaAccessRequest): cancelRequest -> cancelUserMediaRequest. (WebKit::WebUserMediaClient::checkUserMediaPermission): New. (WebKit::WebUserMediaClient::cancelUserMediaPermissionCheck): New. * WebProcess/WebCoreSupport/WebUserMediaClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCompleteUserMediaPermissionCheck): New. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Add DidCompleteUserMediaPermissionCheck. 2015-12-10 Joseph Pecoraro Remote Inspector: Verify the identity of the other side of XPC connections https://bugs.webkit.org/show_bug.cgi?id=152153 Reviewed by Brian Burg. * Shared/mac/SandboxUtilities.mm: * UIProcess/ApplicationStateTracker.mm: Use new header. 2015-12-10 Alex Christensen REGRESSION (r192796) WKBundlePageResourceLoadClient should be able to setHTTPBody in willSendRequestForFrame https://bugs.webkit.org/show_bug.cgi?id=152022 rdar://problem/23763584 Reviewed by Darin Adler. * Shared/API/c/WKURLRequest.cpp: (WKURLRequestCopyHTTPMethod): (WKURLRequestCopyWithHTTPBody): (WKURLRequestSetDefaultTimeoutInterval): * Shared/API/c/WKURLRequest.h: Make WKURLRequestCopyWithHTTPBody SPI for testing. * Shared/API/c/mac/WKURLRequestNS.mm: (WKURLRequestCreateWithNSURLRequest): Crash if someone tries to use an NSURLRequest with HTTPBodyStream, which will not work with the network process. * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp: (WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame): Use an HTTP body if the client's willSendRequestForFrame returned one. This is the functional change of this patch. 2015-12-10 Zan Dobersek [CoordinatedGraphics] Reserve capacity for the children vector in CoordinatedGraphicsScene::setLayerChildrenIfNeeded() https://bugs.webkit.org/show_bug.cgi?id=152117 Reviewed by Martin Robinson. * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::setLayerChildrenIfNeeded): Reserve the capacity for the new Vector that will contain the same number of items as the Vector on the CoordinatedGraphicsLayerState object. 2015-12-09 Daniel Bates [iOS] Bail out if the page proxy is invalid when WebPageProxy::processWillBecome{Foreground, Suspended}() are called https://bugs.webkit.org/show_bug.cgi?id=151877 Reviewed by Darin Adler. We cannot assume that a WebPageProxy is in a valid state when WebPageProxy::processWillBecome{Foreground, Suspended}() are called because these callbacks may occur after the web process crashed and before a WebPageProxy attaches to a new web process (and hence is considered in a valid state). * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::processWillBecomeSuspended): Early return if the page proxy is invalid. (WebKit::WebPageProxy::processWillBecomeForeground): Ditto. 2015-12-09 Commit Queue Unreviewed, rolling out r193864. https://bugs.webkit.org/show_bug.cgi?id=152100 caused all inspector tests to assert in WK2 Debug (Requested by brrian on #webkit). Reverted changeset: "Web Inspector: reproducible debug ASSERT when inspecting the inspector (WK2)" https://bugs.webkit.org/show_bug.cgi?id=152080 http://trac.webkit.org/changeset/193864 2015-12-09 Brian Burg Web Inspector: reproducible debug ASSERT when inspecting the inspector (WK2) https://bugs.webkit.org/show_bug.cgi?id=152080 Reviewed by Timothy Hatcher. We hit an assert underneath ChildProcessProxy::addMessageReceiver because we tried to connect the inspector page and inspected page more than once. This relationship is already set up in the constructor of WebProcessProxy. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::eagerlyCreateInspectorPage): 2015-12-09 Gyuyoung Kim [EFL] Need to change expectation result in ewk_settings_offline_web_application_cache_enabled API test https://bugs.webkit.org/show_bug.cgi?id=152063 Reviewed by Csaba Osztrogonác. Expect false initial value of ewk_settings_offline_web_application_cache_enabled_get() because r193812 didn't enable it by default. * UIProcess/API/efl/tests/test_ewk2_settings.cpp: (TEST_F): 2015-12-09 Gwang Yoon Hwang [ThreadedCompositor] Add support for HiDPI https://bugs.webkit.org/show_bug.cgi?id=152071 Reviewed by Carlos Garcia Campos. * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::ThreadedCompositor::setDeviceScaleFactor): Added to receive the device scale factor from the layer tree host. (WebKit::ThreadedCompositor::renderLayerTree): Apply device scale factor before rendering the page. * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: (WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Send a updated device scale factor to the compositing thread. 2015-12-09 Ryuan Choi [CoordinatedGraphics] Remove unnecessary guards in CoordinatedDrawingArea https://bugs.webkit.org/show_bug.cgi?id=152068 Reviewed by Gyuyoung Kim. CoordinatedDrawingArea is only for UI side compositor of CoordinatedGraphics. So, COORDINATED_GRAPHICS_MULTIPROCESS guards are not necessary. This patch also removes COORDINATED_GRAPHICS_MULTIPROCESS guards from DrawingAreaImpl because of same reason. * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp: (WebKit::CoordinatedDrawingAreaProxy::CoordinatedDrawingAreaProxy): Deleted. * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp: (WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea): Deleted. * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h: * WebProcess/WebPage/DrawingAreaImpl.h: 2015-12-09 Mario Sanchez Prada [GTK] Crash in WebProcess when loading large content with custom URI schemes https://bugs.webkit.org/show_bug.cgi?id=144262 Reviewed by Carlos Garcia Campos. Properly handle scenarios where errors happen after reading the first chunk of data coming from the GInputStream provided by the application. * UIProcess/API/gtk/WebKitWebContextPrivate.h: * UIProcess/API/gtk/WebKitWebContext.cpp: (webkitWebContextIsLoadingCustomProtocol): New, checks whether a load is still in progress, after the startLoading method has been called. * UIProcess/API/gtk/WebKitURISchemeRequest.cpp: (webkitURISchemeRequestReadCallback): Early return if the stream has been cancelled on finish_error, so that we make sure we don't keep on reading the GInputStream after that point. (webkit_uri_scheme_request_finish_error): Don't send a didFailWithError message to the Network process if the load is not longer in progress. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: (WebKit::CustomProtocolManagerImpl::didFailWithError): Handle the case where an error is notified from the UI process after the first chunk has been read. (WebKit::CustomProtocolManagerImpl::didReceiveResponse): Handle the case where data might no longer be available if an error happened even before this point. * WebProcess/soup/WebKitSoupRequestInputStream.h: * WebProcess/soup/WebKitSoupRequestInputStream.cpp: (webkitSoupRequestInputStreamDidFailWithError): Notify the custom GInputStream that we no longer want to keep reading data in chunks due to a specific error. (webkitSoupRequestInputStreamReadAsync): Early finish the GTask with a specific error whenever webkitSoupRequestInputStreamDidFailWithError() has been called. 2015-12-09 Ryuan Choi [CoordinatedGraphics][EFL] Fix unhandled web process message when launching MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=152048 Reviewed by Gyuyoung Kim. WebPage should be initialized before updating preferences. * UIProcess/API/C/CoordinatedGraphics/WKView.cpp: (WKViewInitialize): Deleted. * UIProcess/API/C/CoordinatedGraphics/WKView.h: * UIProcess/API/efl/EwkView.cpp: (EwkView::EwkView): Calls WKViewSetIsActive instead of WKViewInitialize not to change the behavior of EFL port. * UIProcess/CoordinatedGraphics/WebView.cpp: (WebKit::WebView::WebView): Initialize just before creating WebPage because there is not use case to separate initializing WebPage from creating in CoordinatedGraphics. (WebKit::WebView::initialize): Deleted. * UIProcess/CoordinatedGraphics/WebView.h: 2015-12-09 Carlos Garcia Campos [GTK] Add API to handle beforeunload events https://bugs.webkit.org/show_bug.cgi?id=139090 Reviewed by Gustavo Noronha Silva. beforeunload is fired when a page is about to be closed, to ask the user for confirmation. This happens when reloading a page, when navigating to another page or when the page is closed by a user action (a tab or window closed). In the first two cases, the event is automatically fired by WebCore, but in the case of a user action we need additional API to ensure the event is fired before the page is closed. A new script dialog type has been added to handle beforeunload events and webkit_web_view_try_close() to allow applications to try to close the page. * UIProcess/API/gtk/WebKitScriptDialog.cpp: (webkit_script_dialog_confirm_set_confirmed): BeforeUnloadConfirm dialogs can also be confirmed. * UIProcess/API/gtk/WebKitScriptDialog.h: Add WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM script dialog type. * UIProcess/API/gtk/WebKitUIClient.cpp: Implement canRunBeforeUnloadConfirmPanel() and runBeforeUnloadConfirmPanel(). * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewCreateJavaScriptDialog): Add secondaryText optional parameter for BeforeUnloadConfirm dialogs. Do not set the default response if the dialog was created without buttons. (webkitWebViewScriptDialog): Handle WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM script dialog type to create a message dialog for beforeunlos events. (webkit_web_view_class_init): Update documentation of WebKitWebView::close and WebKitWebView::script-dialog. (webkitWebViewRunJavaScriptBeforeUnloadConfirm): Emit WebKitWebView::script-dialog. (webkit_web_view_try_close): Try to close the page. * UIProcess/API/gtk/WebKitWebView.h: * UIProcess/API/gtk/WebKitWebViewPrivate.h: * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol. 2015-12-09 Gyuyoung Kim [EFL] Missing to set ignoreTLSError to NetworkProcess https://bugs.webkit.org/show_bug.cgi?id=152047 Reviewed by Csaba Osztrogonác. NetworkProcess has been enabled for all ports since r192796 though, EFL port didn't send the ignoreTLSError value to NetworkProcess. This has caused failure of EFL API tests related with ssl feature. * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::setIgnoreTLSErrors): 2015-12-09 Gyuyoung Kim [EFL] REGRESSION(r193616): WKPreferences test has been failed since r193616 https://bugs.webkit.org/show_bug.cgi?id=151942 Reviewed by Darin Adler. As wkpreference settings were moved from EwkView to WKPreferenceEfl, the offline-web-application-cache feature is enabled by default when running API test. It seems this option should be enabled by MiniBrowser. * UIProcess/efl/WebPreferencesEfl.cpp: (WebKit::WebPreferences::platformInitializeStore): Remove to enable web application cache feature here. 2015-12-09 Ryuan Choi [CoordinatedGraphics] layerTreeHost always exist in CoordinatedDrawingArea https://bugs.webkit.org/show_bug.cgi?id=151987 Reviewed by Darin Adler. CoordinatedGraphics using UI side compositor always forces accelerated compositing. This patch cleans up dead code for layerTreeHost which always exists. * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp: (WebKit::CoordinatedDrawingAreaProxy::paint): Deleted. (WebKit::CoordinatedDrawingAreaProxy::setBackingStoreIsDiscardable): Deleted. (WebKit::CoordinatedDrawingAreaProxy::update): Deleted. (WebKit::CoordinatedDrawingAreaProxy::didUpdateBackingStoreState): Deleted. (WebKit::CoordinatedDrawingAreaProxy::exitAcceleratedCompositingMode): Deleted. (WebKit::CoordinatedDrawingAreaProxy::incorporateUpdate): Deleted. (WebKit::CoordinatedDrawingAreaProxy::enterAcceleratedCompositingMode): Deleted. (WebKit::CoordinatedDrawingAreaProxy::discardBackingStoreSoon): Deleted. (WebKit::CoordinatedDrawingAreaProxy::discardBackingStore): Deleted. * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h: (WebKit::CoordinatedDrawingAreaProxy::setBackingStoreIsDiscardable): * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp: (WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea): Deleted. (WebKit::CoordinatedDrawingArea::layerHostDidFlushLayers): Deleted. (WebKit::CoordinatedDrawingArea::scheduleCompositingLayerFlush): Deleted. (WebKit::CoordinatedDrawingArea::didUpdate): Deleted. (WebKit::CoordinatedDrawingArea::enterAcceleratedCompositingMode): Deleted. (WebKit::CoordinatedDrawingArea::scheduleDisplay): Deleted. (WebKit::CoordinatedDrawingArea::displayTimerFired): Deleted. (WebKit::CoordinatedDrawingArea::display): Deleted. (WebKit::shouldPaintBoundsRect): Deleted. (WebKit::CoordinatedDrawingArea::attachViewOverlayGraphicsLayer): Deleted. * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h: 2015-12-08 Alex Christensen Progress towards implementing downloads with NetworkSession https://bugs.webkit.org/show_bug.cgi?id=151883 Reviewed by Brady Eidson. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::~NetworkLoad): (WebKit::NetworkLoad::continueDidReceiveResponse): (WebKit::NetworkLoad::convertTaskToDownload): (WebKit::NetworkLoad::willPerformHTTPRedirection): (WebKit::NetworkLoad::didReceiveChallenge): (WebKit::NetworkLoad::didReceiveResponse): (WebKit::NetworkLoad::didReceiveData): (WebKit::NetworkLoad::didCompleteWithError): (WebKit::NetworkLoad::didBecomeDownload): (WebKit::NetworkLoad::didReceiveResponseAsync): (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkLoadClient.h: * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::cleanup): (WebKit::NetworkResourceLoader::didConvertToDownload): (WebKit::NetworkResourceLoader::abort): (WebKit::NetworkResourceLoader::didConvertHandleToDownload): Deleted. * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/NetworkSession.h: (WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient): (WebKit::NetworkSession::~NetworkSession): Deleted. * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[NetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): (-[NetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): (WebKit::NetworkSession::NetworkSession): (WebKit::NetworkSession::~NetworkSession): (WebKit::NetworkSession::createDataTaskWithRequest): * Shared/Downloads/Download.h: * Shared/Downloads/DownloadManager.h: (WebKit::DownloadManager::isDownloading): (WebKit::DownloadManager::activeDownloadCount): 2015-12-08 Joseph Pecoraro Create a Sandbox SPI header https://bugs.webkit.org/show_bug.cgi?id=151981 Reviewed by Andy Estes. * PluginProcess/mac/PluginProcessShim.mm: * Shared/ios/ChildProcessIOS.mm: * Shared/mac/ChildProcessMac.mm: * Shared/mac/SandboxUtilities.mm: 2015-12-08 Eric Carlson [MediaStream] Rename UserMediaClient and UserMediaController methods https://bugs.webkit.org/show_bug.cgi?id=152001 Reviewed by Brady Eidson. * WebProcess/WebCoreSupport/WebUserMediaClient.cpp: (WebKit::WebUserMediaClient::pageDestroyed): (WebKit::WebUserMediaClient::requestUserMediaAccess): (WebKit::WebUserMediaClient::cancelUserMediaAccessRequest): (WebKit::WebUserMediaClient::requestPermission): Deleted. (WebKit::WebUserMediaClient::cancelRequest): Deleted. * WebProcess/WebCoreSupport/WebUserMediaClient.h: 2015-12-08 Tomas Popela [GTK] Remove an unused variable from WebKitWebContext https://bugs.webkit.org/show_bug.cgi?id=151999 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitWebContext.cpp: 2015-12-08 Chris Dumez Add diagnostic logging to measure speculative revalidation accuracy https://bugs.webkit.org/show_bug.cgi?id=151953 Reviewed by Darin Adler. We track the following: 1. Resources we knew about AND did not get requested A. We did not speculate (Good) B. We speculated but did not go to network (Bad) C. We speculated and went to network (Very bad) 2. Resources we did not know about (Neutral) 3. Resources we knew about AND got requested A. We did not speculate (Bad) B. We speculated but did not go to network (Good) C. We speculated and went to network (Very good) * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::retrieve): * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::allSpeculativeLoadingDiagnosticMessages): (WebKit::NetworkCache::printSpeculativeLoadingDiagnosticMessageCounts): (WebKit::NetworkCache::logSpeculativeLoadingDiagnosticMessage): (WebKit::NetworkCache::SpeculativeLoadManager::ExpiringEntry::ExpiringEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::wasRevalidated): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::markLoadAsCompleted): (WebKit::NetworkCache::SpeculativeLoadManager::retrieve): (WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry): (WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry): (WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation): (WebKit::NetworkCache::makeSubresourcesKey): Deleted. (WebKit::NetworkCache::constructRevalidationRequest): Deleted. (WebKit::NetworkCache::responseNeedsRevalidation): Deleted. (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::saveToDiskIfReady): Deleted. (WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage): Deleted. (WebKit::NetworkCache::SpeculativeLoadManager::satisfyPendingRequests): Deleted. * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h: 2015-12-08 Csaba Osztrogonác [EFL] REGRESSION(r173394): MiniBrowser stucked in an infinite loop if NETWORK_CACHE is disabled https://bugs.webkit.org/show_bug.cgi?id=137692 Reviewed by Darin Adler. * WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::maximumBufferingTime): Disable caching if NETWORK_CACHE is disabled. 2015-12-08 Ryuan Choi [EFL] Add API to provide preferences before creating ewk_view https://bugs.webkit.org/show_bug.cgi?id=151587 Reviewed by Gyuyoung Kim. This patch adds ewk_view_configuration_settings_get to provide preferences before createing ewk_view. * PlatformEfl.cmake: * UIProcess/API/efl/ewk_view_configuration.cpp: (EwkViewConfiguration::EwkViewConfiguration): (ewk_view_configuration_settings_get): * UIProcess/API/efl/ewk_view_configuration.h: * UIProcess/API/efl/ewk_view_configuration_private.h: (EwkViewConfiguration::pageGroup): * UIProcess/API/efl/tests/test_ewk2_view_configuration.cpp: (TEST_F): Added test case for ewk_view_configuration_settings_get(). 2015-12-07 Gustavo Noronha Silva [GTK] Notify WebCore when notification is clicked https://bugs.webkit.org/show_bug.cgi?id=151951 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitNotification.cpp: (webkit_notification_class_init): new clicked signal. (webkit_notification_clicked): method to emit the clicked signal. * UIProcess/API/gtk/WebKitNotification.h: * UIProcess/API/gtk/WebKitNotificationProvider.cpp: (WebKitNotificationProvider::notificationClickedCallback): handle the clicked signal and tell WebProcess about the click. (WebKitNotificationProvider::show): connect to the clicked signal in addition to closed. * UIProcess/API/gtk/WebKitNotificationProvider.h: * UIProcess/API/gtk/WebKitWebView.cpp: (notifyNotificationClicked): handle the click on our libnotify notification. (webkitWebViewShowNotification): add the "default" action to our libnotify notification to be notified of the click. * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: 2015-12-07 Commit Queue Unreviewed, rolling out r193655. https://bugs.webkit.org/show_bug.cgi?id=151970 This change broke existing LayoutTests on mac-wk2 (Requested by ryanhaddad on #webkit). Reverted changeset: "UIProcess should determine AppNap state for WebPage" https://bugs.webkit.org/show_bug.cgi?id=151964 http://trac.webkit.org/changeset/193655 2015-12-05 Gavin Barraclough UIProcess should determine AppNap state for WebPage https://bugs.webkit.org/show_bug.cgi?id=151964 Reviewed by Anders Carlson. Step 1 in unifying this with the iOS process suppression mechanism is to move the decision out of the WebContent process. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::dispatchViewStateChange): (WebKit::WebPageProxy::setPageActivityState): (WebKit::WebPageProxy::updateActivityToken): (WebKit::WebPageProxy::preferencesDidChange): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::isInWindow): (WebKit::WebPageProxy::didUpdateViewState): * UIProcess/WebPageProxy.messages.in: - WebPage now propagates PageActivityState to the WebPageProxy, for use determining the supression state of the WebProcess. * WebProcess/WebPage/WebPage.cpp: (WebKit::m_shouldDispatchFakeMouseMoveEvents): (WebKit::WebPage::setPageActivityState): (WebKit::WebPage::setUserActivityStarted): (WebKit::WebPage::setViewState): (WebKit::WebPage::updatePreferences): (WebKit::WebPage::updateUserActivity): Deleted. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: - WebPage no longer determines when to update it's own UserActivity - instead, let the UI process do so. As such, no longer need to track whether process supression is enabled. Instead, add message to 2015-12-07 Chris Dumez [WK2] Regression(r187691): If a page is showing an auth pane in one tab, any new tabs with same page hang until credentials are entered in first tab https://bugs.webkit.org/show_bug.cgi?id=151960 Reviewed by Alex Christensen. After r187691, if a page is showing an auth pane in one tab, any new tabs with same page hang until credentials are entered in first tab. This is because we coalescing all authentication challenges from the same domain, no matter what tab they are for. This can be confusing so we now only coalesce authentication challenges within each tab, by leveraging the pageID (in addition to the domain). * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::shouldCoalesceChallenge): (WebKit::AuthenticationManager::coalesceChallengesMatching): (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): * Shared/Authentication/AuthenticationManager.h: 2015-12-07 Beth Dakin Hook up request and show for typing candidates in WK1 https://bugs.webkit.org/show_bug.cgi?id=151831 -and corresponding- Reviewed by Enrica Casucci. Empty client for now. * WebProcess/WebCoreSupport/WebEditorClient.h: 2015-12-07 Philippe Normand [GTK][Mac] socketpair assertion failure https://bugs.webkit.org/show_bug.cgi?id=151293 Reviewed by Carlos Garcia Campos. * Platform/IPC/unix/ConnectionUnix.cpp: Don't use SEQPACKET sockets on Darwin. 2015-12-07 Gwang Yoon Hwang [ThreadedCompositor] Add support for PlatformLayer. https://bugs.webkit.org/show_bug.cgi?id=143299 Reviewed by Žan Doberšek. * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): Swap pending buffers of TextureMapperPlatformLayerProxies before painting contents. (WebKit::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded): In threaded compositor, CoordinatedGraphicsScence only cares about creation and deletion of platform layers. (WebKit::CoordinatedGraphicsScene::onNewBufferAvailable): Whenever new buffer comes via TextureMapperPlatformLayerProxy, CoordinatedGraphicsScene will update the scene if it is needed. 2015-12-07 Mario Sanchez Prada [GTK] Allow applications to force Accelerated Compositing mode https://bugs.webkit.org/show_bug.cgi?id=150558 Reviewed by Carlos Garcia Campos. Enable forcing Accelerated Compositing mode to be always on if a WEBKIT_FORCE_COMPOSITING_MODE environment variable is set. This can be useful for controlled environments where we know that AC always on works well enough, to get smoother animations. * UIProcess/gtk/WebPreferencesGtk.cpp: (WebKit::WebPreferences::platformInitializeStore): Set forceCompositingMode setting to true if the environment variable is found. 2015-12-07 Jon Forsberg [GTK] Add webkit_uri_request_get_http_method https://bugs.webkit.org/show_bug.cgi?id=151601 Reviewed by Martin Robinson. Add a method to get the HTTP method of a WebKitURIRequest. * UIProcess/API/gtk/WebKitURIRequest.cpp: (webkit_uri_request_get_http_method): * UIProcess/API/gtk/WebKitURIRequest.h: * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: 2015-12-07 Carlos Garcia Campos [GTK] Add WebKitWebPage::console-message-sent signal to Web Extensions API https://bugs.webkit.org/show_bug.cgi?id=79918 Reviewed by Gustavo Noronha Silva. Add WebKitConsoleMessage boxed type that is passed to the WebKitWebPage::console-message-sent signal with all the details about the message. * PlatformGTK.cmake: Add new files to compilation. * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols. * UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Add webkit_console_message_get_type. * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section to the docs. * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: (API::InjectedBundle::PageUIClient::willAddMessageToConsole): Add paramaters for all console message details. * WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessage.cpp: Added. (webkit_console_message_copy): (webkit_console_message_free): (webkit_console_message_get_source): (webkit_console_message_get_level): (webkit_console_message_get_text): (webkit_console_message_get_line): (webkit_console_message_get_source_id): * WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessage.h: Added. * WebProcess/InjectedBundle/API/gtk/WebKitConsoleMessagePrivate.h: Added. (_WebKitConsoleMessage::_WebKitConsoleMessage): * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: (webkitWebPageDidSendConsoleMessage): Emit the WebKitWebPage::console-message-sent signal. (didReceiveResponseForResource): Generate a console message in case of HTTP failure >= 400 for consistency with the inspector. (didFailLoadForResource): Generate a console message in case of resource load failure for consistency with the inspector. (webkit_web_page_class_init): Add WebKitWebPage::console-message-sent signal. (webkitWebPageCreate): Set custom UI client. * WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h: * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: (WebKit::InjectedBundlePageUIClient::willAddMessageToConsole): * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::addMessageToConsole): Pass all the console message details to the ui client. 2015-12-07 Ryuan Choi [EFL] MiniBrowser doesn't exit when called ewk_view_try_close() https://bugs.webkit.org/show_bug.cgi?id=151934 Reviewed by Csaba Osztrogonác. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_try_close): Called window_close callback immediately when WKPageTryClose returns true. * UIProcess/API/efl/tests/test_ewk2_view.cpp: (TEST_F): Improved test cases for try_close to test when content does not contain onbeforeunload callback. 2015-12-07 Jaehun Lim [EFL] Moving preference settings from EwkView to WebPreferencesEfl https://bugs.webkit.org/show_bug.cgi?id=151928 Reviewed by Gyuyoung Kim. It implements WebPreferences::platformInitializeStore() in WebPreferencesEfl.cpp. * UIProcess/API/efl/EwkView.cpp: (EwkView::EwkView): * UIProcess/efl/WebPreferencesEfl.cpp: (WebKit::WebPreferences::platformInitializeStore): 2015-12-04 Anders Carlsson Crash when secondary clicking on a link on yahoo.com https://bugs.webkit.org/show_bug.cgi?id=151900 rdar://problem/23765149 Reviewed by Beth Dakin. Don't use +[NSURL URLWithString:] since it doesn't handle invalid URLs as well as WebCore::URL. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::createShareMenuItem): 2015-12-04 Beth Dakin Crash in clients using userData in _immediateActionAnimationControllerForHitTestResult https://bugs.webkit.org/show_bug.cgi?id=151887 Rubber-stamped by Anders Carlsson. Follow-up fix to handle null userData. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]): 2015-12-04 Beth Dakin Crash in clients using userData in _immediateActionAnimationControllerForHitTestResult https://bugs.webkit.org/show_bug.cgi?id=151887 Reviewed by Sam Weinig. Cast this correctly. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]): 2015-12-04 Gavin Barraclough Background state not being tracked correctly for PDFs on iOS https://bugs.webkit.org/show_bug.cgi?id=151886 Reviewed by Anders Carlson. The problem here is that when viewing a PDF we don't have an ApplicationStateTracker. (While we do have a content view - which normally holds the ApplicationStateTracker - the content view is not in a window, and only has an ApplicationStateTracker while in a window). For now, let's give the WKPDFView an ApplicationStateTracker of its very own. In the future we may want to refactor ownership of the ApplicationStateTracker up to the WKWebView. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _isBackground]): - Added, checks background state of content/PDF view. * UIProcess/API/Cocoa/WKWebViewInternal.h: - expose _isBackground to PageClientImplIOS. * UIProcess/ApplicationStateTracker.h: (WebKit::ApplicationStateTracker::isInBackground): * UIProcess/ApplicationStateTracker.mm: (WebKit::isBackgroundState): (WebKit::ApplicationStateTracker::ApplicationStateTracker): - generalize WKContentView -> UIView, so this may now also be a WKPDFView. * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::isViewVisible): - check background state via the WKWebView. * UIProcess/ios/WKPDFView.h: * UIProcess/ios/WKPDFView.mm: (-[WKPDFView willMoveToWindow:]): (-[WKPDFView didMoveToWindow]): (-[WKPDFView isBackground]): (-[WKPDFView _applicationDidEnterBackground]): (-[WKPDFView _applicationWillEnterForeground]): - added methods to initialize ApplicationStateTracker, access background state, & callbacks to the page proxy. 2015-12-04 Antti Koivisto Rename WebResourceLoadScheduler to WebLoaderStrategy https://bugs.webkit.org/show_bug.cgi?id=151854 Reviewed by Anders Carlsson. It implements WebCore::LoaderStrategy and doesn't do any scheduling. * CMakeLists.txt: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/Network/NetworkProcessConnection.cpp: (WebKit::NetworkProcessConnection::didReceiveMessage): * WebProcess/Network/WebLoaderStrategy.cpp: Copied from Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.cpp. (WebKit::WebLoaderStrategy::WebLoaderStrategy): (WebKit::WebLoaderStrategy::~WebLoaderStrategy): (WebKit::WebLoaderStrategy::loadResource): (WebKit::WebLoaderStrategy::schedulePluginStreamLoad): (WebKit::maximumBufferingTime): (WebKit::WebLoaderStrategy::scheduleLoad): (WebKit::WebLoaderStrategy::scheduleInternallyFailedLoad): (WebKit::WebLoaderStrategy::internallyFailedLoadTimerFired): (WebKit::WebLoaderStrategy::startLocalLoad): (WebKit::WebLoaderStrategy::remove): (WebKit::WebLoaderStrategy::setDefersLoading): (WebKit::WebLoaderStrategy::crossOriginRedirectReceived): (WebKit::WebLoaderStrategy::servePendingRequests): (WebKit::WebLoaderStrategy::suspendPendingRequests): (WebKit::WebLoaderStrategy::resumePendingRequests): (WebKit::WebLoaderStrategy::networkProcessCrashed): (WebKit::WebLoaderStrategy::loadResourceSynchronously): (WebKit::WebLoaderStrategy::createPingHandle): (WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler): Deleted. (WebKit::WebResourceLoadScheduler::~WebResourceLoadScheduler): Deleted. (WebKit::WebResourceLoadScheduler::loadResource): Deleted. (WebKit::WebResourceLoadScheduler::schedulePluginStreamLoad): Deleted. (WebKit::WebResourceLoadScheduler::scheduleLoad): Deleted. (WebKit::WebResourceLoadScheduler::scheduleInternallyFailedLoad): Deleted. (WebKit::WebResourceLoadScheduler::internallyFailedLoadTimerFired): Deleted. (WebKit::WebResourceLoadScheduler::startLocalLoad): Deleted. (WebKit::WebResourceLoadScheduler::remove): Deleted. (WebKit::WebResourceLoadScheduler::setDefersLoading): Deleted. (WebKit::WebResourceLoadScheduler::crossOriginRedirectReceived): Deleted. (WebKit::WebResourceLoadScheduler::servePendingRequests): Deleted. (WebKit::WebResourceLoadScheduler::suspendPendingRequests): Deleted. (WebKit::WebResourceLoadScheduler::resumePendingRequests): Deleted. (WebKit::WebResourceLoadScheduler::networkProcessCrashed): Deleted. (WebKit::WebResourceLoadScheduler::loadResourceSynchronously): Deleted. (WebKit::WebResourceLoadScheduler::createPingHandle): Deleted. * WebProcess/Network/WebLoaderStrategy.h: Copied from Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h. (WebKit::WebLoaderStrategy::webResourceLoaderForIdentifier): (WebKit::WebResourceLoadScheduler::webResourceLoaderForIdentifier): Deleted. * WebProcess/Network/WebResourceLoadScheduler.cpp: Removed. * WebProcess/Network/WebResourceLoadScheduler.h: Removed. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::Stream::start): (WebKit::PluginView::Stream::cancel): * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::createLoaderStrategy): (WebKit::WebPlatformStrategies::createPasteboardStrategy): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::networkProcessConnectionClosed): (WebKit::WebProcess::webLoaderStrategy): (WebKit::WebProcess::webResourceLoadScheduler): Deleted. * WebProcess/WebProcess.h: 2015-12-03 Simon Fraser Have layer memory use consult the backing store format https://bugs.webkit.org/show_bug.cgi?id=151827 rdar://problem/23746497 Reviewed by Dean Jackson. When computing the backing store memory size, take the pixel format into account, rather than assuming 4 bytes per pixel. * Shared/mac/RemoteLayerBackingStore.h: * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::bytesPerPixel): * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp: (WebKit::PlatformCALayerRemote::backingStoreBytesPerPixel): * WebProcess/WebPage/mac/PlatformCALayerRemote.h: 2015-12-03 Jer Noble Expose WebCore's InvisibleAutoplayNotPermitted setting to WebKit & WebKit2 https://bugs.webkit.org/show_bug.cgi?id=151830 Reviewed by Anders Carlsson. Add a new, private WKWebViewConfiguration property _invisibleAutoplayNotPermitted. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration _invisibleAutoplayNotPermitted]): (-[WKWebViewConfiguration _setInvisibleAutoplayNotPermitted:]): * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-12-03 Sam Weinig It should be possible to use version 6 of the WKPageUIClient without adopting the new createNewPage https://bugs.webkit.org/show_bug.cgi?id=151826 Reviewed by Anders Carlsson. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): Pick which variant of createNewPage to use based on which function pointer is available, not the version number. 2015-12-03 Anders Carlsson Remove Objective-C GC support https://bugs.webkit.org/show_bug.cgi?id=151819 rdar://problem/23746991 Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: * Configurations/BaseLegacyProcess.xcconfig: * Configurations/BaseXPCService.xcconfig: * Shared/Cocoa/APIObject.mm: (API::Object::newObject): Deleted. 2015-12-03 Jer Noble Unreviewed build-fix; fix !HAVE(AVKIT) build after r193340. * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::applicationDidBecomeActive): 2015-12-03 Sam Weinig Need completionHandler-based WebKit C SPI for alert, confirm, and prompt https://bugs.webkit.org/show_bug.cgi?id=151708 (Add missing function definitions) * UIProcess/API/C/WKPage.cpp: (WKPageRunJavaScriptAlertResultListenerGetTypeID): (WKPageRunJavaScriptAlertResultListenerCall): (WKPageRunJavaScriptConfirmResultListenerGetTypeID): (WKPageRunJavaScriptConfirmResultListenerCall): (WKPageRunJavaScriptPromptResultListenerGetTypeID): (WKPageRunJavaScriptPromptResultListenerCall): 2015-12-03 Jer Noble [iOS] Fullscreen -> PiP should resume to Fullscreen, not inline https://bugs.webkit.org/show_bug.cgi?id=150906 Reviewed by Simon Fraser. Add methods to pass isVisible(), applicationDidBecomeActive(), and requestFullscreenMode() to and from models and interfaces. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationDidBecomeActive): Notify the fullscreen manager, if preset. * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenModelContext::requestFullscreenMode): Renamed from requestExitFullscreen(); takes a mode enum. (WebKit::WebVideoFullscreenModelContext::isVisible): Added. (WebKit::WebVideoFullscreenManagerProxy::applicationDidBecomeActive): Pass to all existing interfaces. (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Do not re-create the view if it already exists. (WebKit::WebVideoFullscreenManagerProxy::requestFullscreenMode): Renamed from requestExitFullscreen(); takes a mode enum. (WebKit::WebVideoFullscreenManagerProxy::isVisible): Added. Query Page::isVisible() and Page::isInWindow(), the latter because PiP will cause Page::isVisible() to be TRUE even when the containing tab is backgrounded. (WebKit::WebVideoFullscreenModelContext::requestExitFullscreen): Deleted. (WebKit::WebVideoFullscreenManagerProxy::requestExitFullscreen): Deleted. * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Only resize the view if we are not already in one of the fullscreen modes. (WebKit::WebVideoFullscreenManager::requestFullscreenMode): Renamed from requestExitFullscreen(). (WebKit::WebVideoFullscreenManager::requestExitFullscreen): Deleted. 2015-12-02 Antti Koivisto Move ResourceLoadScheduler to WebKit1 https://bugs.webkit.org/show_bug.cgi?id=151743 Reviewed by Alex Christensen. * NetworkProcess/NetworkProcessPlatformStrategies.cpp: (WebKit::NetworkProcessPlatformStrategies::createCookiesStrategy): (WebKit::NetworkProcessPlatformStrategies::createLoaderStrategy): (WebKit::NetworkProcessPlatformStrategies::createPasteboardStrategy): (WebKit::NetworkProcessPlatformStrategies::createPluginStrategy): (WebKit::NetworkProcessPlatformStrategies::createBlobRegistry): (WebKit::NetworkProcessPlatformStrategies::resourceLoadScheduler): Deleted. (WebKit::NetworkProcessPlatformStrategies::loadResourceSynchronously): Deleted. * NetworkProcess/NetworkProcessPlatformStrategies.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: * WebProcess/Network/WebResourceLoadScheduler.cpp: (WebKit::WebResourceLoadScheduler::~WebResourceLoadScheduler): (WebKit::WebResourceLoadScheduler::loadResource): (WebKit::WebResourceLoadScheduler::resumePendingRequests): (WebKit::WebResourceLoadScheduler::networkProcessCrashed): (WebKit::WebResourceLoadScheduler::loadResourceSynchronously): (WebKit::WebResourceLoadScheduler::createPingHandle): (WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad): Deleted. (WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled): Deleted. * WebProcess/Network/WebResourceLoadScheduler.h: (WebKit::WebResourceLoadScheduler::webResourceLoaderForIdentifier): * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::Stream::start): (WebKit::PluginView::Stream::cancel): * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::createLoaderStrategy): (WebKit::WebPlatformStrategies::createPasteboardStrategy): (WebKit::WebPlatformStrategies::createPluginStrategy): (WebKit::WebPlatformStrategies::createBlobRegistry): (WebKit::WebPlatformStrategies::cookiesForDOM): (WebKit::WebPlatformStrategies::deleteCookie): (WebKit::WebPlatformStrategies::refreshPlugins): (WebKit::WebPlatformStrategies::resourceLoadScheduler): Deleted. (WebKit::WebPlatformStrategies::loadResourceSynchronously): Deleted. (WebKit::WebPlatformStrategies::createPingHandle): Deleted. * WebProcess/WebCoreSupport/WebPlatformStrategies.h: 2015-12-02 Alex Christensen Fix authentication requests with NetworkSession and canHandleHTTPSServerTrustEvaluation true https://bugs.webkit.org/show_bug.cgi?id=151775 rdar://problem/23586265 Reviewed by Chris Dumez. In https://bugs.webkit.org/show_bug.cgi?id=150968 I copied functionality from NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync into NetworkLoad::didReceiveChallenge but I overlooked the call to m_client.canAuthenticateAgainstProtectionSpaceAsync which is needed if canHandleHTTPSServerTrustEvaluation is true. This adds that call and moves what should happen after that to NetworkLoad::continueCanAuthenticateAgainstProtectionSpace. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveChallenge): (WebKit::NetworkLoad::didReceiveResponse): (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkSession.h: * Shared/Authentication/AuthenticationManager.h: 2015-12-01 Hunseop Jeong Unreviewed, fix build after r192931. * CMakeLists.txt: Remove the WKOriginDataManager in CMakeLists.txt. 2015-12-01 Yusuke Suzuki [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature https://bugs.webkit.org/show_bug.cgi?id=150792 Reviewed by Saam Barati. * Configurations/FeatureDefines.xcconfig: 2015-12-01 Commit Queue Unreviewed, rolling out r192914. https://bugs.webkit.org/show_bug.cgi?id=151734 JSC tests for this change are failing on 32 and 64-bit bots (Requested by ryanhaddad on #webkit). Reverted changeset: "[ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature" https://bugs.webkit.org/show_bug.cgi?id=150792 http://trac.webkit.org/changeset/192914 2015-12-01 Anders Carlsson Remove WKOriginDataManager https://bugs.webkit.org/show_bug.cgi?id=151723 Reviewed by Andy Estes. * UIProcess/API/C/WKOriginDataManager.cpp: Removed. (WKOriginDataManagerGetTypeID): Deleted. (WKOriginDataManagerGetOrigins): Deleted. (WKOriginDataManagerDeleteEntriesForOrigin): Deleted. (WKOriginDataManagerDeleteEntriesModifiedBetweenDates): Deleted. (WKOriginDataManagerDeleteAllEntries): Deleted. * UIProcess/API/C/WKOriginDataManager.h: Removed. * WebKit2.xcodeproj/project.pbxproj: 2015-12-01 Yusuke Suzuki [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature https://bugs.webkit.org/show_bug.cgi?id=150792 Reviewed by Saam Barati. * Configurations/FeatureDefines.xcconfig: 2015-12-01 Sam Weinig Need completionHandler-based WebKit C SPI for alert, confirm, and prompt https://bugs.webkit.org/show_bug.cgi?id=151708 Reviewed by Anders Carlsson. Add listener based versions of alert, confirm and prompt. * Shared/API/APIObject.h: * Shared/API/c/WKBase.h: * UIProcess/API/C/WKPage.cpp: (WebKit::RunJavaScriptAlertResultListener::create): (WebKit::RunJavaScriptAlertResultListener::~RunJavaScriptAlertResultListener): (WebKit::RunJavaScriptAlertResultListener::call): (WebKit::RunJavaScriptAlertResultListener::RunJavaScriptAlertResultListener): (WebKit::RunJavaScriptConfirmResultListener::create): (WebKit::RunJavaScriptConfirmResultListener::~RunJavaScriptConfirmResultListener): (WebKit::RunJavaScriptConfirmResultListener::call): (WebKit::RunJavaScriptConfirmResultListener::RunJavaScriptConfirmResultListener): (WebKit::RunJavaScriptPromptResultListener::create): (WebKit::RunJavaScriptPromptResultListener::~RunJavaScriptPromptResultListener): (WebKit::RunJavaScriptPromptResultListener::call): (WebKit::RunJavaScriptPromptResultListener::RunJavaScriptPromptResultListener): (WKPageSetPageUIClient): * UIProcess/API/C/WKPageUIClient.h: 2015-12-01 Anders Carlsson Remove WebKit2.framework https://bugs.webkit.org/show_bug.cgi?id=151715 Reviewed by Dan Bernstein. * Configurations/WebKit2.xcconfig: Removed. * UIProcess/API/Cocoa/WebKit2.h: Removed. * WebKit2.xcodeproj/project.pbxproj: * mac/Info-WebKit2.plist: Removed. * mac/MigrateHeadersToWebKit2.make: Removed. * mac/WebKit2.m: Removed. 2015-12-01 Alex Christensen Use Optional for matrix inverses https://bugs.webkit.org/show_bug.cgi?id=151575 Reviewed by Myles C. Maxfield. * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::convertFromRootView): * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: (WebKit::NetscapePlugin::convertPoint): * 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): 2015-12-01 Tim Horton Remove swipe snapshot before main document load if scroll position is already restored https://bugs.webkit.org/show_bug.cgi?id=151224 Reviewed by Darin Adler. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::didRestoreScrollPosition): * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didRestoreScrollPosition): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didRestoreScrollPosition): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::didRestoreScrollPosition): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didRestoreScrollPosition): * WebProcess/WebPage/WebPage.h: Plumb didRestoreScrollPosition through to ViewGestureController (yikes!). * UIProcess/ViewGestureController.cpp: (WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame): Cancel waiting for any more loads if we get to firstVisuallyNonEmptyLayout. (WebKit::ViewGestureController::didReachMainFrameLoadTerminalState): Cancel waiting for scroll position restoration if we make it to main frame load, because there is a chance we won't be able to restore the old scroll position, and by main frame load time we've tried as hard as we're going to to restore it. * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::endSwipeGesture): Make some legacy-style-only code clearer that it's legacy-style-only. Wait for scroll position restoration. 2015-12-01 Carlos Garcia Campos REGRESSION(r192834): [GTK] Test /webkit2/WebKitWebView/editor-state/typing-attributes times out after r192834 https://bugs.webkit.org/show_bug.cgi?id=151699 Reviewed by Tim Horton. In r192834 the code to send EditorStateChanged message to the UI process from WebPage::didChangeSelection was removed for non-mac ports. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection): Send EditorStateChanged message to the UI process also for non-mac ports, as before r192834. 2015-12-01 Carlos Garcia Campos Unreviewed. Fix timeouts in several HTTP layout tests in GTK+ after r192796. In r192796, the initialization of m_ignoreTLSErrors in WebProcessPool was removed by mistake, making all HTTP tests that use HTTPS fail due to invalid certificate errors. * UIProcess/WebProcessPool.h: Bring back m_ignoreTLSErrors initialization. 2015-12-01 Carlos Garcia Campos REGRESSION(r192247): [GTK] ASSERTION FAILED: type == WebCore::ActionType || type == WebCore::CheckableActionType || type == WebCore::SeparatorType https://bugs.webkit.org/show_bug.cgi?id=151513 Reviewed by Martin Robinson. This happens because we are using our own WebContextMenuItemGtk derived from WebContextMenuItemData, but using our own submenu items handling. We are using the non-submenu WebContextMenuItemData constructor to create our submenu items too, because WebContextMenuItemData always expect the submenu items to be passed to the constructor, but we have a set_submenu method in the public API. So we consider that a WebContextMenuItemGtk is SubmenuType if it has submenu items, but we use the action type internally. When converting a WebContextMenuItemGtk to a generic WebContextMenuItemData, we correctly set the type and pass the submenu items to the approriate constructor. * Shared/gtk/WebContextMenuItemGtk.cpp: (WebKit::WebContextMenuItemGtk::WebContextMenuItemGtk): When constructing from a WebContextMenuItemData, set the type as ActionType when it's a submenu type. * Shared/gtk/WebContextMenuItemGtk.h: (WebKit::WebContextMenuItemGtk::type): Return SubmenuType if submenu items vector is not empty, otherwise use the parent method. * UIProcess/API/gtk/WebKitContextMenuItem.cpp: (webkit_context_menu_item_new_with_submenu): Create the WebContextMenuItemGtk as ActionType. 2015-12-01 Carlos Garcia Campos Unreviewed. Add missing inspector files to the GTK+ build. * PlatformGTK.cmake: Add also Debug css files. 2015-11-30 Alexey Proskuryakov Build fix for some compiler versions. * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: Disable deprecation warnings while processing SOFT_LINK_CLASS too. 2015-11-30 Jiewen Tan Null dereference loading Blink layout test http/tests/misc/detach-during-notifyDone.html https://bugs.webkit.org/show_bug.cgi?id=149309 Reviewed by Brent Fulgham. Callback of bundle clients could kill the documentloader. Therefore, make a copy of the navigationID before invoking the callback. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage): (WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage): (WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage): (WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage): (WebKit::WebFrameLoaderClient::dispatchDidFailLoad): (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad): (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad): 2015-11-30 Tim Horton Get rid of the !USE(ASYNC_NSTEXTINPUTCLIENT) codepath https://bugs.webkit.org/show_bug.cgi?id=151673 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/API/mac/WKView.mm: * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::resignFirstResponder): Deleted. (WebKit::WebViewImpl::interpretKeyEvent): Deleted. (WebKit::WebViewImpl::executeSavedKeypressCommands): Deleted. (WebKit::WebViewImpl::doCommandBySelector): Deleted. (WebKit::WebViewImpl::insertText): Deleted. (WebKit::WebViewImpl::inputContext): Deleted. (WebKit::WebViewImpl::selectedRange): Deleted. (WebKit::WebViewImpl::hasMarkedText): Deleted. (WebKit::WebViewImpl::unmarkText): Deleted. (WebKit::WebViewImpl::setMarkedText): Deleted. (WebKit::WebViewImpl::markedRange): Deleted. (WebKit::WebViewImpl::attributedSubstringForProposedRange): Deleted. (WebKit::WebViewImpl::characterIndexForPoint): Deleted. (WebKit::WebViewImpl::firstRectForCharacterRange): Deleted. (WebKit::WebViewImpl::performKeyEquivalent): Deleted. (WebKit::WebViewImpl::keyUp): Deleted. (WebKit::WebViewImpl::keyDown): Deleted. (WebKit::WebViewImpl::flagsChanged): Deleted. * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): Deleted. (WebKit::WebPageProxy::resetStateAfterProcessExited): Deleted. * UIProcess/WebPageProxy.h: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::notifyApplicationAboutInputContextChange): Deleted. * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::setComposition): Deleted. (WebKit::WebPageProxy::confirmComposition): Deleted. (WebKit::WebPageProxy::insertText): Deleted. (WebKit::WebPageProxy::insertDictatedText): Deleted. (WebKit::WebPageProxy::getMarkedRange): Deleted. (WebKit::WebPageProxy::getSelectedRange): Deleted. (WebKit::WebPageProxy::getAttributedSubstringFromRange): Deleted. (WebKit::WebPageProxy::characterIndexForPoint): Deleted. (WebKit::WebPageProxy::firstRectForCharacterRange): Deleted. (WebKit::WebPageProxy::executeKeypressCommands): Deleted. (WebKit::WebPageProxy::cancelComposition): Deleted. (WebKit::WebPageProxy::editorStateChanged): Deleted. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::setComposition): Deleted. (WebKit::WebPage::confirmComposition): Deleted. (WebKit::WebPage::insertText): Deleted. (WebKit::WebPage::insertDictatedText): Deleted. (WebKit::WebPage::getMarkedRange): Deleted. (WebKit::WebPage::getSelectedRange): Deleted. (WebKit::WebPage::getAttributedSubstringFromRange): Deleted. (WebKit::WebPage::characterIndexForPoint): Deleted. (WebKit::WebPage::firstRectForCharacterRange): Deleted. (WebKit::WebPage::executeKeypressCommands): Deleted. (WebKit::WebPage::cancelComposition): Deleted. 2015-11-30 Tim Horton Remove some unused synchronous drawing SPI https://bugs.webkit.org/show_bug.cgi?id=151672 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/mac/WKView.mm: (-[WKView forceAsyncDrawingAreaSizeUpdate:]): Deleted. (-[WKView waitForAsyncDrawingAreaSizeUpdate]): Deleted. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::forceAsyncDrawingAreaSizeUpdate): Deleted. (WebKit::WebViewImpl::waitForAsyncDrawingAreaSizeUpdate): Deleted. 2015-11-30 Tim Horton Get rid of the legacy swipe shadow style https://bugs.webkit.org/show_bug.cgi?id=151671 Reviewed by Anders Carlsson. * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): Deleted. (WebKit::ViewGestureController::handleSwipeGesture): Deleted. (WebKit::ViewGestureController::removeSwipeSnapshot): Deleted. It is no longer needed. 2015-11-30 Tim Horton [iOS] Option-up and Option-down should scroll a little less than a full page https://bugs.webkit.org/show_bug.cgi?id=151538 Reviewed by Simon Fraser. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _scrollOffsetForEvent:]): (-[WKContentView _interpretKeyEvent:isCharEvent:]): Clean up the code a little, and adjust so that we *always* use pageStep instead of just scrolling by the unobscured rect when scrolling by a page. Previously, we did for the spacebar, but not for option-up and option-down. 2015-11-30 Brian Burg Web Inspector: using "Reload Web Inspector" when docked breaks dock-specific styles https://bugs.webkit.org/show_bug.cgi?id=151642 Reviewed by Timothy Hatcher. After a frontend loads, explicitly tell it about the current dock state. This is necessary for force-reloading the inspector, since the dock state isn't sent from UIProcess in this case. * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::frontendLoaded): (WebKit::WebInspectorUI::setDockingUnavailable): * WebProcess/WebPage/WebInspectorUI.h: 2015-11-30 Alex Christensen Make ProcessModel always MultipleSecondaryProcesses https://bugs.webkit.org/show_bug.cgi?id=151662 Reviewed by Antti Koivisto. Single WebProcess behavior can still be achieved by setting the maximum number of WebProcesses to 1. * Shared/API/c/WKDeprecatedFunctions.cpp: (WKContextSetUsesNetworkProcess): (WKContextSetProcessModel): (WKContextGetProcessModel): (WKGraphicsContextGetCGContext): * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::createWithLegacyOptions): (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/C/WKAPICast.h: (WebKit::toAPI): (WebKit::toFontSmoothingLevel): (WebKit::toProcessModel): Deleted. * UIProcess/API/C/WKContext.cpp: (WKContextGetCacheModel): (WKContextSetMaximumNumberOfProcesses): (WKContextSetProcessModel): Deleted. (WKContextGetProcessModel): Deleted. * UIProcess/API/C/WKContext.h: * UIProcess/API/Cocoa/WKProcessGroup.mm: (-[WKProcessGroup initWithInjectedBundleURL:]): * UIProcess/API/Cocoa/WKProcessPool.mm: * UIProcess/API/efl/ewk_context.cpp: (EwkContext::cacheModel): (EwkContext::setProcessModel): (EwkContext::processModel): (EwkContext::clearResourceCache): (EwkContext::jsGlobalContext): (ewk_context_message_from_extensions_callback_set): (ewk_context_process_model_set): (ewk_context_process_model_get): (ewk_context_tls_error_policy_get): (toWKProcessModel): Deleted. (toEwkProcessModel): Deleted. * UIProcess/API/gtk/WebKitWebContext.cpp: * UIProcess/ProcessModel.h: Removed. * UIProcess/WebCookieManagerProxy.cpp: (WebKit::WebCookieManagerProxy::shouldTerminate): (WebKit::WebCookieManagerProxy::refWebContextSupplement): * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::inspectorProcessPool): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reattachToWebProcess): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::create): (WebKit::WebProcessPool::setDownloadClient): (WebKit::WebProcessPool::setMaximumNumberOfProcesses): (WebKit::WebProcessPool::processDidCachePage): (WebKit::WebProcessPool::createNewWebProcess): (WebKit::WebProcessPool::disconnectProcess): (WebKit::WebProcessPool::createWebPage): (WebKit::WebProcessPool::postMessageToInjectedBundle): (WebKit::WebProcessPool::requestWebContentStatistics): (WebKit::WebProcessPool::requestNetworkingStatistics): (WebKit::WebProcessPool::setProcessModel): Deleted. (WebKit::WebProcessPool::ensureSharedWebProcess): Deleted. * UIProcess/WebProcessPool.h: (WebKit::WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary): (WebKit::WebProcessPool::sendToOneProcess): * WebKit2.xcodeproj/project.pbxproj: 2015-11-30 Chris Dumez [WK2][Cache] We should not speculatively revalidate transient resources https://bugs.webkit.org/show_bug.cgi?id=151402 Reviewed by Antti Koivisto. We should not speculatively revalidate transient resources. This patch adds a simple and conservative algorithm to detect that a subresource is transient and then ignores those when doing the speculative revalidation. The algorithm is question marks as transient all subresources that are not common to the 2 last loads of a main resource. This is not perfect as I see the number of non-speculative revalidations going up to 11-12 from 9 in the context of the warm PLT. However, it is best to be conservative at first and we can improve this later. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::retrieve): * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::create): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::~PendingFrameLoad): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::registerSubresource): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::markLoadAsCompleted): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::setExistingSubresourcesEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::saveToDiskIfReady): (WebKit::NetworkCache::SpeculativeLoadManager::registerLoad): (WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation): (WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry): (WebKit::NetworkCache::SpeculativeLoadManager::retrieve): Deleted. (WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry): Deleted. * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h: * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: (WebKit::NetworkCache::SubresourcesEntry::encodeAsStorageRecord): (WebKit::NetworkCache::SubresourcesEntry::decodeStorageRecord): (WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry): (WebKit::NetworkCache::SubresourcesEntry::updateSubresourceKeys): * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: (WebKit::NetworkCache::SubresourcesEntry::SubresourceInfo::encode): (WebKit::NetworkCache::SubresourcesEntry::SubresourceInfo::decode): (WebKit::NetworkCache::SubresourcesEntry::SubresourceInfo::SubresourceInfo): (WebKit::NetworkCache::SubresourcesEntry::subresources): 2015-11-30 Brent Fulgham [Mac] Add font service permission to the sandbox profile https://bugs.webkit.org/show_bug.cgi?id=151509 Reviewed by Anders Carlsson. Update the sandbox profile for Mac WebKit to allow access to the "com.apple.fonts" service. * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb: * WebProcess/com.apple.WebProcess.sb.in: 2015-11-30 Alex Christensen Make usesNetworkProcess always true https://bugs.webkit.org/show_bug.cgi?id=151580 Reviewed by Darin Adler. * NetworkProcess/mac/RemoteNetworkingContext.mm: (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): * Shared/API/c/WKDeprecatedFunctions.cpp: (WKInspectorToggleJavaScriptProfiling): (WKContextSetUsesNetworkProcess): (WKGraphicsContextGetCGContext): * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: (WebKit::CustomProtocolManager::initializeConnection): (WebKit::CustomProtocolManager::initialize): * Shared/Network/CustomProtocols/CustomProtocolManager.h: * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp: (WebKit::CustomProtocolManager::initialize): * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::createWithLegacyOptions): (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/C/WKContext.cpp: (WKContextSetJavaScriptGarbageCollectorTimerEnabled): (WKContextUseTestingNetworkSession): (WKContextSetUsesNetworkProcess): Deleted. * UIProcess/API/C/WKContextPrivate.h: * UIProcess/API/Cocoa/WKProcessGroup.mm: (-[WKProcessGroup initWithInjectedBundleURL:]): * UIProcess/API/efl/ewk_context.cpp: (EwkContext::setProcessModel): * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::updateProcessSuppressionState): (WebKit::WebProcessPool::platformInitializeWebProcess): * UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::cancel): (WebKit::DownloadProxy::invalidate): * UIProcess/WebCookieManagerProxy.cpp: (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): (WebKit::m_processSuppressionDisabledForPageCounter): (WebKit::WebProcessPool::networkingProcessConnection): (WebKit::WebProcessPool::languageChanged): (WebKit::WebProcessPool::textCheckerStateChanged): (WebKit::WebProcessPool::ensureNetworkProcess): (WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled): (WebKit::WebProcessPool::createNewWebProcess): (WebKit::WebProcessPool::download): (WebKit::WebProcessPool::resumeDownload): (WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation): (WebKit::WebProcessPool::setCacheModel): (WebKit::WebProcessPool::createDownloadProxy): (WebKit::WebProcessPool::addMessageReceiver): (WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost): (WebKit::WebProcessPool::setHTTPPipeliningEnabled): (WebKit::WebProcessPool::requestNetworkingStatistics): (WebKit::WebProcessPool::setUsesNetworkProcess): Deleted. (WebKit::WebProcessPool::usesNetworkProcess): Deleted. * UIProcess/WebProcessPool.h: (WebKit::WebProcessPool::sendToNetworkingProcess): (WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shutDown): (WebKit::WebProcessProxy::removeWebPage): (WebKit::WebProcessProxy::canTerminateChildProcess): (WebKit::WebProcessProxy::updateTextCheckerState): (WebKit::WebProcessProxy::didSaveToPageCache): (WebKit::WebProcessProxy::didSetAssertionState): (WebKit::WebProcessProxy::createDownloadProxy): Deleted. * UIProcess/WebProcessProxy.h: * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::setIgnoreTLSErrors): * WebProcess/FileAPI/BlobRegistryProxy.cpp: (WebKit::BlobRegistryProxy::registerFileBlobURL): (WebKit::BlobRegistryProxy::registerBlobURL): (WebKit::BlobRegistryProxy::unregisterBlobURL): (WebKit::BlobRegistryProxy::registerBlobURLForSlice): (WebKit::BlobRegistryProxy::blobSize): * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::cookiesForDOM): (WebKit::WebPlatformStrategies::setCookiesFromDOM): (WebKit::WebPlatformStrategies::cookiesEnabled): (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): (WebKit::WebPlatformStrategies::getRawCookies): (WebKit::WebPlatformStrategies::deleteCookie): (WebKit::WebPlatformStrategies::resourceLoadScheduler): (WebKit::WebPlatformStrategies::loadResourceSynchronously): (WebKit::WebPlatformStrategies::createPingHandle): (WebKit::WebPlatformStrategies::createBlobRegistry): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::startDownload): (WebKit::WebFrame::convertMainResourceLoadToDownload): (WebKit::WebFrame::source): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): (WebKit::m_webSQLiteDatabaseTracker): (WebKit::WebProcess::initializeConnection): (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::ensureNetworkProcessConnection): (WebKit::WebProcess::destroyPrivateBrowsingSession): (WebKit::WebProcess::pluginProcessConnectionManager): (WebKit::WebProcess::shouldTerminate): (WebKit::WebProcess::setInjectedBundleParameters): (WebKit::WebProcess::networkConnection): (WebKit::WebProcess::setEnhancedAccessibility): (WebKit::WebProcess::prefetchDNS): (WebKit::WebProcess::didCreateDownload): Deleted. (WebKit::WebProcess::didDestroyDownload): Deleted. (WebKit::WebProcess::downloadProxyConnection): Deleted. (WebKit::WebProcess::downloadsAuthenticationManager): Deleted. (WebKit::WebProcess::downloadManager): Deleted. (WebKit::WebProcess::usesNetworkProcess): Deleted. (WebKit::WebProcess::downloadRequest): Deleted. (WebKit::WebProcess::resumeDownload): Deleted. (WebKit::WebProcess::cancelDownload): Deleted. * WebProcess/WebProcess.h: (WebKit::WebProcess::textCheckerState): (WebKit::WebProcess::eventDispatcher): * WebProcess/WebProcess.messages.in: * WebProcess/soup/WebProcessSoup.cpp: (WebKit::WebProcess::platformSetCacheModel): (WebKit::WebProcess::platformClearResourceCaches): (WebKit::WebProcess::platformInitializeWebProcess): (WebKit::WebProcess::platformTerminate): (WebKit::getCacheDiskFreeSize): Deleted. (WebKit::setSoupSessionAcceptLanguage): Deleted. (WebKit::languageChanged): Deleted. (WebKit::WebProcess::setIgnoreTLSErrors): Deleted. (WebKit::WebProcess::allowSpecificHTTPSCertificateForHost): Deleted. 2015-11-30 Carlos Garcia Campos [GTK] UI process crash when the screensaver DBus proxy is being created while the web view is destroyed https://bugs.webkit.org/show_bug.cgi?id=151653 Reviewed by Martin Robinson. We correctly cancel the proxy creation, but when the async ready callback is called, the view could be destroyed already. In that case g_dbus_proxy_new_for_bus_finish() will return nullptr and fail with cancelled error, but we are using the passed web view without checking first if the creation failed or not. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (screenSaverProxyCreatedCallback): 2015-11-28 Tim Horton Stop unnecessarily copying WKWebViewConfiguration in a few places https://bugs.webkit.org/show_bug.cgi?id=151639 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView dealloc]): (-[WKWebView _contentProviderRegistry]): (-[WKWebView _selectionGranularity]): (-[WKWebView _setHasCustomContentView:loadedMIMEType:]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::mimeTypesWithCustomContentProviders): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView _stopAssistingKeyboard]): Looking at allocation traces I noticed that we were making way more WKWebViewConfigurations than made sense; looking at backtraces I found a few internal callers of -[WKWebView configuration], which copies the configuration. There's no reason for these internal callers to make such a copy, though. I'm not exactly sure what the usual approach is here, but I added getters so WKContentViewInteraction and PageClientImplIOS can get to the values they're looking for without using the configuration property. 2015-11-27 Brady Eidson Modern IDB: Class-ify IDBGetResult making it impossible to get the data members wrong. https://bugs.webkit.org/show_bug.cgi?id=151627 Reviewed by Alexey Proskuryakov. * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::getRecordFromBackingStore): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h: * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getIndexRecord): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): * Shared/WebCoreArgumentCoders.h: * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in: 2015-11-27 Carlos Garcia Campos [GTK] Remove the remaining uses of GMainLoopSource https://bugs.webkit.org/show_bug.cgi?id=151632 Reviewed by Žan Doberšek. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate): (_WebKitWebViewBasePrivate::clearRedirectedWindowSoonTimerFired): (webkitWebViewBaseClearRedirectedWindowSoon): (webkitWebViewBaseEnterAcceleratedCompositingMode): 2015-11-23 Carlos Garcia Campos [GTK] Use the network process unconditionally https://bugs.webkit.org/show_bug.cgi?id=151541 Reviewed by Alex Christensen. Make the shared secondary process model become multiple secondary process model with a limit of 1 web process. Use the same options when creating a context with legacy configuration (unit tests and inspector proxy). * NetworkProcess/gtk/NetworkProcessMainGtk.cpp: * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::createWithLegacyOptions): * UIProcess/API/gtk/WebKitWebContext.cpp: (webkitWebContextConstructed): (webkit_web_context_set_process_model): (webkit_web_context_get_process_model): (webkit_web_context_set_web_process_count_limit): (webkit_web_context_get_web_process_count_limit): (toWebKitProcessModel): Deleted. * UIProcess/gtk/WebInspectorProxyGtk.cpp: * UIProcess/gtk/WebProcessPoolGtk.cpp: (WebKit::WebProcessPool::setIgnoreTLSErrors): (WebKit::WebProcessPool::platformInitializeWebProcess): 2015-11-23 Brian Burg Web Inspector: inspector settings should not be shared between different inspection levels https://bugs.webkit.org/show_bug.cgi?id=151151 Reviewed by Timothy Hatcher. In WebKit2, we already track the inspection level of WebPages in order to give inspectors different page groups. Send the inspection level to WebInspectorUI WebProcess when establishing a connection from the UIProcess. Use this number in the FrontendClient. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::inspectionLevel): Renamed from inspectorLevel to be consistent. (WebKit::WebInspectorProxy::inspectorPageGroupIdentifier): (WebKit::WebInspectorProxy::didRelaunchInspectorPageProcess): (WebKit::WebInspectorProxy::eagerlyCreateInspectorPage): (WebKit::WebInspectorProxy::createInspectorPage): (WebKit::WebInspectorProxy::inspectorLevel): Deleted. * UIProcess/WebInspectorProxy.h: * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::updateInspectorWindowTitle): * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::establishConnection): * WebProcess/WebPage/WebInspectorUI.h: * WebProcess/WebPage/WebInspectorUI.messages.in: 2015-11-23 Gyuyoung Kim REGRESSION(r188206): [EFL] Missing to adjust scrollbar size to ewk_view_contents_size_get API test https://bugs.webkit.org/show_bug.cgi?id=148735 Reviewed by Csaba Osztrogonác. r189256 missed to adjust scrollbar size to other tests in ewk_view_contents_size_get() API test. In this case we need to apply scrollbar size to both width and height unlike previous fix. Because horizontal scrollbar is also shown since device pixel ratio(= 2.0) is adjusted. * UIProcess/API/efl/tests/test_ewk2_view.cpp: (TEST_F): 2015-11-23 Alex Christensen Fix crash in ~WebProcessPool when using Geolocation with useNetworkProcess=true https://bugs.webkit.org/show_bug.cgi?id=151532 Reviewed by Benjamin Poulain. * UIProcess/WebGeolocationManagerProxy.cpp: (WebKit::WebGeolocationManagerProxy::processPoolDestroyed): (WebKit::WebGeolocationManagerProxy::processDidClose): When a WebProcessPool is destroyed, only call stopUpdating if m_updateRequesters.clear() stopped the updating, like we do in WebGeolocationManagerProxy::removeRequester. Otherwise, call setEnableHighAccuracy if needed, also like we do in WebGeolocationManagerProxy::removeRequester. 2015-11-23 Brian Burg Web Inspector: when inspecting the inspector, add the inspection level to the title bar https://bugs.webkit.org/show_bug.cgi?id=151555 Reviewed by Timothy Hatcher. If the inspection level says we are inspecting an inspector, include the level in the title bar to easily disambiguate it from the base level inspector. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::updateInspectorWindowTitle): 2015-11-23 Csaba Osztrogonác Unreviewed speculative buildfix after r192701. * PlatformMac.cmake: 2015-11-23 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.11.2 release. * gtk/NEWS: Add release notes for 2.11.2. 2015-11-22 Carlos Garcia Campos Unreviewed. Add missing inspector file to GTK+ compilation. * PlatformGTK.cmake: == Rolled over to ChangeLog-2015-11-21 ==