2015-11-20 Simon Fraser More deviceRGB color cleanup https://bugs.webkit.org/show_bug.cgi?id=151523 Reviewed by Tim Horton. Replace calls to deviceRGBColorSpaceRef() with sRGBColorSpaceRef(), and use sRGBColorSpaceRef() in a few places that were manually creating the colorspace. Also use cachedCGColor() in a more places that were manually constructing CGColorRefs from Colors. * Shared/cg/ShareableBitmapCG.cpp: (WebKit::ShareableBitmap::createGraphicsContext): (WebKit::ShareableBitmap::createCGImage): * Shared/mac/RemoteLayerTreePropertyApplier.mm: (WebKit::cgColorFromColor): * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::initializeDebugIndicator): 2015-11-20 Geoffrey Garen A window with a hung tab waits 5s before becoming active https://bugs.webkit.org/show_bug.cgi?id=151426 Reviewed by Sam Weinig. This patch adds an optimization to skip the synchronous web process message to check for a legacy scrollbar when we know that legacy scrollbars are not enabled. (Note that legacy scrollbars don't work quite right, due to and . Still, I verified with logging that we do the synchronous message when legacy scrollbars are enabled.) A consequence of this change is that we will no longer support click-to-scroll-while-inactive behavior for scrollbars with custom looks on systems with modern scrollbars. I spoke with Beth and Dan, and they agreed that this is a reasonable change to make, since we don't support click-to-scroll-while-inactive behavior for fully custom scrollbars either, and since systems with modern scrollbars typically use swipe to scroll. * UIProcess/Cocoa/WebViewImpl.h: Added some helper functions to explain the behaviors we're checking for. * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::mightBeginDragWhileInactive): Factored out from shouldDelayWindowOrderingForEvent. (WebKit::WebViewImpl::mightBeginScrollWhileInactive): New function. (WebKit::WebViewImpl::acceptsFirstMouse): Moved this function next to shouldDelayWindowOrderingForEvent because their responsibilities are very similar. Added a fast path check for when we know that we will not accept first mouse because we can't start a drag or scroll by clicking while inactive. (WebKit::WebViewImpl::shouldDelayWindowOrderingForEvent): Refactored to use the helper function. Behavior unchanged. 2015-11-20 Geoffrey Garen A hung webpage pretends to be responsive if you scroll https://bugs.webkit.org/show_bug.cgi?id=151518 Reviewed by Sam Weinig. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::sendWheelEvent): (WebKit::WebPageProxy::didReceiveEvent): Don't treat wheel events as starting or stopping the responsiveness timer. Wheel events usually process on the event dispatch thread, which responds even if the main thread is hung. Instead, send an out-of-band ping to the main thread to verify that it is still responsive and we'll be able to paint and respond to clicks after scrolling. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::sendMainThreadPing): (WebKit::WebProcessProxy::didReceiveMainThreadPing): * UIProcess/WebProcessProxy.h: * UIProcess/WebProcessProxy.messages.in: UI process support for pinging the main thread in the web process. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::mainThreadPing): * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: Web process support for responding to pings. 2015-11-20 Simon Fraser Allow more buffer formats in the IOSurface pool https://bugs.webkit.org/show_bug.cgi?id=151516 Reviewed by Tim Horton. Have RemoteLayerBackingStore go through a static function on IOSurface to return a surface to the pool, rather than knowing about IOSurfacePool directly. * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::Buffer::discard): 2015-11-20 Alex Christensen Remove NETWORK_PROCESS compile flag https://bugs.webkit.org/show_bug.cgi?id=151512 Reviewed by Tim Horton. * CMakeLists.txt: * NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm: (NetworkProcessMain): * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm: (NetworkServiceInitializer): * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: (WebKit::NetworkBlobRegistry::filesInBlob): * NetworkProcess/FileAPI/NetworkBlobRegistry.h: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::blobSize): * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * NetworkProcess/NetworkLoad.cpp: * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkLoadClient.h: * NetworkProcess/NetworkLoadParameters.cpp: (WebKit::NetworkLoadParameters::NetworkLoadParameters): * NetworkProcess/NetworkLoadParameters.h: * NetworkProcess/NetworkProcess.cpp: * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * NetworkProcess/NetworkResourceLoader.cpp: * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/NetworkResourceLoader.messages.in: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::clearDiskCache): * NetworkProcess/efl/NetworkProcessMainEfl.cpp: (WebKit::NetworkProcessMainUnix): * NetworkProcess/gtk/NetworkProcessMainGtk.cpp: (WebKit::NetworkProcessMainUnix): * NetworkProcess/ios/NetworkProcessIOS.mm: * NetworkProcess/mac/NetworkLoadMac.mm: * NetworkProcess/mac/NetworkProcessMac.mm: * NetworkProcess/mac/NetworkResourceLoaderMac.mm: (WebKit::NetworkResourceLoader::willCacheResponseAsync): * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::platformTerminate): * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: (WebKit::RemoteNetworkingContext::storageSession): * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: (WebKit::CustomProtocolManager::initialize): (WebKit::CustomProtocolManager::addCustomProtocol): * Shared/Network/CustomProtocols/CustomProtocolManager.h: * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp: (WebKit::CustomProtocolManager::supplementName): (WebKit::CustomProtocolManager::initialize): (WebKit::CustomProtocolManager::registerScheme): * Shared/Network/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::decode): * Shared/Network/NetworkProcessCreationParameters.h: * Shared/Network/NetworkProcessSupplement.h: (WebKit::NetworkProcessSupplement::initialize): * Shared/Network/NetworkResourceLoadParameters.cpp: (WebKit::NetworkResourceLoadParameters::decode): * Shared/Network/NetworkResourceLoadParameters.h: * Shared/ProcessExecutablePath.h: * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * Shared/efl/ProcessExecutablePathEfl.cpp: (WebKit::executablePathOfPluginProcess): (WebKit::executablePathOfNetworkProcess): (WebKit::executablePathOfDatabaseProcess): * Shared/gtk/ProcessExecutablePathGtk.cpp: (WebKit::executablePathOfPluginProcess): (WebKit::executablePathOfNetworkProcess): (WebKit::executablePathOfDatabaseProcess): * Shared/mac/CookieStorageShim.h: * Shared/mac/CookieStorageShim.mm: (-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]): * Shared/mac/CookieStorageShimLibrary.cpp: * Shared/mac/CookieStorageShimLibrary.h: * UIProcess/API/APISession.cpp: (API::Session::~Session): * UIProcess/API/C/mac/WKContextPrivateMac.mm: (WKContextGetNetworkProcessIdentifier): * UIProcess/API/efl/ewk_context.cpp: (ewk_context_process_model_set): (ewk_context_process_model_get): (ewk_context_tls_error_policy_get): * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::updateProcessSuppressionState): (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::platformInitializeNetworkProcess): (WebKit::WebProcessPool::platformInvalidateContext): * UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::cancel): * UIProcess/Launcher/ProcessLauncher.cpp: (WebKit::ProcessLauncher::processTypeAsString): (WebKit::ProcessLauncher::getProcessTypeFromString): * UIProcess/Launcher/ProcessLauncher.h: * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp: (WebKit::ProcessLauncher::launchProcess): * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: (WebKit::ProcessLauncher::launchProcess): * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::computeProcessShimPath): (WebKit::serviceName): (WebKit::shouldLeakBoost): (WebKit::createProcess): * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::setIsHoldingLockedFiles): * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/Network/NetworkProcessProxy.messages.in: * UIProcess/Network/mac/NetworkProcessProxyMac.mm: (WebKit::NetworkProcessProxy::platformGetLaunchOptions): * UIProcess/Network/soup/NetworkProcessProxySoup.cpp: (WebKit::NetworkProcessProxy::platformGetLaunchOptions): * UIProcess/WebCookieManagerProxy.cpp: (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::setSessionID): (WebKit::WebPageProxy::initializeWebPage): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): (WebKit::WebProcessPool::~WebProcessPool): (WebKit::WebProcessPool::initializeClient): (WebKit::WebProcessPool::networkingProcessConnection): (WebKit::WebProcessPool::languageChanged): (WebKit::WebProcessPool::setUsesNetworkProcess): (WebKit::WebProcessPool::usesNetworkProcess): (WebKit::WebProcessPool::ensureNetworkProcess): (WebKit::WebProcessPool::getNetworkProcessConnection): (WebKit::WebProcessPool::ensureDatabaseProcess): (WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled): (WebKit::WebProcessPool::createNewWebProcess): (WebKit::WebProcessPool::download): (WebKit::WebProcessPool::resumeDownload): (WebKit::WebProcessPool::setAdditionalPluginsDirectory): (WebKit::WebProcessPool::networkProcessIdentifier): (WebKit::WebProcessPool::setAlwaysUsesComplexTextCodePath): (WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation): (WebKit::WebProcessPool::registerURLSchemeAsLocal): (WebKit::WebProcessPool::setCacheModel): (WebKit::WebProcessPool::setDefaultRequestTimeoutInterval): (WebKit::WebProcessPool::createDownloadProxy): (WebKit::WebProcessPool::useTestingNetworkSession): (WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost): (WebKit::WebProcessPool::requestNetworkingStatistics): (WebKit::WebProcessPool::handleMessage): * UIProcess/WebProcessPool.h: (WebKit::WebProcessPool::sendToNetworkingProcess): (WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::getPluginProcessConnection): (WebKit::WebProcessProxy::getNetworkProcessConnection): (WebKit::WebProcessProxy::getDatabaseProcessConnection): (WebKit::WebProcessProxy::createDownloadProxy): (WebKit::WebProcessProxy::didCancelProcessSuspension): (WebKit::WebProcessProxy::reinstateNetworkProcessAssertionState): (WebKit::WebProcessProxy::didSetAssertionState): * UIProcess/WebProcessProxy.h: (WebKit::WebProcessProxy::throttler): * UIProcess/WebProcessProxy.messages.in: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::~WebsiteDataStore): (WebKit::WebsiteDataStore::cloneSessionData): * UIProcess/gtk/WebProcessPoolGtk.cpp: (WebKit::initInspectorServer): (WebKit::WebProcessPool::setIgnoreTLSErrors): * UIProcess/soup/WebProcessPoolSoup.cpp: (WebKit::WebProcessPool::platformInitializeNetworkProcess): * WebKit2Prefix.h: * WebProcess/FileAPI/BlobRegistryProxy.cpp: (WebKit::BlobRegistryProxy::blobSize): * WebProcess/FileAPI/BlobRegistryProxy.h: * WebProcess/Network/NetworkProcessConnection.cpp: * WebProcess/Network/NetworkProcessConnection.h: * WebProcess/Network/NetworkProcessConnection.messages.in: * WebProcess/Network/WebResourceLoadScheduler.cpp: (WebKit::WebResourceLoadScheduler::networkProcessCrashed): * WebProcess/Network/WebResourceLoadScheduler.h: * WebProcess/Network/WebResourceLoader.cpp: * WebProcess/Network/WebResourceLoader.h: * WebProcess/Network/WebResourceLoader.messages.in: * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::initializeBrowserFuncs): (WebKit::netscapeBrowserFuncs): * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::registerRedirect): (WebKit::NetscapePlugin::urlRedirectResponse): * 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::createBlobRegistry): * WebProcess/WebCoreSupport/WebPlatformStrategies.h: * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::startDownload): (WebKit::WebFrame::convertMainResourceLoadToDownload): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::ensureNetworkProcessConnection): (WebKit::WebProcess::registerURLSchemeAsEmptyDocument): (WebKit::WebProcess::usesNetworkProcess): (WebKit::WebProcess::networkConnection): (WebKit::WebProcess::webResourceLoadScheduler): (WebKit::WebProcess::webToDatabaseProcessConnectionClosed): (WebKit::WebProcess::prefetchDNS): * WebProcess/WebProcess.h: * config.h: 2015-11-19 Simon Fraser Back-buffer to front-buffer copy fails for some buffer formats https://bugs.webkit.org/show_bug.cgi?id=151475 rdar://problem/23617899 Reviewed by Tim Horton. When displaying RemoteLayerBackingStore, we copy the back buffer to the front buffer before painting the updated regions. For buffers using Format::RGB10A8, the CGImage-based copy fails, so in this case, use IOSurface::copyToSurface(). Reorganized RemoteLayerBackingStore::drawInContext() to make this a bit easier to understand. First, we either copy the entire surface over, or paint the backImage. Then we clip to the dirty rects, and clear them, then paint the layer contents. * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::display): (WebKit::RemoteLayerBackingStore::drawInContext): 2015-11-19 Commit Queue Unreviewed, rolling out r192667 and r192668. https://bugs.webkit.org/show_bug.cgi?id=151476 broke api tests (Requested by alexchristensen on #webkit). Reverted changesets: "Remove the non-NetworkProcess configurations" https://bugs.webkit.org/show_bug.cgi?id=151418 http://trac.webkit.org/changeset/192667 "Fix GTK Build after r192667." http://trac.webkit.org/changeset/192668 2015-11-19 Alex Christensen Fix GTK Build after r192667. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkitWebContextConstructed): (webkit_web_context_set_process_model): (webkit_web_context_get_process_model): (toWebKitProcessModel): Deleted. (injectedBundleDirectory): Deleted. 2015-11-19 Alex Christensen Remove the non-NetworkProcess configurations https://bugs.webkit.org/show_bug.cgi?id=151418 Reviewed by Geoffrey Garen. This patch assumes ENABLE(NETWORK_PROCESS) is always 1, usesNetworkProcess is always true, and ProcessModel is always ProcessModelMultipleSecondaryProcesses. It does this by removing the checks and the code that would be executed with other configurations. * CMakeLists.txt: * NetworkProcess/EntryPoint/mac/LegacyProcess/NetworkProcessMain.mm: (NetworkProcessMain): * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm: (NetworkServiceInitializer): * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: (WebKit::NetworkBlobRegistry::filesInBlob): * NetworkProcess/FileAPI/NetworkBlobRegistry.h: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::blobSize): * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * NetworkProcess/NetworkLoad.cpp: * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkLoadClient.h: * NetworkProcess/NetworkLoadParameters.cpp: (WebKit::NetworkLoadParameters::NetworkLoadParameters): * NetworkProcess/NetworkLoadParameters.h: * NetworkProcess/NetworkProcess.cpp: * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * NetworkProcess/NetworkResourceLoader.cpp: * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/NetworkResourceLoader.messages.in: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::clearDiskCache): * NetworkProcess/efl/NetworkProcessMainEfl.cpp: (WebKit::NetworkProcessMainUnix): * NetworkProcess/gtk/NetworkProcessMainGtk.cpp: (WebKit::NetworkProcessMainUnix): * NetworkProcess/ios/NetworkProcessIOS.mm: * NetworkProcess/mac/NetworkLoadMac.mm: * NetworkProcess/mac/NetworkProcessMac.mm: * NetworkProcess/mac/NetworkResourceLoaderMac.mm: * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::platformTerminate): * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: (WebKit::RemoteNetworkingContext::storageSession): * Shared/API/c/WKDeprecatedFunctions.cpp: (WKInspectorToggleJavaScriptProfiling): (WKContextSetProcessModel): (WKContextGetProcessModel): (WKContextSetUsesNetworkProcess): (WKGraphicsContextGetCGContext): * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: (WebKit::CustomProtocolManager::initialize): (WebKit::CustomProtocolManager::addCustomProtocol): * Shared/Network/CustomProtocols/CustomProtocolManager.h: * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp: (WebKit::CustomProtocolManager::supplementName): (WebKit::CustomProtocolManager::initialize): (WebKit::CustomProtocolManager::registerScheme): * Shared/Network/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::decode): * Shared/Network/NetworkProcessCreationParameters.h: * Shared/Network/NetworkProcessSupplement.h: (WebKit::NetworkProcessSupplement::initialize): * Shared/Network/NetworkResourceLoadParameters.cpp: (WebKit::NetworkResourceLoadParameters::decode): * Shared/Network/NetworkResourceLoadParameters.h: * Shared/ProcessExecutablePath.h: * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * Shared/efl/ProcessExecutablePathEfl.cpp: (WebKit::executablePathOfPluginProcess): (WebKit::executablePathOfNetworkProcess): (WebKit::executablePathOfDatabaseProcess): * Shared/gtk/ProcessExecutablePathGtk.cpp: (WebKit::executablePathOfPluginProcess): (WebKit::executablePathOfNetworkProcess): (WebKit::executablePathOfDatabaseProcess): * Shared/mac/CookieStorageShim.h: * Shared/mac/CookieStorageShim.mm: (-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]): * Shared/mac/CookieStorageShimLibrary.cpp: * Shared/mac/CookieStorageShimLibrary.h: * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::createWithLegacyOptions): (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/APISession.cpp: (API::Session::~Session): * UIProcess/API/C/WKAPICast.h: (WebKit::toAPI): (WebKit::toFontSmoothingLevel): (WebKit::toProcessModel): Deleted. * UIProcess/API/C/WKContext.cpp: (WKContextGetCacheModel): (WKContextSetMaximumNumberOfProcesses): (WKContextSetJavaScriptGarbageCollectorTimerEnabled): (WKContextUseTestingNetworkSession): (WKContextSetProcessModel): Deleted. (WKContextGetProcessModel): Deleted. (WKContextSetUsesNetworkProcess): Deleted. * UIProcess/API/C/WKContext.h: * UIProcess/API/C/mac/WKContextPrivateMac.mm: (WKContextGetNetworkProcessIdentifier): * UIProcess/API/Cocoa/WKProcessGroup.mm: (-[WKProcessGroup initWithInjectedBundleURL:]): * UIProcess/API/Cocoa/WKProcessPool.mm: * UIProcess/API/efl/ewk_context.cpp: (ewk_context_process_model_set): (ewk_context_process_model_get): (ewk_context_tls_error_policy_get): * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::updateProcessSuppressionState): (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::platformInitializeNetworkProcess): (WebKit::WebProcessPool::platformInvalidateContext): * UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::cancel): (WebKit::DownloadProxy::invalidate): * UIProcess/Launcher/ProcessLauncher.cpp: (WebKit::ProcessLauncher::processTypeAsString): (WebKit::ProcessLauncher::getProcessTypeFromString): * UIProcess/Launcher/ProcessLauncher.h: * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp: (WebKit::ProcessLauncher::launchProcess): * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: (WebKit::ProcessLauncher::launchProcess): * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::computeProcessShimPath): (WebKit::serviceName): (WebKit::shouldLeakBoost): (WebKit::createProcess): * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::setIsHoldingLockedFiles): * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/Network/NetworkProcessProxy.messages.in: * UIProcess/Network/mac/NetworkProcessProxyMac.mm: (WebKit::NetworkProcessProxy::platformGetLaunchOptions): * UIProcess/Network/soup/NetworkProcessProxySoup.cpp: (WebKit::NetworkProcessProxy::platformGetLaunchOptions): * UIProcess/ProcessModel.h: Removed. * UIProcess/WebCookieManagerProxy.cpp: (WebKit::WebCookieManagerProxy::shouldTerminate): (WebKit::WebCookieManagerProxy::refWebContextSupplement): (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::inspectorProcessPool): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::reattachToWebProcess): (WebKit::WebPageProxy::setSessionID): (WebKit::WebPageProxy::initializeWebPage): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::create): (WebKit::WebProcessPool::WebProcessPool): (WebKit::WebProcessPool::~WebProcessPool): (WebKit::WebProcessPool::initializeClient): (WebKit::WebProcessPool::setDownloadClient): (WebKit::WebProcessPool::setMaximumNumberOfProcesses): (WebKit::WebProcessPool::networkingProcessConnection): (WebKit::WebProcessPool::languageChanged): (WebKit::WebProcessPool::textCheckerStateChanged): (WebKit::WebProcessPool::ensureNetworkProcess): (WebKit::WebProcessPool::getNetworkProcessConnection): (WebKit::WebProcessPool::ensureDatabaseProcess): (WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled): (WebKit::WebProcessPool::processDidCachePage): (WebKit::WebProcessPool::createNewWebProcess): (WebKit::WebProcessPool::disconnectProcess): (WebKit::WebProcessPool::createWebPage): (WebKit::WebProcessPool::download): (WebKit::WebProcessPool::resumeDownload): (WebKit::WebProcessPool::postMessageToInjectedBundle): (WebKit::WebProcessPool::setAdditionalPluginsDirectory): (WebKit::WebProcessPool::networkProcessIdentifier): (WebKit::WebProcessPool::setAlwaysUsesComplexTextCodePath): (WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation): (WebKit::WebProcessPool::registerURLSchemeAsLocal): (WebKit::WebProcessPool::setCacheModel): (WebKit::WebProcessPool::setDefaultRequestTimeoutInterval): (WebKit::WebProcessPool::createDownloadProxy): (WebKit::WebProcessPool::addMessageReceiver): (WebKit::WebProcessPool::useTestingNetworkSession): (WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost): (WebKit::WebProcessPool::requestWebContentStatistics): (WebKit::WebProcessPool::requestNetworkingStatistics): (WebKit::WebProcessPool::handleMessage): (WebKit::WebProcessPool::setProcessModel): Deleted. (WebKit::WebProcessPool::setUsesNetworkProcess): Deleted. (WebKit::WebProcessPool::usesNetworkProcess): Deleted. (WebKit::WebProcessPool::ensureSharedWebProcess): Deleted. * UIProcess/WebProcessPool.h: (WebKit::WebProcessPool::sendToNetworkingProcess): (WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary): (WebKit::WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary): (WebKit::WebProcessPool::sendToOneProcess): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::removeWebPage): (WebKit::WebProcessProxy::getPluginProcessConnection): (WebKit::WebProcessProxy::getNetworkProcessConnection): (WebKit::WebProcessProxy::getDatabaseProcessConnection): (WebKit::WebProcessProxy::updateTextCheckerState): (WebKit::WebProcessProxy::didSaveToPageCache): (WebKit::WebProcessProxy::didCancelProcessSuspension): (WebKit::WebProcessProxy::reinstateNetworkProcessAssertionState): (WebKit::WebProcessProxy::didSetAssertionState): (WebKit::WebProcessProxy::createDownloadProxy): Deleted. * UIProcess/WebProcessProxy.h: (WebKit::WebProcessProxy::throttler): * UIProcess/WebProcessProxy.messages.in: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::~WebsiteDataStore): (WebKit::WebsiteDataStore::cloneSessionData): * UIProcess/gtk/WebProcessPoolGtk.cpp: (WebKit::initInspectorServer): (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::setIgnoreTLSErrors): * UIProcess/soup/WebProcessPoolSoup.cpp: (WebKit::WebProcessPool::platformInitializeNetworkProcess): * WebKit2.xcodeproj/project.pbxproj: * WebKit2Prefix.h: * WebProcess/FileAPI/BlobRegistryProxy.cpp: (WebKit::BlobRegistryProxy::registerFileBlobURL): (WebKit::BlobRegistryProxy::registerBlobURL): (WebKit::BlobRegistryProxy::unregisterBlobURL): (WebKit::BlobRegistryProxy::registerBlobURLForSlice): (WebKit::BlobRegistryProxy::blobSize): * WebProcess/FileAPI/BlobRegistryProxy.h: * WebProcess/Network/NetworkProcessConnection.cpp: * WebProcess/Network/NetworkProcessConnection.h: * WebProcess/Network/NetworkProcessConnection.messages.in: * WebProcess/Network/WebResourceLoadScheduler.cpp: (WebKit::WebResourceLoadScheduler::networkProcessCrashed): * WebProcess/Network/WebResourceLoadScheduler.h: * WebProcess/Network/WebResourceLoader.cpp: * WebProcess/Network/WebResourceLoader.h: * WebProcess/Network/WebResourceLoader.messages.in: * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::initializeBrowserFuncs): (WebKit::netscapeBrowserFuncs): * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::registerRedirect): (WebKit::NetscapePlugin::urlRedirectResponse): * 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/WebCoreSupport/WebPlatformStrategies.h: * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::startDownload): (WebKit::WebFrame::convertMainResourceLoadToDownload): (WebKit::WebFrame::source): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): (WebKit::WebProcess::initializeConnection): (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::ensureNetworkProcessConnection): (WebKit::WebProcess::registerURLSchemeAsEmptyDocument): (WebKit::WebProcess::destroyPrivateBrowsingSession): (WebKit::WebProcess::pluginProcessConnectionManager): (WebKit::WebProcess::shouldTerminate): (WebKit::WebProcess::setInjectedBundleParameters): (WebKit::WebProcess::networkConnection): (WebKit::WebProcess::webResourceLoadScheduler): (WebKit::WebProcess::webToDatabaseProcessConnectionClosed): (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::WebProcess::setIgnoreTLSErrors): (WebKit::WebProcess::allowSpecificHTTPSCertificateForHost): (WebKit::getCacheDiskFreeSize): Deleted. (WebKit::setSoupSessionAcceptLanguage): Deleted. (WebKit::languageChanged): Deleted. * config.h: 2015-11-19 Csaba Osztrogonác [EFL] Fix Wreturn-type clang warning in EWK2UnitTestBase.cpp https://bugs.webkit.org/show_bug.cgi?id=151444 Reviewed by Darin Adler. * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo): 2015-11-19 Csaba Osztrogonác [EFL] Fix -Winconsistent-missing-override clang warnings https://bugs.webkit.org/show_bug.cgi?id=151443 Reviewed by Darin Adler. * Shared/CoordinatedGraphics/CoordinatedBackingStore.h: * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h: * UIProcess/CoordinatedGraphics/WebView.h: * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h: (WebKit::CoordinatedDrawingArea::layerTreeStateIsFrozen): (WebKit::CoordinatedDrawingArea::layerTreeHost): * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: (WebKit::CoordinatedLayerTreeHost::layerTreeContext): (WebKit::CoordinatedLayerTreeHost::pauseRendering): (WebKit::CoordinatedLayerTreeHost::resumeRendering): 2015-11-18 Alex Christensen Progress towards implementing Downloads with NETWORK_SESSION https://bugs.webkit.org/show_bug.cgi?id=151414 Reviewed begrudgingly by Brady Eidson. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::storageSession): (WebKit::NetworkConnectionToWebProcess::startDownload): (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::NetworkLoad): (WebKit::NetworkLoad::didReceiveChallenge): (WebKit::NetworkLoad::didReceiveResponse): (WebKit::NetworkLoad::didReceiveData): * NetworkProcess/NetworkLoad.h: * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): (WebKit::NetworkProcess::downloadRequest): (WebKit::NetworkProcess::resumeDownload): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::cleanup): (WebKit::NetworkResourceLoader::didConvertHandleToDownload): (WebKit::NetworkResourceLoader::abort): * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (toNSURLSessionResponseDisposition): (-[NetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (-[NetworkSessionDelegate URLSession:dataTask:didReceiveData:]): (-[NetworkSessionDelegate URLSession:downloadTask:didFinishDownloadingToURL:]): (-[NetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]): (-[NetworkSessionDelegate URLSession:downloadTask:didResumeAtOffset:expectedTotalBytes:]): (-[NetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::useCredentialForSingleChallenge): (WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge): (WebKit::AuthenticationManager::cancelSingleChallenge): (WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge): (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): * Shared/Downloads/Download.h: * Shared/Downloads/DownloadManager.cpp: (WebKit::DownloadManager::DownloadManager): (WebKit::DownloadManager::startDownload): (WebKit::DownloadManager::convertHandleToDownload): (WebKit::DownloadManager::resumeDownload): (WebKit::DownloadManager::cancelDownload): (WebKit::DownloadManager::downloadFinished): (WebKit::DownloadManager::didCreateDownload): * Shared/Downloads/DownloadManager.h: (WebKit::DownloadManager::isDownloading): (WebKit::DownloadManager::activeDownloadCount): * Shared/Downloads/mac/DownloadMac.mm: (WebKit::Download::start): (WebKit::Download::startWithHandle): (WebKit::Download::resume): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::download): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::canCachePage): (WebKit::WebFrameLoaderClient::convertMainResourceLoadToDownload): (WebKit::WebFrameLoaderClient::createFrame): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::startDownload): (WebKit::WebFrame::convertMainResourceLoadToDownload): (WebKit::WebFrame::source): * WebProcess/WebPage/WebFrame.h: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::downloadRequest): (WebKit::WebProcess::resumeDownload): (WebKit::WebProcess::releasePageCache): (WebKit::WebProcess::fetchWebsiteData): * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: 2015-11-18 Chris Dumez Clean up / optimize NetworkCacheSubresourcesEntry https://bugs.webkit.org/show_bug.cgi?id=151405 Reviewed by Antti Koivisto. Clean up / optimize NetworkCacheSubresourcesEntry: - Remove m_sourceStorageRecord data member - Avoid copying the Key when constructing it * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::encodeAsSubresourcesRecord): * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: (WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry): * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: 2015-11-18 Jer Noble Expose WebCore's AudioPlaybackRequiresUserGesture setting to WebKit & WebKit2 https://bugs.webkit.org/show_bug.cgi?id=151274 Reviewed by Anders Carlsson. Add a new, private, WKWebViewConfiguration property, _requiresUserActionForAudioPlayback, and use that configuration property to set WebCore's AudioPlaybackRequiresUserGesture setting during page creation. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetAudioPlaybackRequiresUserGesture): Add legacy C API for setting this new WK preference. (WKPreferencesGetAudioPlaybackRequiresUserGesture): Ditto. * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): Set the page configuration value from preferences. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): Default the value of the new configuration property to YES for iOS. (-[WKWebViewConfiguration copyWithZone:]): Copy the value across. (-[WKWebViewConfiguration _requiresUserActionForAudioPlayback]): Simple getter. (-[WKWebViewConfiguration _setRequiresUserActionForAudioPlayback:]): Simple setter. * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Set WebCore's audioPlaybackRequiresUserGesture Setting. 2015-11-18 Daniel Bates [iOS] ASSERTION FAILED: temporaryFilePath.last() == '/' in WebCore::openTemporaryFile() https://bugs.webkit.org/show_bug.cgi?id=151392 Reviewed by Alexey Proskuryakov. Workaround where confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...) retrieves the path to the user temporary directory without a trailing slash in the iOS simulator. * Shared/mac/SandboxExtensionMac.mm: (WebKit::SandboxExtension::createHandleForTemporaryFile): Add a path separator (/) between the directory path and filename. 2015-11-17 Geoffrey Garen A window with a hung tab waits 5s before closing https://bugs.webkit.org/show_bug.cgi?id=151319 Reviewed by Anders Carlsson. I manually tested that I did not break unload events upon window close by running run-webkit-httpd and invoking a 1x1 image load of http://127.0.0.1:8000/navigation/resources/save-Ping.php from an unload handler. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::tryClose): Use the sudden termination bit to close without waiting for a response. * UIProcess/WebProcessProxy.h: (WebKit::WebProcessProxy::isSuddenTerminationEnabled): Expose the bit. 2015-11-17 Carlos Garcia Campos [GTK] Web Process crashes on reparenting a WebView with AC mode on https://bugs.webkit.org/show_bug.cgi?id=151139 Reviewed by Mario Sanchez Prada. When the web view is reparented, the widget is first unrealized, and then realized again when added to the new parent. In the second realize, the old redirected XComposite window is destroyed and a new one is created, but the web process is still using the old redirected window ID. As soon as the redirected window is destroyed and the web process tries to use the window ID, it crashes due to a BadDrawable X error. We have to notify the web process as soon as the web view is unrealized to stop using the current window ID and exit accelerated compositing mode until a new window ID is given. This notification needs to be synchronous, because the window can be destroyed in the UI process before the message is received in the web process. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseRealize): Add an assert to ensure we never have a redirected window when the view is realized. Also check drawing area is not nullptr, since it can be destroyed at any time if the web process crashes. (webkitWebViewBaseUnrealize): Call DrawingAreaProxyImpl::destroyNativeSurfaceHandleForCompositing() and destroy the redirected XComposite window. * UIProcess/DrawingAreaProxyImpl.cpp: (WebKit::DrawingAreaProxyImpl::destroyNativeSurfaceHandleForCompositing): Send DestroyNativeSurfaceHandleForCompositing synchronous messsage to the web process. * UIProcess/DrawingAreaProxyImpl.h: * WebProcess/WebPage/DrawingArea.h: * WebProcess/WebPage/DrawingArea.messages.in: Add DestroyNativeSurfaceHandleForCompositing message. * WebProcess/WebPage/DrawingAreaImpl.cpp: (WebKit::DrawingAreaImpl::destroyNativeSurfaceHandleForCompositing): Set the native surface handler for compositing to 0 to reset it. * WebProcess/WebPage/DrawingAreaImpl.h: * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::makeContextCurrent): Return false early always when layer tree context ID is 0, even if we already have a context. (WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing): Cancel any pending layer flush when setting a new handler. 2015-11-16 Alex Christensen Fix CMake build and make PluginProcess executable https://bugs.webkit.org/show_bug.cgi?id=151332 Reviewed by Tim Horton. * PlatformMac.cmake: 2015-11-16 Tim Horton Multi-WKWebView find completes after the first view https://bugs.webkit.org/show_bug.cgi?id=151325 Reviewed by Anders Carlsson. * UIProcess/mac/WKTextFinderClient.mm: (-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]): Update progress before calling the completion handler; NSTextFinder assumes that if the progress doesn't change, the search is complete. 2015-11-16 Ryuan Choi WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction calls an std::function after it's been moved from https://bugs.webkit.org/show_bug.cgi?id=151248 Reviewed by Darin Adler. Like r188287, calling an empty std::function results in a std::bad_function_call exception being thrown when sendSync is failed. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): 2015-11-16 Beth Dakin Add SPI for handling inline link navigation for peek/pop https://bugs.webkit.org/show_bug.cgi?id=151270 -and corresponding- rdar://problem/22233739 Reviewed by Darin Adler. This patch adds three new SPI methods. If a client wants to disable previews entirely for the given element, they should return NO in shouldPreviewElement:. Returning NO in shouldPreviewElement will prevent the other methods from being invoked. The client can provide a custom preview by returning their own UIViewController from previewingViewControllerForElement:defaultActions:. Returning nil will result in the default preview behavior for that element. This will allow clients to implement this method to handle http link navigation inline, but still opt into UIKit’s built-in DataDetectors behaviors for DD links once we start supporting DD links in WK2. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added linkURL to _WKElementInfo. linkURL will be nil for elements that are not links. * UIProcess/API/Cocoa/_WKElementInfo.h: * UIProcess/API/Cocoa/_WKElementInfo.mm: (-[_WKElementInfo copyWithZone:]): (-[_WKElementInfo linkURL]): * UIProcess/API/Cocoa/_WKElementInfoInternal.h: Added. _WKPreviewingElementInfo inherits from _WKElementInfo. Added a constructor. * UIProcess/API/Cocoa/_WKPreviewElementInfo.h: Added. * UIProcess/API/Cocoa/_WKPreviewElementInfo.mm: Added. (-[_WKPreviewElementInfo _initWithLinkURL:]): * UIProcess/API/Cocoa/_WKPreviewElementInfoInternal.h: Added. Invoke shouldPreviewElement:. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): Invoke previewingViewControllerForElement: for all potentially preview-able elements that have a default implementations, which will be limited to links at this time. (-[WKContentView _presentedViewControllerForPreviewItemController:]): Invoke commitPreviewingViewController: (-[WKContentView _previewItemController:commitPreview:]): * WebKit2.xcodeproj/project.pbxproj: 2015-11-16 Anders Carlsson Add identifier strings for a bunch of context menu items https://bugs.webkit.org/show_bug.cgi?id=151272 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm: Added. * UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h: Added. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::menuItemIdentifier): (WebKit::WebContextMenuProxyMac::createShareMenuItem): (WebKit::WebContextMenuProxyMac::createContextMenuItem): * WebKit2.xcodeproj/project.pbxproj: 2015-11-16 Simon Fraser Sort the Xcode project files. * WebKit2.xcodeproj/project.pbxproj: 2015-11-13 Commit Queue Unreviewed, rolling out r192445, r192451, and r192452. https://bugs.webkit.org/show_bug.cgi?id=151291 Broke Mavericks build (and thus EWS) (Requested by ap on #webkit). Reverted changesets: "Add identifier strings for a bunch of context menu items" https://bugs.webkit.org/show_bug.cgi?id=151272 http://trac.webkit.org/changeset/192445 "Try to fix the 32-bit build" http://trac.webkit.org/changeset/192451 "Try to fix the 32-bit build" http://trac.webkit.org/changeset/192452 2015-11-13 Timothy Horton Try to fix the 32-bit build * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::createShareMenuItem): 2015-11-13 Timothy Horton Try to fix the 32-bit build * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::menuItemIdentifier): 2015-11-13 Wenson Hsieh WK2 iOS interaction tests in LayoutTests/fast/events/ios are flaky https://bugs.webkit.org/show_bug.cgi?id=151199 Reviewed by Tim Horton. While transforming touch positions from document to global coordinates, HIDEventGenerator sometimes uses an old scale of the webview in computing the transformed position. This happens in spite of how we force the UI script to run after the UI process receives a layer tree commit because we invoke the callback before calling WebPageProxy::didCommitLayerTree, which is where we actually use the layer transaction information to update the WKWebView. To fix this, we run the drawing-ensured callbacks after committing the layer tree, so the callbacks will have updated information about the web view's scale and dimensions. * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): 2015-11-13 Tim Horton Support printing in WKWebView https://bugs.webkit.org/show_bug.cgi?id=151276 Reviewed by Beth Dakin. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _printOperationWithPrintInfo:]): (-[WKWebView _printOperationWithPrintInfo:forFrame:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: Expose SPI similar to what we have on WKView. 2015-11-13 Joseph Pecoraro Follow-up to r192437. Add availability macros. Reviewed by Tim Horton. * UIProcess/API/Cocoa/WKWebViewPrivate.h: 2015-11-13 Anders Carlsson Add identifier strings for a bunch of context menu items https://bugs.webkit.org/show_bug.cgi?id=151272 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm: Added. * UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h: Added. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::menuItemIdentifier): (WebKit::WebContextMenuProxyMac::createShareMenuItem): (WebKit::WebContextMenuProxyMac::createContextMenuItem): * WebKit2.xcodeproj/project.pbxproj: 2015-11-13 Joseph Pecoraro Web Inspector: Provide a way to override the WKWebView remote inspector name https://bugs.webkit.org/show_bug.cgi?id=151075 Reviewed by Tim Horton. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): (WebKit::WebPageCreationParameters::decode): * Shared/WebPageCreationParameters.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _remoteInspectionNameOverride]): (-[WKWebView _setRemoteInspectionNameOverride:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setRemoteInspectionNameOverride): (WebKit::WebPageProxy::creationParameters): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::remoteInspectionNameOverride): * WebProcess/WebPage/WebPage.cpp: (WebKit::m_shouldDispatchFakeMouseMoveEvents): (WebKit::WebPage::setRemoteInspectionNameOverride): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-11-13 Tim Horton Hardware keyboard spacebar scrolls too far on iOS https://bugs.webkit.org/show_bug.cgi?id=151227 Reviewed by Simon Fraser. There were two bugs conspiring here to make spacebar scrolling very wrong on iOS: 1) Incoming key events were being handled twice - fix this by only propagating the event to super if we don't end up handling the event ourselves 2) _scrollByOffset was not converting the offset delta out of content coordinates - fix this by doing the relevant conversion and renaming the function to make it more clear exactly what it does * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _scrollByContentOffset:]): (-[WKWebView _scrollByOffset:]): Deleted. * UIProcess/API/Cocoa/WKWebViewInternal.h: Rename to _scrollByContentOffset to make it clear that this is in content coordinates, and do the conversion from content coordinates (apply the scale) so that we scroll by the right amount. * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::doneWithKeyEvent): Pass whether the event was handled through to WKContentView. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKWebEvent dealloc]): Add WKWebEvent, which is a WebEvent and retains a reference to the UIEvent from which it came. (-[WKContentView _handleKeyUIEvent:]): Only pass the event to super immediately if we don't try to handle it. We'll re-send it to super asynchronously if we decide not to handle it. (-[WKContentView handleKeyEvent:]): If we're in the middle of resending an event we didn't handle the first time, just ignore it. Make a WKWebEvent and store the UIEvent on it. (-[WKContentView _didHandleKeyEvent:eventWasHandled:]): If the event wasn't handled, and is one of our special events with a wrapped UIEvent, resend it to super. We'll ignore it as noted above. (-[WKContentView _interpretKeyEvent:isCharEvent:]): Factor out unobscured content rect retrieval. Make use of Scrollbar::pageStep to match the Mac behavior of not scrolling quite a whole page when scrolling with the spacebar. 2015-11-12 Ryuan Choi [EFL] Fix wrong test case for window_create since r192196 https://bugs.webkit.org/show_bug.cgi?id=151247 Reviewed by Gyuyoung Kim. r192196 introduces new test cases for window_create but there are typos which hide bug This patch fixes typos and split ewk_view_create_window test case. * UIProcess/API/efl/tests/test_ewk2_view.cpp: (TEST_F): 2015-11-12 Anders Carlsson Add a context menu delegate method that takes a userInfo parameter https://bugs.webkit.org/show_bug.cgi?id=151232 Reviewed by Tim Horton. * UIProcess/API/APIContextMenuClient.h: (API::ContextMenuClient::menuFromProposedMenu): * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::showContextMenu): 2015-11-12 Anders Carlsson ContextMenuAction and WebMenuItemTag shouldn't have to be in sync https://bugs.webkit.org/show_bug.cgi?id=151226 Reviewed by Tim Horton. * Shared/API/c/WKSharedAPICast.h: (WebKit::toAPI): (WebKit::toImpl): Remove ContextMenuItemTagOpenLinkInThisWindow. 2015-11-12 Anders Carlsson ContextMenuController::contextMenuItemSelected only needs the action and title, not the full item https://bugs.webkit.org/show_bug.cgi?id=151217 Reviewed by Joseph Pecoraro. * WebProcess/WebPage/WebContextMenu.cpp: (WebKit::WebContextMenu::itemSelected): 2015-11-12 Anders Carlsson Remove an unused function https://bugs.webkit.org/show_bug.cgi?id=151215 Reviewed by Joseph Pecoraro. * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: (WebKit::WebContextMenuClient::contextMenuItemSelected): Deleted. * WebProcess/WebCoreSupport/WebContextMenuClient.h: 2015-11-11 Anders Carlsson Enable cross-platform context menus by default https://bugs.webkit.org/show_bug.cgi?id=151173 Reviewed by Tim Horton. * Shared/WebContextMenuItemData.cpp: (WebKit::WebContextMenuItemData::WebContextMenuItemData): Deleted. * WebProcess/WebPage/WebContextMenu.cpp: (WebKit::WebContextMenu::menuItemsWithUserData): Deleted. 2015-11-12 Dan Bernstein Fixed the build. * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm: (PluginServiceInitializer): 2015-11-12 Csaba Osztrogonác Remove ENABLE(SATURATED_LAYOUT_ARITHMETIC) guards https://bugs.webkit.org/show_bug.cgi?id=150972 Reviewed by Darin Adler. * Configurations/FeatureDefines.xcconfig: 2015-11-11 Gyuyoung Kim Print result of memory sampler more readable https://bugs.webkit.org/show_bug.cgi?id=151085 Reviewed by Darin Adler. Current memory sampler prints result of memory sample horizontally. It makes us hard to read the result at a glance. To improve readability of the memory sampler result, this patch prints it vertically. * Shared/WebMemorySampler.cpp: (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile): (WebKit::WebMemorySampler::writeHeaders): 2015-11-11 Geoffrey Garen Rename handle.*Event to dispatch.*Event https://bugs.webkit.org/show_bug.cgi?id=151168 Reviewed by Chris Dumez. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache): (WebKit::WebFrameLoaderClient::dispatchDidDispatchOnloadEvents): (WebKit::WebFrameLoaderClient::dispatchDidHandleOnloadEvents): Deleted. * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: 2015-11-11 Anders Carlsson Fix builds. * WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp: (WebKit::WebContextMenuClient::shareMenuItem): Deleted. * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp: (WebKit::WebContextMenuClient::shareMenuItem): Deleted. 2015-11-11 Anders Carlsson REGRESSION (r191407): Context menus are missing Services https://bugs.webkit.org/show_bug.cgi?id=151167 rdar://problem/23500769 Reviewed by Tim Horton. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::showContextMenu): Use contentsToRootView to better indicate which coordinate system we're using. * WebProcess/WebPage/WebContextMenu.cpp: (WebKit::WebContextMenu::show): Use +[NSMenu popUpContextMenu:withEvent:forView:] so we'll get service menus where applicable. 2015-11-11 Anders Carlsson Remove more dead context menu code https://bugs.webkit.org/show_bug.cgi?id=151163 Reviewed by Tim Horton. * WebProcess/WebCoreSupport/WebContextMenuClient.h: * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: (WebKit::WebContextMenuClient::shareMenuItem): Deleted. 2015-11-11 Tim Horton Remove an unnecessary zero-delay timer from swipe snapshot removal https://bugs.webkit.org/show_bug.cgi?id=151161 Reviewed by Anders Carlsson. * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: (WebKit::ViewGestureGeometryCollector::mainFrameDidLayout): (WebKit::ViewGestureGeometryCollector::ViewGestureGeometryCollector): Deleted. (WebKit::ViewGestureGeometryCollector::renderTreeSizeNotificationTimerFired): Deleted. * WebProcess/WebPage/ViewGestureGeometryCollector.h: There's no discernable reason for this zero-delay timer, and it dates back to the original swipe patch with no explanation given. My only theory is that I was depending on spinning the runloop to ensure we've painted, but we have other mechanisms to do that now, on both platforms. This also was a surprising waste of time in some cases where the web process was very slow. 2015-11-11 Chris Dumez Unreviewed attempt to fix the Mac CMake build. * CMakeLists.txt: 2015-11-11 Chris Dumez [WK2] Add initial support for speculative resource revalidation to the WebKit disk cache https://bugs.webkit.org/show_bug.cgi?id=150856 Reviewed by Antti Koivisto. Add initial support for speculative resource revalidation to the WebKit disk cache. When a main resource is requested by WebCore, we look up its list of subresources in the cache and speculatively warm them up before WebCore asks for them, in order to improve page load time. In this context, warming it up means: 1. If the cached resource is usable (has not expired), keep it around in a memory for a limited amount of time (10 seconds). 2. If the resource has expired, do a speculative revalidation of the resource and then keep it in memory for a while as well (10 seconds). The feature is currently behind a compile-time flag that is only enabled on COCOA. Also, it is currently disabled at run-time until it is mature enough. Initial results show that speculative revalidation gives a ~5% progression on throttled warm PLT on iPhone 5s. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::start): * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::retrieve): (WebKit::NetworkCache::Cache::store): (WebKit::NetworkCache::Cache::update): * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): * NetworkProcess/cache/NetworkCacheEntry.h: * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: Added. (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): (WebKit::NetworkCache::SpeculativeLoad::~SpeculativeLoad): (WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest): (WebKit::NetworkCache::SpeculativeLoad::didReceiveBuffer): (WebKit::NetworkCache::SpeculativeLoad::didFinishLoading): (WebKit::NetworkCache::SpeculativeLoad::didFailLoading): (WebKit::NetworkCache::SpeculativeLoad::didComplete): * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: Added. * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::constructRevalidationRequest): (WebKit::NetworkCache::responseNeedsRevalidation): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::takeCacheEntry): (WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::lifetimeTimerFired): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad): (WebKit::NetworkCache::SpeculativeLoadManager::retrieve): (WebKit::NetworkCache::SpeculativeLoadManager::registerLoad): (WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry): (WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage): (WebKit::NetworkCache::SpeculativeLoadManager::satisfyPendingRequests): (WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry): (WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry): (WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::registerSubresource): Deleted. (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::encodeAsSubresourcesRecord): Deleted. * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h: * WebKit2.xcodeproj/project.pbxproj: 2015-11-11 Anders Carlsson _WKRemoteObjectInterface should handle specifying allowed classes for reply block arguments https://bugs.webkit.org/show_bug.cgi?id=151144 Reviewed by Tim Horton. * Shared/API/Cocoa/_WKRemoteObjectInterface.h: * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: (classesForSelectorArgument): (-[_WKRemoteObjectInterface classesForSelector:argumentIndex:ofReply:]): (-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:ofReply:]): (-[_WKRemoteObjectInterface classesForSelector:argumentIndex:]): (-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]): 2015-11-11 Tim Horton Add some font-related preferences to the modern API https://bugs.webkit.org/show_bug.cgi?id=151138 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _defaultFontSize]): (-[WKPreferences _setDefaultFontSize:]): (-[WKPreferences _defaultFixedPitchFontSize]): (-[WKPreferences _setDefaultFixedPitchFontSize:]): (-[WKPreferences _fixedPitchFontFamily]): (-[WKPreferences _setFixedPitchFontFamily:]): * UIProcess/API/Cocoa/WKPreferencesPrivate.h: 2015-11-11 Carlos Garcia Campos [GTK] Runtime critical warnings when closing a page containing windowed plugins https://bugs.webkit.org/show_bug.cgi?id=151132 Reviewed by Martin Robinson. This is because our plugin widget, that is a GtkPlug (derived from GtkWindow), can receive the delete-event signal before NetscapePlugin::platformDestroy is called. The delete-event signal, by default, destroys the window when the signal is not handled. So, after the delete-event the GtkPlug is destroyed, but our pointer hasn't been reset. We can handle the delete-event using gtk_widget_hide_on_delete as callback, so that the plugin widget is hidden instead of destroyed. * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: (WebKit::NetscapePlugin::platformPostInitializeWindowed): 2015-11-11 Carlos Garcia Campos REGRESSION(r191856): [GTK] SOCK_SEQPACKET no longer used after r191856 https://bugs.webkit.org/show_bug.cgi?id=151129 Reviewed by Martin Robinson. r191856 unconditionally disabled SOCK_SEQPACKET for GTK port. * Platform/IPC/unix/ConnectionUnix.cpp: Use always SOCK_SEQPACKET when available. 2015-11-10 Alex Christensen Implement authentication challenge handling when using NETWORK_SESSION https://bugs.webkit.org/show_bug.cgi?id=150968 Reviewed by Antti Koivisto. * NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveChallenge): Copy functionality from NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync (which is used when we don't use NETWORK_SESSION) because there is no canAuthenticateAgainstProtectionSpace delegate callback when using NSURLSession, according to https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/AuthenticationChallenges.html Instead, all authentication challenge callbacks go to URLSession:task:didReceiveChallenge:completionHandler: because we do not implement URLSession:didReceiveChallenge:completionHandler: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[NetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): (-[NetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): (-[NetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): Make a block copy of the completion handlers so we can copy the std::functions that wrap them into HashMaps and call them later, in this case we call the completion handler after the UIProcess gives us credentials for an authentication challenge. * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::AuthenticationManager): (WebKit::AuthenticationManager::addChallengeToChallengeMap): (WebKit::AuthenticationManager::shouldCoalesceChallenge): (WebKit::AuthenticationManager::coalesceChallengesMatching): (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): Fix an existing bug that caused multiple calls to addChallengeToChallengeMap for one challenge. This caused too many calls to the AuthenticationClient methods, which did not cause a problem because they were not one-time-use block copies of completion handlers before. (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): Call completion handlers which we stored in a HashMap before doing IPC if we are using NETWORK_SESSION, which has completion handlers instead of continueSomething client calls. * Shared/Authentication/AuthenticationManager.h: (WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount): * Shared/Downloads/Download.cpp: (WebKit::Download::didReceiveAuthenticationChallenge): (WebKit::Download::didReceiveResponse): * Shared/Downloads/DownloadAuthenticationClient.cpp: (WebKit::DownloadAuthenticationClient::receivedChallengeRejection): * Shared/Downloads/DownloadAuthenticationClient.h: Add ifdefs for code related to downloading I will implement later. 2015-11-10 Simon Fraser Use different pixel formats for displays that support them https://bugs.webkit.org/show_bug.cgi?id=151122 rdar://problem/22846841 Reviewed by Tim Horton. New the new IOSurface formats when appropriate for the properties of the display. * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::bufferFormat): (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): 2015-11-10 Tim Horton Adopt formal protocols for CA delegates https://bugs.webkit.org/show_bug.cgi?id=151121 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/Cocoa/WebViewImpl.mm: * UIProcess/mac/WKTextFinderClient.mm: * UIProcess/mac/WebPageProxyMac.mm: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/cocoa/WebProcessCocoa.mm: Adapt to the split out SPI headers. * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: Conform! 2015-11-10 Dan Bernstein Fixed the build. * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm: (DatabaseServiceInitializer): * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm: (NetworkServiceInitializer): * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm: (WebContentServiceInitializer): 2015-11-10 Chris Dumez [WK2][NetworkCache] Rename SpeculativeLoader to SpeculativeLoadManager https://bugs.webkit.org/show_bug.cgi?id=151110 Reviewed by Alex Christensen. Rename SpeculativeLoader to SpeculativeLoadManager for clarity, as it manages all speculative loads. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::initialize): (WebKit::NetworkCache::Cache::retrieve): * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: Renamed from Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoader.cpp. (WebKit::NetworkCache::subresourcesType): (WebKit::NetworkCache::makeSubresourcesKey): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::registerSubresource): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::encodeAsSubresourcesRecord): (WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::markAsCompleted): (WebKit::NetworkCache::SpeculativeLoadManager::SpeculativeLoadManager): (WebKit::NetworkCache::SpeculativeLoadManager::~SpeculativeLoadManager): (WebKit::NetworkCache::SpeculativeLoadManager::registerLoad): * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h: Renamed from Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoader.h. * WebKit2.xcodeproj/project.pbxproj: 2015-11-10 Tim Horton Add WKWebViewConfiguration SPI for a variety of different ex-preferences https://bugs.webkit.org/show_bug.cgi?id=151070 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration _setRespectsImageOrientation:]): (-[WKWebViewConfiguration _respectsImageOrientation]): (-[WKWebViewConfiguration _setPrintsBackgrounds:]): (-[WKWebViewConfiguration _printsBackgrounds]): (-[WKWebViewConfiguration _setIncrementalRenderingSuppressionTimeout:]): (-[WKWebViewConfiguration _incrementalRenderingSuppressionTimeout]): (-[WKWebViewConfiguration _setAllowsJavaScriptMarkup:]): (-[WKWebViewConfiguration _allowsJavaScriptMarkup]): (-[WKWebViewConfiguration _setConvertsPositionStyleOnCopy:]): (-[WKWebViewConfiguration _convertsPositionStyleOnCopy]): (-[WKWebViewConfiguration _setAllowsMetaRefresh:]): (-[WKWebViewConfiguration _allowsMetaRefresh]): (-[WKWebViewConfiguration _setShowsURLsInToolTips:]): (-[WKWebViewConfiguration _showsURLsInToolTips]): (-[WKWebViewConfiguration _setServiceControlsEnabled:]): (-[WKWebViewConfiguration _serviceControlsEnabled]): (-[WKWebViewConfiguration _setImageControlsEnabled:]): (-[WKWebViewConfiguration _imageControlsEnabled]): * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Plumb some configuration SPI for various clients. 2015-11-10 Chris Dumez [WK2][iOS] Update WebContent sandbox profile to allow loading injected bundles again https://bugs.webkit.org/show_bug.cgi?id=151102 Reviewed by Dan Bernstein. Update WebContent sandbox profile to allow loading injected bundles again. * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: 2015-11-10 Carlos Garcia Campos [UNIX] Environment variable should take precedence over directories in plugin search path https://bugs.webkit.org/show_bug.cgi?id=151096 Reviewed by Martin Robinson. Otherwise you can't override the directories using the env vars for plugins already installed. * Shared/Plugins/unix/PluginSearchPath.cpp: (WebKit::pluginsDirectories): 2015-11-10 Carlos Garcia Campos [GTK] Use CROSS_PLATFORM_CONTEXT_MENUS https://bugs.webkit.org/show_bug.cgi?id=150642 Reviewed by Martin Robinson. Use CROSS_PLATFORM_CONTEXT_MENUS. Since we can't just use WebContextMenuItemData, because we need to bind a GtkAction to the menu items, this patch adds WebContextMenuItemGtk that derives from WebContextMenuItemData and adds the GtkAction and its own handling of submenu items. WebKitContextMenu and WebKitContextMenuItem no longer deal with the widgets (GtkMenu and GtkMenuItem), that are now created by WebContextMenuProxy when building the popup menu. This patch also removes the support for input methods submenu, since it has been deprecated (and disabled by default) in GTK+ for long time, it has never actually worked (because the menu items don't have a GtkAction associated) and it makes the code more complicated for no benefit. * PlatformGTK.cmake: * Shared/gtk/WebContextMenuItemGtk.cpp: Added. (WebKit::gtkStockIDFromContextMenuAction): (WebKit::WebContextMenuItemGtk::WebContextMenuItemGtk): (WebKit::WebContextMenuItemGtk::~WebContextMenuItemGtk): (WebKit::WebContextMenuItemGtk::createGtkActionIfNeeded): * Shared/gtk/WebContextMenuItemGtk.h: Copied from Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h. (WebKit::WebContextMenuItemGtk::gtkAction): (WebKit::WebContextMenuItemGtk::submenuItems): * UIProcess/API/gtk/WebKitContextMenu.cpp: (webkitContextMenuPopulate): (webkitContextMenuCreate): Deleted. (webkitContextMenuSetParentItem): Deleted. * UIProcess/API/gtk/WebKitContextMenuActions.cpp: (webkitContextMenuActionGetForContextMenuItem): * UIProcess/API/gtk/WebKitContextMenuActionsPrivate.h: * UIProcess/API/gtk/WebKitContextMenuItem.cpp: (webkitContextMenuItemSetSubMenu): (webkitContextMenuItemCreate): (webkitContextMenuItemToWebContextMenuItemGtk): (webkitContextMenuItemToWebContextMenuItemData): (webkit_context_menu_item_new): (webkit_context_menu_item_new_from_stock_action): (webkit_context_menu_item_new_from_stock_action_with_label): (webkit_context_menu_item_new_with_submenu): (webkit_context_menu_item_new_separator): (webkit_context_menu_item_get_action): (webkit_context_menu_item_get_stock_action): (webkit_context_menu_item_is_separator): Deleted. * UIProcess/API/gtk/WebKitContextMenuItemPrivate.h: * UIProcess/API/gtk/WebKitContextMenuPrivate.h: * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewPopulateContextMenu): (contextMenuDismissed): Deleted. (webkitWebViewSubmitFormRequest): Deleted. (webkitWebViewHandleAuthenticationChallenge): Deleted. (webkitWebViewInsecureContentDetected): Deleted. (webkitWebViewEmitRunColorChooser): Deleted. (webkitWebViewRequestInstallMissingMediaPlugins): Deleted. * UIProcess/gtk/WebContextMenuProxyGtk.cpp: (WebKit::contextMenuItemActivatedCallback): (WebKit::WebContextMenuProxyGtk::append): (WebKit::WebContextMenuProxyGtk::populate): (WebKit::WebContextMenuProxyGtk::show): (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): (WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): * UIProcess/gtk/WebContextMenuProxyGtk.h: (WebKit::WebContextMenuProxyGtk::gtkMenu): * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: 2015-11-09 Carlos Garcia Campos Unreviewed. Fix GTK+ build after r192184. * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::initialize): (WebKit::LayerTreeHostGtk::pageBackgroundTransparencyChanged): 2015-11-09 Eric Carlson [Mac] Add a mock AppleTV device for testing https://bugs.webkit.org/show_bug.cgi?id=148912 Reviewed by Tim Horton. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): Update for MediaPlaybackTargetContext changes. (IPC::ArgumentCoder::decode): Ditto. * Shared/WebCoreArgumentCoders.h: * Shared/mac/WebCoreArgumentCodersMac.mm: (IPC::ArgumentCoder::encodePlatformData): Ditto. (IPC::ArgumentCoder::decodePlatformData): Ditto. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerEnabled): New. (WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerState): Ditto. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: Add SetMockMediaPlaybackTargetPickerEnabled and SetMockMediaPlaybackTargetPickerState. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::setMockMediaPlaybackTargetPickerEnabled): New. (WebKit::WebChromeClient::setMockMediaPlaybackTargetPickerState): Ditto. * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.h: MediaPlaybackTargetContext is a class, not a struct. * WebProcess/WebPage/WebPage.messages.in: Ditto. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::playbackTargetSelected): Support mock target. 2015-11-09 Ryuan Choi [EFL] Crash while opening child webview with EWK_PROCESS_MODEL_MULTIPLE_SECONDARY https://bugs.webkit.org/show_bug.cgi?id=145924 Reviewed by Gyuyoung Kim. There are some crashes when we clicked the link that opens child window via window.open or tag with _blank target if process model is multiple secondary. It's because multiple secondary process model tries to assign new webprocess if related page is null. In order to keep the child window in same process with opener, we should pass related page when we create WebPageProxy. This patch adds ewk_view_configuration object and ewk_view_add_configuration() to pass related page to WebPageProxy. * PlatformEfl.cmake: * UIProcess/API/C/CoordinatedGraphics/WKView.cpp: (WKViewCreate): * UIProcess/API/C/CoordinatedGraphics/WKView.h: * UIProcess/API/efl/EWebKit2.h.in: * UIProcess/API/efl/EwkView.cpp: (EwkView::createNewPage): * UIProcess/API/efl/ewk_view_configuration.cpp: Added. * UIProcess/API/efl/ewk_view_configuration.h: Added. * UIProcess/API/efl/ewk_view_configuration_private.h: Added. * UIProcess/API/efl/ewk_view.cpp: (EWKViewCreate): (ewk_view_smart_add): (ewk_view_add_with_configuration): Added to pass configuration. (ewk_view_add_with_context): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_view_private.h: * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo): (EWK2UnitTest::EWK2UnitTestBase::waitUntilNotNull): * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h: * UIProcess/API/efl/tests/test_ewk2_view.cpp: Added test cases to test window_create smart method. (windowCreateCallback): (TEST_F): (EWK2ViewTestNewWindowWithMultipleProcesses::EWK2ViewTestNewWindowWithMultipleProcesses): * UIProcess/API/efl/tests/test_ewk2_window_features.cpp: (EWK2WindowFeaturesTest::createDefaultWindow): (EWK2WindowFeaturesTest::createWindow): * UIProcess/CoordinatedGraphics/WebView.cpp: (WebKit::WebView::WebView): * UIProcess/CoordinatedGraphics/WebView.h: * UIProcess/efl/WebInspectorProxyEfl.cpp: (WebKit::WebInspectorProxy::platformCreateInspectorPage): * UIProcess/efl/WebViewEfl.cpp: (WebKit::WebView::create): (WebKit::WebViewEfl::WebViewEfl): * UIProcess/efl/WebViewEfl.h: 2015-11-09 Anders Carlsson Don't call Vector::uncheckedAppend on a vector that we haven't reserved the capacity for https://bugs.webkit.org/show_bug.cgi?id=151069 rdar://problem/23473435 Reviewed by Tim Horton. * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: (initializeMethod): 2015-11-09 Anders Carlsson Fix 32-bit build. * Shared/API/Cocoa/RemoteObjectRegistry.mm: (WebKit::RemoteObjectRegistry::callReplyBlock): 2015-11-09 Anders Carlsson Add reply blocks to _WKRemoteObjectInterface similar to NSXPCConnection https://bugs.webkit.org/show_bug.cgi?id=151056 rdar://problem/23222609 Reviewed by Tim Horton. * Platform/spi/Cocoa/NSInvocationSPI.h: Add NSBlockInvocation declaration. * Shared/API/Cocoa/RemoteObjectInvocation.mm: (WebKit::RemoteObjectInvocation::encode): Encode true if we have a reply ID. * Shared/API/Cocoa/RemoteObjectRegistry.h: Add new members. * Shared/API/Cocoa/RemoteObjectRegistry.messages.in: Add new CallReplyBlock message. * Shared/API/Cocoa/RemoteObjectRegistry.mm: (WebKit::RemoteObjectRegistry::sendReplyBlock): Just send the CallReplyBlock message. (WebKit::RemoteObjectRegistry::callReplyBlock): Call through to _WKRemoteObjectRegistry. * Shared/API/Cocoa/WKRemoteObjectCoder.h: Pass an optional reply selector. * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (encodeInvocationArguments): Don't hard-code the first argument index. (encodeInvocation): Encode block invocations. (-[WKRemoteObjectDecoder initWithInterface:rootObjectDictionary:replyToSelector:]): Initialize _replyToSelector. (validateClass): NSBlockInvocation doesn't need to conform to NSSecureCoding. (decodeInvocationArguments): Don't hard-code the first argument, take it as a parameter instead. (decodeInvocation): Decode NSBlockInvocations (reply block invocations). (decodeObject): Check for NSBlockInvocation. * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: (-[_WKRemoteObjectInterface _methodSignatureForSelector:]): Return null if we can't find the method. (-[_WKRemoteObjectInterface _methodSignatureForReplyBlockOfSelector:]): Look up the reply block signature and return it. (-[_WKRemoteObjectInterface _allowedArgumentClassesForReplyBlockOfSelector:]): Look up the allowed reply argument classes and return them. * Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h: Add new methods. * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: (PendingReply::PendingReply): Add new object that represents a pending reply. (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): If the invocation has a reply block, add a pending reply to our map. (-[_WKRemoteObjectRegistry _invokeMethod:]): If the method we're about to invoke has a reply block, construct a special reply block that calls us back with an invocation. Encode this invocation and send it back across the wire. (-[_WKRemoteObjectRegistry _callReplyWithID:blockInvocation:]): Find the pending reply, decode the reply block invocation and call it. * Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h: Add new methods. 2015-11-09 Tim Horton Add drawsBackground SPI to WKWebView, and get rid of drawsTransparentBackground from WebKit2 https://bugs.webkit.org/show_bug.cgi?id=151054 Reviewed by Simon Fraser. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): Deleted. (WebKit::WebPageCreationParameters::decode): Deleted. * Shared/WebPageCreationParameters.h: * UIProcess/API/mac/WKView.mm: (-[WKView setDrawsTransparentBackground:]): (-[WKView drawsTransparentBackground]): * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::updateLayer): (WebKit::WebViewImpl::setDrawsTransparentBackground): Deleted. (WebKit::WebViewImpl::drawsTransparentBackground): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): Deleted. (WebKit::WebPageProxy::setDrawsTransparentBackground): Deleted. (WebKit::WebPageProxy::creationParameters): Deleted. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::drawsTransparentBackground): Deleted. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCreateInspectorPage): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): Deleted. (WebKit::m_shouldDispatchFakeMouseMoveEvents): Deleted. (WebKit::WebPage::setDrawsTransparentBackground): Deleted. * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::drawsTransparentBackground): Deleted. * WebProcess/WebPage/WebPage.messages.in: Get rid of drawsTransparentBackground. It doesn't seem like there's any observable difference in a layer-backed world. WKView's (set)drawsTransparentBackground will just forward to drawsBackground (inverted). * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _webProcessIsResponsive]): Move _webProcessIsResponsive up with the other cross-platform SPI methods, instead of below all of the platform-specific SPI methods. (-[WKWebView _drawsBackground]): (-[WKWebView _setDrawsBackground:]): Added. (-[WKWebView _drawsTransparentBackground]): (-[WKWebView _setDrawsTransparentBackground:]): Deleted. * UIProcess/API/Cocoa/WKWebViewPrivate.h: Replace drawsTransparentBackground with drawsBackground. 2015-11-09 Joseph Pecoraro Web Inspector: REGRESSION: 2nd level inspector should not be able to dock to first https://bugs.webkit.org/show_bug.cgi?id=151050 Reviewed by Brian Burg. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCanAttach): Check now that the inspected view can be a WKWebView. 2015-11-09 Anders Carlsson Introspect reply block types as well https://bugs.webkit.org/show_bug.cgi?id=151048 Reviewed by Tim Horton. * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: (initializeMethod): (initializeMethods): (-[_WKRemoteObjectInterface debugDescription]): 2015-11-09 Anders Carlsson Implement -[_WKRemoteObjectInterface debugDescription] and have it look like the NSXPCInterface equivalent https://bugs.webkit.org/show_bug.cgi?id=151044 Reviewed by Tim Horton. * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: (-[_WKRemoteObjectInterface debugDescription]): (-[_WKRemoteObjectInterface description]): Deleted. 2015-11-06 Anders Carlsson Rework the way allowed argument classes are stored https://bugs.webkit.org/show_bug.cgi?id=150992 Reviewed by Darin Adler. Add a separate MethodInfo class so we have someplace to store the reply block arguments. Use HashSet instead of NSSet. No functionality change intended. * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (-[WKRemoteObjectDecoder decodeValueOfObjCType:at:]): (decodeObjectFromObjectStream): (checkIfClassIsAllowed): (decodeInvocationArguments): (decodeObject): (-[WKRemoteObjectDecoder decodeObjectOfClasses:forKey:]): (-[WKRemoteObjectDecoder allowedClasses]): * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: (isContainerClass): (propertyListClasses): (initializeMethod): (initializeMethods): (-[_WKRemoteObjectInterface initWithProtocol:identifier:]): (classesForSelectorArgument): (-[_WKRemoteObjectInterface classesForSelector:argumentIndex:]): (-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]): (-[_WKRemoteObjectInterface _allowedArgumentClassesForSelector:]): (allowedArgumentClassesForMethod): Deleted. (initializeAllowedArgumentClasses): Deleted. * Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h: 2015-11-09 Csaba Osztrogonác Unreviewed CMake buildfix after r192113. * PlatformMac.cmake: New file added. 2015-11-09 Csaba Osztrogonác Unreviewed speculative CMake buildfix after r192111. * CMakeLists.txt: New files added. 2015-11-08 Gyuyoung Kim [EFL] Add UserAgentEFl.cpp|h https://bugs.webkit.org/show_bug.cgi?id=151007 Reviewed by Darin Adler. As other ports EFL port starts to have UserAgentEfl class in order to support more detailed UA. * UIProcess/efl/WebPageProxyEfl.cpp: (WebKit::WebPageProxy::standardUserAgent): Call WebCore::standardUserAgent(). 2015-11-07 Simon Fraser Remove ColorSpace argument to all the drawing calls https://bugs.webkit.org/show_bug.cgi?id=150967 Reviewed by Darin Adler. * Shared/API/c/cg/WKImageCG.cpp: (WKImageCreateFromCGImage): * Shared/ContextMenuContextData.cpp: (WebKit::ContextMenuContextData::ContextMenuContextData): * Shared/WebCoreArgumentCoders.cpp: (IPC::encodeImage): * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::drawInContext): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _updateScrollViewBackground]): * UIProcess/WKInspectorHighlightView.mm: (-[WKInspectorHighlightView _layoutForNodeHighlight:offset:]): (-[WKInspectorHighlightView _layoutForRectsHighlight:]): * UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::beginSwipeGesture): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _updateTapHighlight]): * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::drawRect): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::createSelectionSnapshot): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::snapshotAtSize): * WebProcess/WebPage/ios/FindControllerIOS.mm: (WebKit::FindIndicatorOverlayClientIOS::drawRect): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::didSetupFullscreen): 2015-11-07 Simon Fraser Use ColorSpaceSRGB for image buffers everywhere https://bugs.webkit.org/show_bug.cgi?id=150990 Reviewed by Zalan Bujtas. ColorSpaceSRGB and ColorSpaceDeviceRGB are equivalent now, so convert code that creates image buffers tagged with ColorSpaceDeviceRGB to use ColorSpaceSRGB. * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::decode): (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _takeViewSnapshot]): (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): 2015-11-06 Brady Eidson Modern IDB: Make the result data for a "get" request be an IDBGetResult. https://bugs.webkit.org/show_bug.cgi?id=150985 Reviewed by Alex Christensen. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): 2015-11-06 Tim Horton Add preliminary (SPI) support for NSTextFinder on WKWebView https://bugs.webkit.org/show_bug.cgi?id=150907 Reviewed by Darin Adler. New API test: WebKit2.FindInPage * Platform/spi/mac/AppKitSPI.h: Add some SPI. * UIProcess/API/APIFindClient.h: (API::FindClient::didFindString): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageFindClient): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFindString): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/Cocoa/FindClient.h: * UIProcess/Cocoa/FindClient.mm: (WebKit::FindClient::didFindString): Make didFindString return the match rects like didFindStringMatches does. * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindUIAfterPageScroll): (WebKit::FindController::findString): Keep the most recent find match around for incremental find just like we do for the non-incremental version. This way, getImageForFindMatch and selectFindMatch will work for incremental find too! * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _ensureTextFinderClient]): (-[WKWebView findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]): (-[WKWebView documentContainerView]): (-[WKWebView getSelectedText:]): (-[WKWebView selectFindMatch:completionHandler:]): Implement NSTextFinder's async client protocol and forward to the new WKTextFinderClient. * UIProcess/API/Cocoa/WKWebViewPrivate.h: Privately note our conformance to the aformentioned protocol. * UIProcess/mac/WKTextFinderClient.h: Added. * UIProcess/mac/WKTextFinderClient.mm: Added. (WebKit::TextFinderFindClient::TextFinderFindClient): (-[WKTextFinderMatch initWithClient:view:index:rects:]): (-[WKTextFinderMatch containingView]): (-[WKTextFinderMatch textRects]): (-[WKTextFinderMatch generateTextImage:]): (-[WKTextFinderMatch index]): (-[WKTextFinderClient initWithPage:view:]): (-[WKTextFinderClient willDestroyView:]): (-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]): (-[WKTextFinderClient getSelectedText:]): (-[WKTextFinderClient selectFindMatch:completionHandler:]): (-[WKTextFinderClient didFindStringMatches:rects:index:]): (-[WKTextFinderClient didGetImageForMatchResult:index:]): (-[WKTextFinderClient didFindString:rects:index:]): (-[WKTextFinderClient didFailToFindString:]): (-[WKTextFinderClient getImageForMatchResult:completionHandler:]): * WebKit2.xcodeproj/project.pbxproj: Add WKTextFinderClient. It installs itself as the FindClient and FindMatchesClient, so you can only use one mechanism or the other. 2015-11-06 Chris Dumez [WK2][SpeculativeRevalidation] Save to disk cache relationship between resources https://bugs.webkit.org/show_bug.cgi?id=150951 Reviewed by Darin Adler. This patch is a first step towards speculative revalidation support in the WebKit network cache. It maps sub-resources to the main resource that caused them to be requested. We then write this information to the network cache, as a list of subresource keys for each main resource, even if the main resource is not cacheable. To map sub-resources to main resources, we track the loads happening in each frame and store the key of the main resource for the frame, as well as the key of each sub-resource later loaded in the frame. We use a HysteresisActivity to detect when loads settle down in each frame (no loads happen for a while) and we then write the information to the disk. If a new main resource is loaded in a frame where we were already tracking a load, we save the data to disk before tracking the new load, instead of waiting for the HysteresisActivity to detect the end of the load. The feature is currently behind a compile-time flag that is enabled on Mac and iOS only. It is also behind a runtime flag (NSUserDefaults) that is disabled by default. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::start): Pass frameID in addition to the pageID. We need to globally identify frames (using pair) to be able to track loads in each frame. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::initialize): Only initialize the SpeculativeLoader if the enableNetworkCacheSpeculativeRevalidation run-time flag is set. (WebKit::NetworkCache::Cache::retrieve): Register the load with the SpeculativeLoader. * NetworkProcess/cache/NetworkCacheKey.h: (WebKit::NetworkCache::Key::Key): (WebKit::NetworkCache::Key::isHashTableDeletedValue): (WebKit::NetworkCache::Key::range): (WTF::NetworkCacheKeyHash::hash): (WTF::NetworkCacheKeyHash::equal): (WTF::HashTraits::isEmptyValue): Add needed HashTraits for NetworkCache::Key so it can be used as key in HashMap / HashSet. * NetworkProcess/cache/NetworkCacheSpeculativeLoader.cpp: Added. * NetworkProcess/cache/NetworkCacheSpeculativeLoader.h: Added. Add new NetworkCacheSpeculativeLoader class that takes care of tracking loads in each frame to map subresources to main resources and then write this information to the network disk cache. In the future, this class we also take care of triggering speculative revalidations, thus the naming. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::platformInitializeNetworkProcess): * Shared/Network/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode): (WebKit::NetworkProcessCreationParameters::decode): * Shared/Network/NetworkProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::registerUserDefaultsIfNeeded): (WebKit::WebProcessPool::platformInitializeNetworkProcess): Add new NetworkProcess parameter to control at runtime if speculative loading should be enabled or not. It is disabled by default. * WebKit2.xcodeproj/project.pbxproj: Add new files to XCode project. * config.h: Add ENABLE_NETWORK_CACHE_SPECULATIVE_REVALIDATION build flag for the new feature that is enable by default on COCOA. 2015-11-06 Chris Dumez Unreviewed, remove empty #if block landed by mistake in r192038. * NetworkProcess/NetworkLoad.cpp: 2015-11-06 Philip Chimento [GTK] Fails to link libwebkit2gtkinjectedbundle.so on OSX https://bugs.webkit.org/show_bug.cgi?id=144785 Reviewed by Philippe Normand. * PlatformGTK.cmake: Add missing WebKit2 library to list of libraries to link with. Required for OSX build. 2015-11-05 Nikos Andronikos Add runtime and compile time flags for enabling Web Animations API and model. https://bugs.webkit.org/show_bug.cgi?id=150914 Reviewed by Benjamin Poulain. Add ENABLE_WEB_ANIMATIONS compile time flag, runtime flag webAnimationsEnabled and Expose WK2 preference for runtime flag. * Configurations/FeatureDefines.xcconfig: * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetWebAnimationsEnabled): (WKPreferencesGetWebAnimationsEnabled): * UIProcess/API/C/WKPreferencesRefPrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): (WebKit::InjectedBundle::setWebAnimationsEnabled): * WebProcess/InjectedBundle/InjectedBundle.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-11-05 Ryuan Choi [EFL] Separate beforeunload confirm callback from confirm callback https://bugs.webkit.org/show_bug.cgi?id=150964 Reviewed by Gyuyoung Kim. Browser may need to distinguish between beforeunload confirm panel and general confirm panel. For example, browser may want to modify the message or show different buttons from confirm panel such as "Stay Page | Leave Page". * UIProcess/API/efl/EwkView.cpp: (EwkView::requestJSBeforeUnloadConfirmPopup): * UIProcess/API/efl/EwkView.h: * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/tests/test_ewk2_view.cpp: (TEST_F): * UIProcess/efl/PageUIClientEfl.cpp: (WebKit::PageUIClientEfl::runBeforeUnloadConfirmPanel): 2015-11-05 Commit Queue Unreviewed, rolling out r192089. https://bugs.webkit.org/show_bug.cgi?id=150966 This change broke an existing layout test on Yosemite and Mavericks (Requested by ryanhaddad on #webkit). Reverted changeset: "Preview on apple.com/contact with all text selected shows a map" https://bugs.webkit.org/show_bug.cgi?id=150963 http://trac.webkit.org/changeset/192089 2015-11-05 Tim Horton Preview on apple.com/contact with all text selected shows a map https://bugs.webkit.org/show_bug.cgi?id=150963 Reviewed by Beth Dakin. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performDictionaryLookupForSelection): In this case, we don't know where we hit, so pass a null VisiblePosition. 2015-11-05 Geoffrey Garen _WKObservablePageState's _webProcessIsResponsive property isn't set to YES when an unresponsive page is reloaded https://bugs.webkit.org/show_bug.cgi?id=150953 Reviewed by Anders Carlsson. * UIProcess/ResponsivenessTimer.cpp: (WebKit::ResponsivenessTimer::processTerminated): Call stop() to indicate that we are responsive again. This gives the client a chance to remove the SPOD cursor, among other things. * UIProcess/ResponsivenessTimer.h: (WebKit::ResponsivenessTimer::processTerminated): Anders told me to do this! * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetStateAfterProcessExited): Be sure to reset the responsiveness timer too, or it will continue thinking we are unresponsive after a crash or a forced load or reload. 2015-11-05 Anders Carlsson Move invocation argument encoding out to a separate function https://bugs.webkit.org/show_bug.cgi?id=150950 Reviewed by Tim Horton. * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (encodeInvocationArguments): (encodeInvocation): 2015-11-05 Chris Dumez [WK2] Clean up / Modernize NetworkResourceLoader https://bugs.webkit.org/show_bug.cgi?id=150922 Reviewed by Andreas Kling. Clean up / Modernize NetworkResourceLoader. * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: (WebKit::NetworkBlobRegistry::filesInBlob): * NetworkProcess/FileAPI/NetworkBlobRegistry.h: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData): (WebKit::sendReplyToSynchronousRequest): (WebKit::NetworkResourceLoader::NetworkResourceLoader): (WebKit::NetworkResourceLoader::startNetworkLoad): (WebKit::NetworkResourceLoader::didFinishLoading): (WebKit::NetworkResourceLoader::willSendRedirectedRequest): (WebKit::NetworkResourceLoader::bufferingTimerFired): (WebKit::NetworkResourceLoader::sendBufferMaybeAborting): (WebKit::NetworkResourceLoader::validateCacheEntry): (WebKit::NetworkResourceLoader::messageSenderConnection): (WebKit::NetworkResourceLoader::invalidateSandboxExtensions): (WebKit::NetworkResourceLoader::~NetworkResourceLoader): Deleted. (WebKit::NetworkResourceLoader::didReceiveBuffer): Deleted. (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): Deleted. (WebKit::NetworkResourceLoader::consumeSandboxExtensions): Deleted. (WebKit::NetworkResourceLoader::sendAbortingOnFailure): Deleted. * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/mac/NetworkDiskCacheMonitor.h: 2015-11-05 Chris Dumez Regression(r192038): Safari cannot load any pages https://bugs.webkit.org/show_bug.cgi?id=150937 Reviewed by Alex Christensen. Make sure we use the current "defersLoading" state instead of the original one when constructing / initializing the NetworkLoad. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::startNetworkLoad): 2015-11-05 Ryuan Choi [EFL] Add try_close API to handle beforeunload event https://bugs.webkit.org/show_bug.cgi?id=150705 Reviewed by Gyuyoung Kim. This patch adds ewk_view_try_close to have a chance to call confirm callback for beforeunload event while destryoing webview. * UIProcess/API/efl/ewk_view.cpp: (ewk_view_try_close): * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/tests/test_ewk2_view.cpp: (EWK2ViewTest::beforeUnloadCallback): (EWK2ViewTest::windowCloseCallback): (TEST_F): Added test case for ewk_view_try_close. 2015-11-04 Carlos Garcia Campos [GTK] Epiphany with Debug mode compiled WebKitGtk+ 2.10.3 hits ASSERT_ARG on willEnterAcceleratedCompositingMode https://bugs.webkit.org/show_bug.cgi?id=150620 Reviewed by Mario Sanchez Prada. WillEnterAcceleratedCompositingMode message is sent when the LayerTreeHost is created in the Web Process. This can happen while there's still a DidUpdateBackingStoreState pending, in which case we are receiving the new backingStoreStateID, but the current one hasn't been updated yet. * UIProcess/DrawingAreaProxyImpl.cpp: (WebKit::DrawingAreaProxyImpl::willEnterAcceleratedCompositingMode): Fix the ASSERT to check the given ID is alt least the next one, and remove the early return since it's valid to not enter AC mode in the end after the WillEnter message. 2015-11-04 Tim Horton REGRESSION (r191499): 100% repro crash under _prepareForMoveToWindow: https://bugs.webkit.org/show_bug.cgi?id=150912 Reviewed by Simon Fraser. * UIProcess/API/mac/WKView.mm: (-[WKView _prepareForMoveToWindow:withCompletionHandler:]): 2015-11-04 Chris Dumez Regression(r192038): Crash in ~SandboxExtension() https://bugs.webkit.org/show_bug.cgi?id=150898 Reviewed by Alex Christensen. We are seeing a couple of crashes under ~SandboxExtension() on the bots after ~SandboxExtension(). The reason is that the SandBoxExtension is still in use (useCount > 0) when destroyed. This happens due to a bug in setDefersLoading() that could cause the load to get started more than once and thus the SandboxExtension to be consumed more than once. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::setDefersLoading): (WebKit::NetworkResourceLoader::consumeSandboxExtensions): 2015-11-04 Chris Dumez [WK2] Extract networking code out of NetworkResourceLoader class to improve reusability https://bugs.webkit.org/show_bug.cgi?id=150898 Reviewed by Alex Christensen. Extract networking code out of NetworkResourceLoader class to improve reusability (will be used for speculative revalidation) and simplify the NetworkResourceLoader. * CMakeLists.txt: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): * NetworkProcess/NetworkLoad.cpp: Added. * NetworkProcess/NetworkLoad.h: Added. * NetworkProcess/NetworkLoadClient.h: Added. * NetworkProcess/NetworkLoadParameters.cpp: Added. * NetworkProcess/NetworkLoadParameters.h: Added. * NetworkProcess/NetworkResourceLoader.cpp: * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/mac/NetworkLoadMac.mm: Added. * NetworkProcess/mac/NetworkResourceLoaderMac.mm: (WebKit::NetworkResourceLoader::willCacheResponseAsync): * WebKit2.xcodeproj/project.pbxproj: 2015-11-04 Beth Dakin Link preview doesn't work on XHTML pages with Content-Type header as `application/xhtml+xml` https://bugs.webkit.org/show_bug.cgi?id=150740 -and corresponding- rdar://problem/23063585 Reviewed by Darin Adler. My original fix for this bug was incorrect in the presence of non-HTML elements that happen to have the same local name as HTML elements. Since it seems silly to have all of this logic in the UI process to determine whether to treat something as a link or an image, this patch fixes the bug by adding isLink and isImage to InteractionInformationAtPosition in order to simplify everything. The only remaining uses of clickableElementName just use it to compare against isNull and isEmpty, so that can be a bool too. Add isLink and isImage, and turn clickableElementName into isClickableElement * Shared/InteractionInformationAtPosition.cpp: (WebKit::InteractionInformationAtPosition::encode): (WebKit::InteractionInformationAtPosition::decode): * Shared/InteractionInformationAtPosition.h: Use the new isLink, isImage, and isClickableElement * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _actionForLongPress]): (-[WKContentView gestureRecognizerShouldBegin:]): (-[WKContentView _highlightLongPressRecognized:]): (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): (-[WKContentView _dataForPreviewItemController:atPosition:type:]): Set everything correctly. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-11-04 Wenson Hsieh Fix crashing fast-clicking WK2 tests on iOS https://bugs.webkit.org/show_bug.cgi?id=150896 Reviewed by Simon Fraser. In order for the modified fast-clicking tests to pass, we can't allow hit-testing to find the tap highlight view. See the Radar for more UIKit-specific descriptions. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _showTapHighlight]): 2015-11-03 Anders Carlsson PageLoadState::will/didChangeProcessIsResponsive should call observers https://bugs.webkit.org/show_bug.cgi?id=150870 Reviewed by Dan Bernstein. * UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::willChangeProcessIsResponsive): (WebKit::PageLoadState::didChangeProcessIsResponsive): 2015-11-04 Ryan Haddad Speculative build fix. Missed the checkin for the changelog with r192029. * UIProcess/API/Cocoa/WKWebView.mm: 2015-11-03 Andy Estes [Cocoa] Add SPI to warm an initial web process https://bugs.webkit.org/show_bug.cgi?id=150886 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _warmInitialProcess]): * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: 2015-11-03 Andy Estes [Cocoa] Adopt WKWebViewAdditions https://bugs.webkit.org/show_bug.cgi?id=150885 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKWebView.mm: 2015-11-03 Tim Horton Duplicate validateUserInterfaceItem in WKWebView https://bugs.webkit.org/show_bug.cgi?id=150873 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView changeFont:]): (-[WKWebView startSpeaking:]): (-[WKWebView validateUserInterfaceItem:]): (-[WKWebView goBack:]): 2015-11-03 Geoffrey Garen Provide a way to turn off const in WebKit2. Reviewed by Sam Weinig. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): 2015-11-03 Alex Christensen Create a NetworkSession for each SessionID https://bugs.webkit.org/show_bug.cgi?id=150857 Reviewed by Anders Carlsson. This patch renames SessionTracker::session to storageSession and makes a parallel structure for NetworkSessions. NetworkSession and NetworkStorageSession should eventually become the same class in WebCore. Because not everybody uses NetworkSessions yet, we keep them separate but created, destroyed, and managed together. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::storageSession): * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::fetchWebsiteData): (WebKit::NetworkProcess::deleteWebsiteData): (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::startNetworkLoad): (WebKit::NetworkResourceLoader::abort): * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/NetworkSession.h: (WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient): (WebKit::NetworkDataTask::client): (WebKit::NetworkDataTask::clearClient): (WebKit::NetworkingDataTask::client): Deleted. (WebKit::NetworkingDataTask::clearClient): Deleted. (WebKit::NetworkSession::~NetworkSession): Deleted. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::configurationForType): (WebKit::defaultNetworkSession): (WebKit::NetworkSession::defaultSession): (WebKit::NetworkSession::NetworkSession): (WebKit::NetworkSession::~NetworkSession): (WebKit::NetworkSession::createDataTaskWithRequest): (WebKit::NetworkSession::dataTaskForIdentifier): (WebKit::NetworkDataTask::NetworkDataTask): (WebKit::NetworkDataTask::~NetworkDataTask): (WebKit::NetworkDataTask::cancel): (WebKit::NetworkDataTask::resume): (WebKit::NetworkDataTask::taskIdentifier): (WebKit::NetworkSession::create): Deleted. (WebKit::NetworkSession::singleton): Deleted. (WebKit::NetworkingDataTask::NetworkingDataTask): Deleted. (WebKit::NetworkingDataTask::~NetworkingDataTask): Deleted. (WebKit::NetworkingDataTask::suspend): Deleted. (WebKit::NetworkingDataTask::resume): Deleted. (WebKit::NetworkingDataTask::taskIdentifier): Deleted. * NetworkProcess/mac/RemoteNetworkingContext.mm: (WebKit::RemoteNetworkingContext::storageSession): (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): * Shared/SessionTracker.cpp: (WebKit::staticStorageSessionMap): (WebKit::identifierBase): (WebKit::SessionTracker::storageSessionMap): (WebKit::SessionTracker::getIdentifierBase): (WebKit::SessionTracker::storageSession): (WebKit::staticSessionMap): (WebKit::SessionTracker::networkSession): (WebKit::SessionTracker::sessionID): (WebKit::SessionTracker::setSession): (WebKit::SessionTracker::destroySession): (WebKit::SessionTracker::sessionMap): Deleted. (WebKit::SessionTracker::session): Deleted. * Shared/SessionTracker.h: * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): (WebKit::WebFrameNetworkingContext::storageSession): * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp: (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): (WebKit::WebFrameNetworkingContext::storageSession): 2015-11-03 Ryuan Choi [CoordinatedGraphics] invisible webview should not paint the content https://bugs.webkit.org/show_bug.cgi?id=150662 Reviewed by Darin Adler. Suspend or resume the painting instead of just initializing m_isPaintingSuspended for invisible webview not to paint the content until visibility is changed. * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp: (WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea): 2015-11-03 Anders Carlsson Simplify -[_WKRemoteObjectRegistry _invokeMethod:] https://bugs.webkit.org/show_bug.cgi?id=150844 Reviewed by Tim Horton. * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: (-[_WKRemoteObjectRegistry _invokeMethod:]): (-[_WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]): Deleted. * Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h: 2015-11-02 Anders Carlsson CTTE the responsiveness timer getter https://bugs.webkit.org/show_bug.cgi?id=150825 Reviewed by Daniel Bates. * UIProcess/API/C/mac/WKPagePrivateMac.mm: (-[WKObservablePageState _webProcessIsResponsive]): * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController _webProcessIsResponsive]): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _webProcessIsResponsive]): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reattachToWebProcessForReload): (WebKit::WebPageProxy::reattachToWebProcessWithItem): (WebKit::WebPageProxy::tryClose): (WebKit::WebPageProxy::loadRequest): (WebKit::WebPageProxy::loadFile): (WebKit::WebPageProxy::loadData): (WebKit::WebPageProxy::loadHTMLString): (WebKit::WebPageProxy::loadAlternateHTMLString): (WebKit::WebPageProxy::loadPlainTextString): (WebKit::WebPageProxy::loadWebArchiveData): (WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick): (WebKit::WebPageProxy::stopLoading): (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::goForward): (WebKit::WebPageProxy::goBack): (WebKit::WebPageProxy::goToBackForwardItem): (WebKit::WebPageProxy::dispatchViewStateChange): (WebKit::WebPageProxy::handleMouseEvent): (WebKit::WebPageProxy::sendWheelEvent): (WebKit::WebPageProxy::handleKeyboardEvent): (WebKit::WebPageProxy::handleGestureEvent): (WebKit::WebPageProxy::handleTouchEventSynchronously): (WebKit::WebPageProxy::handleTouchEvent): (WebKit::WebPageProxy::closePage): (WebKit::WebPageProxy::runJavaScriptAlert): (WebKit::WebPageProxy::runJavaScriptConfirm): (WebKit::WebPageProxy::runJavaScriptPrompt): (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): (WebKit::WebPageProxy::runOpenPanel): (WebKit::WebPageProxy::showPopupMenu): (WebKit::WebPageProxy::internalShowContextMenu): (WebKit::WebPageProxy::didReceiveEvent): (WebKit::WebPageProxy::stopResponsivenessTimer): (WebKit::WebPageProxy::runModal): (WebKit::WebPageProxy::updateBackingStoreDiscardableState): * UIProcess/WebProcessProxy.h: (WebKit::WebProcessProxy::responsivenessTimer): 2015-11-03 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.11.1 release. * gtk/NEWS: Add release notes for 2.11.1. 2015-11-03 Alex Christensen Use the same cookie storage as WebCore when using NETWORK_SESSION https://bugs.webkit.org/show_bug.cgi?id=150833 Reviewed by Antti Koivisto. This fixes 12 tests when using NETWORK_SESSION. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::NetworkSession): 2015-11-03 Alex Christensen Clean up NETWORK_SESSION code after r191848 https://bugs.webkit.org/show_bug.cgi?id=150829 Reviewed by Darin Adler. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveData): (WebKit::NetworkResourceLoader::didCompleteWithError): * NetworkProcess/NetworkSession.h: * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSession::NetworkSession): (WebKit::NetworkSession::createDataTaskWithRequest): (WebKit::NetworkSession::dataTaskForIdentifier): 2015-11-02 Carlos Garcia Campos Unreviewed. Fix GTK+ build after r191924. * UIProcess/API/gtk/WebKitWebView.cpp: 2015-11-02 Alex Christensen Fix CMake build after r191922. * PlatformMac.cmake: 2015-11-02 Andy Estes Try again to fix the iOS build. * Shared/mac/PDFKitImports.mm: 2015-11-02 Tim Horton Try to fix the iOS build * Shared/mac/PDFKitImports.h: 2015-11-02 Tim Horton Address a misssed review comment in r191922 * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm: (WebKit::PDFPlugin::nextMatchForString): 2015-11-02 Anders Carlsson Add KVO-compliant _webProcessIsResponsive property to WKWebView and _WKObservablePageState https://bugs.webkit.org/show_bug.cgi?id=150818 rdar://problem/22372131 Reviewed by Tim Horton. * UIProcess/API/C/mac/WKPagePrivateMac.h: * UIProcess/API/C/mac/WKPagePrivateMac.mm: (-[WKObservablePageState _webProcessIsResponsive]): * UIProcess/API/Cocoa/PageLoadStateObserver.h: * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController _webProcessIsResponsive]): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _webProcessIsResponsive]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/Cocoa/NavigationState.h: * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::willChangeWebProcessIsResponsive): (WebKit::NavigationState::didChangeWebProcessIsResponsive): * UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::willChangeProcessIsResponsive): (WebKit::PageLoadState::didChangeProcessIsResponsive): * UIProcess/PageLoadState.h: * UIProcess/ResponsivenessTimer.cpp: (WebKit::ResponsivenessTimer::ResponsivenessTimer): (WebKit::ResponsivenessTimer::timerFired): (WebKit::ResponsivenessTimer::stop): * UIProcess/ResponsivenessTimer.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::willChangeProcessIsResponsive): (WebKit::WebPageProxy::didChangeProcessIsResponsive): * UIProcess/WebPageProxy.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::WebProcessProxy): (WebKit::WebProcessProxy::didBecomeUnresponsive): (WebKit::WebProcessProxy::didBecomeResponsive): (WebKit::WebProcessProxy::willChangeIsResponsive): (WebKit::WebProcessProxy::didChangeIsResponsive): * UIProcess/WebProcessProxy.h: 2015-11-02 Tim Horton PDFPlugin should take advantage of threaded scrolling https://bugs.webkit.org/show_bug.cgi?id=150037 Reviewed by Anders Carlsson. Duplicate PDFPlugin, creating PDFPlugin (the modern version), and DeprecatedPDFPlugin (containing the code that used to be in PDFPlugin prior to this patch). The new PDFPlugin differs from the old one in a few significant ways, and we need to keep both alive for the time being. Significant differences include: - PDFPlugin is no longer a ScrollableArea - PDFPlugin no longer hosts layers owned by PDFKit; instead, it draws into the page tiles, allowing WebCore's threaded scrolling to do its job - PDFPlugin now resizes itself to the size of the document - PDFPlugin doesn't handle zooming itself, it just delegates to the page - PDFLayerController has large and incompatible API changes - PDFPlugin now implements more of the HUD behavior, but it's still painted by PDFLayerController (into a view-relative PageOverlay) [ File list elided because it's long and useless. ] 2015-11-02 Andy Estes [Cocoa] Add tvOS and watchOS to SUPPORTED_PLATFORMS https://bugs.webkit.org/show_bug.cgi?id=150819 Reviewed by Dan Bernstein. This tells Xcode to include these platforms in its Devices dropdown, making it possible to build in the IDE. * Configurations/Base.xcconfig: 2015-11-02 Anders Carlsson Begin work on supporting reply blocks in _WKRemoteObjectRegistry https://bugs.webkit.org/show_bug.cgi?id=150739 Reviewed by Tim Horton. * Platform/spi/Cocoa/BlockSPI.h: Add SPI header. * Shared/API/Cocoa/RemoteObjectInvocation.h: (WebKit::RemoteObjectInvocation::ReplyInfo::ReplyInfo): (WebKit::RemoteObjectInvocation::replyInfo): * Shared/API/Cocoa/RemoteObjectInvocation.mm: (WebKit::RemoteObjectInvocation::RemoteObjectInvocation): (WebKit::RemoteObjectInvocation::encode): (WebKit::RemoteObjectInvocation::decode): Add an optional ReplyInfo struct to RemoteObjectInvocation. * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: (generateReplyIdentifier): Helper function to generate a reply identifier. (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): Do some block parameter validation. * WebKit2.xcodeproj/project.pbxproj: 2015-11-02 Brent Fulgham [iOS] Another unreviewed sandbox update. * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Change copyright. 2015-11-02 Brent Fulgham [iOS] Unreviewed sandbox update. Correcting copyright information. * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: 2015-11-02 Tim Horton Get rid of WKWebView's inner WKView (WKView being inside WKWebView leads to weird API issues) https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView dealloc]): (-[WKWebView allowsLinkPreview]): (-[WKWebView setAllowsLinkPreview:]): (-[WKWebView acceptsFirstResponder]): (-[WKWebView becomeFirstResponder]): (-[WKWebView resignFirstResponder]): (-[WKWebView viewWillStartLiveResize]): (-[WKWebView viewDidEndLiveResize]): (-[WKWebView isFlipped]): (-[WKWebView intrinsicContentSize]): (-[WKWebView prepareContentInRect:]): (-[WKWebView setFrameSize:]): (-[WKWebView renewGState]): (-[WKWebView writeSelectionToPasteboard:types:]): (-[WKWebView centerSelectionInVisibleArea:]): (-[WKWebView validRequestorForSendType:returnType:]): (-[WKWebView readSelectionFromPasteboard:]): (-[WKWebView changeFont:]): (-[WKWebView validateUserInterfaceItem:]): (-[WKWebView startSpeaking:]): (-[WKWebView stopSpeaking:]): (-[WKWebView showGuessPanel:]): (-[WKWebView checkSpelling:]): (-[WKWebView changeSpelling:]): (-[WKWebView toggleContinuousSpellChecking:]): (-[WKWebView isGrammarCheckingEnabled]): (-[WKWebView setGrammarCheckingEnabled:]): (-[WKWebView toggleGrammarChecking:]): (-[WKWebView toggleAutomaticSpellingCorrection:]): (-[WKWebView orderFrontSubstitutionsPanel:]): (-[WKWebView toggleSmartInsertDelete:]): (-[WKWebView isAutomaticQuoteSubstitutionEnabled]): (-[WKWebView setAutomaticQuoteSubstitutionEnabled:]): (-[WKWebView toggleAutomaticQuoteSubstitution:]): (-[WKWebView isAutomaticDashSubstitutionEnabled]): (-[WKWebView setAutomaticDashSubstitutionEnabled:]): (-[WKWebView toggleAutomaticDashSubstitution:]): (-[WKWebView isAutomaticLinkDetectionEnabled]): (-[WKWebView setAutomaticLinkDetectionEnabled:]): (-[WKWebView toggleAutomaticLinkDetection:]): (-[WKWebView isAutomaticTextReplacementEnabled]): (-[WKWebView setAutomaticTextReplacementEnabled:]): (-[WKWebView toggleAutomaticTextReplacement:]): (-[WKWebView uppercaseWord:]): (-[WKWebView lowercaseWord:]): (-[WKWebView capitalizeWord:]): (-[WKWebView _wantsKeyDownForEvent:]): (-[WKWebView scrollWheel:]): (-[WKWebView swipeWithEvent:]): (-[WKWebView mouseMoved:]): (-[WKWebView mouseDown:]): (-[WKWebView mouseUp:]): (-[WKWebView mouseDragged:]): (-[WKWebView mouseEntered:]): (-[WKWebView mouseExited:]): (-[WKWebView otherMouseDown:]): (-[WKWebView otherMouseDragged:]): (-[WKWebView otherMouseUp:]): (-[WKWebView rightMouseDown:]): (-[WKWebView rightMouseDragged:]): (-[WKWebView rightMouseUp:]): (-[WKWebView pressureChangeWithEvent:]): (-[WKWebView acceptsFirstMouse:]): (-[WKWebView shouldDelayWindowOrderingForEvent:]): (-[WKWebView doCommandBySelector:]): (-[WKWebView insertText:]): (-[WKWebView insertText:replacementRange:]): (-[WKWebView inputContext]): (-[WKWebView performKeyEquivalent:]): (-[WKWebView keyUp:]): (-[WKWebView keyDown:]): (-[WKWebView flagsChanged:]): (-[WKWebView setMarkedText:selectedRange:replacementRange:]): (-[WKWebView unmarkText]): (-[WKWebView selectedRange]): (-[WKWebView hasMarkedText]): (-[WKWebView markedRange]): (-[WKWebView attributedSubstringForProposedRange:actualRange:]): (-[WKWebView characterIndexForPoint:]): (-[WKWebView firstRectForCharacterRange:actualRange:]): (-[WKWebView selectedRangeWithCompletionHandler:]): (-[WKWebView markedRangeWithCompletionHandler:]): (-[WKWebView hasMarkedTextWithCompletionHandler:]): (-[WKWebView attributedSubstringForProposedRange:completionHandler:]): (-[WKWebView firstRectForCharacterRange:completionHandler:]): (-[WKWebView characterIndexForPoint:completionHandler:]): (-[WKWebView validAttributesForMarkedText]): (-[WKWebView draggedImage:endedAt:operation:]): (-[WKWebView draggingEntered:]): (-[WKWebView draggingUpdated:]): (-[WKWebView draggingExited:]): (-[WKWebView prepareForDragOperation:]): (-[WKWebView performDragOperation:]): (-[WKWebView _hitTest:dragTypes:]): (-[WKWebView _windowResizeMouseLocationIsInVisibleScrollerThumb:]): (-[WKWebView viewWillMoveToWindow:]): (-[WKWebView viewDidMoveToWindow]): (-[WKWebView drawRect:]): (-[WKWebView isOpaque]): (-[WKWebView mouseDownCanMoveWindow]): (-[WKWebView viewDidHide]): (-[WKWebView viewDidUnhide]): (-[WKWebView viewDidChangeBackingProperties]): (-[WKWebView _activeSpaceDidChange:]): (-[WKWebView accessibilityFocusedUIElement]): (-[WKWebView accessibilityIsIgnored]): (-[WKWebView accessibilityHitTest:]): (-[WKWebView accessibilityAttributeValue:]): (-[WKWebView hitTest:]): (-[WKWebView conversationIdentifier]): (-[WKWebView quickLookWithEvent:]): (-[WKWebView addTrackingRect:owner:userData:assumeInside:]): (-[WKWebView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): (-[WKWebView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): (-[WKWebView removeTrackingRect:]): (-[WKWebView _removeTrackingRects:count:]): (-[WKWebView view:stringForToolTip:point:userData:]): (-[WKWebView pasteboardChangedOwner:]): (-[WKWebView pasteboard:provideDataForType:]): (-[WKWebView namesOfPromisedFilesDroppedAtDestination:]): (-[WKWebView wantsUpdateLayer]): (-[WKWebView updateLayer]): (-[WKWebView setAllowsBackForwardNavigationGestures:]): (-[WKWebView allowsBackForwardNavigationGestures]): (-[WKWebView smartMagnifyWithEvent:]): (-[WKWebView setMagnification:centeredAtPoint:]): (-[WKWebView setMagnification:]): (-[WKWebView magnification]): (-[WKWebView setAllowsMagnification:]): (-[WKWebView allowsMagnification]): (-[WKWebView magnifyWithEvent:]): (-[WKWebView rotateWithEvent:]): (-[WKWebView _web_superInputContext]): (-[WKWebView _web_superQuickLookWithEvent:]): (-[WKWebView _web_superSwipeWithEvent:]): (-[WKWebView _web_superMagnifyWithEvent:]): (-[WKWebView _web_superSmartMagnifyWithEvent:]): (-[WKWebView _web_superRemoveTrackingRect:]): (-[WKWebView _web_superAccessibilityAttributeValue:]): (-[WKWebView _web_superDoCommandBySelector:]): (-[WKWebView _web_superPerformKeyEquivalent:]): (-[WKWebView _web_superKeyDown:]): (-[WKWebView _web_superHitTest:]): (-[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]): (-[WKWebView _web_prepareForImmediateActionAnimation]): (-[WKWebView _web_cancelImmediateActionAnimation]): (-[WKWebView _web_completeImmediateActionAnimation]): (-[WKWebView _web_didChangeContentSize:]): (-[WKWebView _web_dismissContentRelativeChildWindows]): (-[WKWebView _web_dismissContentRelativeChildWindowsWithAnimation:]): (-[WKWebView _web_gestureEventWasNotHandledByWebCore:]): (-[WKWebView _setEditable:]): (-[WKWebView _remoteObjectRegistry]): (-[WKWebView _layoutMode]): (-[WKWebView _setLayoutMode:]): (-[WKWebView _setViewScale:]): (-[WKWebView _drawsTransparentBackground]): (-[WKWebView _setDrawsTransparentBackground:]): (-[WKWebView _inspectorAttachmentView]): (-[WKWebView _setInspectorAttachmentView:]): (-[WKWebView _windowOcclusionDetectionEnabled]): (-[WKWebView _setWindowOcclusionDetectionEnabled:]): (-[WKWebView _setOverrideDeviceScaleFactor:]): (-[WKWebView _overrideDeviceScaleFactor]): (-[WKWebView _setTopContentInset:]): (-[WKWebView _topContentInset]): (-[WKWebView _pageExtendedBackgroundColor]): (-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]): (-[WKWebView _setAutomaticallyAdjustsContentInsets:]): (-[WKWebView _automaticallyAdjustsContentInsets]): (-[WKWebView _setMinimumLayoutWidth:]): (-[WKWebView resizeSubviewsWithOldSize:]): Deleted. (-[WKWebView _ignoresNonWheelEvents]): Deleted. (-[WKWebView _setIgnoresNonWheelEvents:]): Deleted. (-[WKWebView _setIntrinsicContentSize:]): Deleted. * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/API/mac/WKView.mm: (-[WKView _web_superInputContext]): (-[WKView _web_superQuickLookWithEvent:]): (-[WKView _web_superSwipeWithEvent:]): (-[WKView _web_superMagnifyWithEvent:]): (-[WKView _web_superSmartMagnifyWithEvent:]): (-[WKView _web_superRemoveTrackingRect:]): (-[WKView _web_superAccessibilityAttributeValue:]): (-[WKView _web_superDoCommandBySelector:]): (-[WKView _web_superPerformKeyEquivalent:]): (-[WKView _web_superKeyDown:]): (-[WKView _web_superHitTest:]): (-[WKView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]): (-[WKView _web_prepareForImmediateActionAnimation]): (-[WKView _web_cancelImmediateActionAnimation]): (-[WKView _web_completeImmediateActionAnimation]): (-[WKView _web_didChangeContentSize:]): (-[WKView _web_dismissContentRelativeChildWindows]): (-[WKView _web_dismissContentRelativeChildWindowsWithAnimation:]): (-[WKView _web_gestureEventWasNotHandledByWebCore:]): (-[WKView _superInputContext]): Deleted. (-[WKView _superQuickLookWithEvent:]): Deleted. (-[WKView _superSwipeWithEvent:]): Deleted. (-[WKView _superMagnifyWithEvent:]): Deleted. (-[WKView _superSmartMagnifyWithEvent:]): Deleted. (-[WKView _superRemoveTrackingRect:]): Deleted. (-[WKView _superAccessibilityAttributeValue:]): Deleted. (-[WKView _superDoCommandBySelector:]): Deleted. (-[WKView _superPerformKeyEquivalent:]): Deleted. (-[WKView _superKeyDown:]): Deleted. (-[WKView _superHitTest:]): Deleted. (-[WKView _addFontPanelObserver]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::hitTest): (WebKit::WebViewImpl::updateSecureInputState): (WebKit::WebViewImpl::notifyInputContextAboutDiscardedComposition): (WebKit::WebViewImpl::executeSavedCommandBySelector): (WebKit::WebViewImpl::dismissContentRelativeChildWindowsWithAnimation): (WebKit::WebViewImpl::dismissContentRelativeChildWindowsWithAnimationFromViewOnly): (WebKit::WebViewImpl::quickLookWithEvent): (WebKit::WebViewImpl::prepareForImmediateActionAnimation): (WebKit::WebViewImpl::cancelImmediateActionAnimation): (WebKit::WebViewImpl::completeImmediateActionAnimation): (WebKit::WebViewImpl::didChangeContentSize): (WebKit::WebViewImpl::accessibilityAttributeValue): (WebKit::WebViewImpl::removeTrackingRect): (WebKit::WebViewImpl::swipeWithEvent): (WebKit::WebViewImpl::magnifyWithEvent): (WebKit::WebViewImpl::smartMagnifyWithEvent): (WebKit::WebViewImpl::gestureEventWasNotHandledByWebCore): (WebKit::WebViewImpl::doCommandBySelector): (WebKit::WebViewImpl::inputContext): (WebKit::WebViewImpl::performKeyEquivalent): (WebKit::WebViewImpl::keyDown): * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setDragImage): (WebKit::PageClientImpl::intrinsicContentSizeDidChange): Deleted. (WebKit::PageClientImpl::immediateActionAnimationControllerForHitTestResult): Deleted. Plop. 2015-11-02 Anders Carlsson Remove unused API client callback code https://bugs.webkit.org/show_bug.cgi?id=150813 Reviewed by Tim Horton. * UIProcess/API/APILoaderClient.h: (API::LoaderClient::interactionOccurredWhileProcessUnresponsive): Deleted. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageLoaderClient): Deleted. * UIProcess/ResponsivenessTimer.cpp: (WebKit::ResponsivenessTimer::timerFired): * UIProcess/ResponsivenessTimer.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::interactionOccurredWhileProcessUnresponsive): Deleted. * UIProcess/WebPageProxy.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::interactionOccurredWhileUnresponsive): Deleted. * UIProcess/WebProcessProxy.h: 2015-10-31 Andy Estes Replace iOS-only WebKitSystemInterface calls with SPI https://bugs.webkit.org/show_bug.cgi?id=150763 Reviewed by Darin Adler. * Platform/ios/AccessibilityIOS.h: Added. * Platform/ios/AccessibilityIOS.mm: Added. (WebKit::newAccessibilityRemoteToken): Upstreamed the implementation of WKAXRemoteToken() from WebKitSystemInterface. * Shared/WebPreferencesDefinitions.h: Used Settings::defaultMinimumZoomFontSize() instead of WKGetMinimumZoomFontSize(). * Shared/WebPreferencesStore.cpp: * UIProcess/API/Cocoa/WKWebView.mm: (shouldAllowPictureInPictureMediaPlayback): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion(). (-[WKWebView _takeViewSnapshot]): Used screenScaleFactor() instead of WKGetScreenScaleFactor(). * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): Used deviceClass() instead of WKGetDeviceClass(). * UIProcess/ios/WKContentView.mm: (-[WKContentView _commonInitializationWithProcessPool:configuration:]): Used screenScaleFactor() instead of WKGetScaleFactorForScreen(). (-[WKContentView _updateForScreen:]): Ditto. (storeAccessibilityRemoteConnectionInformation): Upstreamed the implementation of WKAXStoreRemoteConnectionInformation() from WebKitSystemInterface. (-[WKContentView _accessibilityRegisterUIProcessTokens]): Used newAccessibilityRemoteToken() and storeAccessibilityRemoteConnectionInformation() instead of WKAXRemoteToken() and WKAXStoreRemoteConnectionInformation(). * UIProcess/ios/WKContentViewInteraction.mm: * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::screenSize): Used screenSize() instead of WKGetScreenSize(). (WebKit::WebPageProxy::availableScreenSize): Used availableScreenSize() instead of WKGetAvailableScreenSize(). (WebKit::WebPageProxy::textAutosizingWidth): Used screenSize() instead of WKGetScreenSize(). * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): Deleted. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformInitializeAccessibility): Used newAccessibilityRemoteToken() instead of WKAXRemoteToken(). 2015-11-02 Commit Queue Unreviewed, rolling out r191902. https://bugs.webkit.org/show_bug.cgi?id=150811 This change broke iOS builders (Requested by ryanhaddad on #webkit). Reverted changeset: "Replace iOS-only WebKitSystemInterface calls with SPI" https://bugs.webkit.org/show_bug.cgi?id=150763 http://trac.webkit.org/changeset/191902 2015-10-31 Andy Estes Replace iOS-only WebKitSystemInterface calls with SPI https://bugs.webkit.org/show_bug.cgi?id=150763 Reviewed by Darin Adler. * Platform/ios/AccessibilityIOS.h: Added. * Platform/ios/AccessibilityIOS.mm: Added. (WebKit::newAccessibilityRemoteToken): Upstreamed the implementation of WKAXRemoteToken() from WebKitSystemInterface. * Shared/WebPreferencesDefinitions.h: Used Settings::defaultMinimumZoomFontSize() instead of WKGetMinimumZoomFontSize(). * Shared/WebPreferencesStore.cpp: * UIProcess/API/Cocoa/WKWebView.mm: (shouldAllowPictureInPictureMediaPlayback): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion(). (-[WKWebView _takeViewSnapshot]): Used screenScaleFactor() instead of WKGetScreenScaleFactor(). * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): Used deviceClass() instead of WKGetDeviceClass(). * UIProcess/ios/WKContentView.mm: (-[WKContentView _commonInitializationWithProcessPool:configuration:]): Used screenScaleFactor() instead of WKGetScaleFactorForScreen(). (-[WKContentView _updateForScreen:]): Ditto. (storeAccessibilityRemoteConnectionInformation): Upstreamed the implementation of WKAXStoreRemoteConnectionInformation() from WebKitSystemInterface. (-[WKContentView _accessibilityRegisterUIProcessTokens]): Used newAccessibilityRemoteToken() and storeAccessibilityRemoteConnectionInformation() instead of WKAXRemoteToken() and WKAXStoreRemoteConnectionInformation(). * UIProcess/ios/WKContentViewInteraction.mm: * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::screenSize): Used screenSize() instead of WKGetScreenSize(). (WebKit::WebPageProxy::availableScreenSize): Used availableScreenSize() instead of WKGetAvailableScreenSize(). (WebKit::WebPageProxy::textAutosizingWidth): Used screenSize() instead of WKGetScreenSize(). * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): Deleted. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformInitializeAccessibility): Used newAccessibilityRemoteToken() instead of WKAXRemoteToken(). 2015-11-02 Yongjun Zhang Add objC delegate callback for webProcessDidBecomeResponsive and webProcessDidBecomeUnresponsive. https://bugs.webkit.org/show_bug.cgi?id=150778 Add methods into WKNavigationDelegatePrivate to notify WebKit client when web process becomes unresponsive or responsive, which is reported by WebKit::ResponsivenessTimer. Reviewed by Darin Adler. * UIProcess/API/APINavigationClient.h: Add two new method processDidBecomeResponsive and processDidBecomeUnresponsive to NavigationClient; they are called when WebKit::ResponsivenessTimer update its client's state. (API::NavigationClient::processDidBecomeResponsive): (API::NavigationClient::processDidBecomeUnresponsive): * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Add two new delegate method to WKNavigationDelegatePrivate: _webViewWebProcessDidBecomeResponsive: and _webViewWebProcessDidBecomeUnresponsive: * UIProcess/Cocoa/NavigationState.h: Add new overriding methods processDidBecomeResponsive and processDidBecomeUnresponsive. Also add a bool member for each method to indicate if the delegate has implement the related method. * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::setNavigationDelegate): Update the new bool members based on the delegate. (WebKit::NavigationState::NavigationClient::processDidBecomeResponsive): Send the delegate message to navigationDelegate if _webViewWebProcessDidBecomeResponsive: is implemented. (WebKit::NavigationState::NavigationClient::processDidBecomeUnresponsive): Ditto. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::processDidBecomeUnresponsive): Call navigationClient's processDidBecomeUnresponsive if the page proxy has navigationClient. (WebKit::WebPageProxy::processDidBecomeResponsive): Call navigationClient's processDidBecomeResponsive if the page proxy has navigationClient. 2015-11-02 Beth Dakin Tapping and holding a link should have a share option https://bugs.webkit.org/show_bug.cgi?id=150693 Reviewed by Dan Bernstein. This is a follow-up to the original change. This change fixes non-ascii URLs. They should maintain their non-ascii characters when they are shared. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]): * UIProcess/ios/WKPDFView.mm: (-[WKPDFView actionSheetAssistant:shareElementWithURL:rect:]): 2015-11-02 Youenn Fablet Rename JSDOMWrapper.impl to JSDOMWrapper.wrapped https://bugs.webkit.org/show_bug.cgi?id=150613 Reviewed by Darin Adler. * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::frameForContext): Renaming impl() to wrapped(). (WebKit::WebFrame::counterValue): Ditto. 2015-11-02 Carlos Garcia Campos [GLIB] Remove support for GSocket main loop sources from GMainLoopSource https://bugs.webkit.org/show_bug.cgi?id=150772 Reviewed by Žan Doberšek. Add GSocketMonitor class to be used by Connection to monitor the availability of the socket file descriptor instead of using a GMainLoopSource. * Platform/IPC/Connection.h: * Platform/IPC/glib/GSocketMonitor.cpp: Added. (IPC::GSocketMonitor::~GSocketMonitor): (IPC::GSocketMonitor::socketSourceCallback): (IPC::GSocketMonitor::start): (IPC::GSocketMonitor::stop): * Platform/IPC/glib/GSocketMonitor.h: Added. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::platformInvalidate): (IPC::Connection::open): * PlatformGTK.cmake: 2015-11-01 Carlos Garcia Campos [GTK] Use RunLoop in WorkQueue implementation https://bugs.webkit.org/show_bug.cgi?id=150770 Reviewed by Darin Adler. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::open): Get the main context from the WorkQueue Runloop. 2015-11-01 Yusuke Suzuki [ES6] Support Generator Syntax https://bugs.webkit.org/show_bug.cgi?id=150769 Reviewed by Geoffrey Garen. Added ENABLE_ES6_GENERATORS flag. * Configurations/FeatureDefines.xcconfig: 2015-11-01 Brent Fulgham Use convenience function in sandbox profile https://bugs.webkit.org/show_bug.cgi?id=150732 Reviewed by Alexey Proskuryakov. * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Switch to the 'awd-log-directory' convenience function. 2015-11-01 Joonghun Park [EFL] Fix inappropriate move semantics use in parseAndRemoveEnvironments function https://bugs.webkit.org/show_bug.cgi?id=150544 Reviewed by Darin Adler. In parseAndRemoveEnvironments function, it declares its paramerter type as rvalue. But in ProcessLauncher::launchProcess(), the argument of parseAndRemoveEnvironments still be used after the call of the function. Currently the rvalue is not assigned to any other variable in parseAndRemoveEnvironments, so it doesn't lead to runtime error but use of move semantic is not appropriate semantically in this case. * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp: (WebKit::parseAndRemoveEnvironments): (WebKit::ProcessLauncher::launchProcess): 2015-11-01 Commit Queue Unreviewed, rolling out r191831. https://bugs.webkit.org/show_bug.cgi?id=150774 The new test fails (Requested by ap on #webkit). Reverted changeset: "Begin work on supporting reply blocks in _WKRemoteObjectRegistry" https://bugs.webkit.org/show_bug.cgi?id=150739 http://trac.webkit.org/changeset/191831 2015-11-01 Philip Chimento [GTK] Fix combinations of PLATFORM(GTK) and OS(DARWIN) https://bugs.webkit.org/show_bug.cgi?id=144560 Reviewed by Darin Adler. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): Change order of OS(DARWIN) and USE(UNIX_DOMAIN_SOCKETS) checks, so that we can use Unix domain sockets even on Darwin for the GTK platform. * Platform/IPC/Attachment.cpp: Add USE(UNIX_DOMAIN_SOCKETS) check to OS(DARWIN) check, in order to support GTK platform on OSX. * Platform/IPC/Attachment.h: Change order of OS(DARWIN) and USE(UNIX_DOMAIN_SOCKETS) checks throughout. (IPC::Attachment::size): (IPC::Attachment::releaseFileDescriptor): (IPC::Attachment::fileDescriptor): (IPC::Attachment::disposition): (IPC::Attachment::port): * Platform/IPC/Connection.h: Ditto. (IPC::Connection::identifierIsNull): (IPC::Connection::Identifier::Identifier): (IPC::Connection::xpcConnection): * Platform/IPC/unix/ConnectionUnix.cpp: Only use SOCK_SEQPACKET if the platform is not GTK, because otherwise the PLATFORM(GTK) check below is never reached. * Platform/SharedMemory.h: Change order of OS(DARWIN) and USE(UNIX_DOMAIN_SOCKETS) checks. * PluginProcess/PluginProcess.cpp: Ditto. (WebKit::PluginProcess::createWebProcessConnection): * Shared/API/c/WKBase.h: Don't include WKBaseMac.h if building GTK. * UIProcess/API/C/WKNativeEvent.h: Don't use Apple API if building GTK. * UIProcess/Launcher/ProcessLauncher.cpp: Change to OS(DARWIN) && !PLATFORM(GTK), in the absence of a better platform macro such as USE(MACH). (WebKit::ProcessLauncher::didFinishLaunchingProcess): * UIProcess/Launcher/ProcessLauncher.h: Ditto. * UIProcess/Network/NetworkProcessProxy.cpp: Change order of OS(DARWIN) and PLATFORM(GTK) checks. (WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch): (WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess): * UIProcess/Plugins/PluginProcessProxy.cpp: Ditto. (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): (WebKit::PluginProcessProxy::didCreateWebProcessConnection): * WebProcess/Plugins/PluginProcessConnectionManager.cpp: Ditto. (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): * WebProcess/WebPage/WebInspector.cpp: Ditto. (WebKit::WebInspector::createInspectorPage): * WebProcess/WebPage/WebInspectorUI.cpp: Ditto. (WebKit::WebInspectorUI::establishConnection): * WebProcess/WebProcess.cpp: Ditto. (WebKit::WebProcess::ensureNetworkProcessConnection): 2015-11-01 Carlos Garcia Campos [GTK] Use RunLoop::Timer in PluginInfoCache https://bugs.webkit.org/show_bug.cgi?id=150757 Reviewed by Darin Adler. Use RunLoop::Timer instead of GMainLoopSource to save the cache contents in an idle. Also remove the mutex, since RunLoop::Timer is thread safe and saveToFile() is private and only called by the main thread loop. Also removed the code to save the file in the destructor since PluginInfoCache is a singleton and never destroyed. It's very unlikely that the program finished before the cache is saved, but even if that happens it would be harmless, the cache will be saved at some point the next time. * UIProcess/Plugins/gtk/PluginInfoCache.cpp: (WebKit::PluginInfoCache::PluginInfoCache): (WebKit::PluginInfoCache::updatePluginInfo): (WebKit::PluginInfoCache::~PluginInfoCache): (WebKit::PluginInfoCache::saveToFile): * UIProcess/Plugins/gtk/PluginInfoCache.h: 2015-11-01 Carlos Garcia Campos [GTK] Use a RunLoop::Timer to schedule rendering frames in accelerated compositing mode https://bugs.webkit.org/show_bug.cgi?id=150756 Reviewed by Darin Adler. Use a RunLoop::Timer instead of a GMainLoopSource for the accelerated compositing render loop to improve the performance, since RunLoop::Timer uses a persistent source. All the logic to schedule rames has been moved to a helper internal class RenderFrameScheduler. * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler): (WebKit::LayerTreeHostGtk::RenderFrameScheduler::~RenderFrameScheduler): (WebKit::LayerTreeHostGtk::RenderFrameScheduler::start): (WebKit::LayerTreeHostGtk::RenderFrameScheduler::stop): (WebKit::shouldSkipNextFrameBecauseOfContinousImmediateFlushes): (WebKit::LayerTreeHostGtk::RenderFrameScheduler::nextFrame): (WebKit::LayerTreeHostGtk::RenderFrameScheduler::renderFrame): (WebKit::LayerTreeHostGtk::LayerTreeHostGtk): (WebKit::LayerTreeHostGtk::renderFrame): (WebKit::LayerTreeHostGtk::scheduleLayerFlush): (WebKit::LayerTreeHostGtk::cancelPendingLayerFlush): (WebKit::LayerTreeHostGtk::layerFlushTimerFired): Deleted. * WebProcess/WebPage/gtk/LayerTreeHostGtk.h: 2015-10-31 Andreas Kling Add a debug overlay with information about web process resource usage. Reviewed by Darin Adler. Add WK2 preferences SPI for showing/hiding the resource usage overlay. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetResourceUsageOverlayVisible): (WKPreferencesGetResourceUsageOverlayVisible): * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _resourceUsageOverlayVisible]): (-[WKPreferences _setResourceUsageOverlayVisible:]): * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-10-31 Alex Christensen Share more code between NETWORK_SESSION and non-NETWORK_SESSION NetworkResourceLoaders https://bugs.webkit.org/show_bug.cgi?id=150742 Reviewed by Darin Adler. r191457 added enough code to NetworkResourceLoader to load most resources successfully if there are no errors. It passed about 80% of LayoutTests/http and crashed sometimes. This passes about 95% of LayoutTests/http and does not crash on any of the LayoutTests/http. It should not change behavior of the non-NETWORK_SESSION code which is currently the default in trunk. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::abort): (WebKit::NetworkResourceLoader::sharedDidReceiveResponse): (WebKit::NetworkResourceLoader::sharedDidReceiveBuffer): (WebKit::NetworkResourceLoader::sharedDidFinishLoading): (WebKit::NetworkResourceLoader::sharedDidFail): (WebKit::NetworkResourceLoader::sharedWillSendRedirectedRequest): (WebKit::NetworkResourceLoader::willPerformHTTPRedirection): (WebKit::NetworkResourceLoader::didReceiveChallenge): (WebKit::NetworkResourceLoader::didReceiveResponse): (WebKit::NetworkResourceLoader::didReceiveData): (WebKit::NetworkResourceLoader::didCompleteWithError): (WebKit::NetworkResourceLoader::didReceiveResponseAsync): (WebKit::NetworkResourceLoader::didReceiveBuffer): (WebKit::NetworkResourceLoader::didFinishLoading): (WebKit::NetworkResourceLoader::didFail): (WebKit::NetworkResourceLoader::willSendRequestAsync): * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/NetworkSession.h: (WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient): 2015-10-28 Wenson Hsieh Inner height behavior when the keyboard is shown should match on WKWebView and MobileSafari https://bugs.webkit.org/show_bug.cgi?id=150634 Reviewed by Benjamin Poulain. Make WKWebView match behavior in Safari by not firing resize events and changing the inner height when showing or hiding the keyboard. Previously, the WKWebView would do both of the above because we use the scroll view's contentInset property when no unobscured insets are explicitly set for the WKWebView. To fix this, when updating the visible content rect of a WKWebView for computing the inner height, we readjust the computed bottom inset to not take the keyboard height into account. To know how much we need to readjust the inset by, we store the total amount by which the scroll view's bottom inset has been adjusted due to the keyboard. We perform this readjustment in _updateVisibleContentRects rather than in _computedContentInset since some users of _computedContentInset may still expect the bottom inset to account for the keyboard height. However, when updating visible content rects, we should not account for the keyboard height since we don't want the inner height to change when showing or hiding the keyboard. Lastly, while calling _adjustForAutomaticKeyboardInfo, we may end up calling _updateVisibleContentRects. This call is unnecessary since we call it again immediately after _adjustForAutomaticKeyboardInfo, and it also complicates the readjustment logic, so it makes sense to prevent the update from happening altogether while we are adjusting the scroll view's insets due to keyboard changes. Altogether, these changes mean that the computed inner height will no longer be adjusted for the keyboard height on WKWebViews, matching the behavior observed on mobile Safari. Test: LayoutTests/fast/events/ios/keyboard-should-not-trigger-resize.html * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _updateVisibleContentRects]): (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]): 2015-10-30 Anders Carlsson Begin work on supporting reply blocks in _WKRemoteObjectRegistry https://bugs.webkit.org/show_bug.cgi?id=150739 Reviewed by Tim Horton. * Platform/spi/Cocoa/BlockSPI.h: Add SPI header. * Shared/API/Cocoa/RemoteObjectInvocation.h: (WebKit::RemoteObjectInvocation::ReplyInfo::ReplyInfo): (WebKit::RemoteObjectInvocation::replyInfo): * Shared/API/Cocoa/RemoteObjectInvocation.mm: (WebKit::RemoteObjectInvocation::RemoteObjectInvocation): (WebKit::RemoteObjectInvocation::encode): (WebKit::RemoteObjectInvocation::decode): Add an optional ReplyInfo struct to RemoteObjectInvocation. * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: (generateReplyIdentifier): Helper function to generate a reply identifier. (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): Do some block parameter validation. * WebKit2.xcodeproj/project.pbxproj: 2015-10-30 Beth Dakin Link preview doesn't work on XHTML pages with Content-Type header as ‘application/xhtml+xml’ https://bugs.webkit.org/show_bug.cgi?id=150740 -and corresponding- rdar://problem/23063585 Reviewed by Tim Horton. For XHTML pages, the element names are lowercase. This patch uses equalIgnoringCase to fix the bug. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _actionForLongPress]): (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): (-[WKContentView _dataForPreviewItemController:atPosition:type:]): 2015-10-30 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView initWithFrame:processGroup:browsingContextGroup:relatedToView:]): (-[WKView prepareContentInRect:]): (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView pageRef]): (-[WKView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]): (-[WKView dealloc]): Deleted. * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::page): * UIProcess/Cocoa/WebViewImpl.mm: (-[WKWindowVisibilityObserver initWithView:impl:]): (-[WKWindowVisibilityObserver dealloc]): (-[WKWindowVisibilityObserver _activeSpaceDidChange:]): (WebKit::WebViewImpl::WebViewImpl): (WebKit::WebViewImpl::~WebViewImpl): (WebKit::WebViewImpl::setDrawsBackground): (WebKit::WebViewImpl::drawsBackground): (WebKit::WebViewImpl::setDrawsTransparentBackground): (WebKit::WebViewImpl::drawsTransparentBackground): (WebKit::WebViewImpl::isOpaque): (WebKit::WebViewImpl::acceptsFirstMouse): (WebKit::WebViewImpl::becomeFirstResponder): (WebKit::WebViewImpl::resignFirstResponder): (WebKit::WebViewImpl::viewWillStartLiveResize): (WebKit::WebViewImpl::viewDidEndLiveResize): (WebKit::WebViewImpl::updateWindowAndViewFrames): (WebKit::WebViewImpl::setFixedLayoutSize): (WebKit::WebViewImpl::fixedLayoutSize): (WebKit::WebViewImpl::isUsingUISideCompositing): (WebKit::WebViewImpl::setDrawingAreaSize): (WebKit::WebViewImpl::forceAsyncDrawingAreaSizeUpdate): (WebKit::WebViewImpl::waitForAsyncDrawingAreaSizeUpdate): (WebKit::WebViewImpl::updateLayer): (WebKit::WebViewImpl::drawRect): (WebKit::WebViewImpl::dispatchSetTopContentInset): (WebKit::WebViewImpl::prepareContentInRect): (WebKit::WebViewImpl::updateViewExposedRect): (WebKit::WebViewImpl::setMinimumSizeForAutoLayout): (WebKit::WebViewImpl::minimumSizeForAutoLayout): (WebKit::WebViewImpl::setShouldExpandToViewHeightForAutoLayout): (WebKit::WebViewImpl::shouldExpandToViewHeightForAutoLayout): (WebKit::WebViewImpl::setIntrinsicContentSize): (WebKit::WebViewImpl::setViewScale): (WebKit::WebViewImpl::viewScale): (WebKit::WebViewImpl::supportsArbitraryLayoutModes): (WebKit::WebViewImpl::setOverrideDeviceScaleFactor): (WebKit::WebViewImpl::windowDidOrderOffScreen): (WebKit::WebViewImpl::windowDidOrderOnScreen): (WebKit::WebViewImpl::windowDidBecomeKey): (WebKit::WebViewImpl::windowDidResignKey): (WebKit::WebViewImpl::windowDidMiniaturize): (WebKit::WebViewImpl::windowDidDeminiaturize): (WebKit::WebViewImpl::windowDidChangeBackingProperties): (WebKit::WebViewImpl::windowDidChangeScreen): (WebKit::WebViewImpl::windowDidChangeLayerHosting): (WebKit::WebViewImpl::windowDidChangeOcclusionState): (WebKit::WebViewImpl::shouldDelayWindowOrderingForEvent): (WebKit::WebViewImpl::windowResizeMouseLocationIsInVisibleScrollerThumb): (WebKit::WebViewImpl::viewDidMoveToWindow): (WebKit::WebViewImpl::viewDidChangeBackingProperties): (WebKit::WebViewImpl::viewDidHide): (WebKit::WebViewImpl::viewDidUnhide): (WebKit::WebViewImpl::activeSpaceDidChange): (WebKit::WebViewImpl::postFakeMouseMovedEventForFlagsChangedEvent): (WebKit::WebViewImpl::setUnderlayColor): (WebKit::WebViewImpl::underlayColor): (WebKit::WebViewImpl::pageExtendedBackgroundColor): (WebKit::WebViewImpl::setOverlayScrollbarStyle): (WebKit::WebViewImpl::overlayScrollbarStyle): (WebKit::WebViewImpl::endDeferringViewInWindowChanges): (WebKit::WebViewImpl::endDeferringViewInWindowChangesSync): (WebKit::WebViewImpl::prepareForMoveToWindow): (WebKit::WebViewImpl::updateSecureInputState): (WebKit::WebViewImpl::setPluginComplexTextInputState): (WebKit::WebViewImpl::handlePluginComplexTextInputKeyDown): (WebKit::WebViewImpl::handleAcceptedAlternativeText): (WebKit::WebViewImpl::pressureChangeWithEvent): (WebKit::WebViewImpl::isEditable): (WebKit::WebViewImpl::executeEditCommandForSelector): (WebKit::WebViewImpl::writeSelectionToPasteboard): (WebKit::WebViewImpl::readSelectionFromPasteboard): (WebKit::WebViewImpl::validRequestorForSendAndReturnTypes): (WebKit::WebViewImpl::centerSelectionInVisibleArea): (WebKit::WebViewImpl::updateFontPanelIfNeeded): (WebKit::WebViewImpl::changeFontFromFontPanel): (WebKit::WebViewImpl::validateUserInterfaceItem): (WebKit::WebViewImpl::startSpeaking): (WebKit::WebViewImpl::showGuessPanel): (WebKit::WebViewImpl::checkSpelling): (WebKit::WebViewImpl::changeSpelling): (WebKit::WebViewImpl::toggleContinuousSpellChecking): (WebKit::WebViewImpl::setGrammarCheckingEnabled): (WebKit::WebViewImpl::toggleGrammarChecking): (WebKit::WebViewImpl::toggleAutomaticSpellingCorrection): (WebKit::WebViewImpl::toggleSmartInsertDelete): (WebKit::WebViewImpl::setAutomaticQuoteSubstitutionEnabled): (WebKit::WebViewImpl::toggleAutomaticQuoteSubstitution): (WebKit::WebViewImpl::setAutomaticDashSubstitutionEnabled): (WebKit::WebViewImpl::toggleAutomaticDashSubstitution): (WebKit::WebViewImpl::setAutomaticLinkDetectionEnabled): (WebKit::WebViewImpl::toggleAutomaticLinkDetection): (WebKit::WebViewImpl::setAutomaticTextReplacementEnabled): (WebKit::WebViewImpl::toggleAutomaticTextReplacement): (WebKit::WebViewImpl::uppercaseWord): (WebKit::WebViewImpl::lowercaseWord): (WebKit::WebViewImpl::capitalizeWord): (WebKit::WebViewImpl::preferencesDidChange): (WebKit::WebViewImpl::dismissContentRelativeChildWindowsFromViewOnly): (WebKit::WebViewImpl::quickLookWithEvent): (WebKit::WebViewImpl::immediateActionAnimationControllerForHitTestResult): (WebKit::WebViewImpl::didChangeContentSize): (WebKit::WebViewImpl::setIgnoresNonWheelEvents): (WebKit::WebViewImpl::updateRemoteAccessibilityRegistration): (WebKit::WebViewImpl::accessibilityRegisterUIProcessTokens): (WebKit::WebViewImpl::stringForToolTip): (WebKit::WebViewImpl::setInspectorAttachmentView): (WebKit::WebViewImpl::remoteObjectRegistry): (WebKit::WebViewImpl::browsingContextController): (WebKit::WebViewImpl::draggedImage): (WebKit::WebViewImpl::draggingEntered): (WebKit::WebViewImpl::draggingUpdated): (WebKit::WebViewImpl::draggingExited): (WebKit::WebViewImpl::performDragOperation): (WebKit::WebViewImpl::takeViewSnapshot): (WebKit::WebViewImpl::saveBackForwardSnapshotForCurrentItem): (WebKit::WebViewImpl::saveBackForwardSnapshotForItem): (WebKit::WebViewImpl::setAllowsBackForwardNavigationGestures): (WebKit::WebViewImpl::setMagnification): (WebKit::WebViewImpl::magnification): (WebKit::WebViewImpl::scrollWheel): (WebKit::WebViewImpl::swipeWithEvent): (WebKit::WebViewImpl::magnifyWithEvent): (WebKit::WebViewImpl::rotateWithEvent): (WebKit::WebViewImpl::doCommandBySelector): (WebKit::WebViewImpl::insertText): (WebKit::WebViewImpl::selectedRangeWithCompletionHandler): (WebKit::WebViewImpl::markedRangeWithCompletionHandler): (WebKit::WebViewImpl::hasMarkedTextWithCompletionHandler): (WebKit::WebViewImpl::attributedSubstringForProposedRange): (WebKit::WebViewImpl::firstRectForCharacterRange): (WebKit::WebViewImpl::characterIndexForPoint): (WebKit::WebViewImpl::inputContext): (WebKit::WebViewImpl::unmarkText): (WebKit::WebViewImpl::setMarkedText): (WebKit::WebViewImpl::performKeyEquivalent): (WebKit::WebViewImpl::keyUp): (WebKit::WebViewImpl::keyDown): (WebKit::WebViewImpl::flagsChanged): (WebKit::WebViewImpl::executeSavedKeypressCommands): (WebKit::WebViewImpl::selectedRange): (WebKit::WebViewImpl::hasMarkedText): (WebKit::WebViewImpl::markedRange): (WebKit::WebViewImpl::setContentPreparationRect): Deleted. (WebKit::WebViewImpl::immediateActionAnimationControllerForHitTestResultFromViewOnly): Deleted. (WebKit::WebViewImpl::destroyRemoteObjectRegistry): Deleted. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::scrollPinningBehavior): (WebKit::WebPageProxy::overlayScrollbarStyle): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createWebPage): * UIProcess/WebProcessPool.h: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::PageClientImpl): (WebKit::PageClientImpl::createDrawingAreaProxy): (WebKit::PageClientImpl::viewSize): (WebKit::PageClientImpl::activeView): (WebKit::PageClientImpl::activeWindow): (WebKit::PageClientImpl::isViewFocused): (WebKit::PageClientImpl::makeFirstResponder): (WebKit::PageClientImpl::isViewVisible): (WebKit::PageClientImpl::colorSpace): (WebKit::PageClientImpl::processDidExit): (WebKit::PageClientImpl::pageClosed): (WebKit::PageClientImpl::didRelaunchProcess): (WebKit::PageClientImpl::preferencesDidChange): (WebKit::PageClientImpl::toolTipChanged): (WebKit::PageClientImpl::didCommitLoadForMainFrame): (WebKit::PageClientImpl::didChangeContentSize): (WebKit::PageClientImpl::setCursor): (WebKit::PageClientImpl::registerEditCommand): (WebKit::PageClientImpl::registerInsertionUndoGrouping): (WebKit::PageClientImpl::clearAllEditCommands): (WebKit::PageClientImpl::canUndoRedo): (WebKit::PageClientImpl::executeUndoRedo): (WebKit::PageClientImpl::setDragImage): (WebKit::PageClientImpl::setPromisedDataForImage): (WebKit::PageClientImpl::setPromisedDataForAttachment): (WebKit::PageClientImpl::updateSecureInputState): (WebKit::PageClientImpl::resetSecureInputState): (WebKit::PageClientImpl::notifyInputContextAboutDiscardedComposition): (WebKit::PageClientImpl::convertToDeviceSpace): (WebKit::PageClientImpl::convertToUserSpace): (WebKit::PageClientImpl::screenToRootView): (WebKit::PageClientImpl::rootViewToScreen): (WebKit::PageClientImpl::doneWithKeyEvent): (WebKit::PageClientImpl::createPopupMenuProxy): (WebKit::PageClientImpl::createContextMenuProxy): (WebKit::PageClientImpl::createColorPicker): (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): (WebKit::PageClientImpl::setTextIndicatorAnimationProgress): (WebKit::PageClientImpl::accessibilityWebProcessTokenReceived): (WebKit::PageClientImpl::enterAcceleratedCompositingMode): (WebKit::PageClientImpl::exitAcceleratedCompositingMode): (WebKit::PageClientImpl::updateAcceleratedCompositingMode): (WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): (WebKit::PageClientImpl::acceleratedCompositingRootLayer): (WebKit::PageClientImpl::takeViewSnapshot): (WebKit::PageClientImpl::selectionDidChange): (WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): (WebKit::PageClientImpl::gestureEventWasNotHandledByWebCore): (WebKit::PageClientImpl::pluginFocusOrWindowFocusChanged): (WebKit::PageClientImpl::setPluginComplexTextInputState): (WebKit::PageClientImpl::didPerformDictionaryLookup): (WebKit::PageClientImpl::dismissContentRelativeChildWindows): (WebKit::PageClientImpl::showCorrectionPanel): (WebKit::PageClientImpl::recordAutocorrectionResponse): (WebKit::PageClientImpl::recommendedScrollbarStyleDidChange): (WebKit::PageClientImpl::intrinsicContentSizeDidChange): (WebKit::PageClientImpl::executeSavedCommandBySelector): (WebKit::PageClientImpl::showDictationAlternativeUI): (WebKit::PageClientImpl::closeFullScreenManager): (WebKit::PageClientImpl::isFullScreen): (WebKit::PageClientImpl::enterFullScreen): (WebKit::PageClientImpl::exitFullScreen): (WebKit::PageClientImpl::beganEnterFullScreen): (WebKit::PageClientImpl::beganExitFullScreen): (WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame): (WebKit::PageClientImpl::didFinishLoadForMainFrame): (WebKit::PageClientImpl::didFailLoadForMainFrame): (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame): (WebKit::PageClientImpl::removeNavigationGestureSnapshot): (WebKit::PageClientImpl::boundsOfLayerInLayerBackedWindowCoordinates): (WebKit::PageClientImpl::didPerformImmediateActionHitTest): (WebKit::PageClientImpl::immediateActionAnimationControllerForHitTestResult): (WebKit::PageClientImpl::showPlatformContextMenu): (WebKit::PageClientImpl::refView): (WebKit::PageClientImpl::derefView): (WebKit::PageClientImpl::startWindowDrag): (WebKit::PageClientImpl::platformWindow): (WebKit::PageClientImpl::inspectorAttachmentView): (WebKit::PageClientImpl::remoteObjectRegistry): * UIProcess/mac/WebColorPickerMac.h: * UIProcess/mac/WebColorPickerMac.mm: (WebKit::WebColorPickerMac::create): (WebKit::WebColorPickerMac::WebColorPickerMac): (-[WKColorPopoverMac initWithFrame:inView:]): * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac): * UIProcess/mac/WebPopupMenuProxyMac.h: (WebKit::WebPopupMenuProxyMac::create): * UIProcess/mac/WebPopupMenuProxyMac.mm: (WebKit::WebPopupMenuProxyMac::WebPopupMenuProxyMac): Move ownership of WebPageProxy and PageClientImpl to WebViewImpl. 2015-10-30 Alex Christensen Fix Mac CMake build after rr191810. * PlatformMac.cmake: Add RemoteObjectInvocation.mm. 2015-10-30 Anders Carlsson Add a separate object that represents a remote object invocation https://bugs.webkit.org/show_bug.cgi?id=150639 Reviewed by Tim Horton. * Shared/API/Cocoa/RemoteObjectInvocation.h: Copied from Source/WebKit2/Shared/API/Cocoa/RemoteObjectRegistry.h. (WebKit::RemoteObjectInvocation::interfaceIdentifier): (WebKit::RemoteObjectInvocation::encodedInvocation): * Shared/API/Cocoa/RemoteObjectInvocation.mm: Copied from Source/WebKit2/Shared/API/Cocoa/RemoteObjectRegistry.mm. (WebKit::RemoteObjectInvocation::RemoteObjectInvocation): (WebKit::RemoteObjectInvocation::encode): (WebKit::RemoteObjectInvocation::decode): * Shared/API/Cocoa/RemoteObjectRegistry.h: * Shared/API/Cocoa/RemoteObjectRegistry.messages.in: * Shared/API/Cocoa/RemoteObjectRegistry.mm: (WebKit::RemoteObjectRegistry::sendInvocation): (WebKit::RemoteObjectRegistry::invokeMethod): * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): (-[_WKRemoteObjectRegistry _invokeMethod:]): * Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h: * WebKit2.xcodeproj/project.pbxproj: 2015-10-30 Beth Dakin Another speculative build fix. * UIProcess/API/Cocoa/_WKElementAction.h: 2015-10-30 Beth Dakin Speculative build fix. * Platform/spi/ios/UIKitSPI.h: * UIProcess/ios/WKContentViewInteraction.mm: 2015-10-30 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView mouseMoved:]): (-[WKView mouseDown:]): (-[WKView mouseUp:]): (-[WKView mouseDragged:]): (-[WKView mouseEntered:]): (-[WKView mouseExited:]): (-[WKView otherMouseDown:]): (-[WKView otherMouseDragged:]): (-[WKView otherMouseUp:]): (-[WKView rightMouseDown:]): (-[WKView rightMouseDragged:]): (-[WKView rightMouseUp:]): (-[WKView _updateViewExposedRect]): Deleted. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::mouseMoved): (WebKit::WebViewImpl::mouseDown): (WebKit::WebViewImpl::mouseUp): (WebKit::WebViewImpl::mouseDragged): Move mouse event handling. 2015-10-30 Beth Dakin Tapping and holding a link should have a share option https://bugs.webkit.org/show_bug.cgi?id=150693 -and corresponding- rdar://problem/21319702 Reviewed by Tim Horton. New _WKElementActionType called _WKElementActionTypeShare. * UIProcess/API/Cocoa/_WKElementAction.h: * UIProcess/API/Cocoa/_WKElementAction.mm: (+[_WKElementAction _elementActionWithType:customTitle:assistant:]): _WKElementActionTypeShare is part of the default actions for links. * UIProcess/ios/WKActionSheetAssistant.h: * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant defaultActionsForLinkSheet:]): Handle the sharing part! * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]): To support this in PDF, PDF need to create a _webSelectionAssistant. * UIProcess/ios/WKPDFView.mm: (-[WKPDFView web_initWithFrame:webView:]): (-[WKPDFView actionSheetAssistant:openElementAtLocation:]): (-[WKPDFView actionSheetAssistant:shareElementWithURL:rect:]): (-[WKPDFView actionSheetAssistant:shouldIncludeAppLinkActionsForElement:]): 2015-10-30 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView _wantsKeyDownForEvent:]): (-[WKView acceptsFirstMouse:]): (-[WKView shouldDelayWindowOrderingForEvent:]): (-[WKView validAttributesForMarkedText]): (-[WKView _windowResizeMouseLocationIsInVisibleScrollerThumb:]): (-[WKView drawRect:]): (-[WKView isOpaque]): (-[WKView mouseDownCanMoveWindow]): (-[WKView viewDidHide]): (-[WKView viewDidUnhide]): (-[WKView _activeSpaceDidChange:]): (-[WKView hitTest:]): (-[WKView wantsUpdateLayer]): (-[WKView canChangeFrameLayout:]): (-[WKView printOperationWithPrintInfo:forFrame:]): (+[WKView hideWordDefinitionWindow]): * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::wantsUpdateLayer): (WebKit::WebViewImpl::mouseDownCanMoveWindow): (WebKit::WebViewImpl::wantsKeyDownForEvent): (WebKit::WebViewImpl::layerHostingView): Deleted. * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::isOpaque): (WebKit::WebViewImpl::acceptsFirstMouse): (WebKit::WebViewImpl::drawRect): (WebKit::WebViewImpl::canChangeFrameLayout): (WebKit::WebViewImpl::printOperationWithPrintInfo): (WebKit::WebViewImpl::shouldDelayWindowOrderingForEvent): (WebKit::WebViewImpl::windowResizeMouseLocationIsInVisibleScrollerThumb): (WebKit::WebViewImpl::viewDidHide): (WebKit::WebViewImpl::viewDidUnhide): (WebKit::WebViewImpl::activeSpaceDidChange): (WebKit::WebViewImpl::hitTest): (WebKit::WebViewImpl::hideWordDefinitionWindow): (WebKit::WebViewImpl::validAttributesForMarkedText): Printing and random bits. 2015-10-30 Anders Carlsson REGRESSION (r191691): Unexpected "Share" context menu when right clicking around inspector https://bugs.webkit.org/show_bug.cgi?id=150699 rdar://problem/23324522 Reviewed by Tim Horton. Don't create a share menu item if we have nothing to share. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::createShareMenuItem): 2015-10-30 Tim Horton Initialize some new WebViewImpl members * UIProcess/Cocoa/WebViewImpl.h: Oh well. 2015-10-30 Tim Horton Fix the build * UIProcess/API/mac/WKView.mm: 2015-10-30 Tim Horton Fix the build * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::collectKeyboardLayoutCommandsForEvent): 2015-10-30 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Darin Adler. * UIProcess/API/mac/WKView.mm: (-[WKView doCommandBySelector:]): (-[WKView insertText:]): (-[WKView insertText:replacementRange:]): (-[WKView inputContext]): (-[WKView performKeyEquivalent:]): (-[WKView keyUp:]): (-[WKView keyDown:]): (-[WKView flagsChanged:]): (-[WKView setMarkedText:selectedRange:replacementRange:]): (-[WKView unmarkText]): (-[WKView selectedRange]): (-[WKView hasMarkedText]): (-[WKView markedRange]): (-[WKView attributedSubstringForProposedRange:actualRange:]): (-[WKView characterIndexForPoint:]): (-[WKView firstRectForCharacterRange:actualRange:]): (-[WKView selectedRangeWithCompletionHandler:]): (-[WKView markedRangeWithCompletionHandler:]): (-[WKView hasMarkedTextWithCompletionHandler:]): (-[WKView attributedSubstringForProposedRange:completionHandler:]): (-[WKView firstRectForCharacterRange:completionHandler:]): (-[WKView characterIndexForPoint:completionHandler:]): (-[WKView _superPerformKeyEquivalent:]): (-[WKView _superKeyDown:]): (extractUnderlines): Deleted. (-[WKView _collectKeyboardLayoutCommandsForEvent:to:]): Deleted. (-[WKView _interpretKeyEvent:completionHandler:]): Deleted. (-[WKView NO_RETURN_DUE_TO_ASSERT]): Deleted. (-[WKView _interpretKeyEvent:savingCommandsTo:]): Deleted. (-[WKView _executeSavedKeypressCommands]): Deleted. (-[WKView _doneWithKeyEvent:eventWasHandled:]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::doneWithKeyEvent): (WebKit::extractUnderlines): (WebKit::WebViewImpl::collectKeyboardLayoutCommandsForEvent): (WebKit::WebViewImpl::interpretKeyEvent): (WebKit::WebViewImpl::doCommandBySelector): (WebKit::WebViewImpl::insertText): (WebKit::WebViewImpl::selectedRangeWithCompletionHandler): (WebKit::WebViewImpl::markedRangeWithCompletionHandler): (WebKit::WebViewImpl::hasMarkedTextWithCompletionHandler): (WebKit::WebViewImpl::attributedSubstringForProposedRange): (WebKit::WebViewImpl::firstRectForCharacterRange): (WebKit::WebViewImpl::characterIndexForPoint): (WebKit::WebViewImpl::inputContext): (WebKit::WebViewImpl::unmarkText): (WebKit::WebViewImpl::setMarkedText): (WebKit::WebViewImpl::selectedRange): (WebKit::WebViewImpl::hasMarkedText): (WebKit::WebViewImpl::markedRange): (WebKit::WebViewImpl::performKeyEquivalent): (WebKit::WebViewImpl::keyUp): (WebKit::WebViewImpl::keyDown): (WebKit::WebViewImpl::flagsChanged): (WebKit::WebViewImpl::executeSavedKeypressCommands): * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::doneWithKeyEvent): Move NSTextInputClient implementation. 2015-10-30 Carlos Garcia Campos [GTK] Move the socket polling off the WorkQueue https://bugs.webkit.org/show_bug.cgi?id=150593 Reviewed by Anders Carlsson. Create the socket poll source in Connection::open and attach it to the connection work queue context. * Platform/IPC/Connection.h: * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::platformInvalidate): (IPC::Connection::open): 2015-10-30 Carlos Garcia Campos [GTK] Use RunLoop::Timer instead of GMainLoopSource https://bugs.webkit.org/show_bug.cgi?id=150592 Reviewed by Žan Doberšek. * Shared/Downloads/soup/DownloadSoup.cpp: (WebKit::DownloadClient::DownloadClient): (WebKit::DownloadClient::didReceiveData): (WebKit::DownloadClient::handleResponseLater): * UIProcess/gtk/GestureController.cpp: (WebKit::GestureController::DragGesture::begin): (WebKit::GestureController::DragGesture::update): (WebKit::GestureController::DragGesture::end): (WebKit::GestureController::DragGesture::longPressFired): (WebKit::GestureController::DragGesture::DragGesture): (WebKit::GestureController::ZoomGesture::scaleChanged): (WebKit::GestureController::ZoomGesture::ZoomGesture): * UIProcess/gtk/GestureController.h: 2015-10-29 Carlos Garcia Campos [GTK] Use a persistent main loop source in RunLoop glib implementation https://bugs.webkit.org/show_bug.cgi?id=150590 Reviewed by Žan Doberšek. Use RunLoop::dispatch() instead of GMainLoopSource::scheduleAndDeleteOnDestroy in a couple of simple cases. * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::runTaskInQueue): * UIProcess/gtk/DragAndDropHandler.cpp: (WebKit::DragAndDropHandler::dragLeave): 2015-10-29 Alex Christensen Make WebCore a framework in Mac CMake build https://bugs.webkit.org/show_bug.cgi?id=150702 Reviewed by Geoffrey Garen. * PlatformMac.cmake: 2015-10-29 Alex Christensen EFL build fix after r191749 * CMakeLists.txt: Only Mac should include the Cocoa directory. 2015-10-29 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * Platform/spi/mac/AppKitSPI.h: * UIProcess/API/mac/WKView.mm: (-[WKView validRequestorForSendType:returnType:]): (-[WKView readSelectionFromPasteboard:]): (-[WKView changeFont:]): (-[WKView startSpeaking:]): (-[WKView stopSpeaking:]): (-[WKView showGuessPanel:]): (-[WKView checkSpelling:]): (-[WKView changeSpelling:]): (-[WKView toggleContinuousSpellChecking:]): (-[WKView isGrammarCheckingEnabled]): (-[WKView setGrammarCheckingEnabled:]): (-[WKView toggleGrammarChecking:]): (-[WKView toggleAutomaticSpellingCorrection:]): (-[WKView orderFrontSubstitutionsPanel:]): (-[WKView toggleSmartInsertDelete:]): (-[WKView isAutomaticQuoteSubstitutionEnabled]): (-[WKView setAutomaticQuoteSubstitutionEnabled:]): (-[WKView toggleAutomaticQuoteSubstitution:]): (-[WKView isAutomaticDashSubstitutionEnabled]): (-[WKView setAutomaticDashSubstitutionEnabled:]): (-[WKView toggleAutomaticDashSubstitution:]): (-[WKView isAutomaticLinkDetectionEnabled]): (-[WKView setAutomaticLinkDetectionEnabled:]): (-[WKView toggleAutomaticLinkDetection:]): (-[WKView isAutomaticTextReplacementEnabled]): (-[WKView setAutomaticTextReplacementEnabled:]): (-[WKView toggleAutomaticTextReplacement:]): (-[WKView uppercaseWord:]): (-[WKView lowercaseWord:]): (-[WKView capitalizeWord:]): * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::readSelectionFromPasteboard): (WebKit::WebViewImpl::validRequestorForSendAndReturnTypes): (WebKit::WebViewImpl::changeFontFromFontPanel): (WebKit::WebViewImpl::startSpeaking): (WebKit::WebViewImpl::stopSpeaking): (WebKit::WebViewImpl::showGuessPanel): (WebKit::WebViewImpl::checkSpelling): (WebKit::WebViewImpl::changeSpelling): (WebKit::WebViewImpl::toggleContinuousSpellChecking): (WebKit::WebViewImpl::isGrammarCheckingEnabled): (WebKit::WebViewImpl::setGrammarCheckingEnabled): (WebKit::WebViewImpl::toggleGrammarChecking): (WebKit::WebViewImpl::toggleAutomaticSpellingCorrection): (WebKit::WebViewImpl::orderFrontSubstitutionsPanel): (WebKit::WebViewImpl::toggleSmartInsertDelete): (WebKit::WebViewImpl::isAutomaticQuoteSubstitutionEnabled): (WebKit::WebViewImpl::setAutomaticQuoteSubstitutionEnabled): (WebKit::WebViewImpl::toggleAutomaticQuoteSubstitution): (WebKit::WebViewImpl::isAutomaticDashSubstitutionEnabled): (WebKit::WebViewImpl::setAutomaticDashSubstitutionEnabled): (WebKit::WebViewImpl::toggleAutomaticDashSubstitution): (WebKit::WebViewImpl::isAutomaticLinkDetectionEnabled): (WebKit::WebViewImpl::setAutomaticLinkDetectionEnabled): (WebKit::WebViewImpl::toggleAutomaticLinkDetection): (WebKit::WebViewImpl::setAutomaticTextReplacementEnabled): (WebKit::WebViewImpl::toggleAutomaticTextReplacement): (WebKit::WebViewImpl::uppercaseWord): (WebKit::WebViewImpl::lowercaseWord): (WebKit::WebViewImpl::capitalizeWord): Move spellcheck and related bits. 2015-10-29 Eric Carlson Revert inadvertent changes https://bugs.webkit.org/show_bug.cgi?id=150694 Reviewed by Tim Horton. * WebProcess/com.apple.WebProcess.sb.in: 2015-10-29 Alex Christensen CMake build fix. * CMakeLists.txt: * PlatformMac.cmake: I mistakenly added some mac-specific files to the shared CMakeLists.txt. This puts them in the right place. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::viewWillStartLiveResize): (WebKit::WebPageProxy::viewDidLeaveWindow): (WebKit::WebPageProxy::didEndColorPicker): Add preprocessor enable checks. 2015-10-29 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Darin Adler. * UIProcess/API/mac/WKView.mm: (-[WKView browsingContextController]): (-[WKView validateUserInterfaceItem:]): (-[WKView saveBackForwardSnapshotForCurrentItem]): (-[WKView saveBackForwardSnapshotForItem:]): (-[WKView updateLayer]): (-[WKView minimumSizeForAutoLayout]): (-[WKView setMinimumSizeForAutoLayout:]): (-[WKView shouldExpandToViewHeightForAutoLayout]): (-[WKView setShouldExpandToViewHeightForAutoLayout:]): (-[WKView underlayColor]): (-[WKView setUnderlayColor:]): (-[WKView _setOverlayScrollbarStyle:]): (-[WKView _overlayScrollbarStyle]): (-[WKView _pageExtendedBackgroundColor]): (-[WKView forceAsyncDrawingAreaSizeUpdate:]): (-[WKView waitForAsyncDrawingAreaSizeUpdate]): (-[WKView isUsingUISideCompositing]): (createSelectorExceptionMap): Deleted. (commandNameForSelector): Deleted. (menuItem): Deleted. (toolbarItem): Deleted. (-[WKView _setUserInterfaceItemState:enabled:state:]): Deleted. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::createDrawingAreaProxy): (WebKit::WebViewImpl::isUsingUISideCompositing): (WebKit::WebViewImpl::forceAsyncDrawingAreaSizeUpdate): (WebKit::WebViewImpl::waitForAsyncDrawingAreaSizeUpdate): (WebKit::WebViewImpl::updateLayer): (WebKit::WebViewImpl::setMinimumSizeForAutoLayout): (WebKit::WebViewImpl::minimumSizeForAutoLayout): (WebKit::WebViewImpl::setShouldExpandToViewHeightForAutoLayout): (WebKit::WebViewImpl::shouldExpandToViewHeightForAutoLayout): (WebKit::WebViewImpl::setUnderlayColor): (WebKit::WebViewImpl::underlayColor): (WebKit::WebViewImpl::pageExtendedBackgroundColor): (WebKit::WebViewImpl::setOverlayScrollbarStyle): (WebKit::WebViewImpl::overlayScrollbarStyle): (WebKit::createSelectorExceptionMap): (WebKit::commandNameForSelector): (WebKit::WebViewImpl::executeSavedCommandBySelector): (WebKit::WebViewImpl::executeEditCommandForSelector): (WebKit::menuItem): (WebKit::toolbarItem): (WebKit::WebViewImpl::validateUserInterfaceItem): (WebKit::WebViewImpl::setUserInterfaceItemState): (WebKit::WebViewImpl::browsingContextController): (WebKit::WebViewImpl::saveBackForwardSnapshotForCurrentItem): (WebKit::WebViewImpl::saveBackForwardSnapshotForItem): (WebKit::WebViewImpl::executeEditCommand): Deleted. Move UI validation and a grab-bag of other things. 2015-10-29 Alex Christensen Fix Mac CMake build https://bugs.webkit.org/show_bug.cgi?id=150686 Reviewed by Filip Pizlo. * CMakeLists.txt: * PlatformMac.cmake: 2015-10-29 Commit Queue Unreviewed, rolling out r191728. https://bugs.webkit.org/show_bug.cgi?id=150668 Caused a lot of timeouts in layout tests (Requested by KaL on #webkit). Reverted changeset: "[GTK] Use a persistent main loop source in RunLoop glib implementation" https://bugs.webkit.org/show_bug.cgi?id=150590 http://trac.webkit.org/changeset/191728 2015-10-29 Carlos Garcia Campos [GTK] Use a persistent main loop source in RunLoop glib implementation https://bugs.webkit.org/show_bug.cgi?id=150590 Reviewed by Žan Doberšek. Use RunLoop::dispatch() instead of GMainLoopSource::scheduleAndDeleteOnDestroy in a couple of simple cases. * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::runTaskInQueue): * UIProcess/gtk/DragAndDropHandler.cpp: (WebKit::DragAndDropHandler::dragLeave): 2015-10-28 Tim Horton Fix the build * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::startWindowDrag): (WebKit::PageClientImpl::platformWindow): 2015-10-28 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/C/mac/WKPagePrivateMac.mm: (WKPageGetObjectRegistry): * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController _remoteObjectRegistry]): * UIProcess/API/mac/WKView.mm: (-[WKView dealloc]): (-[WKView _inspectorAttachmentView]): (-[WKView _setInspectorAttachmentView:]): (-[WKView windowOcclusionDetectionEnabled]): (-[WKView setWindowOcclusionDetectionEnabled:]): (-[WKView _setTotalHeightOfBanners:]): (-[WKView _totalHeightOfBanners]): (-[WKView initWithFrame:processPool:configuration:webView:]): Deleted. (-[WKView _remoteObjectRegistry]): Deleted. (-[WKView _startWindowDrag]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::setWindowOcclusionDetectionEnabled): (WebKit::WebViewImpl::windowOcclusionDetectionEnabled): (WebKit::WebViewImpl::setTotalHeightOfBanners): (WebKit::WebViewImpl::totalHeightOfBanners): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::window): (WebKit::WebViewImpl::setInspectorAttachmentView): (WebKit::WebViewImpl::inspectorAttachmentView): (WebKit::WebViewImpl::remoteObjectRegistry): (WebKit::WebViewImpl::destroyRemoteObjectRegistry): * UIProcess/PageClient.h: * UIProcess/WebPageProxy.h: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::isViewVisible): (WebKit::PageClientImpl::createColorPicker): (WebKit::PageClientImpl::startWindowDrag): (WebKit::PageClientImpl::platformWindow): (WebKit::PageClientImpl::inspectorAttachmentView): (WebKit::PageClientImpl::remoteObjectRegistry): * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCreateInspectorPage): (WebKit::WebInspectorProxy::platformCanAttach): (WebKit::WebInspectorProxy::platformBringToFront): (WebKit::WebInspectorProxy::inspectedViewFrameDidChange): (WebKit::WebInspectorProxy::platformInspectedWindowHeight): (WebKit::WebInspectorProxy::platformInspectedWindowWidth): (WebKit::WebInspectorProxy::platformAttach): (WebKit::WebInspectorProxy::platformDetach): (WebKit::WebInspectorProxy::platformStartWindowDrag): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::startWindowDrag): (WebKit::WebPageProxy::platformWindow): (WebKit::WebPageProxy::inspectorAttachmentView): (WebKit::WebPageProxy::remoteObjectRegistry): (WebKit::WebPageProxy::wkView): Deleted. Get rid of the wkView() getters on PageClientImpl and WebPageProxy, because those can't be a thing in the brave new world. Instead, plumb the four callers through PageClient to WebViewImpl. Also, move a few more things (banners, window occlusion). 2015-10-27 Anders Carlsson Stub out more of the context menu SPI https://bugs.webkit.org/show_bug.cgi?id=150606 Reviewed by Dan Bernstein. Add a delegate method that will allow the client to modify the menu. Also, add an empty _WKContextMenuElementInfo class and its _WKElementInfo superclass. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/API/Cocoa/_WKContextMenuElementInfo.h: Added. * UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm: Added. * UIProcess/API/Cocoa/_WKElementInfo.h: Added. * UIProcess/API/Cocoa/_WKElementInfo.mm: Added. * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): (WebKit::UIDelegate::UIClient::createNewPage): * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::showContextMenu): * WebKit2.xcodeproj/project.pbxproj: 2015-10-28 Anders Carlsson Stop using ContextMenuItem::shareMenuItem in the UI process https://bugs.webkit.org/show_bug.cgi?id=150578 Reviewed by Tim Horton. * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::createShareMenuItem): (WebKit::WebContextMenuProxyMac::createContextMenuItem): (WebKit::WebContextMenuProxyMac::shareMenuItem): Deleted. 2015-10-28 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView _superDoCommandBySelector:]): (-[WKView _createDrawingAreaProxy]): Deleted. (-[WKView _processDidExit]): Deleted. (-[WKView _pageClosed]): Deleted. (-[WKView _didRelaunchProcess]): Deleted. (-[WKView _convertToDeviceSpace:]): Deleted. (-[WKView _convertToUserSpace:]): Deleted. (-[WKView _executeSavedCommandBySelector:]): Deleted. (-[WKResponderChainSink initWithResponderChain:]): Deleted. (-[WKResponderChainSink detach]): Deleted. (-[WKResponderChainSink didReceiveUnhandledCommand]): Deleted. (-[WKResponderChainSink noResponderFor:]): Deleted. (-[WKResponderChainSink doCommandBySelector:]): Deleted. (-[WKResponderChainSink tryToPerform:with:]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (-[WKResponderChainSink initWithResponderChain:]): (-[WKResponderChainSink detach]): (-[WKResponderChainSink didReceiveUnhandledCommand]): (-[WKResponderChainSink noResponderFor:]): (-[WKResponderChainSink doCommandBySelector:]): (-[WKResponderChainSink tryToPerform:with:]): (WebKit::WebViewImpl::createDrawingAreaProxy): (WebKit::WebViewImpl::processDidExit): (WebKit::WebViewImpl::pageClosed): (WebKit::WebViewImpl::didRelaunchProcess): (WebKit::WebViewImpl::executeSavedCommandBySelector): (WebKit::WebViewImpl::resetGestureController): Deleted. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::createDrawingAreaProxy): (WebKit::PageClientImpl::processDidExit): (WebKit::PageClientImpl::pageClosed): (WebKit::PageClientImpl::didRelaunchProcess): (WebKit::PageClientImpl::convertToDeviceSpace): (WebKit::PageClientImpl::convertToUserSpace): (WebKit::PageClientImpl::executeSavedCommandBySelector): Move most of the rest of WKViewInternal.h's methods to WebViewImpl. 2015-10-28 Alex Christensen Compile and link with CMake on Mac https://bugs.webkit.org/show_bug.cgi?id=150632 Reviewed by Tim Horton. * CMakeLists.txt: * PlatformEfl.cmake: * PlatformGTK.cmake: * PlatformMac.cmake: 2015-10-27 Anders Carlsson Stub out more of the context menu SPI https://bugs.webkit.org/show_bug.cgi?id=150606 Reviewed by Dan Bernstein. Add a delegate method that will allow the client to modify the menu. Also, add an empty _WKContextMenuElementInfo class and its _WKElementInfo superclass. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/API/Cocoa/_WKContextMenuElementInfo.h: Added. * UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm: Added. * UIProcess/API/Cocoa/_WKElementInfo.h: Added. * UIProcess/API/Cocoa/_WKElementInfo.mm: Added. * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): (WebKit::UIDelegate::UIClient::createNewPage): * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::showContextMenu): * WebKit2.xcodeproj/project.pbxproj: 2015-10-28 Chris Dumez Use RunLoopTimer in DataURLDecoder to avoid issues related to runloops https://bugs.webkit.org/show_bug.cgi?id=150609 Reviewed by Antti Koivisto. Move addSchedulePair() call to Page::platformInitialize() so that RunLoopTimer can be used by any Page, even those that don't have a WebPage wrapper. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::platformInitialize): Deleted. 2015-10-27 Tim Horton Fix the 32-bit build. * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::dragImageForView): 2015-10-27 Tim Horton Fix the build. * UIProcess/Cocoa/WebViewImpl.mm: 2015-10-27 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView mouseDown:]): (-[WKView mouseUp:]): (-[WKView acceptsFirstMouse:]): (-[WKView shouldDelayWindowOrderingForEvent:]): (-[WKView pasteboardChangedOwner:]): (-[WKView pasteboard:provideDataForType:]): (-[WKView namesOfPromisedFilesDroppedAtDestination:]): (-[WKView _startWindowDrag]): (-[WKView _setMouseDownEvent:]): Deleted. (-[WKView _colorSpace]): Deleted. (-[WKView _dragImageForView:withImage:at:linkDrag:]): Deleted. (matchesExtensionOrEquivalent): Deleted. (-[WKView _setFileAndURLTypes:withExtension:withTitle:withURL:withVisibleURL:forPasteboard:]): Deleted. (-[WKView _setPromisedDataForImage:withFileName:withExtension:withTitle:withURL:withVisibleURL:withArchive:forPasteboard:]): Deleted. (-[WKView _setPromisedDataForAttachment:withExtension:withTitle:withURL:withVisibleURL:forPasteboard:]): Deleted. (fileExists): Deleted. (pathWithUniqueFilenameForPath): Deleted. (-[WKView spellCheckerDocumentTag]): Deleted. (-[WKView handleAcceptedAlternativeText:]): Deleted. (-[WKView initWithFrame:processPool:configuration:webView:]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::handleAcceptedAlternativeText): (WebKit::WebViewImpl::spellCheckerDocumentTag): (WebKit::WebViewImpl::startWindowDrag): (WebKit::WebViewImpl::dragImageForView): (WebKit::matchesExtensionOrEquivalent): (WebKit::WebViewImpl::setFileAndURLTypes): (WebKit::WebViewImpl::setPromisedDataForImage): (WebKit::WebViewImpl::setPromisedDataForAttachment): (WebKit::WebViewImpl::pasteboardChangedOwner): (WebKit::WebViewImpl::provideDataForPasteboard): (WebKit::fileExists): (WebKit::pathWithUniqueFilenameForPath): (WebKit::WebViewImpl::namesOfPromisedFilesDroppedAtDestination): (WebKit::WebViewImpl::setLastMouseDownEvent): * UIProcess/mac/CorrectionPanel.h: * UIProcess/mac/CorrectionPanel.mm: (WebKit::CorrectionPanel::show): (WebKit::CorrectionPanel::recordAutocorrectionResponse): (WebKit::CorrectionPanel::handleAcceptedReplacement): * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::colorSpace): (WebKit::PageClientImpl::setDragImage): (WebKit::PageClientImpl::setPromisedDataForImage): (WebKit::PageClientImpl::setPromisedDataForAttachment): (WebKit::PageClientImpl::showCorrectionPanel): (WebKit::PageClientImpl::recordAutocorrectionResponse): (WebKit::PageClientImpl::showDictationAlternativeUI): Move some pasteboard and spellcheck code. 2015-10-27 Wenson Hsieh Implement viewport-width-based fast-click heuristic https://bugs.webkit.org/show_bug.cgi?id=150604 Reviewed by Simon Fraser. Implement a new fast-click heuristic that applies to viewports with width = device-width. The basic rules are as follows: when a page has viewport width = device-width and is at initial zoom scale, we disable double-tapping in favor of fast-clicking. However, if the viewport scale is not the initial scale, we allow double tapping. For fast-clicking to remain useful after the user pinch-zooms, we change our double-tap to zoom out behavior to zoom to the initial scale rather than the minimum scale. For unscalable viewports, we default to fast-clicking behavior, and for all other viewports not at device-width, we double-tap to zoom and scroll as normal. This patch removes some logic previously used for our scroll- and zoom-based fast-clicking heuristic, and adds information about the viewport width and initial scale to RemoteLayerTreeTransactions. This information is then used by the UI process to determine whether double tapping should be disabled or enabled. The fast-click heuristic can be turned off through user default preferences, and a tap highlight for debugging fast-clicking can also be enabled through a user default preference. A red highlight indicates that a single- tap was slow, whereas a green highlight indicates a fast single-tap. * Shared/mac/RemoteLayerTreeTransaction.h: (WebKit::RemoteLayerTreeTransaction::initialScaleFactor): (WebKit::RemoteLayerTreeTransaction::setInitialScaleFactor): (WebKit::RemoteLayerTreeTransaction::viewportMetaTagWidth): (WebKit::RemoteLayerTreeTransaction::setViewportMetaTagWidth): * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTransaction::encode): (WebKit::RemoteLayerTreeTransaction::decode): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView _processDidExit]): (-[WKWebView _didCommitLayerTree:]): (-[WKWebView _zoomToInitialScaleWithOrigin:animated:]): (-[WKWebView _allowsDoubleTapGestures]): (-[WKWebView _setViewportMetaTagWidth:]): Deleted. (-[WKWebView _contentZoomScale]): Deleted. (-[WKWebView _viewportMetaTagWidth]): Deleted. (-[WKWebView _viewportIsUserScalable]): Deleted. * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::disableDoubleTapGesturesDuringTapIfNecessary): (WebKit::PageClientImpl::didChangeViewportMetaTagWidth): Deleted. (WebKit::PageClientImpl::disableDoubleTapGesturesUntilTapIsFinishedIfNecessary): Deleted. * UIProcess/ios/SmartMagnificationController.h: * UIProcess/ios/SmartMagnificationController.mm: (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture): * UIProcess/ios/WKContentView.h: * UIProcess/ios/WKContentView.mm: (-[WKContentView _zoomToInitialScaleWithOrigin:]): * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView _showTapHighlight]): (-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:]): (-[WKContentView _mayDisableDoubleTapGesturesDuringSingleTap]): (-[WKContentView _disableDoubleTapGesturesDuringTapIfNecessary:]): (-[WKContentView _finishInteraction]): (-[WKContentView _endPotentialTapAndEnableDoubleTapGesturesIfNecessary]): (-[WKContentView _tapHighlightColorForFastClick:]): (-[WKContentView _setDoubleTapGesturesEnabled:]): (-[WKContentView _fastClickZoomThreshold]): Deleted. (-[WKContentView _allowDoubleTapToZoomForCurrentZoomScale:andTargetZoomScale:]): Deleted. (-[WKContentView _disableDoubleTapGesturesUntilTapIsFinishedIfNecessary:allowsDoubleTapZoom:targetRect:isReplaced:minimumScale:maximumScale:]): Deleted. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::disableDoubleTapGesturesDuringTapIfNecessary): (WebKit::WebPageProxy::viewportMetaTagWidthDidChange): Deleted. (WebKit::WebPageProxy::disableDoubleTapGesturesUntilTapIsFinishedIfNecessary): Deleted. * WebProcess/WebPage/ViewGestureGeometryCollector.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::willCommitLayerTree): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::potentialTapAtPosition): (WebKit::WebPage::viewportPropertiesDidChange): Deleted. 2015-10-27 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView _superAccessibilityAttributeValue:]): (-[WKView accessibilityFocusedUIElement]): (-[WKView accessibilityIsIgnored]): (-[WKView accessibilityHitTest:]): (-[WKView accessibilityAttributeValue:]): (-[WKView _processDidExit]): (-[WKView _pageClosed]): (-[WKView _updateRemoteAccessibilityRegistration:]): Deleted. (-[WKView enableAccessibilityIfNecessary]): Deleted. (-[WKView _toolTipChangedFrom:to:]): Deleted. (-[WKView _setAccessibilityWebProcessToken:]): Deleted. (-[WKView _hasFullScreenWindowController]): Deleted. (-[WKView _fullScreenWindowController]): Deleted. (-[WKView _closeFullScreenWindowController]): Deleted. (-[WKView _setSuppressVisibilityUpdates:]): Deleted. (-[WKView _suppressVisibilityUpdates]): Deleted. (-[WKView _primaryTrackingArea]): Deleted. (-[WKView _setPrimaryTrackingArea:]): Deleted. (-[WKView initWithFrame:processPool:configuration:webView:]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::accessibilityIsIgnored): (WebKit::WebViewImpl::primaryTrackingArea): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::trackingAreaOptions): (WebKit::WebViewImpl::WebViewImpl): (WebKit::WebViewImpl::setAccessibilityWebProcessToken): (WebKit::WebViewImpl::updateRemoteAccessibilityRegistration): (WebKit::WebViewImpl::accessibilityFocusedUIElement): (WebKit::WebViewImpl::accessibilityHitTest): (WebKit::WebViewImpl::enableAccessibilityIfNecessary): (WebKit::WebViewImpl::accessibilityAttributeValue): (WebKit::WebViewImpl::setPrimaryTrackingArea): (WebKit::WebViewImpl::toolTipChanged): * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::toolTipChanged): (WebKit::PageClientImpl::accessibilityWebProcessTokenReceived): (WebKit::PageClientImpl::recommendedScrollbarStyleDidChange): (WebKit::PageClientImpl::closeFullScreenManager): (WebKit::PageClientImpl::isFullScreen): (WebKit::PageClientImpl::enterFullScreen): (WebKit::PageClientImpl::exitFullScreen): (WebKit::PageClientImpl::beganEnterFullScreen): (WebKit::PageClientImpl::beganExitFullScreen): Move accessibility code, and fold in some internal-only methods. 2015-10-27 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView scrollWheel:]): (-[WKView swipeWithEvent:]): (-[WKView _superSwipeWithEvent:]): (-[WKView _superMagnifyWithEvent:]): (-[WKView _superSmartMagnifyWithEvent:]): (-[WKView _processDidExit]): (-[WKView setAllowsBackForwardNavigationGestures:]): (-[WKView allowsBackForwardNavigationGestures]): (-[WKView setAllowsMagnification:]): (-[WKView allowsMagnification]): (-[WKView magnifyWithEvent:]): (-[WKView rotateWithEvent:]): (-[WKView _gestureEventWasNotHandledByWebCore:]): (-[WKView smartMagnifyWithEvent:]): (-[WKView setMagnification:centeredAtPoint:]): (-[WKView setMagnification:]): (-[WKView magnification]): (-[WKView _setCustomSwipeViews:]): (-[WKView _setCustomSwipeViewsTopContentInset:]): (-[WKView _tryToSwipeWithEvent:ignoringPinnedState:]): (-[WKView _setDidMoveSwipeSnapshotCallback:]): (-[WKView _ensureGestureController]): Deleted. (takeWindowSnapshot): Deleted. (-[WKView _takeViewSnapshot]): Deleted. (-[WKView _wheelEventWasNotHandledByWebCore:]): Deleted. (-[WKView _didFirstVisuallyNonEmptyLayoutForMainFrame]): Deleted. (-[WKView _didFinishLoadForMainFrame]): Deleted. (-[WKView _didFailLoadForMainFrame]): Deleted. (-[WKView _didSameDocumentNavigationForMainFrame:]): Deleted. (-[WKView _removeNavigationGestureSnapshot]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::gestureController): (WebKit::WebViewImpl::allowsBackForwardNavigationGestures): (WebKit::WebViewImpl::allowsMagnification): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::takeWindowSnapshot): (WebKit::WebViewImpl::takeViewSnapshot): (WebKit::WebViewImpl::ensureGestureController): (WebKit::WebViewImpl::resetGestureController): (WebKit::WebViewImpl::setAllowsBackForwardNavigationGestures): (WebKit::WebViewImpl::setAllowsMagnification): (WebKit::WebViewImpl::setMagnification): (WebKit::WebViewImpl::magnification): (WebKit::WebViewImpl::setCustomSwipeViews): (WebKit::WebViewImpl::setCustomSwipeViewsTopContentInset): (WebKit::WebViewImpl::tryToSwipeWithEvent): (WebKit::WebViewImpl::setDidMoveSwipeSnapshotCallback): (WebKit::WebViewImpl::scrollWheel): (WebKit::WebViewImpl::swipeWithEvent): (WebKit::WebViewImpl::magnifyWithEvent): (WebKit::WebViewImpl::smartMagnifyWithEvent): (WebKit::WebViewImpl::rotateWithEvent): (WebKit::WebViewImpl::gestureEventWasNotHandledByWebCore): (WebKit::WebViewImpl::gestureEventWasNotHandledByWebCoreFromViewOnly): * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::takeViewSnapshot): (WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): (WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame): (WebKit::PageClientImpl::didFinishLoadForMainFrame): (WebKit::PageClientImpl::didFailLoadForMainFrame): (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame): (WebKit::PageClientImpl::removeNavigationGestureSnapshot): Move swipe, zoom, rotate, and snapshotting code. 2015-10-27 Zhuo Li Add WebKit API to clear data type Search Field Recent Searches. https://bugs.webkit.org/show_bug.cgi?id=150019. Reviewed by Anders Carlsson. * Shared/WebsiteData/WebsiteDataTypes.h: Add data type Search Field Recent Searches. * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (dataTypesToString): Ditto. * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): Ditto. (WebKit::toWKWebsiteDataTypes): Ditto. * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: Ditto. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::removeData): Handle the case when data type is Search Field Recent Searches. * UIProcess/WebsiteData/WebsiteDataStore.h: Add a private function for removing recent searches based on time. * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStoreCocoa::platformRemoveRecentSearches): Call the removing recent searches logic in WebCore. * UIProcess/efl/WebPageProxyEfl.cpp: (WebKit::WebsiteDataStore::platformRemoveRecentSearches): Not implemented. * UIProcess/gtk/WebPageProxyGtk.cpp: (WebKit::WebsiteDataStore::platformRemoveRecentSearches): Not implemented. 2015-10-26 Brady Eidson Make IDBKeyData from a struct to a class. https://bugs.webkit.org/show_bug.cgi?id=150576 Reviewed by Alex Christensen. * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h: * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in: * DatabaseProcess/IndexedDB/IDBSerialization.h: * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::putRecordInBackingStore): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h: * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp: (WebKit::buildIndexStatement): (WebKit::buildObjectStoreStatement): (WebKit::SQLiteIDBCursor::establishStatement): (WebKit::SQLiteIDBCursor::createSQLiteStatement): (WebKit::SQLiteIDBCursor::resetAndRebindStatement): (WebKit::SQLiteIDBCursor::iterate): * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex): * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: (WebKit::WebIDBServerConnection::didPutRecord): * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h: * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in: 2015-10-26 Philip Chimento [GTK] [Stable] InstallMissingMediaPluginsPermissionRequest not defined when building without GStreamer https://bugs.webkit.org/show_bug.cgi?id=148607 Unreviewed, build fix. * UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.h: Add a stub for the InstallMissingMediaPluginsPermissionRequest class for the case when video is disabled or not using GStreamer. It's OK that this class does nothing, because the associated C API contains an assert_not_reached if video is disabled. We just need to define the symbol so that the function signature will compile. 2015-10-26 Anders Carlsson Pipe custom context menu handling through to the UIDelegate object https://bugs.webkit.org/show_bug.cgi?id=150572 Reviewed by Tim Horton. * UIProcess/API/APIContextMenuClient.h: (API::ContextMenuClient::menuFromProposedMenu): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView setUIDelegate:]): * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::createContextMenuClient): (WebKit::UIDelegate::ContextMenuClient::ContextMenuClient): (WebKit::UIDelegate::ContextMenuClient::~ContextMenuClient): (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::showContextMenu): 2015-10-26 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView mouseDown:]): (-[WKView mouseDragged:]): (-[WKView draggedImage:endedAt:operation:]): (-[WKView draggingEntered:]): (-[WKView draggingUpdated:]): (-[WKView draggingExited:]): (-[WKView prepareForDragOperation:]): (-[WKView performDragOperation:]): (-[WKView _hitTest:dragTypes:]): (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView applicationFlags:]): Deleted. (maybeCreateSandboxExtensionFromPasteboard): Deleted. (createSandboxExtensionsForFileUpload): Deleted. (-[WKView _registerDraggedTypes]): Deleted. * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::ignoresMouseDraggedEvents): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::setIgnoresMouseDraggedEvents): (WebKit::WebViewImpl::draggedImage): (WebKit::applicationFlagsForDrag): (WebKit::WebViewImpl::draggingEntered): (WebKit::WebViewImpl::draggingUpdated): (WebKit::WebViewImpl::draggingExited): (WebKit::WebViewImpl::prepareForDragOperation): (WebKit::maybeCreateSandboxExtensionFromPasteboard): (WebKit::createSandboxExtensionsForFileUpload): (WebKit::WebViewImpl::performDragOperation): (WebKit::WebViewImpl::hitTestForDragTypes): (WebKit::WebViewImpl::registerDraggedTypes): Move some drag-related things to WebViewImpl. 2015-10-26 Anders Carlsson Pipe custom context menu handling through to the UIDelegate object https://bugs.webkit.org/show_bug.cgi?id=150572 Reviewed by Tim Horton. * UIProcess/API/APIContextMenuClient.h: (API::ContextMenuClient::menuFromProposedMenu): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView setUIDelegate:]): * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::createContextMenuClient): (WebKit::UIDelegate::ContextMenuClient::ContextMenuClient): (WebKit::UIDelegate::ContextMenuClient::~ContextMenuClient): (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::showContextMenu): 2015-10-26 Alex Christensen Build fix when using NETWORK_SESSION after r191457. * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[NetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): Use resourceResponse. 2015-10-26 Anders Carlsson Remove more dead context menu code https://bugs.webkit.org/show_bug.cgi?id=150569 Reviewed by Tim Horton. * UIProcess/API/APIContextMenuClient.h: (API::ContextMenuClient::contextMenuDismissed): Deleted. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageContextMenuClient): Deleted. 2015-10-26 Anders Carlsson Remove dead context menu code https://bugs.webkit.org/show_bug.cgi?id=150567 Reviewed by Tim Horton. * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: (WebKit::WebContextMenuClient::getCustomMenuFromDefaultItems): Deleted. * WebProcess/WebCoreSupport/WebContextMenuClient.h: 2015-10-26 Tim Horton Don't expose the whitelist/blacklist in _WKUserStyleSheet https://bugs.webkit.org/show_bug.cgi?id=150566 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/_WKUserStyleSheet.h: * UIProcess/API/Cocoa/_WKUserStyleSheet.mm: (-[_WKUserStyleSheet initWithSource:forMainFrameOnly:]): (toWTFStrings): Deleted. (-[_WKUserStyleSheet initWithSource:whitelistedURLPatterns:blacklistedURLPatterns:forMainFrameOnly:]): Deleted. (-[_WKUserStyleSheet whitelistedURLPatterns]): Deleted. (-[_WKUserStyleSheet blacklistedURLPatterns]): Deleted. 2015-10-25 Carlos Garcia Campos Unreviewed. Fix GTK+ build after r191543. * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_run_javascript): (resourcesStreamReadCallback): 2015-10-24 Tim Horton Add a way to add user style sheets to WKUserContentController https://bugs.webkit.org/show_bug.cgi?id=150531 Reviewed by Darin Adler. * Shared/API/APIObject.h: * Shared/Cocoa/APIObject.mm: (API::Object::newObject): Boilerplate for a new API::UserStyleSheet. * UIProcess/API/APIUserStyleSheet.cpp: Added. (API::generateIdentifier): (API::UserStyleSheet::generateUniqueURL): * UIProcess/API/APIUserStyleSheet.h: Added. Added API::UserStyleSheet, borrowing URL generation code from API::UserScript. * UIProcess/API/Cocoa/WKUserContentController.mm: (-[WKUserContentController _addUserStyleSheet:]): (-[WKUserContentController _removeAllUserStyleSheets]): Forward add and remove-all to WebUserContentControllerProxy. * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: * UIProcess/API/Cocoa/_WKUserStyleSheet.h: Added. * UIProcess/API/Cocoa/_WKUserStyleSheet.mm: Added. (toWTFStrings): (-[_WKUserStyleSheet initWithSource:whitelistedURLPatterns:blacklistedURLPatterns:forMainFrameOnly:]): (-[_WKUserStyleSheet source]): (-[_WKUserStyleSheet isForMainFrameOnly]): (-[_WKUserStyleSheet copyWithZone:]): (-[_WKUserStyleSheet _apiObject]): * UIProcess/API/Cocoa/_WKUserStyleSheetInternal.h: Added. (API::wrapper): * WebKit2.xcodeproj/project.pbxproj: Add the new modern API object (as SPI for now). 2015-10-24 Tim Horton Expose more information about the exception in WKErrorJavaScriptExceptionOccurred errors https://bugs.webkit.org/show_bug.cgi?id=150525 Reviewed by Darin Adler. * Scripts/webkit/messages.py: (headers_for_type): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): * Shared/WebCoreArgumentCoders.h: Learn how to en/decode ExceptionDetails. * UIProcess/API/C/WKPage.cpp: (WKPageRunJavaScriptInMainFrame): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runJavaScriptInMainFrame): (WebKit::WebPageProxy::scriptValueCallback): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::runJavaScriptInMainFrame): Plumb ExceptionDetails back through runJavaScriptInMainFrame, across the process boundary. * UIProcess/API/Cocoa/WKError.mm: (localizedDescriptionForErrorCode): * UIProcess/API/Cocoa/WKErrorInternal.h: * UIProcess/API/Cocoa/WKErrorPrivate.h: Expose localizedDescriptionForErrorCode so that WKWebView can do special things with its error. Add new private userInfo keys for exception info. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView evaluateJavaScript:completionHandler:]): Fill in the NSError userInfo with the exception info. 2015-10-24 Gyuyoung Kim [EFL] Fix a wrong enum variable use https://bugs.webkit.org/show_bug.cgi?id=150522 Reviewed by Csaba Osztrogonác. * UIProcess/API/efl/EwkView.cpp: (EwkView::requestPopupMenu): Use kWKPopupItemTextDirectionLTR instead of EWK_TEXT_DIRECTION_LEFT_TO_RIGHT. 2015-10-24 Dan Bernstein [Cocoa] _WKFormInputSession should provide access to the focused element info https://bugs.webkit.org/show_bug.cgi?id=150512 Reviewed by Tim Horton. * UIProcess/API/Cocoa/_WKFormInputSession.h: Added focusedElementInfo property to the protocol. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKFormInputSession initWithContentView:focusedElementInfo:userObject:]): Added the focusedElementInfo argument, used to initialize a new ivar. (-[WKFormInputSession focusedElementInfo]): Added this getter for the new _WKFormInputSession property. (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Create the WKFocusedElementInfo unconditionally and pass it to the new WKFormInputSession initializer. 2015-10-24 Dan Bernstein [iOS] Allow clients to specify a custom input view to be used for a form input session https://bugs.webkit.org/show_bug.cgi?id=150395 Reviewed by Tim Horton. * UIProcess/API/Cocoa/_WKFormInputSession.h: Added customInputView property to the protocol. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKFormInputSession customInputView]): Added this getter. (-[WKFormInputSession setCustomInputView:]): Added this setter, which reloads the input views when the custom input view changes. (-[WKContentView inputView]): Changed to return the custom view from the input session if there is one. 2015-10-23 Alex Christensen Fix CMake compile error and add correct null check https://bugs.webkit.org/show_bug.cgi?id=150520 Reviewed by Simon Fraser. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _doAfterNextPresentationUpdate:]): 2015-10-23 Alex Christensen Progress towards CMake on Mac https://bugs.webkit.org/show_bug.cgi?id=150517 Reviewed by Tim Horton. * CMakeLists.txt: * PlatformEfl.cmake: * PlatformGTK.cmake: * PlatformMac.cmake: * WebProcess/Cookies/cf/WebCookieManagerCFNet.cpp: Removed. * WebProcess/Cookies/curl/WebCookieManagerCurl.cpp: Removed. 2015-10-23 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 * UIProcess/Cocoa/WebViewImpl.h: Whoops. 2015-10-23 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView hitTest:]): (-[WKView _processDidExit]): (-[WKView _setThumbnailView:]): (-[WKView _thumbnailView]): (-[WKFlippedView isFlipped]): Deleted. (-[WKView dealloc]): Deleted. (-[WKView _setAcceleratedCompositingModeRootLayer:]): Deleted. (-[WKView _acceleratedCompositingModeRootLayer]): Deleted. (-[WKView _updateThumbnailViewLayer]): Deleted. (-[WKView _reparentLayerTreeInThumbnailView]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::acceleratedCompositingRootLayer): (WebKit::WebViewImpl::layerHostingView): (WebKit::WebViewImpl::thumbnailView): * UIProcess/Cocoa/WebViewImpl.mm: (-[WKFlippedView isFlipped]): (WebKit::WebViewImpl::~WebViewImpl): (WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): (WebKit::WebViewImpl::setThumbnailView): (WebKit::WebViewImpl::reparentLayerTreeInThumbnailView): (WebKit::WebViewImpl::updateThumbnailViewLayer): * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::enterAcceleratedCompositingMode): (WebKit::PageClientImpl::exitAcceleratedCompositingMode): (WebKit::PageClientImpl::updateAcceleratedCompositingMode): (WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): (WebKit::PageClientImpl::acceleratedCompositingRootLayer): Move accelerated compositing and thumbnail view code. 2015-10-23 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView _superRemoveTrackingRect:]): (-[WKView addTrackingRect:owner:userData:assumeInside:]): (-[WKView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): (-[WKView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): (-[WKView removeTrackingRect:]): (-[WKView _removeTrackingRects:count:]): (-[WKView view:stringForToolTip:point:userData:]): (-[WKView _toolTipChangedFrom:to:]): (-[WKView _setAcceleratedCompositingModeRootLayer:]): Deleted. (-[WKView _acceleratedCompositingModeRootLayer]): Deleted. (takeWindowSnapshot): Deleted. * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::addTrackingRect): (WebKit::WebViewImpl::addTrackingRectWithTrackingNum): (WebKit::WebViewImpl::addTrackingRectsWithTrackingNums): (WebKit::WebViewImpl::removeTrackingRect): (WebKit::WebViewImpl::removeTrackingRects): (WebKit::WebViewImpl::sendToolTipMouseExited): (WebKit::WebViewImpl::sendToolTipMouseEntered): (WebKit::WebViewImpl::stringForToolTip): (WebKit::WebViewImpl::toolTipChanged): Move tooltip code. 2015-10-23 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView _interpretKeyEvent:completionHandler:]): (-[WKView inputContext]): (-[WKView performKeyEquivalent:]): (-[WKView keyDown:]): (-[WKView _doneWithKeyEvent:eventWasHandled:]): (-[WKView _setPluginComplexTextInputState:]): Deleted. (-[WKView _disableComplexTextInputIfNecessary]): Deleted. (-[WKView _handlePluginComplexTextInputKeyDown:]): Deleted. (-[WKView _tryHandlePluginComplexTextInputKeyDown:]): Deleted. (-[WKView _tryPostProcessPluginComplexTextInputKeyDown:]): Deleted. (-[WKView _pluginFocusOrWindowFocusChanged:pluginComplexTextInputIdentifier:]): Deleted. (-[WKView _setPluginComplexTextInputState:pluginComplexTextInputIdentifier:]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::pluginComplexTextInputState): (WebKit::WebViewImpl::pluginComplexTextInputIdentifier): * UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::setPluginComplexTextInputState): (WebKit::WebViewImpl::setPluginComplexTextInputStateAndIdentifier): (WebKit::WebViewImpl::disableComplexTextInputIfNecessary): (WebKit::WebViewImpl::handlePluginComplexTextInputKeyDown): (WebKit::WebViewImpl::tryHandlePluginComplexTextInputKeyDown): (WebKit::WebViewImpl::pluginFocusOrWindowFocusChanged): (WebKit::WebViewImpl::tryPostProcessPluginComplexTextInputKeyDown): * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::pluginFocusOrWindowFocusChanged): (WebKit::PageClientImpl::setPluginComplexTextInputState): Move a few more methods. 2015-10-23 Eric Carlson [MediaStream] Fix UserMediaPermissionRequestProxy::invalidate https://bugs.webkit.org/show_bug.cgi?id=150503 Reviewed by Dean Jackson. * UIProcess/UserMediaPermissionRequestProxy.cpp: (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy): m_manager is a pointer. (WebKit::UserMediaPermissionRequestProxy::allow): Return early if m_manager is null, clear it after calling the manager. (WebKit::UserMediaPermissionRequestProxy::deny): Ditto. (WebKit::UserMediaPermissionRequestProxy::invalidate): Clear m_manager. * UIProcess/UserMediaPermissionRequestProxy.h: Change m_manager from a reference to a pointer so it can be cleared. 2015-10-23 Claudio Saavedra [GTK] Minor web editor fixes https://bugs.webkit.org/show_bug.cgi?id=150501 Reviewed by Carlos Garcia Campos. * UIProcess/gtk/KeyBindingTranslator.cpp: Remove "MoveParagraphForward/Backward" as these commands do not exist in WebKit (anymore?). * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: (WebKit::WebEditorClient::executePendingEditorCommands): Editor::Command can take a String, no need to convert to a C char. 2015-10-23 Timothy Horton Fix the build by unapplying review comments. * UIProcess/Cocoa/WebViewImpl.h: 2015-10-23 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView renewGState]): (-[WKView writeSelectionToPasteboard:types:]): (-[WKView centerSelectionInVisibleArea:]): (-[WKView scrollWheel:]): (-[WKView swipeWithEvent:]): (-[WKView mouseMoved:]): (-[WKView mouseDown:]): (-[WKView mouseUp:]): (-[WKView mouseDragged:]): (-[WKView pressureChangeWithEvent:]): (-[WKView acceptsFirstMouse:]): (-[WKView shouldDelayWindowOrderingForEvent:]): (-[WKView performKeyEquivalent:]): (-[WKView keyUp:]): (-[WKView keyDown:]): (-[WKView flagsChanged:]): (-[WKView _superQuickLookWithEvent:]): (-[WKView _addFontPanelObserver]): (-[WKView viewWillMoveToWindow:]): (-[WKView viewDidMoveToWindow]): (-[WKView viewDidChangeBackingProperties]): (-[WKView enableAccessibilityIfNecessary]): (-[WKView quickLookWithEvent:]): (-[WKView _colorSpace]): (-[WKView _didRelaunchProcess]): (-[WKView _setTextIndicator:]): (-[WKView _setTextIndicator:withLifetime:]): (-[WKView _clearTextIndicatorWithAnimation:]): (-[WKView _setTextIndicatorAnimationProgress:]): (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView _didPerformImmediateActionHitTest:contentPreventsDefault:userData:]): (-[WKView _internalImmediateActionAnimationControllerForHitTestResult:withType:userData:]): (-[WKView _internalPrepareForImmediateActionAnimation]): (-[WKView _internalCancelImmediateActionAnimation]): (-[WKView _internalCompleteImmediateActionAnimation]): (-[WKView _internalDismissContentRelativeChildWindowsWithAnimation:]): (-[WKView beginDeferringViewInWindowChanges]): (-[WKView endDeferringViewInWindowChanges]): (-[WKView endDeferringViewInWindowChangesSync]): (-[WKView _prepareForMoveToWindow:withCompletionHandler:]): (-[WKView isDeferringViewInWindowChanges]): (-[WKView allowsLinkPreview]): (-[WKView setAllowsLinkPreview:]): (-[WKView _setIgnoresAllEvents:]): (-[WKView _setIgnoresNonWheelMouseEvents:]): (-[WKView _setIgnoresNonWheelEvents:]): (-[WKView _ignoresNonWheelEvents]): (-[WKView _ignoresAllEvents]): (-[WKView _setOverrideDeviceScaleFactor:]): (-[WKView _overrideDeviceScaleFactor]): (-[WKView _setTopContentInset:]): (-[WKView _topContentInset]): (-[WKView _dismissContentRelativeChildWindows]): (-[WKView _dismissContentRelativeChildWindowsWithAnimation:]): (-[WKView _setAutomaticallyAdjustsContentInsets:]): (-[WKView _automaticallyAdjustsContentInsets]): (-[WKWindowVisibilityObserver initWithView:]): Deleted. (-[WKWindowVisibilityObserver startObserving:]): Deleted. (-[WKWindowVisibilityObserver stopObserving:]): Deleted. (-[WKWindowVisibilityObserver _windowDidOrderOnScreen:]): Deleted. (-[WKWindowVisibilityObserver _windowDidOrderOffScreen:]): Deleted. (-[WKView dealloc]): Deleted. (-[WKView _updateWindowAndViewFrames]): Deleted. (-[WKView updateFontPanelIfNeeded]): Deleted. (-[WKView _selectionChanged]): Deleted. (-[WKView addWindowObserversForWindow:]): Deleted. (-[WKView removeWindowObservers]): Deleted. (-[WKView doWindowDidChangeScreen]): Deleted. (-[WKView _windowDidBecomeKey:]): Deleted. (-[WKView _windowDidChangeScreen:]): Deleted. (-[WKView _windowDidChangeLayerHosting:]): Deleted. (-[WKView _windowDidResignKey:]): Deleted. (-[WKView _windowDidMiniaturize:]): Deleted. (-[WKView _windowDidDeminiaturize:]): Deleted. (-[WKView _windowDidMove:]): Deleted. (-[WKView _windowDidResize:]): Deleted. (-[WKView _windowDidOrderOffScreen:]): Deleted. (-[WKView _windowDidOrderOnScreen:]): Deleted. (-[WKView _windowDidChangeBackingProperties:]): Deleted. (-[WKView _windowDidChangeOcclusionState:]): Deleted. (-[WKView _prepareForDictionaryLookup]): Deleted. (-[WKView _dictionaryLookupPopoverWillClose:]): Deleted. (-[WKView _accessibilityRegisterUIProcessTokens]): Deleted. (-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]): Deleted. (-[WKView _intrinsicDeviceScaleFactor]): Deleted. (-[WKView _preferencesDidChange]): Deleted. (-[WKView _targetWindowForMovePreparation]): Deleted. (-[WKView _updateContentInsetsIfAutomatic]): Deleted. (-[WKView observeValueForKeyPath:ofObject:change:context:]): Deleted. (-[WKView _dispatchSetTopContentInset]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: (WebKit::WebViewImpl::automaticallyAdjustsContentInsets): (WebKit::WebViewImpl::topContentInset): (WebKit::WebViewImpl::overrideDeviceScaleFactor): (WebKit::WebViewImpl::isDeferringViewInWindowChanges): (WebKit::WebViewImpl::targetWindowForMovePreparation): (WebKit::WebViewImpl::lastPressureEvent): (WebKit::WebViewImpl::allowsLinkPreview): (WebKit::WebViewImpl::ignoresNonWheelEvents): (WebKit::WebViewImpl::ignoresAllEvents): (WebKit::WebViewImpl::createWeakPtr): * UIProcess/Cocoa/WebViewImpl.mm: (SOFT_LINK_CONSTANT_MAY_FAIL): (-[WKWindowVisibilityObserver initWithView:impl:]): (-[WKWindowVisibilityObserver dealloc]): (-[WKWindowVisibilityObserver startObserving:]): (-[WKWindowVisibilityObserver stopObserving:]): (-[WKWindowVisibilityObserver startObservingFontPanel]): (-[WKWindowVisibilityObserver startObservingLookupDismissal]): (-[WKWindowVisibilityObserver _windowDidOrderOnScreen:]): (-[WKWindowVisibilityObserver _windowDidOrderOffScreen:]): (-[WKWindowVisibilityObserver _windowDidBecomeKey:]): (-[WKWindowVisibilityObserver _windowDidResignKey:]): (-[WKWindowVisibilityObserver _windowDidMiniaturize:]): (-[WKWindowVisibilityObserver _windowDidDeminiaturize:]): (-[WKWindowVisibilityObserver _windowDidMove:]): (-[WKWindowVisibilityObserver _windowDidResize:]): (-[WKWindowVisibilityObserver _windowDidChangeBackingProperties:]): (-[WKWindowVisibilityObserver _windowDidChangeScreen:]): (-[WKWindowVisibilityObserver _windowDidChangeLayerHosting:]): (-[WKWindowVisibilityObserver _windowDidChangeOcclusionState:]): (-[WKWindowVisibilityObserver observeValueForKeyPath:ofObject:change:context:]): (-[WKWindowVisibilityObserver _dictionaryLookupPopoverWillClose:]): (-[WKEditCommandObjC initWithWebEditCommandProxy:]): (-[WKEditCommandObjC command]): (-[WKEditorUndoTargetObjC undoEditing:]): (-[WKEditorUndoTargetObjC redoEditing:]): (WebKit::WebViewImpl::WebViewImpl): (WebKit::WebViewImpl::~WebViewImpl): (WebKit::WebViewImpl::becomeFirstResponder): (WebKit::WebViewImpl::resignFirstResponder): (WebKit::WebViewImpl::renewGState): (WebKit::WebViewImpl::updateWindowAndViewFrames): (WebKit::WebViewImpl::setAutomaticallyAdjustsContentInsets): (WebKit::WebViewImpl::updateContentInsetsIfAutomatic): (WebKit::WebViewImpl::setTopContentInset): (WebKit::WebViewImpl::dispatchSetTopContentInset): (WebKit::WebViewImpl::setOverrideDeviceScaleFactor): (WebKit::WebViewImpl::intrinsicDeviceScaleFactor): (WebKit::WebViewImpl::windowDidOrderOffScreen): (WebKit::WebViewImpl::windowDidOrderOnScreen): (WebKit::WebViewImpl::windowDidBecomeKey): (WebKit::WebViewImpl::windowDidResignKey): (WebKit::WebViewImpl::windowDidMiniaturize): (WebKit::WebViewImpl::windowDidDeminiaturize): (WebKit::WebViewImpl::windowDidMove): (WebKit::WebViewImpl::windowDidResize): (WebKit::WebViewImpl::windowDidChangeBackingProperties): (WebKit::WebViewImpl::windowDidChangeScreen): (WebKit::WebViewImpl::windowDidChangeLayerHosting): (WebKit::WebViewImpl::windowDidChangeOcclusionState): (WebKit::WebViewImpl::viewWillMoveToWindow): (WebKit::WebViewImpl::viewDidMoveToWindow): (WebKit::WebViewImpl::viewDidChangeBackingProperties): (WebKit::WebViewImpl::postFakeMouseMovedEventForFlagsChangedEvent): (WebKit::WebViewImpl::colorSpace): (WebKit::WebViewImpl::beginDeferringViewInWindowChanges): (WebKit::WebViewImpl::endDeferringViewInWindowChanges): (WebKit::WebViewImpl::endDeferringViewInWindowChangesSync): (WebKit::WebViewImpl::prepareForMoveToWindow): (WebKit::WebViewImpl::pressureChangeWithEvent): (WebKit::WebViewImpl::isEditable): (WebKit::WebViewImpl::executeEditCommand): (WebKit::WebViewImpl::registerEditCommand): (WebKit::WebViewImpl::clearAllEditCommands): (WebKit::WebViewImpl::writeSelectionToPasteboard): (WebKit::WebViewImpl::centerSelectionInVisibleArea): (WebKit::WebViewImpl::selectionDidChange): (WebKit::WebViewImpl::startObservingFontPanel): (WebKit::WebViewImpl::updateFontPanelIfNeeded): (WebKit::WebViewImpl::preferencesDidChange): (WebKit::WebViewImpl::setTextIndicator): (WebKit::WebViewImpl::clearTextIndicatorWithAnimation): (WebKit::WebViewImpl::setTextIndicatorAnimationProgress): (WebKit::WebViewImpl::dismissContentRelativeChildWindows): (WebKit::WebViewImpl::quickLookWithEvent): (WebKit::WebViewImpl::prepareForDictionaryLookup): (WebKit::WebViewImpl::setAllowsLinkPreview): (WebKit::WebViewImpl::immediateActionAnimationControllerForHitTestResult): (WebKit::WebViewImpl::prepareForImmediateActionAnimation): (WebKit::WebViewImpl::cancelImmediateActionAnimation): (WebKit::WebViewImpl::completeImmediateActionAnimation): (WebKit::WebViewImpl::setIgnoresNonWheelEvents): (WebKit::WebViewImpl::setIgnoresAllEvents): (WebKit::WebViewImpl::accessibilityRegisterUIProcessTokens): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::activeWindow): (WebKit::PageClientImpl::preferencesDidChange): (WebKit::PageClientImpl::registerEditCommand): (WebKit::PageClientImpl::clearAllEditCommands): (WebKit::PageClientImpl::selectionDidChange): (WebKit::PageClientImpl::didPerformDictionaryLookup): (-[WKEditCommandObjC initWithWebEditCommandProxy:]): Deleted. (-[WKEditCommandObjC command]): Deleted. (-[WKEditorUndoTargetObjC undoEditing:]): Deleted. (-[WKEditorUndoTargetObjC redoEditing:]): Deleted. (WebKit::PageClientImpl::PageClientImpl): Deleted. Move more things to WebViewImpl. This also introduces an unfortunate pattern that is required for things which clients override on WKView, where we have a flow like this: - somebody (PageClient, etc.) calls WebViewImpl::x - WebViewImpl::x does nothing except call [WKView _x] - [WKView _x] calls WebViewImpl::xFromViewOnly, which does the real work As long as no clients call the -FromViewOnly variant, this will mean that all callers are bottlenecked through the overridable WKView method. How this works with WKWebView, I am not sure yet. * UIProcess/mac/WKImmediateActionController.h: * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController initWithPage:view:viewImpl:recognizer:]): (-[WKImmediateActionController willDestroyView:]): (-[WKImmediateActionController immediateActionRecognizerWillPrepare:]): (-[WKImmediateActionController immediateActionRecognizerDidCancelAnimation:]): (-[WKImmediateActionController immediateActionRecognizerDidCompleteAnimation:]): (-[WKImmediateActionController menuItem:viewAtScreenPoint:]): (-[WKImmediateActionController menuItem:previewItemAtPoint:]): (-[WKImmediateActionController menuItem:itemFrameForPoint:]): (-[WKImmediateActionController menuItem:maxSizeForPoint:]): (-[WKImmediateActionController _animationControllerForDataDetectedText]): (-[WKImmediateActionController _animationControllerForDataDetectedLink]): (-[WKImmediateActionController _animationControllerForText]): (-[WKImmediateActionController initWithPage:view:recognizer:]): Deleted. Keep a generic NSView, use the WebViewImpl for WK*View related things. 2015-10-22 Joonghun Park [GTK] Fix build break since r191471 https://bugs.webkit.org/show_bug.cgi?id=150487 Reviewed by Žan Doberšek. * UIProcess/API/gtk/WebKitContextMenuClient.cpp: * UIProcess/gtk/WebContextMenuProxyGtk.cpp: (WebKit::WebContextMenuProxyGtk::populate): 2015-10-22 Gyuyoung Kim [EFL] Build break since r191472 and r191473 https://bugs.webkit.org/show_bug.cgi?id=150485 Unreviewed build fix. * CMakeLists.txt: Remove icu include path and move page include path. 2015-10-22 Sam Weinig Navigations on the same host (but with different schemes and ports) should not trigger universal links https://bugs.webkit.org/show_bug.cgi?id=150481 Reviewed by Dan Bernstein. Update the policy for following universal links to only take host into consideration. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::createNewPage): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForNewWindowAction): (WebKit::WebPageProxy::createNewPage): (WebKit::WebPageProxy::showPage): 2015-10-22 Anders Carlsson Simplify menu creation https://bugs.webkit.org/show_bug.cgi?id=150476 Reviewed by Tim Horton. Instead of creating vectors of NSMenuItem objects, just simply build the menu recursively. * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::createContextMenuFromItems): (WebKit::WebContextMenuProxyMac::createContextMenuItem): (WebKit::WebContextMenuProxyMac::showContextMenu): (WebKit::populateNSMenu): Deleted. (WebKit::nsMenuItem): Deleted. (WebKit::nsMenuItemVector): Deleted. 2015-10-22 Carlos Garcia Campos ERROR: Unhandled web process message 'StorageAreaMap:DispatchStorageEvent' https://bugs.webkit.org/show_bug.cgi?id=150315 Reviewed by Andreas Kling. It was introduced in r184930, that keeps the session storage area maps alive in the UI process when they are destroyed by the web process. The problem is that we also keep the listeners, so that events are also dispatched to the listeners of destroyed areas, and the message handlers were removed in the web process. * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::createTransientLocalStorageMap): Add a listener for the new storage map ID when the map is reused. (WebKit::StorageManager::destroyStorageMap): Always remove listeners of destroyed maps. 2015-10-22 Tim Horton Add a SPI variant of loadData that accepts user data to WKWebView https://bugs.webkit.org/show_bug.cgi?id=150475 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: 2015-10-22 Alex Christensen Progress towards CMake on Mac https://bugs.webkit.org/show_bug.cgi?id=150466 Reviewed by Chris Dumez. * CMakeLists.txt: * PlatformMac.cmake: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: 2015-10-22 Anders Carlsson NativeContextMenuItem isn't needed anymore, remove it https://bugs.webkit.org/show_bug.cgi?id=150473 Reviewed by Tim Horton. * PlatformEfl.cmake: * PlatformGTK.cmake: * Shared/NativeContextMenuItem.h: Removed. (WebKit::NativeContextMenuItem::~NativeContextMenuItem): Deleted. (WebKit::NativeContextMenuItem::nsMenuItem): Deleted. * Shared/WebContextMenuItem.cpp: (WebKit::WebContextMenuItem::WebContextMenuItem): Deleted. * Shared/WebContextMenuItem.h: (WebKit::WebContextMenuItem::create): Deleted. (WebKit::WebContextMenuItem::nativeContextMenuItem): Deleted. * Shared/efl/NativeContextMenuItemEfl.cpp: Removed. (WebKit::NativeContextMenuItem::NativeContextMenuItem): Deleted. * Shared/gtk/NativeContextMenuItemGtk.cpp: Removed. (WebKit::NativeContextMenuItem::NativeContextMenuItem): Deleted. * Shared/mac/NativeContextMenuItem.mm: Removed. (WebKit::NativeContextMenuItem::NativeContextMenuItem): Deleted. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::nsMenuItem): Deleted. * WebKit2.xcodeproj/project.pbxproj: 2015-10-22 Anders Carlsson CTTE WebContextMenuItemData https://bugs.webkit.org/show_bug.cgi?id=150471 Reviewed by Tim Horton. * Shared/API/c/WKContextMenuItem.cpp: (WKContextMenuItemGetTag): (WKContextMenuItemGetType): (WKContextMenuItemCopyTitle): (WKContextMenuItemGetEnabled): (WKContextMenuItemGetChecked): * Shared/WebContextMenuItem.cpp: (WebKit::WebContextMenuItem::create): * Shared/WebContextMenuItem.h: (WebKit::WebContextMenuItem::data): * UIProcess/API/C/WKPage.cpp: (WKPageSelectContextMenuItem): * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::nsMenuItem): * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageClickMenuItem): * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp: (WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems): 2015-10-22 Anders Carlsson Handle nil menu items. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::nsMenuItemVector): 2015-10-22 Anders Carlsson Wait to convert the share menu item to a real share menu until after calling out to the client https://bugs.webkit.org/show_bug.cgi?id=150465 Reviewed by Tim Horton. This will let us simplify more code in upcoming patches. * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::nsMenuItem): (WebKit::nsMenuItemVector): (WebKit::WebContextMenuProxyMac::showContextMenu): 2015-10-22 Myles C. Maxfield [Cocoa] Migrate WKSetPatternPhaseInUserSpace() and WKGetUserToBaseCTM() from WKSI https://bugs.webkit.org/show_bug.cgi?id=150460 Reviewed by Tim Horton. * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): Deleted. 2015-10-22 Alex Christensen Initial NSURLSession WebResourceLoader implementation https://bugs.webkit.org/show_bug.cgi?id=150355 Reviewed by Antti Koivisto. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::~NetworkResourceLoader): (WebKit::NetworkResourceLoader::startNetworkLoad): (WebKit::NetworkResourceLoader::setDefersLoading): (WebKit::NetworkResourceLoader::cleanup): (WebKit::NetworkResourceLoader::didConvertHandleToDownload): (WebKit::NetworkResourceLoader::abort): (WebKit::NetworkResourceLoader::willPerformHTTPRedirection): (WebKit::NetworkResourceLoader::didReceiveChallenge): (WebKit::NetworkResourceLoader::didReceiveResponse): (WebKit::NetworkResourceLoader::didReceiveData): (WebKit::NetworkResourceLoader::didCompleteWithError): (WebKit::NetworkResourceLoader::didReceiveResponseAsync): (WebKit::NetworkResourceLoader::willSendRequestAsync): (WebKit::NetworkResourceLoader::continueWillSendRequest): (WebKit::NetworkResourceLoader::continueDidReceiveResponse): (WebKit::NetworkResourceLoader::didSendData): (WebKit::NetworkResourceLoader::receivedCancellation): (WebKit::NetworkResourceLoader::startBufferingTimerIfNeeded): (WebKit::NetworkResourceLoader::bufferingTimerFired): (WebKit::NetworkResourceLoader::validateCacheEntry): (WebKit::NetworkResourceLoader::sendAbortingOnFailure): (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): (WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace): (WebKit::NetworkResourceLoader::supportsDataArray): * NetworkProcess/NetworkResourceLoader.h: (WebKit::NetworkResourceLoader::create): (WebKit::NetworkResourceLoader::currentRequest): (WebKit::NetworkResourceLoader::handle): * NetworkProcess/NetworkSession.h: Added. (WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient): (WebKit::NetworkingDataTask::client): (WebKit::NetworkingDataTask::clearClient): (WebKit::NetworkSession::~NetworkSession): * NetworkProcess/cocoa/NetworkSessionCocoa.mm: Added. (toNSURLSessionResponseDisposition): (toNSURLSessionAuthChallengeDisposition): (-[NetworkSessionDelegate initWithNetworkSession:]): (-[NetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): (-[NetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): (-[NetworkSessionDelegate URLSession:task:didCompleteWithError:]): (-[NetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (-[NetworkSessionDelegate URLSession:dataTask:didReceiveData:]): (WebKit::NetworkSession::create): (WebKit::NetworkSession::singleton): (WebKit::configurationForType): (WebKit::NetworkSession::NetworkSession): (WebKit::NetworkSession::createDataTaskWithRequest): (WebKit::NetworkSession::dataTaskForIdentifier): (WebKit::NetworkingDataTask::NetworkingDataTask): (WebKit::NetworkingDataTask::~NetworkingDataTask): (WebKit::NetworkingDataTask::suspend): (WebKit::NetworkingDataTask::resume): (WebKit::NetworkingDataTask::taskIdentifier): * NetworkProcess/mac/NetworkResourceLoaderMac.mm: (WebKit::NetworkResourceLoader::willCacheResponseAsync): * WebKit2.xcodeproj/project.pbxproj: * config.h: 2015-10-22 Philippe Normand Unreviewed, GTK build fix for disabled redirected XComposite window support. * UIProcess/API/gtk/WebKitWebViewBase.cpp: Add USE(REDIRECTED_XCOMPOSITE_WINDOW) guards. * UIProcess/DrawingAreaProxyImpl.h: Mark virtual methods as override to avoid compilation warnings. 2015-10-22 Wenson Hsieh Implement touch-action: manipulation; for iOS https://bugs.webkit.org/show_bug.cgi?id=149854 Reviewed by Benjamin Poulain. Implements the manipulation value for the CSS property touch-action. Performs hit-testing upon receiving a potential tap to determine whether to disable double-tap gesture recognition over the duration of the tap. If so, sends a message from the web process to the UI process indicating that double-tapping should be disabled, allowing single taps to avoid the delay. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::potentialTapAtPosition): 2015-10-22 Ryosuke Niwa REGRESSION (r181972): Scroll position changes to top of youtube page when switching tabs https://bugs.webkit.org/show_bug.cgi?id=150428 Reviewed by Antti Koivisto. Call updateFocusAppearance with RevealMode::DoNotReveal to avoid revealing the focused element. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::restoreSelectionInFocusedEditableElement): 2015-10-22 Carlos Garcia Campos Unreviewed. Fix a crash in GTk+ after r191402. Since r191402 WebContextMenuProxy is no longer refcounted, and std::unique_ptr is used instead. This means that when we show the context menu for the second time in a web view, a new WebContextMenuProxy is created and the previous one is destroyed. We were setting the active context menu of the WebView in the constructor of WebContextMenuProxy, and unsetting it in the destructor. Now the constructor of the new WebContextMenuProxy happens before the destructor of the current one that unsets the WebView active context menu. This patch simply makes the web view unset its active context menu when it's unmapped and a new one hasn't been set. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (activeContextMenuUnmapped): (webkitWebViewBaseSetActiveContextMenuProxy): * UIProcess/gtk/WebContextMenuProxyGtk.cpp: (WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): 2015-10-22 Hunseop Jeong [GTK] Try to fix the build after r191402. https://bugs.webkit.org/show_bug.cgi?id=150435 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::createPopupMenuProxy): (WebKit::PageClientImpl::createContextMenuProxy): (WebKit::PageClientImpl::createColorPicker): * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/gtk/WebContextMenuProxyGtk.cpp: (WebKit::WebContextMenuProxyGtk::populate): (WebKit::WebContextMenuProxyGtk::show): (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): (WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): (WebKit::WebContextMenuProxyGtk::menuPositionFunction): (WebKit::WebContextMenuProxyGtk::showContextMenu): Deleted. (WebKit::WebContextMenuProxyGtk::hideContextMenu): Deleted. (WebKit::WebContextMenuProxyGtk::cancelTracking): Deleted. * UIProcess/gtk/WebContextMenuProxyGtk.h: (WebKit::WebContextMenuProxyGtk::gtkMenu): (WebKit::WebContextMenuProxyGtk::create): Deleted. 2015-10-21 Gyuyoung Kim Unreviewed EFL build fix. Remove customizeMenu implementation. * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: (WebKit::WebContextMenuClient::customizeMenu): Deleted. 2015-10-21 Alex Christensen Speculative EFL build fix. * WebProcess/WebCoreSupport/WebContextMenuClient.h: Remove another customizeMenu call. 2015-10-21 Gyuyoung Kim [EFL][GTK][WK2] Fix build break since r191402, r191401 https://bugs.webkit.org/show_bug.cgi?id=150432 Unreviewed EFL and GTK build fix. * CMakeLists.txt: * UIProcess/CoordinatedGraphics/WebView.cpp: (WebKit::WebView::createContextMenuProxy): * UIProcess/CoordinatedGraphics/WebView.h: * UIProcess/efl/WebContextMenuProxyEfl.cpp: (WebKit::WebContextMenuProxyEfl::show): * UIProcess/efl/WebContextMenuProxyEfl.h: (WebKit::WebContextMenuProxyEfl::create): Deleted. * UIProcess/efl/WebViewEfl.cpp: (WebKit::WebViewEfl::createContextMenuProxy): * UIProcess/efl/WebViewEfl.h: * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: (WebKit::WebContextMenuClient::customizeMenu): * WebProcess/WebCoreSupport/WebContextMenuClient.h: 2015-10-21 Anders Carlsson Get rid of WebContextMenuClient::customizeMenu, it's no longer used https://bugs.webkit.org/show_bug.cgi?id=150427 Reviewed by Tim Horton. * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: (WebKit::WebContextMenuClient::customizeMenu): Deleted. * WebProcess/WebCoreSupport/WebContextMenuClient.h: 2015-10-21 Tim Horton API-ify the FindMatches client https://bugs.webkit.org/show_bug.cgi?id=150422 Reviewed by Anders Carlsson. * UIProcess/API/APIFindMatchesClient.h: Renamed from Source/WebKit2/UIProcess/WebFindClient.h. (API::FindMatchesClient::~FindMatchesClient): (API::FindMatchesClient::didFindStringMatches): (API::FindMatchesClient::didGetImageForMatchResult): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageFindMatchesClient): * UIProcess/WebFindClient.cpp: Removed. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::setFindMatchesClient): (WebKit::WebPageProxy::close): (WebKit::WebPageProxy::didGetImageForFindMatch): (WebKit::WebPageProxy::didFindStringMatches): (WebKit::WebPageProxy::initializeFindMatchesClient): Deleted. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::findMatchesClient): * WebKit2.xcodeproj/project.pbxproj: 2015-10-21 Enrica Casucci WebProcess crashes when accessibility bundle is not found. https://bugs.webkit.org/show_bug.cgi?id=150414 Reviewed by Dan Bernstein. The uninitialized pointer to NSError causes the print function to crash. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::registerWithAccessibility): 2015-10-21 Anders Carlsson Move services menu handling out into a separate function https://bugs.webkit.org/show_bug.cgi?id=150420 Reviewed by Tim Horton. * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::showServicesMenu): (WebKit::WebContextMenuProxyMac::show): (WebKit::WebContextMenuProxyMac::showContextMenu): (WebKit::WebContextMenuProxyMac::populate): Deleted. 2015-10-21 Wenson Hsieh Single tapping clickable elements in unscalable pages should show a tap highlight https://bugs.webkit.org/show_bug.cgi?id=150382 Reviewed by Simon Fraser. When the double tap gesture recognizer is disabled ahead of time (as in the case of unscalable pages) the tap is committed before the geometries come in. To fix this, we introduce a flag that allows the single tap to be committed before the tap highlight arrives. This allows the tap highlight to be immediately animated when receiving the tap highlight geometries only in the case where double tapping is disabled when recognizing the single tap. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView cleanupInteraction]): (-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:]): (-[WKContentView _singleTapRecognized:]): (-[WKContentView _singleTapCommited:]): 2015-10-21 Anders Carlsson Get rid of useBinaryEncoding from WKPageGetContentsAsMHTMLData https://bugs.webkit.org/show_bug.cgi?id=150417 Reviewed by Tim Horton. The useBinaryEncoding parameter is always false, so just get rid of it. * UIProcess/API/C/WKPage.cpp: (WKPageGetContentsAsMHTMLData): * UIProcess/API/C/WKPage.h: * UIProcess/API/efl/ewk_view.cpp: (ewk_view_page_contents_get): * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_save): (webkit_web_view_save_to_file): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::getContentsAsMHTMLData): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::getContentsAsMHTMLData): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-10-21 Anders Carlsson WebContextMenuProxyMac::setupServicesMenu doesn't need to take a context parameter https://bugs.webkit.org/show_bug.cgi?id=150418 Reviewed by Tim Horton. * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::setupServicesMenu): (WebKit::WebContextMenuProxyMac::populate): 2015-10-21 Anders Carlsson WebContextMenuProxy doesn't have to be ref-counted https://bugs.webkit.org/show_bug.cgi?id=150415 Reviewed by Tim Horton. Change WebContextMenuProxy to not inherit from RefCounted. Instead of using RefPtr, use std::unique_ptr. Get rid of cancelTracking and hideContextMenu and dismiss the menu whenever the menu proxy is destroyed. Also, rename showContextMenu to show. * UIProcess/PageClient.h: * UIProcess/WebContextMenuProxy.h: (WebKit::WebContextMenuProxy::cancelTracking): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::close): (WebKit::WebPageProxy::internalShowContextMenu): * UIProcess/WebPageProxy.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::createContextMenuProxy): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::createContextMenuProxy): * UIProcess/mac/WebContextMenuProxyMac.h: (WebKit::WebContextMenuProxyMac::create): Deleted. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::~WebContextMenuProxyMac): (WebKit::WebContextMenuProxyMac::show): (WebKit::WebContextMenuProxyMac::showContextMenu): Deleted. (WebKit::WebContextMenuProxyMac::hideContextMenu): Deleted. (WebKit::WebContextMenuProxyMac::cancelTracking): Deleted. 2015-10-21 Anders Carlsson Stop using a popup menu button cell(!) for context menus https://bugs.webkit.org/show_bug.cgi?id=150413 Reviewed by Tim Horton. Just use a regular NSMenu. Also, have the service menu code path store the service menu in the same member variable. * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::setupServicesMenu): (WebKit::WebContextMenuProxyMac::clearServicesMenu): (WebKit::WebContextMenuProxyMac::populate): (WebKit::WebContextMenuProxyMac::showContextMenu): (WebKit::WebContextMenuProxyMac::hideContextMenu): (WebKit::WebContextMenuProxyMac::cancelTracking): (WebKit::WebContextMenuProxyMac::~WebContextMenuProxyMac): Deleted. 2015-10-21 Chris Dumez Add assertions to NetworkCache::Entry constructor to make sure a key's type is "resource" https://bugs.webkit.org/show_bug.cgi?id=150369 Reviewed by Antti Koivisto. Add assertions to NetworkCache::Entry constructor to make sure a key's type is "resource" now that the NetworkCache storage supports other types of entries. * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): 2015-10-21 Carlos Garcia Campos NetworkProcess: DNS prefetch happens in the Web Process https://bugs.webkit.org/show_bug.cgi?id=147824 Reviewed by Chris Dumez. DNS prefetch requests started in the WebProcess should be sent to the network process when it's enabled. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::prefetchDNS): Use NetworkProcess::prefetchDNS(). * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: Add PrefetchDNS message. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::prefetchDNS): Do the actual DNS prefetch. * NetworkProcess/NetworkProcess.h: * WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp: (webkitWebExtensionDidReceiveMessage): Use WebProcess::prefetchDNS(). * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::prefetchDNS): Use WebProcess::prefetchDNS(). * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::sendTapHighlightForNodeIfNecessary): Use FrameLoaderClient to do the DNS prefetch. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): Initialize the DNS prefetched hosts cleanup hysteresis activity. Clear the cache of DNS prefetched when hysteresis activity stopped. (WebKit::WebProcess::prefetchDNS): Send the request to the network process if it's enabled, otherwise do the actual DNS prefetch. * WebProcess/WebProcess.h: 2015-10-20 Chris Dumez [WK2] Generalize NetworkCacheStorage API so it can store different types of metadata https://bugs.webkit.org/show_bug.cgi?id=150221 Reviewed by Darin Adler and Antti Koivisto. Generalize NetworkCacheStorage API so it can store different types of metadata alongside the network resources. This is a pre-requirement to making our NetworkCache smarter by storing information about the resources. To keep the code simple, the entry type is now part of the entry key and we store records of a specific type in a 'type' subfolder. The cache structure looks like so: - WebKitCache/Version 5/[Partition]/[Type]/[Hash] - WebKitCache/Version 5/[Partition]/[Type]/[Hash]-blob (Optional) Existing cache entries now that the 'resource' type as these are network resources. * NetworkProcess/cache/NetworkCache.cpp: * NetworkProcess/cache/NetworkCacheKey.cpp: * NetworkProcess/cache/NetworkCacheKey.h: * NetworkProcess/cache/NetworkCacheStatistics.cpp: * NetworkProcess/cache/NetworkCacheStorage.cpp: * NetworkProcess/cache/NetworkCacheStorage.h: 2015-10-20 Hunseop Jeong [EFL] ContextMenu doesn't work correctly on MiniBrowser after r191194. https://bugs.webkit.org/show_bug.cgi?id=150311 Reviewed by Gyuyoung Kim. Restore the test_ewk2_context_menu API test to check the context menu whether it works correctly. * PlatformEfl.cmake: 2015-10-13 Conrad Shultz _WKThumbnailView should support a snapshot-only mode https://bugs.webkit.org/show_bug.cgi?id=150106 Reviewed by Tim Horton. Add a new property to _WKThumbnailView, exclusivelyUsesSnapshot, which causes _WKThumbnailView to bypass both layer tree reparenting and event suppression on the associated WKView. Add a new method, -requestSnapshot, which clients can use to force _WKThumbnailView to refresh on demand. * UIProcess/API/Cocoa/_WKThumbnailView.h: * UIProcess/API/Cocoa/_WKThumbnailView.mm: (-[_WKThumbnailView requestSnapshot]): Extracted from -_requestSnapshotIfNeeded:. (-[_WKThumbnailView _viewWasUnparented]): (-[_WKThumbnailView _viewWasParented]): (-[_WKThumbnailView _requestSnapshotIfNeeded]): 2015-10-20 Alexey Proskuryakov Build fix. * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: * UIProcess/ios/forms/WKFileUploadPanel.mm: 2015-10-20 Joseph Pecoraro ASSERT when right clicking on SVG Image generating Share menu - can break Web Inspector https://bugs.webkit.org/show_bug.cgi?id=150374 Reviewed by Brian Burg. When there is no absolute URL or downloadable media URL no system share menu is created, but we were still appending the null context menu to the list of context menu items. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::shareMenuItem): Bail early if the context menu is null. (WebKit::WebContextMenuProxyMac::showContextMenu): Only append the share context menu item if it is non-null. This matches ContextMenuController.cpp in WebCore. 2015-10-20 Commit Queue Unreviewed, rolling out r191306. https://bugs.webkit.org/show_bug.cgi?id=150371 "May have caused a significant warm PLT regression" (Requested by cdumez_ on #webkit). Reverted changeset: "[WK2] Generalize NetworkCacheStorage API so it can store different types of metadata" https://bugs.webkit.org/show_bug.cgi?id=150221 http://trac.webkit.org/changeset/191306 2015-10-20 Tim Horton Try to fix the build by disabling MAC_GESTURE_EVENTS on 10.9 and 10.10 * Configurations/FeatureDefines.xcconfig: 2015-10-20 Commit Queue Unreviewed, rolling out r191333. https://bugs.webkit.org/show_bug.cgi?id=150362 Caused assertions on regression tests (Requested by ap on #webkit). Reverted changeset: "ERROR: Unhandled web process message 'StorageAreaMap:DispatchStorageEvent'" https://bugs.webkit.org/show_bug.cgi?id=150315 http://trac.webkit.org/changeset/191333 2015-10-20 Carlos Garcia Campos [UNIX] ASSERTION FAILED: m_shouldWaitForSyncReplies in Connection::connectionDidClose() https://bugs.webkit.org/show_bug.cgi?id=150361 Reviewed by Martin Robinson. It doesn't always happen because it depends on how sockets are closed, and the state of the threads. The problem is that we are not handling the case when the read fails because we closed the connection. In that case we log the error and call Connection::connectionDidClose(). But it was connectionDidClose() the one closing the socket. So, in this particular case it's not an error but a normal termination, and we shouldn't try to close the connection again. Something similar can happen while sending a message, and we get a broken pipe error, but in that case we are only printing the error, so it's harmless. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::readyReadHandler): Only print error and call connectionDidClose() if we are still connected when read fails. (IPC::Connection::sendOutgoingMessage): Only print error if we are still connected when send fails. 2015-10-20 Carlos Garcia Campos [GTK] Graphics corruption when entering/leaving AC mode quickly https://bugs.webkit.org/show_bug.cgi?id=150323 Reviewed by Mario Sanchez Prada. The UI process is notified when entering accelerated compositing mode after the layers have been flushed and rendered to avoid flickering. However, this is producing flickering in the GTK+ port, because we use an offscreen redirected window that is resized to a minimium size to save memory when not in AC mode. The web process always uses the current size of the redirected window, so when entering AC mode, contents are rendered into the 1x1 window, then the UI process is notified, the redirected window is resized to its actual size, and we force a resize to ask the web process to render again, now at the correct size. Rendering at 1x1 and then resizing the window is what produces the flickering when entering AC mode, but it's also inefficient, since we need to render again after the redirected window is resized. So, this patch adds a WillEnterAcceleratedCompositing message that is sent to the UI process when the layer tree host is created but before the contents have been composited and rendered. This is implemented by the GTK+ port to prepare for entering AC mode, by resizing the redirected window. When we actually enter AC mode, the contents have already been rendered in the web process at the correct size, so we can just use the redirected window surface instead of the drawing area one, and paint in the web view without any flickering. We no longer need the forceResize either. When leaving accelerated compositing mode, we now clear the redirected window resources after a short delay. This ensures that we have already rendered the update sent in the ExitAcceleratedCompositingMode message, but also that entering/leaving AC mode quickly doesn't produce any redirected window resize. * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseClearRedirectedWindowSoon): (webkitWebViewBaseWillEnterAcceleratedCompositingMode): (webkitWebViewBaseEnterAcceleratedCompositingMode): (webkitWebViewBaseExitAcceleratedCompositingMode): * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: * UIProcess/CoordinatedGraphics/WebView.h: * UIProcess/DrawingAreaProxy.h: (WebKit::DrawingAreaProxy::willEnterAcceleratedCompositingMode): * UIProcess/DrawingAreaProxy.messages.in: * UIProcess/DrawingAreaProxyImpl.cpp: (WebKit::DrawingAreaProxyImpl::willEnterAcceleratedCompositingMode): * UIProcess/DrawingAreaProxyImpl.h: (WebKit::DrawingAreaProxyImpl::forceResize): Deleted. * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::willEnterAcceleratedCompositingMode): * UIProcess/WebPageProxy.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): * WebProcess/WebPage/DrawingAreaImpl.cpp: (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode): 2015-10-20 Sergio Villar Senin [GTK] Fix build for ENABLE_PLUGIN_PROCESS_GTK2=OFF https://bugs.webkit.org/show_bug.cgi?id=150086 Reviewed by Darin Adler. * UIProcess/cairo/BackingStoreCairo.cpp: (WebKit::BackingStore::createBackend): 2015-10-20 Yoav Weiss Rename the PICTURE_SIZES flag to CURRENTSRC https://bugs.webkit.org/show_bug.cgi?id=150275 Reviewed by Dean Jackson. * Configurations/FeatureDefines.xcconfig: 2015-10-19 Carlos Garcia Campos ERROR: Unhandled web process message 'StorageAreaMap:DispatchStorageEvent' https://bugs.webkit.org/show_bug.cgi?id=150315 Reviewed by Andreas Kling. It was introduced in r184930, that keeps the session storage area maps alive in the UI process when they are destroyed by the web process. The problem is that we also keep the listeners, so that events are also dispatched to the listeners of destroyed areas, and the message handlers were removed in the web process. * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::createTransientLocalStorageMap): Add a listener for the new storage map ID when the map is reused. (WebKit::StorageManager::destroyStorageMap): Always remove listeners of destroyed maps. 2015-10-19 Tim Horton Remove unused support for long presses from WebKit https://bugs.webkit.org/show_bug.cgi?id=150345 Reviewed by Beth Dakin. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/APIUIClient.h: (API::UIClient::didBeginTrackingPotentialLongMousePress): Deleted. (API::UIClient::didRecognizeLongMousePress): Deleted. (API::UIClient::didCancelTrackingPotentialLongMousePress): Deleted. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): Deleted. * UIProcess/API/C/WKPageUIClient.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesGetLongMousePressEnabled): (WKPreferencesSetLongMousePressEnabled): Deleted. * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didBeginTrackingPotentialLongMousePress): Deleted. (WebKit::WebPageProxy::didRecognizeLongMousePress): Deleted. (WebKit::WebPageProxy::didCancelTrackingPotentialLongMousePress): Deleted. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: (API::InjectedBundle::PageUIClient::didBeginTrackingPotentialLongMousePress): Deleted. (API::InjectedBundle::PageUIClient::didRecognizeLongMousePress): Deleted. (API::InjectedBundle::PageUIClient::didCancelTrackingPotentialLongMousePress): Deleted. * WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h: * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: (WebKit::InjectedBundlePageUIClient::didBeginTrackingPotentialLongMousePress): Deleted. (WebKit::InjectedBundlePageUIClient::didRecognizeLongMousePress): Deleted. (WebKit::InjectedBundlePageUIClient::didCancelTrackingPotentialLongMousePress): Deleted. * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::didBeginTrackingPotentialLongMousePress): Deleted. (WebKit::WebChromeClient::didRecognizeLongMousePress): Deleted. (WebKit::WebChromeClient::didCancelTrackingPotentialLongMousePress): Deleted. * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Deleted. 2015-10-19 Chris Dumez Make sure development Safari does not delete the stable Safari cache storage. https://bugs.webkit.org/show_bug.cgi?id=150343 Reviewed by Antti Koivisto. Make sure development Safari does not delete the stable Safari disk cache storage. Development Safari now uses Version 5, while the last stable Safari uses Version 4. Since the 2 versions can co-exist, it is best not to drop the old cache version (4) at this point. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::deleteOldVersions): 2015-10-19 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Darin Adler. * UIProcess/API/mac/WKView.mm: * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: Added. * UIProcess/Cocoa/WebViewImpl.mm: Added. (WebKit::WebViewImpl::WebViewImpl): (WebKit::WebViewImpl::~WebViewImpl): (WebKit::WebViewImpl::setDrawsBackground): (WebKit::WebViewImpl::drawsBackground): (WebKit::WebViewImpl::setDrawsTransparentBackground): (WebKit::WebViewImpl::drawsTransparentBackground): (WebKit::WebViewImpl::acceptsFirstResponder): (WebKit::WebViewImpl::becomeFirstResponder): (WebKit::WebViewImpl::resignFirstResponder): (WebKit::WebViewImpl::isFocused): (WebKit::WebViewImpl::viewWillStartLiveResize): (WebKit::WebViewImpl::viewDidEndLiveResize): (WebKit::WebViewImpl::setFrameSize): (WebKit::WebViewImpl::disableFrameSizeUpdates): (WebKit::WebViewImpl::enableFrameSizeUpdates): (WebKit::WebViewImpl::frameSizeUpdatesDisabled): (WebKit::WebViewImpl::setFrameAndScrollBy): (WebKit::WebViewImpl::setFixedLayoutSize): (WebKit::WebViewImpl::fixedLayoutSize): (WebKit::WebViewImpl::setDrawingAreaSize): (WebKit::WebViewImpl::setContentPreparationRect): (WebKit::WebViewImpl::updateViewExposedRect): (WebKit::WebViewImpl::setClipsToVisibleRect): (WebKit::WebViewImpl::setIntrinsicContentSize): (WebKit::WebViewImpl::intrinsicContentSize): (WebKit::WebViewImpl::setViewScale): (WebKit::WebViewImpl::viewScale): (WebKit::WebViewImpl::layoutMode): (WebKit::WebViewImpl::setLayoutMode): (WebKit::WebViewImpl::supportsArbitraryLayoutModes): (WebKit::WebViewImpl::updateSupportsArbitraryLayoutModes): (WebKit::WebViewImpl::updateSecureInputState): (WebKit::WebViewImpl::resetSecureInputState): (WebKit::WebViewImpl::notifyInputContextAboutDiscardedComposition): (WebKit::WebViewImpl::hasFullScreenWindowController): (WebKit::WebViewImpl::fullScreenWindowController): (WebKit::WebViewImpl::closeFullScreenWindowController): (WebKit::WebViewImpl::fullScreenPlaceholderView): (WebKit::WebViewImpl::createFullScreenWindow): Move the actual implementation of a number of WKView methods into a C++ class, WebViewImpl, which WKView calls directly into. Eventually, we will move all of the logic of WKView into WebViewImpl, and then duplicate the necessary forwarding in WKWebView and remove WKWebView's inner WKView. * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::isViewFocused): (WebKit::PageClientImpl::didCommitLoadForMainFrame): (WebKit::PageClientImpl::updateSecureInputState): (WebKit::PageClientImpl::resetSecureInputState): (WebKit::PageClientImpl::notifyInputContextAboutDiscardedComposition): (WebKit::PageClientImpl::beganEnterFullScreen): (WebKit::PageClientImpl::beganExitFullScreen): For now, forward PageClient requests that can be answered by WebViewImpl to WebViewImpl. Eventually, we'll probably fold PageClientImpl and WebViewImpl together into one class, and these things will collapse down. * UIProcess/mac/WKFullScreenWindowController.h: * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController initWithWindow:webView:page:]): (-[WKFullScreenWindowController enterFullScreen:]): (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): (-[WKFullScreenWindowController exitFullScreen]): (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): (-[WKFullScreenWindowController _manager]): (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): (-[WKFullScreenWindowController initWithWindow:webView:]): Deleted. (-[WKFullScreenWindowController _page]): Deleted. * UIProcess/mac/WKViewLayoutStrategy.h: * UIProcess/mac/WKViewLayoutStrategy.mm: (+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]): (-[WKViewLayoutStrategy initWithPage:view:viewImpl:mode:]): (-[WKViewLayoutStrategy invalidate]): (-[WKViewLayoutStrategy didChangeFrameSize]): (-[WKViewViewSizeLayoutStrategy initWithPage:view:viewImpl:mode:]): (-[WKViewFixedSizeLayoutStrategy initWithPage:view:viewImpl:mode:]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:viewImpl:mode:]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy updateLayout]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy didChangeFrameSize]): (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:viewImpl:mode:]): (+[WKViewLayoutStrategy layoutStrategyWithPage:view:mode:]): Deleted. (-[WKViewLayoutStrategy initWithPage:view:mode:]): Deleted. (-[WKViewLayoutStrategy willDestroyView:]): Deleted. (-[WKViewViewSizeLayoutStrategy initWithPage:view:mode:]): Deleted. (-[WKViewFixedSizeLayoutStrategy initWithPage:view:mode:]): Deleted. (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:mode:]): Deleted. (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:mode:]): Deleted. Make WKViewLayoutStrategy and WKFullScreenWindowController operate in terms of generic NSViews instead of WKView, so that eventually they will be able to work for either WKView or WKWebView, and so that they can sit underneath WebViewImpl. * WebKit2.xcodeproj/project.pbxproj: 2015-10-19 Commit Queue Unreviewed, rolling out r191307. https://bugs.webkit.org/show_bug.cgi?id=150338 broke lots of API tests, need time to figure out whats up (Requested by thorton on #webkit). Reverted changeset: "WKView being inside WKWebView leads to weird API issues" https://bugs.webkit.org/show_bug.cgi?id=150174 http://trac.webkit.org/changeset/191307 2015-10-19 Tim Horton Try again to fix the 32-bit build. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::setupServicesMenu): 2015-10-17 Wenson Hsieh Extend fast-clicking behavior to trigger on elements that have negligible zoom https://bugs.webkit.org/show_bug.cgi?id=150248 Reviewed by Simon Fraser. Currently, fast-clicking only triggers on pages that have unscalable viewports. To allow more websites to benefit from fast-clicking behavior, we generalize fast-clicking to also occur when tapping on elements for which double-tap-to-zoom would zoom the element in or out by an insignificant amount. We define an insignificant amount of zoom to mean that zooming would increase the viewport scale by less than a configurable threshold, or decrease the viewport scale by more than a configurable threshold. We accomplish this by temporarily disabling the double tap gesture recognizer for the duration of the tap. This patch refactors some logic used to compute zoomed viewports to make it possible to predict the change in viewport scale when double tapping to zoom. See the changes in SmartMagnificationController and ViewGestureGeometryCollector for more details. There are no new tests, since this patch does not change existing behavior. Instead, this patch adds the machinery needed for zoom- dependent fast-clicking: by setting the preferences WebKitFastClickingEnabled and WebKitFastClickZoomThreshold, we will be able to tweak the behavior dynamically. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): (-[WKWebView _contentZoomScale]): (-[WKWebView _targetContentZoomScaleForRect:currentScale:fitEntireRect:minimumScale:maximumScale:]): (-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]): (-[WKWebView _viewportIsUserScalable]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::disableDoubleTapGesturesUntilTapIsFinishedIfNecessary): * UIProcess/ios/SmartMagnificationController.h: * UIProcess/ios/SmartMagnificationController.mm: (WebKit::SmartMagnificationController::adjustSmartMagnificationTargetRectAndZoomScales): (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture): (WebKit::SmartMagnificationController::magnify): * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:]): (-[WKContentView _fastClickZoomThreshold]): (-[WKContentView _allowDoubleTapToZoomForCurrentZoomScale:andTargetZoomScale:]): (-[WKContentView _disableDoubleTapGesturesUntilTapIsFinishedIfNecessary:allowsDoubleTapZoom:targetRect:isReplaced:minimumScale:maximumScale:]): (-[WKContentView _highlightLongPressRecognized:]): (-[WKContentView _endPotentialTapAndEnableDoubleTapGesturesIfNecessary]): (-[WKContentView _singleTapRecognized:]): (cancelPotentialTapIfNecessary): (-[WKContentView _singleTapCommited:]): (-[WKContentView webSelectionRects]): Deleted. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::disableDoubleTapGesturesUntilTapIsFinishedIfNecessary): * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture): (WebKit::ViewGestureGeometryCollector::computeZoomInformationForNode): * WebProcess/WebPage/ViewGestureGeometryCollector.h: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::potentialTapAtPosition): 2015-10-19 Tim Horton WKView being inside WKWebView leads to weird API issues https://bugs.webkit.org/show_bug.cgi?id=150174 Reviewed by Darin Adler. * UIProcess/API/mac/WKView.mm: * UIProcess/API/mac/WKViewInternal.h: * UIProcess/Cocoa/WebViewImpl.h: Added. * UIProcess/Cocoa/WebViewImpl.mm: Added. (WebKit::WebViewImpl::WebViewImpl): (WebKit::WebViewImpl::~WebViewImpl): (WebKit::WebViewImpl::setDrawsBackground): (WebKit::WebViewImpl::drawsBackground): (WebKit::WebViewImpl::setDrawsTransparentBackground): (WebKit::WebViewImpl::drawsTransparentBackground): (WebKit::WebViewImpl::acceptsFirstResponder): (WebKit::WebViewImpl::becomeFirstResponder): (WebKit::WebViewImpl::resignFirstResponder): (WebKit::WebViewImpl::isFocused): (WebKit::WebViewImpl::viewWillStartLiveResize): (WebKit::WebViewImpl::viewDidEndLiveResize): (WebKit::WebViewImpl::setFrameSize): (WebKit::WebViewImpl::disableFrameSizeUpdates): (WebKit::WebViewImpl::enableFrameSizeUpdates): (WebKit::WebViewImpl::frameSizeUpdatesDisabled): (WebKit::WebViewImpl::setFrameAndScrollBy): (WebKit::WebViewImpl::setFixedLayoutSize): (WebKit::WebViewImpl::fixedLayoutSize): (WebKit::WebViewImpl::setDrawingAreaSize): (WebKit::WebViewImpl::setContentPreparationRect): (WebKit::WebViewImpl::updateViewExposedRect): (WebKit::WebViewImpl::setClipsToVisibleRect): (WebKit::WebViewImpl::setIntrinsicContentSize): (WebKit::WebViewImpl::intrinsicContentSize): (WebKit::WebViewImpl::setViewScale): (WebKit::WebViewImpl::viewScale): (WebKit::WebViewImpl::layoutMode): (WebKit::WebViewImpl::setLayoutMode): (WebKit::WebViewImpl::supportsArbitraryLayoutModes): (WebKit::WebViewImpl::updateSupportsArbitraryLayoutModes): (WebKit::WebViewImpl::updateSecureInputState): (WebKit::WebViewImpl::resetSecureInputState): (WebKit::WebViewImpl::notifyInputContextAboutDiscardedComposition): (WebKit::WebViewImpl::hasFullScreenWindowController): (WebKit::WebViewImpl::fullScreenWindowController): (WebKit::WebViewImpl::closeFullScreenWindowController): (WebKit::WebViewImpl::fullScreenPlaceholderView): (WebKit::WebViewImpl::createFullScreenWindow): Move the actual implementation of a number of WKView methods into a C++ class, WebViewImpl, which WKView calls directly into. Eventually, we will move all of the logic of WKView into WebViewImpl, and then duplicate the necessary forwarding in WKWebView and remove WKWebView's inner WKView. * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::isViewFocused): (WebKit::PageClientImpl::didCommitLoadForMainFrame): (WebKit::PageClientImpl::updateSecureInputState): (WebKit::PageClientImpl::resetSecureInputState): (WebKit::PageClientImpl::notifyInputContextAboutDiscardedComposition): (WebKit::PageClientImpl::beganEnterFullScreen): (WebKit::PageClientImpl::beganExitFullScreen): For now, forward PageClient requests that can be answered by WebViewImpl to WebViewImpl. Eventually, we'll probably fold PageClientImpl and WebViewImpl together into one class, and these things will collapse down. * UIProcess/mac/WKFullScreenWindowController.h: * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController initWithWindow:webView:page:]): (-[WKFullScreenWindowController enterFullScreen:]): (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): (-[WKFullScreenWindowController exitFullScreen]): (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): (-[WKFullScreenWindowController _manager]): (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): (-[WKFullScreenWindowController initWithWindow:webView:]): Deleted. (-[WKFullScreenWindowController _page]): Deleted. * UIProcess/mac/WKViewLayoutStrategy.h: * UIProcess/mac/WKViewLayoutStrategy.mm: (+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]): (-[WKViewLayoutStrategy initWithPage:view:viewImpl:mode:]): (-[WKViewLayoutStrategy invalidate]): (-[WKViewLayoutStrategy didChangeFrameSize]): (-[WKViewViewSizeLayoutStrategy initWithPage:view:viewImpl:mode:]): (-[WKViewFixedSizeLayoutStrategy initWithPage:view:viewImpl:mode:]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:viewImpl:mode:]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy updateLayout]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy didChangeFrameSize]): (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:viewImpl:mode:]): (+[WKViewLayoutStrategy layoutStrategyWithPage:view:mode:]): Deleted. (-[WKViewLayoutStrategy initWithPage:view:mode:]): Deleted. (-[WKViewLayoutStrategy willDestroyView:]): Deleted. (-[WKViewViewSizeLayoutStrategy initWithPage:view:mode:]): Deleted. (-[WKViewFixedSizeLayoutStrategy initWithPage:view:mode:]): Deleted. (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:mode:]): Deleted. (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:mode:]): Deleted. Make WKViewLayoutStrategy and WKFullScreenWindowController operate in terms of generic NSViews instead of WKView, so that eventually they will be able to work for either WKView or WKWebView, and so that they can sit underneath WebViewImpl. * WebKit2.xcodeproj/project.pbxproj: 2015-10-19 Chris Dumez [WK2] Generalize NetworkCacheStorage API so it can store different types of metadata https://bugs.webkit.org/show_bug.cgi?id=150221 Reviewed by Darin Adler and Antti Koivisto. Generalize NetworkCacheStorage API so it can store different types of metadata alongside the network resources. This is a pre-requirement to making our NetworkCache smarter by storing information about the resources. To keep the code simple, the entry type is now part of the entry key and we store records of a specific type in a 'type' subfolder. The cache structure looks like so: - WebKitCache/Version 5/[Partition]/[Type]/[Hash] - WebKitCache/Version 5/[Partition]/[Type]/[Hash]-blob (Optional) Existing cache entries now that the 'resource' type as these are network resources. * NetworkProcess/cache/NetworkCache.cpp: * NetworkProcess/cache/NetworkCacheKey.cpp: * NetworkProcess/cache/NetworkCacheKey.h: * NetworkProcess/cache/NetworkCacheStatistics.cpp: * NetworkProcess/cache/NetworkCacheStorage.cpp: * NetworkProcess/cache/NetworkCacheStorage.h: 2015-10-19 Tim Horton Try to fix the iOS build * Configurations/FeatureDefines.xcconfig: 2015-10-19 Tim Horton Try to fix the 32-bit build. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::setupServicesMenu): 2015-10-16 Anders Carlsson Fix image service menus somewhat https://bugs.webkit.org/show_bug.cgi?id=150265 Reviewed by Tim Horton. * Shared/ContextMenuContextData.cpp: (WebKit::ContextMenuContextData::ContextMenuContextData): It's a service menu if we have a controlled image. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::setupServicesMenu): Use an item provider. 2015-10-19 Tim Horton Add magnify and rotate gesture event support for Mac https://bugs.webkit.org/show_bug.cgi?id=150179 Reviewed by Darin Adler. * Configurations/FeatureDefines.xcconfig: New feature flag. * Shared/NativeWebGestureEvent.h: Added. (WebKit::NativeWebGestureEvent::nativeEvent): * Shared/WebEvent.h: * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformGestureEvent::WebKit2PlatformGestureEvent): (WebKit::platform): * Shared/WebEventConversion.h: * Shared/mac/NativeWebGestureEventMac.mm: Added. (WebKit::webEventTypeForNSEvent): (WebKit::pointForEvent): (WebKit::NativeWebGestureEvent::NativeWebGestureEvent): Add and plumb a new native event that wraps a NSEvent of type NSEventTypeMagnify or NSEventTypeRotate (gesture events). * Shared/mac/WebGestureEvent.cpp: Added. (WebKit::WebGestureEvent::encode): (WebKit::WebGestureEvent::decode): (WebKit::WebGestureEvent::isGestureEventType): * Shared/mac/WebGestureEvent.h: Added. (WebKit::WebGestureEvent::WebGestureEvent): (WebKit::WebGestureEvent::position): (WebKit::WebGestureEvent::gestureScale): (WebKit::WebGestureEvent::gestureRotation): Add IPC plumbing for WebGestureEvent, which becomes a WebCore::PlatformGestureEvent. * UIProcess/API/Cocoa/WKViewPrivate.h: Remove unnecessary iPhone-only WKView code. Add _gestureEventWasNotHandledByWebCore, SPI which can be overridden to react when WebCore decides not to handle a gesture event. * UIProcess/API/mac/WKView.mm: (-[WKView magnifyWithEvent:]): Route magnification gesture events to the page, unless we're already in an active view zoom gesture, in which case we'll bypass the page and send the event straight to ViewGestureController. (-[WKView rotateWithEvent:]): Route rotation gesture events to the page. (-[WKView _gestureEventWasNotHandledByWebCore:]): Let ViewGestureController know that WebCore didn't handle a gesture event. We always give WebCore the first crack at the event if we're not in a zoom, because it could preventDefault() on the Begin phase event, and that should prevent pinch-zoom from starting. * UIProcess/PageClient.h: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::gestureEventWasNotHandledByWebCore): Plumb gestureEventWasNotHandledByWebCore back from WebPageProxy to WKView. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleGestureEvent): (WebKit::WebPageProxy::didReceiveEvent): * UIProcess/WebPageProxy.h: Forward gesture events to EventDispatcher, and let WKView know when WebCore passes on handling them. * UIProcess/mac/ViewGestureController.h: (WebKit::ViewGestureController::hasActiveMagnificationGesture): * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::gestureEventWasNotHandledByWebCore): (WebKit::ViewGestureController::handleMagnificationGestureEvent): Don't try to start a zoom with anything other than a Begin phase event. Try to start a zoom with any events that WebCore doesn't handle. Move dispatch of endMagnificationGesture into ViewGestureController; there is no reason for that to be in WKView anymore. * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::gestureEvent): (WebKit::EventDispatcher::dispatchGestureEvent): * WebProcess/WebPage/EventDispatcher.h: * WebProcess/WebPage/EventDispatcher.messages.in: * WebProcess/WebPage/WebPage.cpp: (WebKit::handleGestureEvent): (WebKit::WebPage::gestureEvent): * WebProcess/WebPage/WebPage.h: Dispatch to the main thread and hand off the gesture event to WebCore, asynchronously informing the UI process of whether the event was handled or not. 2015-10-19 Carlos Garcia Campos [GTK] ASSERTION FAILED: parent in WebInspectorProxy::platformDetach() https://bugs.webkit.org/show_bug.cgi?id=150319 Reviewed by Žan Doberšek. This happens when the inspector is shown/closed very quickly. Since we start the inspector attached by default, when the web inspector is created m_isAttached is set to true, so that when opened, it's attached to the view. If the inspector is closed before it has been actually attached, the inspector view doesn't have a parent, even if the m_isAttached is true. So, we should handle this case instead of asserting. This is what happens in test http/tests/xmlhttprequest/access-control-repeated-failed-preflight-crash.html. * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::platformDetach): Remove the view from its parent container if it was actually attached. 2015-10-19 Hunseop Jeong [EFL] Implement WebContextMenuProxyEfl::showContextMenu after r191194 https://bugs.webkit.org/show_bug.cgi?id=150310 Reviewed by Gyuyoung Kim. showContextMenu() doesn't work correctly after r191194 in EFL port. This patch implements WebContextMenuProxyEfl::showContextMenu. * UIProcess/efl/WebContextMenuProxyEfl.cpp: (WebKit::WebContextMenuProxyEfl::WebContextMenuProxyEfl): (WebKit::WebContextMenuProxyEfl::showContextMenu): (WebKit::WebContextMenuProxyEfl::hideContextMenu): * UIProcess/efl/WebContextMenuProxyEfl.h: 2015-10-18 Csaba Osztrogonác [WK2] Simplify unused return warning in WKRetainPtr.h https://bugs.webkit.org/show_bug.cgi?id=150173 Reviewed by Darin Adler. * UIProcess/API/cpp/WKRetainPtr.h: (WebKit::__attribute__): (WebKit::adoptWK): Deleted. 2015-10-18 Csaba Osztrogonác Fix the ENABLE(SECCOMP_FILTERS) build after r187030 https://bugs.webkit.org/show_bug.cgi?id=150172 Reviewed by Alexey Proskuryakov. * Shared/linux/SeccompFilters/Syscall.cpp: (WebKit::reportUnexpectedSyscall): 2015-10-18 Joonghun Park [GTK] Remove WebKitContextMenu related missing annotation warnings https://bugs.webkit.org/show_bug.cgi?id=150299 Reviewed by Darin Adler. The warnings occur currently because when executing g-ir-scanner, it doesn't consider WebKitContextMenu related .cpp files, but only .h files. * PlatformGTK.cmake: Add WebKitContextMenu related cpp files. 2015-10-18 Myles C. Maxfield Stop honoring the user default "WebKitKerningAndLigaturesEnabledByDefault" https://bugs.webkit.org/show_bug.cgi?id=150287 Reviewed by Simon Fraser. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Deleted. (WebKit::WebProcessCreationParameters::encode): Deleted. (WebKit::WebProcessCreationParameters::decode): Deleted. * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::registerUserDefaultsIfNeeded): Deleted. (WebKit::WebProcessPool::platformInitializeWebProcess): Deleted. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Deleted. 2015-10-18 Yusuke Suzuki [GTK] Implement WebContextMenuProxyGtk::showContextMenu after r191194 https://bugs.webkit.org/show_bug.cgi?id=150276 Reviewed by Carlos Garcia Campos. After r191194, showContextMenu signature becomes changed, and the implementation is moved from the generic file to the Mac port. It poses the compile error in GTK port. This patch implements WebContextMenuProxyGtk::showContextMenu. The logic is the same to the old one except for dropping SERVICE_CONTROLS support. This is because SERVICE_CONTROLS is not related to GTK. * UIProcess/gtk/WebContextMenuProxyGtk.cpp: (WebKit::WebContextMenuProxyGtk::showContextMenu): * UIProcess/gtk/WebContextMenuProxyGtk.h: 2015-10-18 Commit Queue Unreviewed, rolling out r191250 and r191253. https://bugs.webkit.org/show_bug.cgi?id=150296 Broke all the tests on Windows (Requested by ap on #webkit). Reverted changesets: "Stop honoring the user default "WebKitKerningAndLigaturesEnabledByDefault"" https://bugs.webkit.org/show_bug.cgi?id=150287 http://trac.webkit.org/changeset/191250 "Build fix after r191250" http://trac.webkit.org/changeset/191253 2015-10-17 Myles C. Maxfield Stop honoring the user default "WebKitKerningAndLigaturesEnabledByDefault" https://bugs.webkit.org/show_bug.cgi?id=150287 Reviewed by Simon Fraser. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Deleted. (WebKit::WebProcessCreationParameters::encode): Deleted. (WebKit::WebProcessCreationParameters::decode): Deleted. * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::registerUserDefaultsIfNeeded): Deleted. (WebKit::WebProcessPool::platformInitializeWebProcess): Deleted. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Deleted. 2015-10-17 Dan Bernstein [Cocoa] Stop using WKAXRegisterRemoteApp https://bugs.webkit.org/show_bug.cgi?id=150283 Reviewed by Alexey Proskuryakov. * Platform/spi/mac: Added. * Platform/spi/mac/AppKitSPI.h: Added. Includes declaration of +[NSAccessibilityRemoteUIElement setRemoteUIApp:]. * WebKit2.xcodeproj/project.pbxproj: Added reference to new header. Also changed the path of the Platform/spi/Cocoa group to the corresponding path in the source tree. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::registerWithAccessibility): Added. (WebKit::WebProcess::platformInitializeProcess): Use new registerWithAccessibility instead of WKAXRegisterRemoteApp. 2015-10-16 Simon Fraser Enhance TextStream for logging, remove subclasses, log more things https://bugs.webkit.org/show_bug.cgi?id=150269 Reviewed by Zalan Bujtas. Remove the various TextStream subclasses that only existed to support indenting, and output additional types. Add output for more WebCore and WebKit2 types, and just use TextStream everywhere. TextStream is enhance to support grouping (open paren and intent), with a stack-based class to open/end a group. Remove some SVG-specific duplicate output functions. Outdent namespace contents of GraphicsTypes.h. * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp: (WebKit::dump): (WebKit::recursiveDumpNodes): (WebKit::RemoteScrollingCoordinatorTransaction::description): (WebKit::RemoteScrollingTreeTextStream::RemoteScrollingTreeTextStream): Deleted. (WebKit::RemoteScrollingTreeTextStream::increaseIndent): Deleted. (WebKit::RemoteScrollingTreeTextStream::decreaseIndent): Deleted. (WebKit::RemoteScrollingTreeTextStream::writeIndent): Deleted. (WebKit::dumpProperty): Deleted. (WebKit::RemoteScrollingTreeTextStream::operator<<): Deleted. (WebKit::RemoteScrollingTreeTextStream::dump): Deleted. (WebKit::RemoteScrollingTreeTextStream::recursiveDumpNodes): Deleted. * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::operator<<): (WebKit::dumpChangedLayers): (WebKit::RemoteLayerTreeTransaction::description): (WebKit::RemoteLayerTreeTextStream::RemoteLayerTreeTextStream): Deleted. (WebKit::RemoteLayerTreeTextStream::increaseIndent): Deleted. (WebKit::RemoteLayerTreeTextStream::decreaseIndent): Deleted. (WebKit::dumpProperty): Deleted. (WebKit::RemoteLayerTreeTextStream::operator<<): Deleted. (WebKit::RemoteLayerTreeTextStream::writeIndent): Deleted. * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h: * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: (WebKit::operator<<): 2015-10-17 Hunseop Jeong URTBF after r191194 to fix EFL build. https://bugs.webkit.org/show_bug.cgi?id=150272 Reviewed by Csaba Osztrogonác. * UIProcess/efl/WebContextMenuProxyEfl.cpp: (WebKit::WebContextMenuProxyEfl::showContextMenu): * UIProcess/efl/WebContextMenuProxyEfl.h: 2015-10-16 Wenson Hsieh Add a WKWebView input delegate SPI https://bugs.webkit.org/show_bug.cgi?id=149646 Reviewed by Dan Bernstein. Renames the existing _WKFormDelegate to _WKInputDelegate and adds a new delegate SPI method -[_WKInputDelegate _webView:focusShouldStartInputSession:] that allows clients to allow or disallow showing up the keyboard. To make this decision, clients are given a _WKFocusedElementInfo, which contains information about the focused element prior to the keyboard showing up so the client will be able to override default assistance behavior. While the information contained in a _WKFocusedElementInfo currently seems like overkill for _webView:focusShouldStartInputSession, our intentions are to give WebKit clients control over more details of how node assistance works, such as being able to use a custom editor for certain types of nodes. * Shared/API/Cocoa/WebKitPrivate.h: Added new header _WKFocusedElementInfo.h. * UIProcess/API/Cocoa/WKWebView.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _inputDelegate]): (-[WKWebView _formDelegate]): (-[WKWebView _setInputDelegate:]): (-[WKWebView _setFormDelegate:]): (-[WKWebView initWithFrame:configuration:]): Deleted canAssistOnProgrammaticFocus flag. (-[WKWebView canAssistOnProgrammaticFocus]): Ditto. (-[WKWebView setCanAssistOnProgrammaticFocus:]): Ditto. * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): Deleted. (-[WKWebViewConfiguration _canAssistOnProgrammaticFocus]): Deleted canAssistOnProgrammaticFocus flag. (-[WKWebViewConfiguration _setCanAssistOnProgrammaticFocus:]): Ditto. * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/Cocoa/_WKFocusedElementInfo.h: Added. * UIProcess/API/Cocoa/_WKFormDelegate.h: * UIProcess/API/Cocoa/_WKInputDelegate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKFormDelegate.h. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKFocusedElementInfo initWithAssistedNodeInformation:isInteracting:]): (-[WKFocusedElementInfo type]): (-[WKFocusedElementInfo value]): (-[WKFocusedElementInfo isUserInitiated]): (-[WKContentView accessoryAutoFill]): (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): If the input delegate responds to shouldStartInputSession, consult it to see if we should bring up the keyboard; otherwise, use our default behavior. * WebKit2.xcodeproj/project.pbxproj: 2015-10-16 Simon Fraser Make TextStream the canonical way to log classes in WebCore https://bugs.webkit.org/show_bug.cgi?id=150256 Reviewed by Sam Weinig. We vacillated between PrintStream and TextStream as being the canonical way to stringify WebCore data structures. This patch solidifies TextStream as the solution, since it has convenient stream syntax, and is what we use for render tree dumps. Remove TextStream member functions that output non-simple structs (sizes, points and rects), replacing them with free operator<< functions in the .cpp file for the relevant class. Formatting is currently consistent with RenderTreeAsText output, to avoid breaking tests. Remove custom FloatRect outputting in SVG and RemoteLayerTreeTransaction. * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp: (WebKit::RemoteScrollingTreeTextStream::operator<<): Deleted. * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTextStream::operator<<): Deleted. 2015-10-16 Anders Carlsson Remove some dead menu code https://bugs.webkit.org/show_bug.cgi?id=150247 Reviewed by Andreas Kling. * Shared/WebContextMenuItemData.cpp: (WebKit::WebContextMenuItemData::WebContextMenuItemData): (WebKit::WebContextMenuItemData::encode): Deleted. * Shared/WebContextMenuItemData.h: (WebKit::WebContextMenuItemData::selectionHandler): Deleted. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::nsMenuItem): 2015-10-16 Anders Carlsson Move more code to WebContextMenuProxyMac https://bugs.webkit.org/show_bug.cgi?id=150240 Reviewed by Tim Horton. * UIProcess/WebContextMenuProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::contextMenuClient): * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::initializeShareMenuItem): (WebKit::WebContextMenuProxyMac::showContextMenu): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::platformInitializeShareMenuItem): Deleted. 2015-10-16 Tim Horton Hook up autolayout intrinsic sizing for WKWebView https://bugs.webkit.org/show_bug.cgi?id=150219 Reviewed by Simon Fraser. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView intrinsicContentSize]): (-[WKWebView _setIntrinsicContentSize:]): (-[WKWebView _minimumLayoutWidth]): (-[WKWebView _setMinimumLayoutWidth:]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/API/Cocoa/WKWebViewPrivate.h: Add a simple SPI to specify the minimum width that a WKWebView will attempt to lay out to, similar to WKView except just a width, not a size, and with no option to force the height to the view size. Similar behavior can be achieved by clients by setting custom autolayout constraints on the view. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::intrinsicContentSizeDidChange): Forward intrinsic content size changes to the WKWebView, not its inner WKView, if we have one. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Only set the autosizing fixed minimum height if we're using that behavior; otherwise, setting it to the view's height will end up accidentally turning on that behavior (which involves an extra layout per resize!). 2015-10-15 Anders Carlsson Use the ShowContextMenu message for service menus as well https://bugs.webkit.org/show_bug.cgi?id=150206 Reviewed by Tim Horton. * Shared/ContextMenuContextData.cpp: (WebKit::ContextMenuContextData::ContextMenuContextData): (WebKit::ContextMenuContextData::encode): (WebKit::ContextMenuContextData::decode): * Shared/ContextMenuContextData.h: (WebKit::ContextMenuContextData::type): (WebKit::ContextMenuContextData::ContextMenuContextData): (WebKit::ContextMenuContextData::isServicesMenu): (WebKit::ContextMenuContextData::needsServicesMenu): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::showContextMenu): (WebKit::WebPageProxy::internalShowContextMenu): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::populate): (WebKit::WebContextMenuProxyMac::showContextMenu): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::showSelectionServiceMenu): Deleted. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::handleSelectionServiceClick): 2015-10-16 Hunseop Jeong [GTK] Try to fix the build after r191137 https://bugs.webkit.org/show_bug.cgi?id=150222 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::doneWithKeyEvent): (WebKit::PageClientImpl::createPopupMenuProxy): (WebKit::PageClientImpl::createContextMenuProxy): (WebKit::PageClientImpl::createColorPicker): * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/gtk/WebContextMenuProxyGtk.cpp: (WebKit::WebContextMenuProxyGtk::populate): (WebKit::WebContextMenuProxyGtk::showContextMenu): (WebKit::WebContextMenuProxyGtk::hideContextMenu): (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): * UIProcess/gtk/WebContextMenuProxyGtk.h: (WebKit::WebContextMenuProxyGtk::create): (WebKit::WebContextMenuProxyGtk::gtkMenu): * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: (WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk): * UIProcess/gtk/WebPopupMenuProxyGtk.h: (WebKit::WebPopupMenuProxyGtk::create): (WebKit::WebPopupMenuProxyGtk::setCurrentlySelectedMenuItem): 2015-10-15 Gyuyoung Kim EFL build fix since r191137 Unreviewed EFL build fix. * UIProcess/CoordinatedGraphics/WebView.cpp: Removed. 2015-10-15 Myles C. Maxfield Migrate to CGContextSetBaseCTM() and CGContextResetClip() from WKSI https://bugs.webkit.org/show_bug.cgi?id=150155 Reviewed by Tim Horton. * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): Deleted. 2015-10-15 Dean Jackson Fix the iOS build. And hopefully not breaking the other builds at the same time. * UIProcess/PageClient.h: * UIProcess/WebContextMenuProxy.cpp: * UIProcess/WebContextMenuProxy.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: 2015-10-15 Anders Carlsson Use the context inside WebContextMenuProxyMac https://bugs.webkit.org/show_bug.cgi?id=150196 Reviewed by Tim Horton. * UIProcess/WebContextMenuProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::populate): (WebKit::WebContextMenuProxyMac::showContextMenu): 2015-10-15 Anders Carlsson Use the context menu location that's stored in the context data https://bugs.webkit.org/show_bug.cgi?id=150194 Reviewed by Tim Horton. * UIProcess/WebContextMenuProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::showContextMenu): 2015-10-15 Anders Carlsson Store the context menu data and user data in the WebContextMenuProxy object https://bugs.webkit.org/show_bug.cgi?id=150191 Reviewed by Tim Horton. * UIProcess/PageClient.h: * UIProcess/WebContextMenuProxy.cpp: (WebKit::WebContextMenuProxy::WebContextMenuProxy): * UIProcess/WebContextMenuProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::createContextMenuProxy): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::createContextMenuProxy): * UIProcess/mac/WebContextMenuProxyMac.h: (WebKit::WebContextMenuProxyMac::create): * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac): 2015-10-15 Dan Bernstein [Cocoa] Stop using WKSetNSURLConnectionDefersCallbacks https://bugs.webkit.org/show_bug.cgi?id=150189 Reviewed by Anders Carlsson. * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): Removed initialization. 2015-10-15 Anders Carlsson Fix build. * UIProcess/API/APIFrameInfo.cpp: (API::FrameInfo::~FrameInfo): * UIProcess/API/APIFrameInfo.h: * UIProcess/API/Cocoa/WKUserContentController.mm: 2015-10-15 Anders Carlsson CTTE menu proxies https://bugs.webkit.org/show_bug.cgi?id=150187 Reviewed by Tim Horton. * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::showPopupMenu): (WebKit::WebPageProxy::internalShowContextMenu): * UIProcess/WebPopupMenuProxy.h: (WebKit::WebPopupMenuProxy::WebPopupMenuProxy): * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::createPopupMenuProxy): (WebKit::PageClientImpl::createContextMenuProxy): Deleted. * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::createPopupMenuProxy): (WebKit::PageClientImpl::createContextMenuProxy): * UIProcess/mac/WebContextMenuProxyMac.h: (WebKit::WebContextMenuProxyMac::create): (WebKit::WebContextMenuProxyMac::page): * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac): (WebKit::WebContextMenuProxyMac::~WebContextMenuProxyMac): (WebKit::WebContextMenuProxyMac::contextMenuItemSelected): * UIProcess/mac/WebPopupMenuProxyMac.h: (WebKit::WebPopupMenuProxyMac::create): * UIProcess/mac/WebPopupMenuProxyMac.mm: (WebKit::WebPopupMenuProxyMac::WebPopupMenuProxyMac): 2015-10-15 Anders Carlsson Add -[WKFrameInfo _handle] https://bugs.webkit.org/show_bug.cgi?id=150185 rdar://problem/23132371 Reviewed by Tim Horton. * UIProcess/API/APIFrameInfo.cpp: (API::FrameInfo::FrameInfo): * UIProcess/API/APIFrameInfo.h: * UIProcess/API/Cocoa/WKFrameInfo.mm: (-[WKFrameInfo _handle]): * UIProcess/API/Cocoa/WKFrameInfoInternal.h: * UIProcess/API/Cocoa/WKFrameInfoPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfoInternal.h. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::showPopupMenu): (WebKit::WebPageProxy::internalShowContextMenu): * UIProcess/WebPopupMenuProxy.h: (WebKit::WebPopupMenuProxy::WebPopupMenuProxy): * WebKit2.xcodeproj/project.pbxproj: 2015-10-15 Anders Carlsson The menu location and menu items should be part of ContextMenuContextData https://bugs.webkit.org/show_bug.cgi?id=150182 Reviewed by Andreas Kling. * Shared/ContextMenuContextData.cpp: (WebKit::ContextMenuContextData::ContextMenuContextData): (WebKit::ContextMenuContextData::encode): (WebKit::ContextMenuContextData::decode): * Shared/ContextMenuContextData.h: (WebKit::ContextMenuContextData::menuLocation): (WebKit::ContextMenuContextData::menuItems): (WebKit::ContextMenuContextData::ContextMenuContextData): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::showContextMenu): (WebKit::WebPageProxy::internalShowContextMenu): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::showSelectionServiceMenu): * WebProcess/WebPage/WebContextMenu.cpp: (WebKit::WebContextMenu::show): 2015-10-15 Carlos Garcia Campos [GTK] Test WebKit2.RestoreSessionStateContainingFormData fails https://bugs.webkit.org/show_bug.cgi?id=84960 Reviewed by Žan Doberšek. Add a cross-platform implementation to LegacySessionStateCodingNone using the new SessionState, so that non mac ports can make unit tests that use the legacy session state coding pass. * UIProcess/LegacySessionStateCodingNone.cpp: (WebKit::encodeLegacySessionState): (WebKit::decodeLegacySessionState): (WebKit::encodeLegacySessionHistoryEntryData): Deleted. (WebKit::decodeLegacySessionHistoryEntryData): Deleted. 2015-10-15 Carlos Garcia Campos Unreviewed. Fix wrong #ifdef added in r190615. This disabled accelerated compositing unconditionally. * UIProcess/gtk/WebPreferencesGtk.cpp: (WebKit::WebPreferences::platformInitializeStore): 2015-10-14 Zhuo Li Augment ’s recent search history with the time each entry was added, in order to allow time-based clearing of search history. https://bugs.webkit.org/show_bug.cgi?id=148388. Reviewed by Darin Adler. Replace Vector with Vector, where RecentSearch is a struct that consists search string and time, for recent searches in order to store additional time information. All these new RecentSearches are stored in a plist in which the structure looks like: Root { "items": { autosave name: { "searches": [ { "searchString": searchString, "date": date }, ... ] } } } * Scripts/webkit/messages.py: (headers_for_type): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): Encode the new struct RecentSearch (IPC::ArgumentCoder::decode): Decode the new struct RecentSearch * Shared/WebCoreArgumentCoders.h: * UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::saveRecentSearches): Call saveRecentSearches in WebCore::SearchPopupMenuCocoa. (WebKit::WebPageProxy::loadRecentSearches): Call loadRecentSearches in WebCore::SearchPopupMenuCocoa. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/efl/WebPageProxyEfl.cpp: (WebKit::WebPageProxy::saveRecentSearches): (WebKit::WebPageProxy::loadRecentSearches): * UIProcess/gtk/WebPageProxyGtk.cpp: (WebKit::WebPageProxy::saveRecentSearches): (WebKit::WebPageProxy::loadRecentSearches): * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: (WebKit::WebSearchPopupMenu::saveRecentSearches): (WebKit::WebSearchPopupMenu::loadRecentSearches): * WebProcess/WebCoreSupport/WebSearchPopupMenu.h: 2015-10-14 Wenson Hsieh Web pages with unscalable viewports shouldn't have a single tap delay https://bugs.webkit.org/show_bug.cgi?id=149968 Reviewed by Simon Fraser. When a viewport is unscalable (specified through the meta viewport tag) we do not add a delay to our single tap gesture recognizer. We do this by disabling or reinitializing the WKContentView's double tap gesture recognizer when the viewport becomes unscalable or scalable, respectively. A viewport is deemed unscalable when it has user-scalable = no, or when the minimum scale is greater than or equal to the maximum scale. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _createAndConfigureDoubleTapGestureRecognizer]): Pulled logic for initializing a double tap gesture recognizer out into a helper function. (-[WKContentView setupInteraction]): (-[WKContentView _setDoubleTapGesturesEnabled:]): Turns gesture recognition for double taps on or off. 2015-10-14 Anders Carlsson Remove a message that isn't used by anyone https://bugs.webkit.org/show_bug.cgi?id=150136 Reviewed by Andreas Kling. * UIProcess/API/APILoaderClient.h: (API::LoaderClient::didRemoveFrameFromHierarchy): Deleted. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageLoaderClient): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didRemoveFrameFromHierarchy): Deleted. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::detachedFromParent2): Deleted. 2015-10-14 Alex Christensen Add SPI for reloading without content blockers https://bugs.webkit.org/show_bug.cgi?id=150058 rdar://problem/22742222 Reviewed by Sam Weinig. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): (WebKit::WebPageCreationParameters::decode): * Shared/WebPageCreationParameters.h: * UIProcess/API/C/WKPage.cpp: (WKPageReload): (WKPageReloadWithoutContentBlockers): (WKPageReloadFromOrigin): (WKPageTryClose): (WKPageSetUserContentExtensionsEnabled): (WKPageSupportsTextEncoding): * UIProcess/API/C/WKPage.h: * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController reload]): (-[WKBrowsingContextController reloadFromOrigin]): (-[WKBrowsingContextController applicationNameForUserAgent]): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView reload]): (-[WKWebView reloadFromOrigin]): (-[WKWebView _setUserContentExtensionsEnabled:]): (-[WKWebView _userContentExtensionsEnabled]): (-[WKWebView _webProcessIdentifier]): (-[WKWebView _killWebContentProcess]): (-[WKWebView _reloadWithoutContentBlockers]): (-[WKWebView _killWebContentProcessAndResetState]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_reload): (webkit_web_view_reload_bypass_cache): * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::didHandleContentFilterUnblockNavigation): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::stopLoading): (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::setShouldScaleViewToFitDocument): (WebKit::WebPageProxy::setUserContentExtensionsEnabled): Deleted. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::userContentExtensionsEnabled): Deleted. * WebProcess/WebPage/WebPage.cpp: (WebKit::m_shouldDispatchFakeMouseMoveEvents): (WebKit::WebPage::setDefersLoading): (WebKit::WebPage::reload): (WebKit::WebPage::goForward): (WebKit::WebPage::createDocumentLoader): (WebKit::WebPage::setShouldScaleViewToFitDocument): (WebKit::WebPage::imageOrMediaDocumentSizeChanged): (WebKit::WebPage::setUserContentExtensionsEnabled): Deleted. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-10-14 Simon Fraser Change GraphicsContext image-drawing functions to take references https://bugs.webkit.org/show_bug.cgi?id=150108 Reviewed by Tim Horton and Sam Weinig. Change GraphicsContext::drawImage(), drawTiledImage(), drawImageBuffer(), clipToImageBuffer() and isCompatibleWithBuffer() to take references, and adjust calling code, adding null-checks where necessary. * Shared/ContextMenuContextData.cpp: (WebKit::ContextMenuContextData::ContextMenuContextData): * Shared/WebCoreArgumentCoders.cpp: (IPC::encodeImage): (IPC::encodeOptionalImage): (IPC::ArgumentCoder::encode): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::createSelectionSnapshot): 2015-10-14 Anders Carlsson Change the bundle app cache APIs to take a page https://bugs.webkit.org/show_bug.cgi?id=150123 Reviewed by Sam Weinig. This is another step towards getting rid of ApplicationCacheStorage::singleton(). Ideally the WKTR tests that use this should be converted to API tests. * WebProcess/InjectedBundle/API/c/WKBundle.cpp: (WKBundleClearApplicationCache): Deleted. (WKBundleClearApplicationCacheForOrigin): Deleted. (WKBundleSetAppCacheMaximumSize): Deleted. (WKBundleGetAppCacheUsageForOrigin): Deleted. (WKBundleSetApplicationCacheOriginQuota): Deleted. (WKBundleResetApplicationCacheOriginQuota): Deleted. (WKBundleCopyOriginsWithApplicationCache): Deleted. * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageClearApplicationCache): (WKBundlePageClearApplicationCacheForOrigin): (WKBundlePageSetAppCacheMaximumSize): (WKBundlePageGetAppCacheUsageForOrigin): (WKBundlePageSetApplicationCacheOriginQuota): (WKBundlePageResetApplicationCacheOriginQuota): (WKBundlePageCopyOriginsWithApplicationCache): * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::clearApplicationCache): Deleted. (WebKit::InjectedBundle::clearApplicationCacheForOrigin): Deleted. (WebKit::InjectedBundle::setAppCacheMaximumSize): Deleted. (WebKit::InjectedBundle::appCacheUsageForOrigin): Deleted. (WebKit::InjectedBundle::setApplicationCacheOriginQuota): Deleted. (WebKit::InjectedBundle::resetApplicationCacheOriginQuota): Deleted. (WebKit::InjectedBundle::originsWithApplicationCache): Deleted. * WebProcess/InjectedBundle/InjectedBundle.h: 2015-10-14 Joonghun Park [EFL] Fix the problem in which environment variable included in webprocess-cmd-prefix can't be parsed https://bugs.webkit.org/show_bug.cgi?id=148616 Reviewed by Gyuyoung Kim. This patch fixes the problem in which environment variable in web process-cmd-prefix can't be parsed. process-cmd-prefix option doesn't work in two cases. 1. When executing run-layout-tests, 2. When executing MiniBrowser with web process-cmd-prefix environment variable. * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp: (WebKit::parseAndRemoveEnvironments): (WebKit::ProcessLauncher::launchProcess): 2015-10-13 Yongjun Zhang Use the correct notification strings for view service applications state change. https://bugs.webkit.org/show_bug.cgi?id=150107 Use the correct notification names "_UIViewServiceHostDidEnterBackgroundNotification" and "_UIViewServiceHostWillEnterForegroundNotification" to listen to view service application state changes. Reviewed by Gavin Barraclough. * UIProcess/ApplicationStateTracker.mm: (WebKit::ApplicationStateTracker::ApplicationStateTracker): 2015-10-13 Myles C. Maxfield Split TypesettingFeatures into kerning and ligatures bools https://bugs.webkit.org/show_bug.cgi?id=150074 Reviewed by Simon Fraser. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-10-13 Dean Jackson Fix iOS-family builds. * UIProcess/API/C/mac/WKPagePrivateMac.mm: (WKPageGetObjectRegistry): * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController _remoteObjectRegistry]): * UIProcess/API/mac/WKViewInternal.h: 2015-10-13 Anders Carlsson Fix 32-bit build. * UIProcess/API/C/mac/WKPagePrivateMac.mm: (WKPageGetObjectRegistry): 2015-10-13 Anders Carlsson Add and implement WKPageGetObjectRegistry https://bugs.webkit.org/show_bug.cgi?id=150102 Reviewed by Tim Horton. Put the _WKObjectRegistry used by WKPageRef and WKBrowsingContextController on the WKView for now. If we decide to share more code between WKView and WKWebView, the object registry could live in an object that would be shared between WKView and WKWebView. * UIProcess/API/C/mac/WKPagePrivateMac.h: * UIProcess/API/C/mac/WKPagePrivateMac.mm: (WKPageGetObjectRegistry): * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController _remoteObjectRegistry]): (-[WKBrowsingContextController dealloc]): Deleted. * UIProcess/API/mac/WKView.mm: (-[WKView dealloc]): (-[WKView _remoteObjectRegistry]): * UIProcess/API/mac/WKViewInternal.h: 2015-10-13 Chris Dumez Avoid useless copies in range-loops that are using 'auto' https://bugs.webkit.org/show_bug.cgi?id=150091 Reviewed by Sam Weinig. Avoid useless copies in range-loops that are using 'auto'. Also use 'auto*' instead of 'auto' when range values are pointers for clarity. * UIProcess/VisitedLinkStore.cpp: (WebKit::VisitedLinkStore::pendingVisitedLinksTimerFired): (WebKit::VisitedLinkStore::resizeTable): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::releaseRemainingIconsForPageURLs): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::removeData): (WebKit::WebsiteDataStore::plugins): 2015-10-13 Said Abou-Hallawa Add debug settings for using giant tiles (4096x4096) https://bugs.webkit.org/show_bug.cgi?id=149977 Reviewed by Tim Horton. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetUseGiantTiles): (WKPreferencesGetUseGiantTiles): * UIProcess/API/C/WKPreferencesRefPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-10-13 Brent Fulgham [iOS] Avoid crash due to invalid screen bounds https://bugs.webkit.org/show_bug.cgi?id=150048 Reviewed by Jer Noble. Check for an invalid bounds, and reset it to a known state before attempting to use it. * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): 2015-10-13 Sergio Villar Senin [GTK] Fix build for ENABLE_TOUCH_EVENTS=OFF https://bugs.webkit.org/show_bug.cgi?id=150085 Reviewed by Carlos Garcia Campos. * Shared/gtk/NativeWebTouchEventGtk.cpp: * Shared/gtk/WebEventFactory.cpp: * Shared/gtk/WebEventFactory.h: * UIProcess/API/gtk/PageClientImpl.cpp: * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkit_web_view_base_class_init): 2015-10-13 Chris Dumez Avoid useless copying of Key::HashType in loops in NetworkCache::Storage::synchronize() https://bugs.webkit.org/show_bug.cgi?id=150061 Reviewed by Carlos Garcia Campos. Avoid useless copying of Key::HashType in loops in NetworkCache::Storage::synchronize(). Key::HashType is currently a SHA1::Digest, which is a std::array. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::synchronize): 2015-10-12 Philip Chimento [GTK] OSX linker doesn't understand --whole-archive https://bugs.webkit.org/show_bug.cgi?id=144557 Reviewed by Martin Robinson. * PlatformGTK.cmake: Link with extra libraries on Darwin, since we don't have the --whole-archive linker option. 2015-10-09 Anders Carlsson Don't allow plug-ins to override image types for elements https://bugs.webkit.org/show_bug.cgi?id=149979 Reviewed by Tim Horton. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::objectContentType): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: 2015-10-12 Gyuyoung Kim [EFL] Bump Version/X in user agent https://bugs.webkit.org/show_bug.cgi?id=150013 Reviewed by Csaba Osztrogonác. EFL port needs to ensure maximum compatibility with existing web sites. Thus version number needs to be bumped from 5.0 to 8.0 as GTK port. * UIProcess/efl/WebPageProxyEfl.cpp: (WebKit::WebPageProxy::standardUserAgent): 2015-10-10 Dan Bernstein [iOS] Remove unnecessary iOS version checks https://bugs.webkit.org/show_bug.cgi?id=150002 Reviewed by Alexey Proskuryakov. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): * Platform/IPC/mac/ConnectionMac.mm: (IPC::AccessibilityProcessSuspendedNotification): * Platform/spi/ios/SafariServicesSPI.h: * Platform/spi/ios/UIKitSPI.h: * Shared/Network/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode): (WebKit::NetworkProcessCreationParameters::decode): * Shared/Network/NetworkProcessCreationParameters.h: * Shared/Plugins/PluginProcessCreationParameters.cpp: (WebKit::PluginProcessCreationParameters::encode): (WebKit::PluginProcessCreationParameters::decode): * Shared/Plugins/PluginProcessCreationParameters.h: * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformTouchPoint::WebKit2PlatformTouchPoint): * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * Shared/ios/NativeWebTouchEventIOS.mm: (WebKit::NativeWebTouchEvent::extractWebTouchPoint): (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): * Shared/ios/WebPlatformTouchPointIOS.cpp: (WebKit::WebPlatformTouchPoint::encode): (WebKit::WebPlatformTouchPoint::decode): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): (shouldAllowPictureInPictureMediaPlayback): (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::platformInitializeNetworkProcess): * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::platformInitializePluginProcess): * UIProcess/ios/ViewGestureControllerIOS.mm: (-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView _ensureFormAccessoryView]): (-[WKContentView webSelectionAssistant]): (-[WKContentView selectionInteractionAssistant]): * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::create): * UIProcess/ios/forms/WKFileUploadPanel.mm: (photoLibraryIcon): (cameraIcon): (fallbackIconForFile): (iconForImageFile): * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::flushLayers): * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::flushLayers): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-10-10 Dan Bernstein [iOS] Remove project support for iOS 8 https://bugs.webkit.org/show_bug.cgi?id=149993 Reviewed by Alexey Proskuryakov. * Configurations/Base.xcconfig: * Configurations/BaseLegacyProcess.xcconfig: * Configurations/BaseXPCService.xcconfig: * Configurations/PluginProcessShim.xcconfig: * Configurations/SecItemShim.xcconfig: * Configurations/WebKit.xcconfig: * Configurations/WebKit2.xcconfig: * Configurations/WebProcessShim.xcconfig: 2015-10-09 Myles C. Maxfield Unreviewed, rolling out r190689 https://bugs.webkit.org/show_bug.cgi?id=149992 Fixed in other repository. Reverted changesets: "Unreviewed, rolling out r190572, r190593, r190594, and r190639." https://bugs.webkit.org/show_bug.cgi?id=149897 2015-10-09 Beth Dakin Rubber-stamped by Anders Carlsson. Remove unnecessary includes. * WebProcess/Plugins/Netscape/NetscapePlugin.h: * WebProcess/Plugins/Plugin.h: * WebProcess/Plugins/PluginProxy.h: * WebProcess/Plugins/PluginView.h: * WebProcess/WebPage/mac/WebPageMac.mm: 2015-10-09 Beth Dakin Build fix. * CMakeLists.txt: * Shared/API/APIHitTestResult.cpp: Removed. * Shared/API/APIHitTestResult.h: Removed. * WebKit2.xcodeproj/project.pbxproj: 2015-10-09 Beth Dakin Build fix. * UIProcess/API/APIHitTestResult.cpp: Copied from Shared/API/APIHitTestResult.cpp. * UIProcess/API/APIHitTestResult.h: Copied from Shared/API/APIHitTestResult.h. * UIProcess/mac/PageClientImpl.mm: 2015-10-09 Beth Dakin WKWebView needs SPI to customize immediate actions https://bugs.webkit.org/show_bug.cgi?id=149939 -and corresponding- rdar://problem/20016849 Reviewed by Anders Carlsson. This patch breaks WebHitTestResult into two files. WebHiTestResultData continues to live in the WebKit namespace and contains the old WebHitTestResult::Data struct. The rest of WebHitTestResult is now API::HitTestResult. The patch also adds _WKHitTestResult as Obj-C API to wrap API::HitTestResult. Attempt to keep other ports happy with new files. * CMakeLists.txt: WebKit::WebHitTestResult no longer contains the Data struct and is now called API::HitTestResult. * Shared/API/APIHitTestResult.cpp: Copied from Shared/WebHitTestResult.cpp. (API::HitTestResult::create): (WebKit::WebHitTestResult::create): Deleted. (WebKit::WebHitTestResult::Data::Data): Deleted. (WebKit::WebHitTestResult::Data::~Data): Deleted. (WebKit::WebHitTestResult::Data::encode): Deleted. (WebKit::WebHitTestResult::Data::decode): Deleted. (WebKit::WebHitTestResult::Data::platformEncode): Deleted. (WebKit::WebHitTestResult::Data::platformDecode): Deleted. (WebKit::WebHitTestResult::Data::elementBoundingBoxInWindowCoordinates): Deleted. * Shared/API/APIHitTestResult.h: Copied from Shared/WebHitTestResult.h. (API::HitTestResult::absoluteImageURL): (API::HitTestResult::absolutePDFURL): (API::HitTestResult::absoluteLinkURL): (API::HitTestResult::absoluteMediaURL): (API::HitTestResult::linkLabel): (API::HitTestResult::linkTitle): (API::HitTestResult::lookupText): (API::HitTestResult::isContentEditable): (API::HitTestResult::isDownloadableMedia): (API::HitTestResult::HitTestResult): (WebKit::WebHitTestResult::absoluteImageURL): Deleted. (WebKit::WebHitTestResult::absolutePDFURL): Deleted. (WebKit::WebHitTestResult::absoluteLinkURL): Deleted. (WebKit::WebHitTestResult::absoluteMediaURL): Deleted. (WebKit::WebHitTestResult::linkLabel): Deleted. (WebKit::WebHitTestResult::linkTitle): Deleted. (WebKit::WebHitTestResult::lookupText): Deleted. (WebKit::WebHitTestResult::isContentEditable): Deleted. (WebKit::WebHitTestResult::isDownloadableMedia): Deleted. (WebKit::WebHitTestResult::WebHitTestResult): Deleted. This is a new obj-c object that we can use for the modern immediate action API. * Shared/API/Cocoa/_WKHitTestResult.h: Added. * Shared/API/Cocoa/_WKHitTestResult.mm: Added. (-[_WKHitTestResult dealloc]): (-[_WKHitTestResult absoluteImageURL]): (-[_WKHitTestResult absolutePDFURL]): (-[_WKHitTestResult absoluteLinkURL]): (-[_WKHitTestResult absoluteMediaURL]): (-[_WKHitTestResult linkLabel]): (-[_WKHitTestResult linkTitle]): (-[_WKHitTestResult lookupText]): (-[_WKHitTestResult isContentEditable]): (-[_WKHitTestResult elementBoundingBox]): (-[_WKHitTestResult copyWithZone:]): (-[_WKHitTestResult _apiObject]): _WKHitTestResult wraps API::HitTestResult. * Shared/API/Cocoa/_WKHitTestResultInternal.h: Added. (API::wrapper): * Shared/Cocoa/APIObject.mm: (API::Object::newObject): Since we want to use the same enum name for the new enum, use a #define instead of a typedef in the old C SPI. This should keep old clients working in the meantime. * Shared/API/c/WKImmediateActionTypes.h: WebHitTestResult::Data is now WebHitTestResultData. * Shared/ContextMenuContextData.h: (WebKit::ContextMenuContextData::webHitTestResultData): (WebKit::ContextMenuContextData::selectedText): Remove WebHitTestResult, and add WebHitTestResultData for the Data struct. * Shared/WebHitTestResult.cpp: Removed. * Shared/WebHitTestResult.h: Removed. * Shared/WebHitTestResultData.cpp: Added. (WebKit::WebHitTestResultData::WebHitTestResultData): (WebKit::WebHitTestResultData::~WebHitTestResultData): (WebKit::WebHitTestResultData::encode): (WebKit::WebHitTestResultData::decode): (WebKit::WebHitTestResultData::platformEncode): (WebKit::WebHitTestResultData::platformDecode): (WebKit::WebHitTestResultData::elementBoundingBoxInWindowCoordinates): * Shared/WebHitTestResultData.h: Added. * Shared/mac/WebHitTestResult.mm: Removed. * Shared/mac/WebHitTestResultData.mm: Copied from Shared/mac/WebHitTestResult.mm. (WebKit::WebHitTestResultData::platformEncode): (WebKit::WebHitTestResultData::platformDecode): (WebKit::WebHitTestResult::Data::platformEncode): Deleted. (WebKit::WebHitTestResult::Data::platformDecode): Deleted. WebHitTestResult::Data is now WebHitTestResultData. * UIProcess/API/APIContextMenuClient.h: (API::ContextMenuClient::~ContextMenuClient): (API::ContextMenuClient::getContextMenuFromProposedMenu): (API::ContextMenuClient::customContextMenuItemSelected): (API::ContextMenuClient::contextMenuDismissed): (API::ContextMenuClient::showContextMenu): WebHitTestResult is now WebHitTestResult * UIProcess/API/APIUIClient.h: (API::UIClient::runJavaScriptPrompt): (API::UIClient::setStatusText): (API::UIClient::mouseDidMoveOverElement): (API::UIClient::unavailablePluginButtonClicked): (API::UIClient::pinnedStateDidChange): (API::UIClient::didBeginTrackingPotentialLongMousePress): (API::UIClient::didRecognizeLongMousePress): (API::UIClient::didCancelTrackingPotentialLongMousePress): * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKHitTestResult.cpp: (WKHitTestResultGetTypeID): (WKHitTestResultCopyAbsoluteImageURL): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageContextMenuClient): (WKPageSetPageUIClient): New WKWebView SPI _immediateActionAnimationControllerForHitTestResult * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/API/Cocoa/WKWebViewPrivate.h: Attempts to keep other ports happy with the re-name. * UIProcess/API/efl/WebAccessibility.cpp: * UIProcess/API/gtk/WebKitContextMenuClient.cpp: * UIProcess/API/gtk/WebKitHitTestResult.cpp: (webkit_hit_test_result_class_init): (webkitHitTestResultCreate): (stringIsEqualToCString): (webkitHitTestResultCompare): * UIProcess/API/gtk/WebKitHitTestResultPrivate.h: * UIProcess/API/gtk/WebKitUIClient.cpp: * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewMakePermissionRequest): (webkitWebViewMouseTargetChanged): (contextMenuDismissed): (webkitWebViewPopulateContextMenu): * UIProcess/API/gtk/WebKitWebViewPrivate.h: Re-name, and just use uint32_t for the old SPI. * UIProcess/API/mac/WKView.mm: (-[WKView _didPerformImmediateActionHitTest:contentPreventsDefault:userData:]): (-[WKView _setDidMoveSwipeSnapshotCallback:]): (-[WKView _immediateActionAnimationControllerForHitTestResult:withType:userData:]): * UIProcess/API/mac/WKViewInternal.h: PageClient will figure out whether to call into WKWebView or WKView for this SPI. * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::immediateActionAnimationControllerForHitTestResult): * UIProcess/WebPageProxy.h: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::immediateActionAnimationControllerForHitTestResult): WebKit::WebHitTestResult::Data is now WebKit::WebHitTestResultData. * UIProcess/WebPageProxy.messages.in: WKImmediateActionController calls through to WebPageProxy which calls to PageClient, which figures out which API to call. Also cache the type as a uint32_t * UIProcess/mac/WKImmediateActionController.h: * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _updateImmediateActionItem]): WebHitTestResult::Data is now WebHitTestResultData. * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::platformInitializeShareMenuItem): New files! * WebKit2.xcodeproj/project.pbxproj: Deal with the #define situation for the enum. * WebKit2Prefix.h: New names for things. WebHitTestResult::Data -> WebHitTestResultData * WebProcess/Plugins/Netscape/NetscapePlugin.h: * WebProcess/Plugins/PDF/PDFPlugin.h: * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::pointInLayoutSpaceForPointInWindowSpace): (WebKit::PDFPlugin::lookupTextAtLocation): * WebProcess/Plugins/Plugin.h: * WebProcess/Plugins/PluginProxy.h: * WebProcess/Plugins/PluginView.h: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::mouseDidMoveOverElement): (WebKit::WebChromeClient::didBeginTrackingPotentialLongMousePress): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performImmediateActionHitTestAtLocation): 2015-10-09 Anders Carlsson Remove two unused WKFrame functions https://bugs.webkit.org/show_bug.cgi?id=149958 Reviewed by Dan Bernstein. * UIProcess/API/C/WKFrame.cpp: (WKFrameCopyChildFrames): Deleted. (WKFrameGetParentFrame): Deleted. * UIProcess/API/C/WKFrame.h: 2015-10-08 Michael Catanzaro Format string issues in NetworkCache.cpp https://bugs.webkit.org/show_bug.cgi?id=149867 Reviewed by Csaba Osztrogonác. Cast enums to ints before printing them to placate GCC's -Wformat. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::retrieve): (WebKit::NetworkCache::Cache::store): 2015-10-08 Michael Catanzaro Format string issue in WebResourceLoadScheduler.cpp https://bugs.webkit.org/show_bug.cgi?id=149868 Reviewed by Csaba Osztrogonác. Cast enums to ints before printing them to placate GCC's -Wformat. * WebProcess/Network/WebResourceLoadScheduler.cpp: (WebKit::WebResourceLoadScheduler::scheduleLoad): 2015-10-08 Carlos Garcia Campos [GTK] Stop using a nested main loop for popup menus https://bugs.webkit.org/show_bug.cgi?id=149920 Reviewed by Sergio Villar Senin. WebPageProxy used to expect the popup menus to run in a nested main loop and invalidated the menu right after showing it. But this is no longer the case, so there's no reason to keep using the nested main loop. * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: (WebKit::WebPopupMenuProxyGtk::~WebPopupMenuProxyGtk): (WebKit::WebPopupMenuProxyGtk::cancelTracking): (WebKit::WebPopupMenuProxyGtk::menuItemActivated): (WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk): Deleted. (WebKit::WebPopupMenuProxyGtk::showPopupMenu): Deleted. (WebKit::WebPopupMenuProxyGtk::shutdownRunLoop): Deleted. (WebKit::WebPopupMenuProxyGtk::menuUnmapped): Deleted. * UIProcess/gtk/WebPopupMenuProxyGtk.h: (WebKit::WebPopupMenuProxyGtk::setActiveItem): Deleted. 2015-10-07 Anders Carlsson Add API for getting a group identifier from a bundle page https://bugs.webkit.org/show_bug.cgi?id=149902 Reviewed by Tim Horton. * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageCopyGroupIdentifier): * WebProcess/InjectedBundle/API/c/WKBundlePage.h: 2015-10-07 Csaba Osztrogonác URTBF after r190678 to fix GTK and EFL builds. * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp: (WebKit::InjectedBundle::setBundleParameters): * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp: (WebKit::InjectedBundle::setBundleParameters): 2015-10-07 Commit Queue Unreviewed, rolling out r190572, r190593, r190594, and r190639. https://bugs.webkit.org/show_bug.cgi?id=149897 Breaks Mavericks build (Requested by litherum on #webkit). Reverted changesets: "Allow WKRetainPtrs to be used as keys in hashing data structures" https://bugs.webkit.org/show_bug.cgi?id=149762 http://trac.webkit.org/changeset/190572 "REGRESSION(189668?): http/tests/notifications/events.html flakily asserts or times out" https://bugs.webkit.org/show_bug.cgi?id=149218 http://trac.webkit.org/changeset/190593 "Prospective Mavericks build fix." http://trac.webkit.org/changeset/190594 "Post-review cleanup after r190572." http://trac.webkit.org/changeset/190639 2015-10-07 Anders Carlsson Provide a way to get a WKFrameInfoRef from a WKFrameRef https://bugs.webkit.org/show_bug.cgi?id=149896 rdar://problem/23016081 Reviewed by Dan Bernstein. * UIProcess/API/C/WKFrame.cpp: (WKFrameCreateFrameInfo): * UIProcess/API/C/WKFrame.h: 2015-10-07 Anders Carlsson Add unreachable URL to _WKObservablePageState https://bugs.webkit.org/show_bug.cgi?id=149893 Reviewed by Dan Bernstein. * UIProcess/API/C/mac/WKPagePrivateMac.h: * UIProcess/API/C/mac/WKPagePrivateMac.mm: (-[WKObservablePageState unreachableURL]): 2015-10-07 Anders Carlsson Add -[WKProcessPool _setObjectsForBundleParametersWithDictionary:] https://bugs.webkit.org/show_bug.cgi?id=149887 Reviewed by Tim Horton. * UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _setObjectsForBundleParametersWithDictionary:]): Copy the dictionary, archive it, and set the values on the UI side bundle parameter data struct. * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Add new SPI. * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.h: * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm: (-[WKWebProcessBundleParameters setParameter:forKey:]): We can just call setValue:forKey: on the dictionary; it will do the right thing if value is nil. (-[WKWebProcessBundleParameters setParametersForKeyWithDictionary:]): Enumerate the dictionary and call setValue:forKey: on each key/value pair. * WebProcess/InjectedBundle/InjectedBundle.h: * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: (WebKit::InjectedBundle::setBundleParameter): If we fail to unarchive a parameter, don't set it to null. (WebKit::InjectedBundle::setBundleParameters): Unarchive the dictionary and update the bundle parameters. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::setInjectedBundleParameters): Call the injected bundle. * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: Add new message. 2015-10-06 Anders Carlsson Expose the bundle parameter object on WKBundleRef https://bugs.webkit.org/show_bug.cgi?id=149860 Reviewed by Tim Horton. * WebKit2.xcodeproj/project.pbxproj: * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessBundleParameters.mm: (-[WKWebProcessBundleParameters description]): Add a description that includes the parameters. * WebProcess/InjectedBundle/API/c/mac/WKBundleMac.h: * WebProcess/InjectedBundle/API/c/mac/WKBundleMac.mm: (WKBundleGetParameters): Add getter. * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: (WebKit::InjectedBundle::initialize): Make sure to decode the bundle parameters before calling out to the bundle. 2015-10-06 Michael Catanzaro [GTK] Add autocleanups https://bugs.webkit.org/show_bug.cgi?id=149588 Reviewed by Darin Adler. * PlatformGTK.cmake: * UIProcess/API/gtk/WebKitAutocleanups.h: Added. * UIProcess/API/gtk/webkit2.h: * WebProcess/InjectedBundle/API/gtk/WebKitWebExtensionAutocleanups.h: Added. * WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h: 2015-10-06 Anders Carlsson Try to fix the 32-bit build. * UIProcess/API/C/mac/WKPagePrivateMac.mm: 2015-10-06 Anders Carlsson WKPage needs to expose a KVO-compliant object, similar to WKWebView https://bugs.webkit.org/show_bug.cgi?id=149851 rdar://problem/22382022 Reviewed by Dan Bernstein. Move the PageLoadStateObserver object from WKBrowsingContextController out into a separate file and make it work with any Objective-C object. Use it in WKObservablePageState and add a WKPageCreateObservableState function. * UIProcess/API/C/mac/WKPagePrivateMac.h: * UIProcess/API/C/mac/WKPagePrivateMac.mm: Renamed from Source/WebKit2/UIProcess/API/C/mac/WKPagePrivateMac.cpp. (-[WKObservablePageState initWithPage:]): (-[WKObservablePageState dealloc]): (-[WKObservablePageState isLoading]): (-[WKObservablePageState title]): (-[WKObservablePageState URL]): (-[WKObservablePageState hasOnlySecureContent]): (-[WKObservablePageState estimatedProgress]): (WKPageCreateObservableState): (WKPageGetProcessIdentifier): (WKPageIsURLKnownHSTSHost): * UIProcess/API/Cocoa/PageLoadStateObserver.h: Added. (WebKit::PageLoadStateObserver::PageLoadStateObserver): * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (PageLoadStateObserver::PageLoadStateObserver): Deleted. * WebKit2.xcodeproj/project.pbxproj: 2015-10-06 Daniel Bates Enable XSLT when building WebKit for iOS using the public iOS SDK https://bugs.webkit.org/show_bug.cgi?id=149827 Reviewed by Alexey Proskuryakov. * Configurations/FeatureDefines.xcconfig: 2015-10-06 Emanuele Aina Fix ENABLE_OPENGL=OFF builds https://bugs.webkit.org/show_bug.cgi?id=146511 Reviewed by Darin Adler. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseRealize): (webkitWebViewBaseDraw): (webkitWebViewBaseDidRelaunchWebProcess): Replace USE(TEXTURE_MAPPER_GL) with USE(TEXTURE_MAPPER) around webkitWebViewRenderAcceleratedCompositingResults() * UIProcess/DrawingAreaProxyImpl.cpp: * UIProcess/DrawingAreaProxyImpl.h: * WebProcess/WebPage/DrawingArea.cpp: (WebKit::DrawingArea::DrawingArea): * WebProcess/WebPage/DrawingArea.h: * WebProcess/WebPage/LayerTreeHost.h: Replace USE(TEXTURE_MAPPER_GL) with USE(TEXTURE_MAPPER) around setNativeSurfaceHandleForCompositing(). * UIProcess/gtk/WebPreferencesGtk.cpp: (WebKit::WebPreferences::platformInitializeStore): Default to no AC if no GL support has been built. * WebProcess/WebPage/DrawingArea.messages.in: Replace USE(TEXTURE_MAPPER_GL) with USE(TEXTURE_MAPPER) around SetNativeSurfaceHandleForCompositing. * WebProcess/WebPage/DrawingAreaImpl.h: * WebProcess/WebPage/DrawingAreaImpl.cpp: (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode): Replace USE(TEXTURE_MAPPER_GL) with USE(TEXTURE_MAPPER) around setNativeSurfaceHandleForCompositing(). (WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing): Force setAcceleratedCompositingEnabled() only if a LayerTreeHost implementation is available, to avoid crashing when building without any GL support. 2015-10-06 Csaba Osztrogonác URTBF after r190611. * CMakeLists.txt: 2015-10-06 Alex Christensen Report error when main resource is blocked by content blocker https://bugs.webkit.org/show_bug.cgi?id=149719 rdar://problem/21970595 Reviewed by Brady Eidson. * Shared/API/c/WKErrorRef.h: * WebProcess/WebCoreSupport/WebErrors.h: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::blockedError): (WebKit::WebFrameLoaderClient::blockedByContentBlockerError): (WebKit::WebFrameLoaderClient::cannotShowURLError): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp: (WebKit::blockedError): (WebKit::blockedByContentBlockerError): (WebKit::cannotShowURLError): * WebProcess/WebCoreSupport/gtk/WebErrorsGtk.cpp: (WebKit::blockedError): (WebKit::blockedByContentBlockerError): (WebKit::cannotShowURLError): * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm: (WebKit::blockedError): (WebKit::blockedByContentBlockerError): (WebKit::cannotShowURLError): Make a new error type for loads that were blocked by a content blocker. 2015-10-05 Jer Noble [iOS] REGRESSION(r190434): Media continues to play when locking screen https://bugs.webkit.org/show_bug.cgi?id=149822 Reviewed by Brent Fulgham. Pass through isSuspendedUnderLock when notifying the WebPage that the applicationWillEnterForeground, and pass that boolean in the userInfo of the WebUIApplicationWillEnterForegroundNotification. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationWillEnterForeground): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applicationWillEnterForeground): 2015-10-05 Anders Carlsson Get rid of some dead code https://bugs.webkit.org/show_bug.cgi?id=149825 Reviewed by Tim Horton. * UIProcess/API/APIUIClient.h: (API::UIClient::didDraw): Deleted. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didDraw): Deleted. * UIProcess/WebPageProxy.h: 2015-10-05 Myles C. Maxfield Prospective Mavericks build fix. Unreviewed. * UIProcess/API/cpp/WKRetainPtr.h: 2015-10-05 Beth Dakin Compress snapshots on iOS https://bugs.webkit.org/show_bug.cgi?id=149814 -and corresponding- rdar://problem/22976230 Reviewed by Simon Fraser. Compress the snapshot. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _takeViewSnapshot]): Since the snapshots are converted to YUV asynchronously, it is possible to get here and have a snapshot that does not yet have an image, so we have to relax this constraint. * UIProcess/mac/ViewSnapshotStore.mm: (WebKit::ViewSnapshotStore::recordSnapshot): 2015-10-05 Myles C. Maxfield Allow WKRetainPtrs to be used as keys in hashing data structures https://bugs.webkit.org/show_bug.cgi?id=149762 Reviewed by Anders Carlsson. Use RefPtr as a model. * UIProcess/API/cpp/WKRetainPtr.h: (WebKit::WKRetainPtr::WKRetainPtr): (WebKit::WKRetainPtr::isHashTableDeletedValue): (WebKit::WKRetainPtr::hashTableDeletedValue): (WTF::HashTraits>::emptyValue): (WTF::HashTraits>::peek): 2015-10-05 Enrica Casucci Cannot select certain text on Wikipedia homepage even when zoomed in. https://bugs.webkit.org/show_bug.cgi?id=149758 rdar://problem/22407947 Reviewed by Dan Bernstein. Several functions that handle gestures for text selection are used for both editable and non editable content. When used on editable content, the point where the gesture occurs needs to be constrained within the boundaries of the editable element. In the WebProcess we decide whether to constrain the point or not only based on the presence of the assisted node. That unfortunately does not guarantee that the user is actually editing the element, but only that the element is focused. Since the knowledge about the interaction exists reliably in the UI process, this patch adds a parameter to each gesture handler that tries to clip the point, to indicate whether the user is actually interacting with the element so that in the WebProcess the assisted node information can be used to constrain the point. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::deviceOrientation): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _isInteractingWithAssistedNode]): (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]): (-[WKContentView selectPositionAtPoint:completionHandler:]): (-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]): (-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]): (-[WKContentView updateSelectionWithExtentPoint:completionHandler:]): (-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::selectWithGesture): (WebKit::WebPageProxy::selectTextWithGranularityAtPoint): (WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection): (WebKit::WebPageProxy::selectPositionAtPoint): (WebKit::WebPageProxy::updateSelectionWithExtentPoint): (WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::selectWithGesture): (WebKit::WebPage::visiblePositionInFocusedNodeForPoint): (WebKit::WebPage::selectPositionAtPoint): (WebKit::WebPage::selectPositionAtBoundaryWithDirection): (WebKit::WebPage::rangeForGranularityAtPoint): (WebKit::WebPage::selectTextWithGranularityAtPoint): (WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): (WebKit::WebPage::updateSelectionWithExtentPoint): 2015-10-05 Antti Koivisto Remove CancelResourceLoader message https://bugs.webkit.org/show_bug.cgi?id=149801 Reviewed by Andreas Kling. It has no clients. * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::messageSenderDestinationID): (WebKit::WebResourceLoader::detachFromCoreLoader): (WebKit::WebResourceLoader::cancelResourceLoader): Deleted. * WebProcess/Network/WebResourceLoader.h: * WebProcess/Network/WebResourceLoader.messages.in: 2015-10-03 Ricky Mondello "Plug-in is blocked" message doesn't draw correctly https://bugs.webkit.org/show_bug.cgi?id=149741 Patch by Conrad Shultz and Ricky Mondello. Reviewed by Anders Carlsson. If a WebKit client sets plug-in X to not be visible to the web, that doesn't mean we shouldn't consult that plug-in when determining what kind of object type an object is. Properly classifying a non-web-visible Netscape plug-in as such allows its bounds to properly measured, allowing it to be drawn properly. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::objectContentType): Use PluginData's supportsMimeType, rather than its supportsWebVisibleMimeType, when determining the ObjectContentType for a MIME type on a url. 2015-10-02 Enrica Casucci Text selection is inaccurate in Wikipedia pages when starting navigation from wikipedia.org. https://bugs.webkit.org/show_bug.cgi?id=149756 rdar://problem/22332409 Reviewed by Tim Horton. When loading a new document into the same WebPage object, we need to clear the assisted node, since there is no guarantee that the node will be blurred. The bug is caused by the use of a stale assisted node to constrain the point where the gesture occurs. A fix for this problem was landed in http://trac.webkit.org/changeset/179885 where the cleanup was added when FrameLoaderClient::detach2 was called. This method doesn't seem to be called any longer for the main frame, so the correct solution is to add the cleanup to didCommitLoad in WebPage. I've also added some checks to webSelectionsRects and selectedTextRange to avoid the use of postLayoutData when the selection is none. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView webSelectionRects]): (-[WKContentView selectedTextRange]): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::detachedFromParent2): Removed call to resetAssistedNodeForFrame. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad): Added call to resetAssistedNodeForFrame. 2015-10-02 Alex Christensen Reloading without content blockers doesn't apply to resource loads after the main frame finishes https://bugs.webkit.org/show_bug.cgi?id=149430 rdar://problem/22742222 Reviewed by Geoffrey Garen. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::createDocumentLoader): Copy the state of whether content extensions are disabled from the Page to the DocumentLoader when making a DocumentLoader. 2015-10-02 Antoine Quint popstate is fired at the wrong time on load https://bugs.webkit.org/show_bug.cgi?id=94265 Reviewed by Darin Adler. Ensure we have a valid page before trying to get to its drawingArea as this could lead to a crash as observed with fast/loader/stateobjects/pushstate-object-types.html. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::restoreViewState): 2015-10-01 Antti Koivisto Network cache: Subresource referer header wrong after cached redirect https://bugs.webkit.org/show_bug.cgi?id=149709 rdar://problem/22917174 Reviewed by Chris Dumez. If a main resource is loaded from a cache entry that involved redirects the document will end up setting the Referer-headers of the subresources to the request URL not the redirected URL * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): If a cache entry involved a redirect synthesize a minimal willSendRequest message so that WebCore side runs through the same code paths as when receiving a redirect from network. 2015-10-01 Carlos Garcia Campos [GTK] Websites with invalid auth header keep loading forever https://bugs.webkit.org/show_bug.cgi?id=149710 Reviewed by Martin Robinson. Do not show the remember credentials checkbutton in the auth dialog if the realm is empty. * UIProcess/API/gtk/WebKitAuthenticationDialog.cpp: (webkitAuthenticationDialogInitialize): 2015-09-30 Chris Dumez Unreviewed, roll out r188331: "NetworkProcess: DNS prefetch happens in the Web Process" Speculative roll out of r188331 as we had a ~2.5% PLT regression around the time it landed and it seems the most likely culprit. I'll reland if the perf bots do not recover after the roll out. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::storageSession): Deleted. * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp: (webkitWebExtensionDidReceiveMessage): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::sendTapHighlightForNodeIfNecessary): * WebProcess/WebProcess.cpp: * WebProcess/WebProcess.h: 2015-09-30 Timothy Horton Compute document marker rects at use time instead of paint time https://bugs.webkit.org/show_bug.cgi?id=149643 Reviewed by Darin Adler. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::didInvalidateDocumentMarkerRects): * WebProcess/WebCoreSupport/WebChromeClient.h: Plumb the notification about invalidated document marker rects through to FindController. * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindUIAfterPageScroll): Make a document-relative PageOverlay, so that we get fast scrolling. (WebKit::FindController::rectsForTextMatchesInRect): Return find hole rects in main-FrameView content coordinates, to match the document-relative page overlay. We'll only return rects that intersect the passed-in rect, which comes from the dirty rect passed to drawRect. (WebKit::FindController::drawRect): Inflate the dirty rect by the border width so that we hit all relevant markers in each tile. Otherwise, we would end up missing the border of a marker that touched the edge of a tile. (WebKit::FindController::didInvalidateDocumentMarkerRects): Repaint (for now, the entire overlay) when document marker rects change. * WebProcess/WebPage/FindController.h: 2015-09-30 Carlos Alberto Lopez Perez [GTK] Build error with -DENABLE_SPELLCHECK=OFF https://bugs.webkit.org/show_bug.cgi?id=146904 Reviewed by Carlos Garcia Campos. Add ifdef guards to allow building when SPELLCHECK is not enabled. * UIProcess/gtk/TextCheckerGtk.cpp: (WebKit::TextChecker::isContinuousSpellCheckingAllowed): (WebKit::TextChecker::setContinuousSpellCheckingEnabled): (WebKit::TextChecker::setGrammarCheckingEnabled): (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged): (WebKit::TextChecker::grammarCheckingEnabledStateChanged): (WebKit::TextChecker::checkSpellingOfString): (WebKit::TextChecker::getGuessesForWord): (WebKit::TextChecker::learnWord): (WebKit::TextChecker::ignoreWord): (WebKit::TextChecker::requestCheckingOfString): (WebKit::TextChecker::checkTextOfParagraph): (WebKit::TextChecker::setSpellCheckingLanguages): (WebKit::TextChecker::loadedSpellCheckingLanguages): 2015-09-30 Gwang Yoon Hwang [GTK] Support HiDPI Properly in WebKitGtk+ with the TextureMapper https://bugs.webkit.org/show_bug.cgi?id=141782 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitWebViewBase.cpp: * UIProcess/gtk/RedirectedXCompositeWindow.cpp: Modified to create scaled size of window. * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::initialize): (WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged): We should apply device scale factor to the root layer to apply the scale matrix before applying other transform matrices. (WebKit::LayerTreeHostGtk::deviceScaleFactor): Added. (WebKit::LayerTreeHostGtk::pageScaleFactor): Added. 2015-09-29 Daniel Bates Make WebKit for iOS Simulator build with the public iOS 9 SDK https://bugs.webkit.org/show_bug.cgi?id=149652 Reviewed by Simon Fraser. * Platform/spi/ios/SafariServicesSPI.h: Add definition for SFSafariViewController. * Platform/spi/ios/UIKitSPI.h: Add more SPI. * WebProcess/cocoa/WebProcessCocoa.mm: Include header pthreadSPI.h. 2015-09-29 Brady Eidson Followup to "Move WebKit2 AsyncTask to WebCore CrossThreadTask." https://bugs.webkit.org/show_bug.cgi?id=149651 Rubberstamped by Alex Christensen. * DatabaseProcess/DatabaseProcess.h: CrossThreadTask is in the WebCore namespace, not WebKit. * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: Ditto. 2015-09-29 Brady Eidson Move WebKit2 AsyncTask to WebCore CrossThreadTask. https://bugs.webkit.org/show_bug.cgi?id=149651 Reviewed by Alex Christensen. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::ensureIndexedDatabaseRelativePathExists): (WebKit::DatabaseProcess::postDatabaseTask): (WebKit::DatabaseProcess::performNextDatabaseTask): (WebKit::DatabaseProcess::fetchWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteDataForOrigins): * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::shutdown): (WebKit::UniqueIDBDatabase::shutdownBackingStore): (WebKit::UniqueIDBDatabase::getOrEstablishIDBDatabaseMetadata): (WebKit::UniqueIDBDatabase::openBackingStoreAndReadMetadata): (WebKit::UniqueIDBDatabase::openTransaction): (WebKit::UniqueIDBDatabase::beginTransaction): (WebKit::UniqueIDBDatabase::commitTransaction): (WebKit::UniqueIDBDatabase::resetTransaction): (WebKit::UniqueIDBDatabase::rollbackTransaction): (WebKit::UniqueIDBDatabase::postTransactionOperation): (WebKit::UniqueIDBDatabase::changeDatabaseVersion): (WebKit::UniqueIDBDatabase::createObjectStore): (WebKit::UniqueIDBDatabase::deleteObjectStore): (WebKit::UniqueIDBDatabase::clearObjectStore): (WebKit::UniqueIDBDatabase::createIndex): (WebKit::UniqueIDBDatabase::deleteIndex): (WebKit::UniqueIDBDatabase::putRecord): (WebKit::UniqueIDBDatabase::getRecord): (WebKit::UniqueIDBDatabase::openCursor): (WebKit::UniqueIDBDatabase::cursorAdvance): (WebKit::UniqueIDBDatabase::cursorIterate): (WebKit::UniqueIDBDatabase::count): (WebKit::UniqueIDBDatabase::deleteRange): (WebKit::UniqueIDBDatabase::openBackingStoreTransaction): (WebKit::UniqueIDBDatabase::beginBackingStoreTransaction): (WebKit::UniqueIDBDatabase::commitBackingStoreTransaction): (WebKit::UniqueIDBDatabase::resetBackingStoreTransaction): (WebKit::UniqueIDBDatabase::rollbackBackingStoreTransaction): (WebKit::UniqueIDBDatabase::changeDatabaseVersionInBackingStore): (WebKit::UniqueIDBDatabase::createObjectStoreInBackingStore): (WebKit::UniqueIDBDatabase::deleteObjectStoreInBackingStore): (WebKit::UniqueIDBDatabase::clearObjectStoreInBackingStore): (WebKit::UniqueIDBDatabase::createIndexInBackingStore): (WebKit::UniqueIDBDatabase::deleteIndexInBackingStore): (WebKit::UniqueIDBDatabase::putRecordInBackingStore): (WebKit::UniqueIDBDatabase::getRecordFromBackingStore): (WebKit::UniqueIDBDatabase::openCursorInBackingStore): (WebKit::UniqueIDBDatabase::advanceCursorInBackingStore): (WebKit::UniqueIDBDatabase::iterateCursorInBackingStore): (WebKit::UniqueIDBDatabase::countInBackingStore): (WebKit::UniqueIDBDatabase::deleteRangeInBackingStore): (WebKit::UniqueIDBDatabase::postMainThreadTask): (WebKit::UniqueIDBDatabase::performNextMainThreadTask): (WebKit::UniqueIDBDatabase::postDatabaseTask): (WebKit::UniqueIDBDatabase::performNextDatabaseTask): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: * WebKit2.xcodeproj/project.pbxproj: 2015-09-29 Chris Dumez Memory cache revalidations should refresh the network disk cache https://bugs.webkit.org/show_bug.cgi?id=149606 Reviewed by Darin Adler. Previously, resource revalidations triggered by the memory cache would bypass the disk cache entirely because the requests are conditional. As a result, when the server responds with a 304, we were unable to update the headers (e.g. new expiration date) of the corresponding entry in the disk cache. This patch updates our disk cache implementation to not bypass the disk cache when the request is conditional. Instead, we look up the cached entry and force its revalidation from the network. If the server then returns a 304, we are now able to update the headers of this cached entry. In such case though, we let the 304 response through to WebCore unlike revalidations triggered by the disk cache. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveResponseAsync): * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::makeUseDecision): (WebKit::NetworkCache::makeRetrieveDecision): 2015-09-16 Carlos Garcia Campos printing does not use minimum page zoom factor https://bugs.webkit.org/show_bug.cgi?id=108507 Reviewed by Darin Adler. Add kWKSnapshotOptionsPrinting flag to indicate the snapshot should be generated in printing mode. * Shared/API/c/WKImage.h: * Shared/API/c/WKSharedAPICast.h: (WebKit::toSnapshotOptions): * Shared/ImageOptions.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::numberOfPages): Pass the frame as a reference instead of a pointer. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scaledSnapshotWithOptions): In case of printing, calculate the bitmap height based on the number of pages. (WebKit::WebPage::snapshotAtSize): In case of printing, use PrintContext::spoolAllPagesWithBoundaries() and return. 2015-09-28 Brent Fulgham Expose 'geometryFlipped' state for debugging/logging purposes https://bugs.webkit.org/show_bug.cgi?id=149557 Reviewed by Simon Fraser. * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp: (WebKit::PlatformCALayerRemote::geometryFlipped): Added. * WebProcess/WebPage/mac/PlatformCALayerRemote.h: 2015-09-28 Brady Eidson Add an IDB Server that can roundtrip a request back to the client. https://bugs.webkit.org/show_bug.cgi?id=149603 Reviewed by Alex Christensen. * WebProcess/Databases/WebDatabaseProvider.h: 2015-09-28 Beth Dakin Heavy taps on links are sometimes interpreted as the preview gesture https://bugs.webkit.org/show_bug.cgi?id=149304 -and corresponding- rdar://problem/22689258 Rubber-stamped by Tim Horton. Rolling out this patch. We should try to fix this at the UIKit-level. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): (-[WKContentView _interactionStoppedFromPreviewItemController:]): 2015-09-27 Wenson Hsieh Expose a WKWebView API for allowing programmatic focus to trigger node assistance https://bugs.webkit.org/show_bug.cgi?id=149567 Reviewed by Darin Adler. Adds an API method to WKWebView that allows clients to override the default iOS behavior of not starting node assistance when programmatically focusing. Also fixes a bug caused by naively introducing the flag where the autofocus attribute could trigger node assistance before layout occurs, causing an ASSERT to fail in EditorState::postLayoutData. I fixed this issue by not assisting the node if the editor state is missing post layout data, instead deferring node assistance until layout has occurred. * UIProcess/API/Cocoa/WKWebView.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): Initializes the new node assistance flag to NO, which is the current default behavior. (-[WKWebView canAssistOnProgrammaticFocus]): (-[WKWebView setCanAssistOnProgrammaticFocus:]): New API method that allows clients to set node assistance behavior upon programmatic focus. * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): Added new node assistance flag to configuration. (-[WKWebViewConfiguration _canAssistOnProgrammaticFocus]): (-[WKWebViewConfiguration _setCanAssistOnProgrammaticFocus:]): * UIProcess/WebPageProxy.h: Added NodeAssistanceArguments struct. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Do not return early if the node assistance flag is set to allow programmatic focus. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didCommitLayerTree): After committing the layer tree, if we have deferred starting node assistance, immediately trigger node assistance. (WebKit::WebPageProxy::startAssistingNode): Defer starting node assistance if we have not yet repainted. (WebKit::WebPageProxy::stopAssistingNode): Also cancel any deferred node assistance. 2015-09-26 Carlos Garcia Campos REGRESSION(r188639): [GTK] Several inspector tests started to time out in GTK+ bots after r188639 https://bugs.webkit.org/show_bug.cgi?id=148569 Reviewed by Darin Adler. * PlatformGTK.cmake: Add missing inspector files required for layout tests. 2015-09-25 Eric Carlson Clean up user media request internal API https://bugs.webkit.org/show_bug.cgi?id=149527 Reviewed by Tim Horton. * UIProcess/API/C/WKUserMediaPermissionRequest.cpp: (WKUserMediaPermissionRequestVideoDeviceUIDs): New, renamed from WKUserMediaPermissionRequestDeviceNamesVideo. (WKUserMediaPermissionRequestAudioDeviceUIDs): New, renamed from WKUserMediaPermissionRequestDeviceNamesAudio. (WKUserMediaPermissionRequestAllowBest): Deleted. (WKUserMediaPermissionRequestDeviceNamesVideo): Deleted. (WKUserMediaPermissionRequestDeviceNamesAudio): Deleted. (WKUserMediaPermissionRequestFirstVideoDeviceUID): Deleted. (WKUserMediaPermissionRequestFirstAudioDeviceUID): Deleted. * UIProcess/API/C/WKUserMediaPermissionRequest.h: * UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp: (webkitUserMediaPermissionRequestAllow): Update for UserMediaRequest API change. * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::createRequest): Get rid of the bool parameters. Switch audio/video parameter order to be consistent with everywhere else. (WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision): Ditto. * UIProcess/UserMediaPermissionRequestManagerProxy.h: * UIProcess/UserMediaPermissionRequestProxy.cpp: (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy): Get rid of the bool parameters. Switch audio/video parameter order to be consistent with everywhere else. (WebKit::UserMediaPermissionRequestProxy::allow): Switch audio/video parameter order. (WebKit::UserMediaPermissionRequestProxy::getDeviceNameForUID): Deleted. * UIProcess/UserMediaPermissionRequestProxy.h: (WebKit::UserMediaPermissionRequestProxy::create): (WebKit::UserMediaPermissionRequestProxy::videoDeviceUIDs): (WebKit::UserMediaPermissionRequestProxy::audioDeviceUIDs): (WebKit::UserMediaPermissionRequestProxy::firstAudioDeviceUID): (WebKit::UserMediaPermissionRequestProxy::requiresAudio): Deleted. (WebKit::UserMediaPermissionRequestProxy::requiresVideo): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestUserMediaPermissionForFrame): Get rid of the bool parameters. Switch audio/video parameter order to be consistent with everywhere else. * UIProcess/WebPageProxy.h: Ditto. * UIProcess/WebPageProxy.messages.in: Ditto. * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: (WebKit::UserMediaPermissionRequestManager::startRequest): Get rid of bool params, the device vectors have the same information. (WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision): Switch audio/video parameter order to be consistent with everywhere else. deviceUIDVideo -> videoDeviceUID, deviceUIDAudio -> audioDeviceUID. * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didReceiveUserMediaPermissionDecision): Switch audio/video parameter order. * WebProcess/WebPage/WebPage.h: 2015-09-25 Simon Fraser [iOS WK2] Add viewport tests and fix runUIScript() timing issues https://bugs.webkit.org/show_bug.cgi?id=149577 Reviewed by Tim Horton. When calling testRunner.runUIScript() from a page load event, the script could run in the UI process before the current remote layer tree transaction had been handled there. This meant that runUIScript() could query state which was about to change. Fix by delaying the execution of the UI script until a layer tree transaction has been handled by the UI process, leveraging the existing DrawingAreaProxy::dispatchAfterEnsuringDrawing(). This is done using a new C SPI function WKPageCallAfterNextPresentationUpdate(), which is mirrored in the Obj-C SPI as -_doAfterNextPresentationUpdate:. Move WKWebView SPI which is testing-related into a WKTesting category. It is expected that this will grow significantly. * UIProcess/API/C/WKPage.cpp: (WKPageCallAfterNextPresentationUpdate): * UIProcess/API/C/WKPagePrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::callAfterNextPresentationUpdate): * UIProcess/WebPageProxy.h: * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: (WebKit::TiledCoreAnimationDrawingAreaProxy::dispatchAfterEnsuringDrawing): 2015-09-25 Alexey Proskuryakov [Mac] Media tests start to time out after a few days of bot uptime https://bugs.webkit.org/show_bug.cgi?id=149468 Reviewed by Darin Adler. Make the fix work with WebKit2, and avoid touching user's media cache for WebKit1. When UI process is not sandboxed, inherit DIRHELPER_USER_DIR_SUFFIX from it. This means that during testing, WebContent uses a temporary directory of the form /private/var/folders/.../T/WebKitTestRunner-VKjmz0/com.apple.WebKit.WebContent.Development, instead of /private/var/folders/.../T/com.apple.WebKit.WebContent.Development+WebKitTestRunner. WebKit1 now also better respects a temporary directory of the form /private/var/folders/.../T/DumpRenderTree-VKjmz0, instead of the default, which makes CoreMedia put its cache inside it. As a result, almost everything is isolated per testing process, and deleted at the end. Same with cache directories. The only outliers that I know of are plug-in directories, which are per-process, but are not under the testing root, and thus aren't deleted. * PluginProcess/mac/PluginProcessMac.mm: (WebKit::PluginProcess::initializeSandbox): * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::fromConnection): (WebKit::ChildProcessProxy::getLaunchOptions): (WebKit::ChildProcessProxy::connect): * Shared/ChildProcessProxy.h: * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: (WebKit::XPCServiceInitializerDelegate::getExtraInitializationData): * Shared/SandboxInitializationParameters.h: (WebKit::SandboxInitializationParameters::sandboxProfile): (WebKit::SandboxInitializationParameters::setUserDirectorySuffix): (WebKit::SandboxInitializationParameters::userDirectorySuffix): (WebKit::SandboxInitializationParameters::setSystemDirectorySuffix): Deleted. (WebKit::SandboxInitializationParameters::systemDirectorySuffix): Deleted. * Shared/ios/ChildProcessIOS.mm: (WebKit::ChildProcess::initializeSandbox): * Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::initializeSandbox): * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::getLaunchOptions): * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::getLaunchOptions): * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::getLaunchOptions): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::getLaunchOptions): 2015-09-25 Beth Dakin Clicking on a data detected item inside a form control always pops up a map on force touch trackpad https://bugs.webkit.org/show_bug.cgi?id=149559 -and corresponding- rdar://problem/22826796 Reviewed by Tim Horton. Look for Data Detected text for text nodes and HitTestResults that are over text inside form controls. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performImmediateActionHitTestAtLocation): 2015-09-25 Carlos Garcia Campos [GTK] ASSERTION FAILED: !m_inUpdateBackingStoreState in DrawingAreaImpl::display() after DrawingAreaImpl::forceRepaint() https://bugs.webkit.org/show_bug.cgi?id=148956 Reviewed by Žan Doberšek. This is because those tests call notifyDone in the onresize event handler. InjectedBundlePage::dump() always calls WKBundlePageForceRepaint() before dumping. When the view is resized DrawingAreaImpl::updateBackingStoreState() is called, so if the size has changed the FrameView::resize() method is called and all children are resized, so the onresize handlers happen at that point, before the m_inUpdateBackingStoreState is set to false again. For WTR we could probably just return early from froceReapaint() when m_inUpdateBackingStoreState is true, because in that case we know the layout is updated because of the resize and the actual display is not really needed. But the UI process can also request a force repaint, so we could wait until the backing store update is done and then force the repaint. For WTR it will happen after the dump, but it shouldn't be a problem. * WebProcess/WebPage/DrawingAreaImpl.cpp: (WebKit::DrawingAreaImpl::forceRepaint): (WebKit::DrawingAreaImpl::updateBackingStoreState): * WebProcess/WebPage/DrawingAreaImpl.h: 2015-09-24 Tim Horton Find hole drawn at subframe's 0x0 when a subframe find match is not rendered https://bugs.webkit.org/show_bug.cgi?id=149543 Reviewed by Beth Dakin. * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::rectsForTextMatches): Don't add empty rects to the list. Later code will just inflate them and end up drawing a nonsensical find hole. 2015-09-24 Chris Dumez Drop XPATH_NAMESPACE_NODE from Node::NodeType enum https://bugs.webkit.org/show_bug.cgi?id=149532 Reviewed by Ryosuke Niwa. Drop XPATH_NAMESPACE_NODE from Node::NodeType enum as there is currently no way to construct such Node in WebKit. This avoid having to handle this Node type everywhere. * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm: (WebKit::WKDOMNodeClass): Deleted. 2015-09-24 Ryosuke Niwa Ran sort-Xcode-project-file. * WebKit2.xcodeproj/project.pbxproj: 2015-09-23 Timothy Horton Link highlight rect is too rounded on blocks with border-radius https://bugs.webkit.org/show_bug.cgi?id=149511 Reviewed by Dan Bernstein. * UIProcess/ios/WKContentViewInteraction.mm: (nsSizeForTapHighlightBorderRadius): (-[WKContentView _updateTapHighlight]): Scale the border radius from content to view coordinates, just like we do for the rects that WebKit returns us. 2015-09-22 Gyuyoung Kim Add a file of pointer-lock to cmake ports https://bugs.webkit.org/show_bug.cgi?id=149453 Reviewed by Csaba Osztrogonác. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): Fix a build break. 2015-09-22 Anders Carlsson URL of page visited in private browsing still appears in Activity Monitor after page is closed https://bugs.webkit.org/show_bug.cgi?id=149475 rdar://problem/22684521 Reviewed by Dan Bernstein. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::close): Make sure to call updateActivePages after removing the page from the page map. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::updateActivePages): Don't include pages that have private browsing enabled. 2015-09-22 Tim Horton Make it more obvious when using an unaccelerated image buffer, and fix a few callers who do https://bugs.webkit.org/show_bug.cgi?id=149428 Reviewed by Simon Fraser and Darin Adler. * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp: (WebKit::ThreadSafeCoordinatedSurface::create): 2015-09-22 Andreas Kling [WK2][NetworkCache] New entry bodies remain in dirty memory after being written to disk. Reviewed by Antti Koivisto. Call msync(MS_ASYNC) on cache entry bodies after writing their data to a memory-mapped file. This turns the previously dirty memory into clean memory, reducing our effective footprint. I previously believed this would happen automatically when the kernel finds itself under memory pressure, around the same time as it starts dropping volatile pages. Turns out that's not the case. Even under considerable pressure, we never flush this memory to file. So let's take care of it ourselves. If this ends up generating more IO activity than we're comfortable with on some scenario, we can look at throttling. * NetworkProcess/cache/NetworkCacheData.cpp: (WebKit::NetworkCache::Data::mapToFile): 2015-09-22 Chris Dumez Drop support for legacy EntityReference DOM Node type https://bugs.webkit.org/show_bug.cgi?id=149348 Reviewed by Darin Adler. Drop handling EntityReference Nodes. * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm: (WebKit::WKDOMNodeClass): Deleted. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::isAssistableElement): 2015-09-22 Commit Queue Unreviewed, rolling out r189616. https://bugs.webkit.org/show_bug.cgi?id=149456 suspected cause of multiple regressions (Requested by kling on #webkit). Reverted changeset: "[JSC] Weak should only accept cell pointees." https://bugs.webkit.org/show_bug.cgi?id=148955 http://trac.webkit.org/changeset/189616 2015-09-21 Timothy Horton Allow DataDetectors to pre-filter telephone number menu items https://bugs.webkit.org/show_bug.cgi?id=149444 Reviewed by Sam Weinig. * Platform/mac/MenuUtilities.mm: (WebKit::menuItemForTelephoneNumber): (WebKit::menuForTelephoneNumber): Let DataDetectors know what kind of items we want, so that they can avoid some unnecessary work in cases where we were just going to throw away the items anyway. 2015-09-21 Gwang Yoon Hwang [Threaded Compositor] Modified to use reference of GraphicsContext instead of pointer https://bugs.webkit.org/show_bug.cgi?id=149399 Reviewed by Darin Adler. This fixes build failure after r189144 * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp: (WebKit::ThreadSafeCoordinatedSurface::paintToSurface): (WebKit::ThreadSafeCoordinatedSurface::beginPaint): (WebKit::ThreadSafeCoordinatedSurface::endPaint): * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.h: 2015-09-21 Simon Fraser Add the ability for tests to run script in the UI process in WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=149356 Reviewed by Tim Horton. Expose a few private functions for testing. * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/API/Cocoa/WKWebViewPrivate.h: 2015-09-21 Tim Horton Layout milestones aren't synchronized with UI-side compositing transactions https://bugs.webkit.org/show_bug.cgi?id=149362 Reviewed by Anders Carlsson. Because layout milestones are primarily used to synchronize things with the displayed layout/rendering of the page, they should fire at the same time as the contents of the view change. However, with UI-side compositing, the layer tree transaction will most likely come in *after* the layout milestones associated with its contents fire, breaking this synchronization. Instead, put the layout milestones inside the transaction and fire them immediately after it is committed in the UI process. * Shared/mac/RemoteLayerTreeTransaction.h: (WebKit::RemoteLayerTreeTransaction::setCallbackIDs): (WebKit::RemoteLayerTreeTransaction::newlyReachedLayoutMilestones): (WebKit::RemoteLayerTreeTransaction::setNewlyReachedLayoutMilestones): * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTransaction::RemoteLayerTreeTransaction): (WebKit::RemoteLayerTreeTransaction::encode): (WebKit::RemoteLayerTreeTransaction::decode): Add LayoutMilestones to the transaction. * UIProcess/API/APILoaderClient.h: (API::LoaderClient::didLayout): * UIProcess/API/APINavigationClient.h: (API::NavigationClient::renderingProgressDidChange): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageLoaderClient): (WKPageSetPageNavigationClient): * UIProcess/Cocoa/NavigationState.h: * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::renderingProgressDidChange): * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didCommitLayerTree): Remove the UserData parameter from didLayout/renderingProgressDidChange, except for at the API level where we'll always pass null. Nobody uses UserData on didLayout, and we'll assert if any client sets it (and it won't get passed through to the UI process). * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didLayoutForCustomContentProvider): Just call didLayout with the relevant milestones instead of reimplementing it. (WebKit::WebPageProxy::didLayout): * UIProcess/WebPageProxy.h: Make didLayout public. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidLayout): Let WebPage handle dispatching didLayout. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::dispatchDidLayout): * WebProcess/WebPage/WebPage.h: Let the DrawingArea handle dispatching didLayout. If it doesn't want to handle it, we'll just do the normal thing and dispatch an async message. * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): If we reach a new layout milestone, dispatch didLayout client/delegate callbacks. * WebProcess/WebPage/DrawingArea.h: (WebKit::DrawingArea::dispatchDidLayout): * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::flushLayers): (WebKit::RemoteLayerTreeDrawingArea::dispatchDidLayout): Queue up milestones as we reach them, and send them in the transaction. 2015-09-20 Youenn Fablet Remove XHR_TIMEOUT compilation guard https://bugs.webkit.org/show_bug.cgi?id=149260 Reviewed by Benjamin Poulain. * Configurations/FeatureDefines.xcconfig: 2015-09-19 Michael Catanzaro [GTK] WebEditorClient::supportsGlobalSelection returns true under Wayland https://bugs.webkit.org/show_bug.cgi?id=149375 Reviewed by Darin Adler. WebEditorClient::supportsGlobalSelection should return false when running under Wayland, since Wayland does not have any equivalent for PRIMARY or the concept of a global selection. * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::supportsGlobalSelection): 2015-09-19 Dan Bernstein Attempted build fix. * mac/postprocess-framework-headers.sh: Fixed an overzealous regular expression. 2015-09-18 Commit Queue Unreviewed, rolling out r189908. https://bugs.webkit.org/show_bug.cgi?id=149368 Broke run-webkit-tests --pixel (Requested by ap on #webkit). Reverted changeset: "printing does not use minimum page zoom factor" https://bugs.webkit.org/show_bug.cgi?id=108507 http://trac.webkit.org/changeset/189908 2015-09-18 Andy Estes [iOS] did{Start,Finish}LoadForQuickLookDocumentInMainFrame is never called on WKNavigationDelegate https://bugs.webkit.org/show_bug.cgi?id=149360 Reviewed by Tim Horton. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didStartLoadForQuickLookDocumentInMainFrame): Called on m_navigationDelegate if non-null. (WebKit::WebPageProxy::didFinishLoadForQuickLookDocumentInMainFrame): Ditto. 2015-09-18 Beth Dakin Snapshots broken on iOS https://bugs.webkit.org/show_bug.cgi?id=149354 Reviewed by Tim Horton. We need to send the IOSurface to ViewSnapshot::create() for this to work. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _takeViewSnapshot]): 2015-09-18 Chris Dumez Drop support for Entity Node type https://bugs.webkit.org/show_bug.cgi?id=149239 Reviewed by Darin Adler. Stop handling the Entity node type. * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm: 2015-09-17 Brian Burg ASSERT(!m_frontendRouter->hasLocalFrontend()) when running Web Inspector tests https://bugs.webkit.org/show_bug.cgi?id=149006 Reviewed by Joseph Pecoraro. Stop using InspectorController to close the frontend page. Go through the FrontendClient instead. Reduce redundant code paths. This change seems to fix some recent crashes that were seen when closing Safari with Web Inspector open. These were caused by the frontend channel not being disconnected at the right time. * WebProcess/WebCoreSupport/WebInspectorClient.cpp: (WebKit::WebInspectorClient::inspectedPageDestroyed): (WebKit::WebInspectorClient::closeLocalFrontend): Deleted. * WebProcess/WebCoreSupport/WebInspectorClient.h: * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::close): * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::establishConnection): Save a pointer to the frontend's InspectorController since we may need to use it while the page is being destructed and its getter is no longer accessible. (WebKit::WebInspectorUI::closeWindow): Explicitly remove the frontend client when closing the frontend. * WebProcess/WebPage/WebInspectorUI.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::inspector): Allow clients to specify whether an inspector should be eagerly created. Without this, we may accidentally create an instance during teardown. * WebProcess/WebPage/WebPage.h: 2015-09-18 Emanuele Aina Fix build with --no-indexed-database after r189831 https://bugs.webkit.org/show_bug.cgi?id=149342 Reviewed by Csaba Osztrogonác. * WebProcess/Databases/WebDatabaseProvider.h: Add ENABLE(INDEXED_DATABASE) guard around supportsModernIDB(). 2015-09-17 Beth Dakin Heavy taps on links are sometimes interpreted as the preview gesture https://bugs.webkit.org/show_bug.cgi?id=149304 -and corresponding- rdar://problem/22689258 Reviewed by Tim Horton. If the preview gesture starts and stop and less than 250 milliseconds have passed, then call _attemptClickAtLocation to treat it as a normal tap. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): (-[WKContentView _interactionStartedFromPreviewItemController:]): (-[WKContentView _interactionStoppedFromPreviewItemController:]): 2015-09-17 Tim Horton After restoring tabs, swipes back to fast loading pages hang for 3 seconds https://bugs.webkit.org/show_bug.cgi?id=148764 Reviewed by Beth Dakin. * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::endSwipeGesture): Don't wait for the render tree size threshold if we don't have one. 2015-09-17 Timothy Horton REGRESSION (r189287): 2.5% PLT regression https://bugs.webkit.org/show_bug.cgi?id=149277 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView _takeViewSnapshot]): Don't take an extra unused snapshot. 2015-09-17 Michael Catanzaro [GTK] Crash in WebKit::BackingStore::createBackend running under Wayland https://bugs.webkit.org/show_bug.cgi?id=147453 Reviewed by Carlos Garcia Campos. Except when running on X11, this function always crashes if called before the web view is realized, as gdk_window_create_similar_surface will return null in that case. Avoid this by simply realizing the widget before calling that. Thanks to Carlos Garnacho for some debugging help. * UIProcess/cairo/BackingStoreCairo.cpp: (WebKit::BackingStore::createBackend): 2015-09-16 Carlos Garcia Campos printing does not use minimum page zoom factor https://bugs.webkit.org/show_bug.cgi?id=108507 Reviewed by Darin Adler. Add kWKSnapshotOptionsPrinting flag to indicate the snapshot should be generated in printing mode. * Shared/API/c/WKImage.h: * Shared/API/c/WKSharedAPICast.h: (WebKit::toSnapshotOptions): * Shared/ImageOptions.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::numberOfPages): Pass the frame as a reference instead of a pointer. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scaledSnapshotWithOptions): In case of printing, calculate the bitmap height based on the number of pages. (WebKit::WebPage::snapshotAtSize): In case of printing, use PrintContext::spoolAllPagesWithBoundaries() and return. 2015-09-16 Joseph Pecoraro Web Inspector: Fix common typo "supress" => "suppress" https://bugs.webkit.org/show_bug.cgi?id=149199 Reviewed by Gyuyoung Kim. * PluginProcess/mac/PluginProcessMac.mm: (WebKit::PluginProcess::platformInitializeProcess): 2015-09-16 Dan Bernstein [iOS] Inline implementation of -[WKImagePreviewViewController previewActions] https://bugs.webkit.org/show_bug.cgi?id=149224 Reviewed by Tim Horton. * Platform/spi/ios/UIKitSPI.h: Declare UIViewControllerPreviewAction and its factory method. * UIProcess/WKImagePreviewViewController.mm: (-[WKImagePreviewViewController previewActions]): Moved here. 2015-09-16 Alexey Proskuryakov [Mac] Allow reading from SubmitDiagInfo.domains in Networking process https://bugs.webkit.org/show_bug.cgi?id=149176 rdar://problem/22483680 Reviewed by Darin Adler. * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: 2015-09-16 Dan Bernstein [iOS] Unifiy WebKit2PlatformTouchPoint definition https://bugs.webkit.org/show_bug.cgi?id=149221 Reviewed by Darin Adler. * Shared/WebEventConversion.cpp: (WebKit::touchEventType): (WebKit::WebKit2PlatformTouchPoint::WebKit2PlatformTouchPoint): 2015-09-16 Carlos Garcia Campos [GTK] Web Process crash recovery no longer works https://bugs.webkit.org/show_bug.cgi?id=149064 Reviewed by Žan Doberšek. After a web process crash the new DrawingArea is never resized, so nothing is rendered into the web view. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseDidRelaunchWebProcess): Queue a widget resize to ensure the new DrawingAreaProxy is resized. 2015-09-15 Ryosuke Niwa Add ShadowRoot interface and Element.prototype.attachShadow https://bugs.webkit.org/show_bug.cgi?id=149187 Reviewed by Antti Koivisto. * Configurations/FeatureDefines.xcconfig: 2015-09-15 Brady Eidson Add empty IDBFactory implementation for Modern IDB. https://bugs.webkit.org/show_bug.cgi?id=149191 Reviewed by Jer Noble. * WebProcess/Databases/WebDatabaseProvider.h: 2015-09-15 Brady Eidson Move most IDB object encoding/decoding from WebKit2 to WebCore. https://bugs.webkit.org/show_bug.cgi?id=149152 Reviewed by Alex Christensen. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. * Shared/WebCoreArgumentCoders.h: 2015-09-14 Brady Eidson Make the enum IDBKey::Type into a utility enum class. https://bugs.webkit.org/show_bug.cgi?id=149149 Reviewed by Alex Christensen. * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::putRecordInBackingStore): * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): 2015-09-14 Wenson Hsieh WKWebView scroll deceleration rate is not being set properly https://bugs.webkit.org/show_bug.cgi?id=149145 Reviewed by Simon Fraser. We are not currently setting the web view's deceleration rate to the correct preferred value because we are setting the decelerationRate property of the scrollView, which snaps input values to the closer of two predefined UIKit constants, UIScrollViewDecelerationRateFast and UIScrollViewDecelerationRateNormal. To fix this, we directly set the horizontal and vertical scroll deceleration factors to the preferred value. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView scrollViewWillBeginDragging:]): Directly set the scroll view's deceleration factor without going through the decelerationRate property. 2015-09-14 Dan Bernstein Consolidate touch event code dealing with force. Reviewed by Beth Dakin. * Shared/WebEvent.h: (WebKit::WebPlatformTouchPoint::state): (WebKit::WebPlatformTouchPoint::setForce): (WebKit::WebPlatformTouchPoint::force): * Shared/ios/NativeWebTouchEventIOS.mm: (WebKit::positionForCGPoint): (WebKit::NativeWebTouchEvent::extractWebTouchPoint): (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): * Shared/ios/WebPlatformTouchPointIOS.cpp: (WebKit::WebPlatformTouchPoint::encode): (WebKit::WebPlatformTouchPoint::decode): 2015-09-14 Alex Christensen Progress towards CMake on Mac. https://bugs.webkit.org/show_bug.cgi?id=149123 Reviewed by Chris Dumez. * PlatformMac.cmake: Added some more sources. 2015-09-14 Dan Bernstein [iOS] Stop importing WebKitAdditions/WKContentViewInteraction.mm https://bugs.webkit.org/show_bug.cgi?id=149127 Reviewed by Beth Dakin. * Platform/spi/ios/UIKitSPI.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): 2015-09-14 Brady Eidson Rename current concrete IDB implementation to "Legacy". https://bugs.webkit.org/show_bug.cgi?id=149118 Reviewed by Alex Christensen. * CMakeLists.txt: 2015-09-14 Gyuyoung Kim [EFL] Remove create() factory function in EvasGLContext and EvasGLSurface https://bugs.webkit.org/show_bug.cgi?id=149110 Reviewed by Csaba Osztrogonác. It is not good implementation we support both create() factory function and public constructor. In EvasGLContext and EvasGLSurface cases, those have supported both. However create() factory is only used by EwkView. Thus let's remove the create() function, then EwkView creates EvasGLContext using std::make_unique<> directly. * UIProcess/API/efl/EwkView.cpp: (EwkView::EwkView): (EwkView::createGLSurface): 2015-09-13 Gyuyoung Kim Remove all uses of PassRefPtr in crypto, storage, and history https://bugs.webkit.org/show_bug.cgi?id=149091 Reviewed by Andreas Kling. * WebProcess/Storage/StorageNamespaceImpl.cpp: (WebKit::StorageNamespaceImpl::storageArea): * WebProcess/Storage/StorageNamespaceImpl.h: 2015-09-13 Dan Bernstein Define HAVE_LINK_PREVIEW in WebKit2 https://bugs.webkit.org/show_bug.cgi?id=149099 Reviewed by Sam Weinig. * Platform/spi/ios/UIKitSPI.h: * UIProcess/WKImagePreviewViewController.mm: * config.h: 2015-09-12 Myles C. Maxfield [Cocoa] Allow testing with the system language https://bugs.webkit.org/show_bug.cgi?id=148671 Reviewed by Anders Carlsson and Alexey Proskuryakov. This patch adds two new SPI functions for setting and retrieving a vector of override languages to/from the WKContextConfiguration. The implementation of these functions holds state inside WebProcessPoolConfiguration. Then, when we launch a process, the WebProcessProxy will inject these override languages into the ProcessLauncher::LaunchOptions so that the ProcessLauncher can inject these languages into the XPC Bootstrap message. Then, in the Web Process's main(), the XPC Boostrap message is read, and the platform languages are set via NSUserDefaults setting a volatile domain. * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm: (main): Set the volatile domain with NSUserDefaults. * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: Hold state for the override languages. * UIProcess/API/C/WKContextConfigurationRef.cpp: (WKContextConfigurationCopyOverrideLanguages): SPI. (WKContextConfigurationSetOverrideLanguages): Ditto. * UIProcess/API/C/WKContextConfigurationRef.h: * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::connectToService): Inject the languages into the XPC Bootstrap message. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::getLaunchOptions): Inject the override languages into the ProcessLauncher::LaunchOptions. 2015-09-12 Alexey Proskuryakov [iOS] Allow UDP networking https://bugs.webkit.org/show_bug.cgi?id=149081 rdar://problem/22291743 Reviewed by Sam Weinig. * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: 2015-09-12 Joseph Pecoraro Web Inspector: Extract InspectorFrontendAPI dispatching from WebInspectorUI https://bugs.webkit.org/show_bug.cgi?id=149089 Reviewed by Brian Burg. * CMakeLists.txt: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.cpp: Added. (WebKit::WebInspectorFrontendAPIDispatcher::WebInspectorFrontendAPIDispatcher): (WebKit::WebInspectorFrontendAPIDispatcher::reset): (WebKit::WebInspectorFrontendAPIDispatcher::frontendLoaded): (WebKit::WebInspectorFrontendAPIDispatcher::dispatchCommand): (WebKit::WebInspectorFrontendAPIDispatcher::dispatchMessageAsync): (WebKit::WebInspectorFrontendAPIDispatcher::evaluateExpressionOnLoad): * WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.h: Added. * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::WebInspectorUI): (WebKit::WebInspectorUI::establishConnection): (WebKit::WebInspectorUI::frontendLoaded): (WebKit::WebInspectorUI::setDockSide): (WebKit::WebInspectorUI::setDockingUnavailable): (WebKit::WebInspectorUI::showConsole): (WebKit::WebInspectorUI::showResources): (WebKit::WebInspectorUI::showMainResourceForFrame): (WebKit::WebInspectorUI::startPageProfiling): (WebKit::WebInspectorUI::stopPageProfiling): (WebKit::WebInspectorUI::didSave): (WebKit::WebInspectorUI::didAppend): (WebKit::WebInspectorUI::sendMessageToFrontend): (WebKit::WebInspectorUI::evaluateCommandOnLoad): Deleted. (WebKit::WebInspectorUI::evaluateExpressionOnLoad): Deleted. (WebKit::WebInspectorUI::evaluatePendingExpressions): Deleted. * WebProcess/WebPage/WebInspectorUI.h: (WebKit::WebInspectorUI::evaluateCommandOnLoad): Deleted. 2015-09-12 Joseph Pecoraro Web Inspector: Move Already Generic Inspector Page Context Menu to Generic Setup https://bugs.webkit.org/show_bug.cgi?id=149088 Reviewed by Brian Burg. * UIProcess/WebInspectorProxy.cpp: (WebKit::getContextMenuFromProposedMenu): (WebKit::WebInspectorProxy::eagerlyCreateInspectorPage): * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::getContextMenuFromProposedMenu): Deleted. (WebKit::WebInspectorProxy::platformCreateInspectorPage): 2015-09-12 Brian Burg Web Inspector: disambiguate inspected/frontend controllers and pages in backend code https://bugs.webkit.org/show_bug.cgi?id=149071 Reviewed by Joseph Pecoraro. * WebProcess/WebCoreSupport/WebInspectorClient.cpp: (WebKit::WebInspectorClient::inspectedPageDestroyed): Renamed. (WebKit::WebInspectorClient::openLocalFrontend): Renamed. (WebKit::WebInspectorClient::closeLocalFrontend): Renamed. (WebKit::WebInspectorClient::inspectorDestroyed): Deleted. (WebKit::WebInspectorClient::openInspectorFrontend): Deleted. (WebKit::WebInspectorClient::closeInspectorFrontend): Deleted. * WebProcess/WebCoreSupport/WebInspectorClient.h: 2015-09-11 Beth Dakin Another build fix. * UIProcess/mac/ViewSnapshotStore.h: (WebKit::ViewSnapshot::size): (WebKit::ViewSnapshot::imageSizeInBytes): 2015-09-11 Beth Dakin Still need view snapshotting code for non-IOSurface for the sim https://bugs.webkit.org/show_bug.cgi?id=149077 Reviewed by Tim Horton. This fixes the simulator build. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _takeViewSnapshot]): (-[WKWebView _zoomToPoint:atScale:animated:]): * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): (WebKit::ViewGestureController::removeSwipeSnapshot): * UIProcess/mac/ViewSnapshotStore.h: (WebKit::ViewSnapshot::setDeviceScaleFactor): (WebKit::ViewSnapshot::deviceScaleFactor): (WebKit::ViewSnapshot::surface): (WebKit::ViewSnapshot::imageSizeInBytes): (WebKit::ViewSnapshot::size): * UIProcess/mac/ViewSnapshotStore.mm: (WebKit::ViewSnapshotStore::singleton): (WebKit::ViewSnapshotStore::snapshottingContext): (WebKit::ViewSnapshotStore::didAddImageToSnapshot): (WebKit::ViewSnapshotStore::discardSnapshotImages): (WebKit::ViewSnapshot::create): (WebKit::ViewSnapshot::ViewSnapshot): (WebKit::ViewSnapshot::~ViewSnapshot): (WebKit::ViewSnapshot::setSurface): (WebKit::ViewSnapshot::hasImage): (WebKit::ViewSnapshot::clearImage): (WebKit::ViewSnapshot::asLayerContents): 2015-09-11 Beth Dakin Build fix * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): (WebKit::ViewGestureController::removeSwipeSnapshot): 2015-09-11 Beth Dakin Should use CARenderServerRenderLayerWithTransform for snapshots on iOS https://bugs.webkit.org/show_bug.cgi?id=149069 -and corresponding- rdar://problem/19726953 Reviewed by Tim Horton. This will let us own the backing IOSurface, which will let us share more code with Mac. Use CARenderServerRenderLayerWithTransform * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _takeViewSnapshot]): (-[WKWebView _zoomToPoint:atScale:animated:]): We can eliminate things needed for the slot-based API. * UIProcess/mac/ViewSnapshotStore.h: (WebKit::ViewSnapshot::setDeviceScaleFactor): (WebKit::ViewSnapshot::deviceScaleFactor): (WebKit::ViewSnapshot::surface): (WebKit::ViewSnapshot::imageSizeInBytes): (WebKit::ViewSnapshot::size): * UIProcess/mac/ViewSnapshotStore.mm: (WebKit::ViewSnapshotStore::singleton): (WebKit::ViewSnapshotStore::didAddImageToSnapshot): (WebKit::ViewSnapshotStore::discardSnapshotImages): (WebKit::ViewSnapshot::create): (WebKit::ViewSnapshot::ViewSnapshot): (WebKit::ViewSnapshot::~ViewSnapshot): (WebKit::ViewSnapshot::setSurface): (WebKit::ViewSnapshot::hasImage): (WebKit::ViewSnapshot::clearImage): (WebKit::ViewSnapshot::asLayerContents): (WebKit::ViewSnapshotStore::snapshottingContext): Deleted. 2015-09-11 Andreas Kling [JSC] Weak should only accept cell pointees. Reviewed by Geoffrey Garen. * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: (WebKit::NPRuntimeObjectMap::finalize): * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h: 2015-09-10 Joseph Pecoraro Web Inspector: Remove unused files https://bugs.webkit.org/show_bug.cgi?id=149049 Reviewed by Brian Burg. * WebProcess/WebPage/efl/WebInspectorEfl.cpp: Removed. * WebProcess/WebPage/gtk/WebInspectorGtk.cpp: Removed. 2015-09-10 Joseph Pecoraro WebInspectorUI should have a WebPage reference https://bugs.webkit.org/show_bug.cgi?id=149046 Reviewed by Geoffrey Garen. * WebProcess/WebPage/WebInspectorUI.cpp: * WebProcess/WebPage/WebInspectorUI.h: (WebKit::WebInspectorUI::page): Deleted. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::inspectorUI): 2015-09-10 Joseph Pecoraro Web Inspector: WebInspectorUI does not need to be an API::Object https://bugs.webkit.org/show_bug.cgi?id=149045 Reviewed by Timothy Hatcher. * Shared/API/APIObject.h: * WebProcess/WebPage/WebInspectorUI.h: 2015-09-10 Joseph Pecoraro Web Inspector: Remove unused member in WebPage https://bugs.webkit.org/show_bug.cgi?id=149040 Reviewed by Brian Burg. * WebProcess/WebPage/WebPage.cpp: * WebProcess/WebPage/WebPage.h: 2015-09-10 Daniel Bates sendProcessWillSuspendImminently uses a wrong message flag https://bugs.webkit.org/show_bug.cgi?id=148995 Reviewed by Alexey Proskuryakov. Remove use of flag IPC::InterruptWaitingIfSyncMessageArrives as it does not make sense when sending a sync message. * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::sendProcessWillSuspendImminently): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::sendProcessWillSuspendImminently): 2015-09-10 Joseph Pecoraro Unreviewed build fix after r189572. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::inspectorPageURL): (WebKit::WebInspectorProxy::inspectorTestPageURL): (WebKit::WebInspectorProxy::inspectorBaseURL): Remove the const on the now static methods. 2015-09-10 Chris Dumez Node.appendChild(null) / replaceChild(null, null) / removeChild(null) / insertBefore(null, ref) should throw a TypeError https://bugs.webkit.org/show_bug.cgi?id=148971 Reviewed by Ryosuke Niwa. ContainerNode::appendChild() now takes a Ref&& parameter so we need to update the call sites. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin): * WebProcess/Plugins/PDF/PDFPluginAnnotation.mm: (WebKit::PDFPluginAnnotation::attach): (WebKit::PDFPluginAnnotation::~PDFPluginAnnotation): * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): 2015-09-10 Joseph Pecoraro Web Inspector: Make WebInspectorProxy inspectorURL path methods static https://bugs.webkit.org/show_bug.cgi?id=149021 Reviewed by Brian Burg. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::didRelaunchInspectorPageProcess): (WebKit::isMainOrTestInspectorPage): (WebKit::decidePolicyForNavigationAction): (WebKit::WebInspectorProxy::eagerlyCreateInspectorPage): (WebKit::WebInspectorProxy::createInspectorPage): * UIProcess/WebInspectorProxy.h: * UIProcess/efl/WebInspectorProxyEfl.cpp: (WebKit::WebInspectorProxy::inspectorPageURL): (WebKit::WebInspectorProxy::inspectorTestPageURL): (WebKit::WebInspectorProxy::inspectorBaseURL): * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::inspectorPageURL): (WebKit::WebInspectorProxy::inspectorTestPageURL): (WebKit::WebInspectorProxy::inspectorBaseURL): * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::inspectorPageURL): (WebKit::WebInspectorProxy::inspectorTestPageURL): (WebKit::WebInspectorProxy::inspectorBaseURL): 2015-09-09 Joseph Pecoraro Web Inspector: Remove dead WebInspectorProxy related code https://bugs.webkit.org/show_bug.cgi?id=149019 Reviewed by Timothy Hatcher. * UIProcess/API/C/mac/WKInspectorPrivateMac.h: * UIProcess/WebInspectorProxy.cpp: * UIProcess/WebInspectorProxy.h: * UIProcess/mac/WebInspectorProxyMac.mm: (-[WKWebInspectorProxyObjCAdapter attachRight:]): Deleted. (-[WKWebInspectorProxyObjCAdapter attachBottom:]): Deleted. 2015-09-09 Anders Carlsson Remove an unused NSString SPI constant https://bugs.webkit.org/show_bug.cgi?id=149009 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/API/Cocoa/WKWebViewPrivate.h: 2015-09-09 Dan Bernstein Updated availability annotations for iOS 9 and OS X El Capitan. Rubber-stamped by Anders Carlsson. * Shared/API/Cocoa/_WKRenderingProgressEvents.h: * UIProcess/API/Cocoa/WKError.h: * UIProcess/API/Cocoa/WKErrorPrivate.h: * UIProcess/API/Cocoa/WKFrameInfo.h: * UIProcess/API/Cocoa/WKNavigationActionPrivate.h: * UIProcess/API/Cocoa/WKNavigationDelegate.h: * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: * UIProcess/API/Cocoa/WKSecurityOrigin.h: * UIProcess/API/Cocoa/WKUIDelegate.h: * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/Cocoa/WKWebView.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h: * UIProcess/API/Cocoa/_WKElementAction.h: * UIProcess/API/Cocoa/_WKLayoutMode.h: * UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: * UIProcess/API/Cocoa/_WKUserContentExtensionStore.h: * UIProcess/API/Cocoa/_WKUserContentFilter.h: * UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/_WKWebsiteDataStore.h: * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h: 2015-09-09 Alexey Proskuryakov fast/dom/rtl-scroll-to-leftmost-and-resize.html is a flaky timeout - IPC drops messages https://bugs.webkit.org/show_bug.cgi?id=148951 Reviewed by Anders Carlsson. * Platform/IPC/Connection.cpp: (IPC::Connection::waitForMessage): Don't modify m_waitingForMessage without holding a lock. This is not part of this fix, but seems necessary for correctness. (IPC::Connection::processIncomingMessage): Don't interrupt a wait that has already succeeded. 2015-09-08 Daniel Bates [Mac] Expose Enable/Disable Accelerated Drawing in MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=148980 Reviewed by Alexey Proskuryakov. Expose SPI web preference to enable/disable- and query the state of- accelerated drawing so that we can toggle this setting in MiniBrowser on Mac. * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _acceleratedDrawingEnabled]): Added. (-[WKPreferences _setAcceleratedDrawingEnabled:]): Added. * UIProcess/API/Cocoa/WKPreferencesPrivate.h: 2015-09-08 Joseph Pecoraro Web Inspector: Remove unused file: WebInspectorFrontendClient.h https://bugs.webkit.org/show_bug.cgi?id=148979 Reviewed by Brian Burg. * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h: Removed. Unused now. WebInspectorUI subclasses InspectorFrontendClient itself. 2015-09-07 Andy Estes [Mac] DebugRelease builds should link against libWebKitSystemInterfaceElCapitan.a on 10.11 https://bugs.webkit.org/show_bug.cgi?id=148946 Reviewed by Dan Bernstein. * Configurations/DebugRelease.xcconfig: 2015-09-05 Michael Catanzaro Leak in WebContextInjectedBundleClient::getInjectedBundleInitializationUserData https://bugs.webkit.org/show_bug.cgi?id=148769 Fix suggested by Zan Dobersek. Reviewed by Darin Adler. * UIProcess/WebContextInjectedBundleClient.cpp: (WebKit::WebContextInjectedBundleClient::getInjectedBundleInitializationUserData): 2015-09-04 Brian Burg Web Inspector: agents should send messages through FrontendRouter instead of FrontendChannel https://bugs.webkit.org/show_bug.cgi?id=148492 Reviewed by Joseph Pecoraro. Stop using InspectorForwarding.h. * WebProcess/WebPage/WebInspector.h: * WebProcess/WebPage/WebInspectorUI.h: 2015-09-04 Brian Burg Web Inspector: InspectorController should support multiple frontend channels https://bugs.webkit.org/show_bug.cgi?id=148538 Reviewed by Joseph Pecoraro. Explicitly disconnect the frontend channel when closing the frontend. Rename createInspectorPage/closeFrontend to the symmetric and unambiguous {open,close}FrontendConnection in the WebInspector class. * WebProcess/WebCoreSupport/WebInspectorClient.cpp: (WebKit::WebInspectorClient::openInspectorFrontend): (WebKit::WebInspectorClient::closeInspectorFrontend): * WebProcess/WebCoreSupport/WebInspectorClient.h: Stop using a forwarded type. * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::openFrontendConnection): (WebKit::WebInspector::closeFrontendConnection): (WebKit::WebInspector::remoteFrontendConnected): (WebKit::WebInspector::remoteFrontendDisconnected): (WebKit::WebInspector::createInspectorPage): Deleted. (WebKit::WebInspector::closeFrontend): Deleted. * WebProcess/WebPage/WebInspector.h: 2015-09-04 Dan Bernstein [iOS] Disable backspace key navigation by default https://bugs.webkit.org/show_bug.cgi?id=148808 Reviewed by Tim Horton. * Shared/WebPreferencesDefinitions.h: Defined DEFAULT_BACKSPACE_KEY_NAVIGATION_ENABLED as false on iOS, true elsewhere, and made it the default value of the backspaceKeyNavigationEnabled preference key. 2015-09-04 Beth Dakin Need to be able to test default behaviors on force click https://bugs.webkit.org/show_bug.cgi?id=148758 Reviewed by Tim Horton. The hit test seems to return synchronously in WKTR, so we need to do the hit test last before we clear state otherwise we will trample the hit test result. * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController immediateActionRecognizerWillPrepare:]): (-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]): 2015-09-03 Commit Queue Unreviewed, rolling out r189338. https://bugs.webkit.org/show_bug.cgi?id=148785 Caused tons of crashes (Requested by cdumez on #webkit). Reverted changeset: "Web Inspector: InspectorController should support multiple frontend channels" https://bugs.webkit.org/show_bug.cgi?id=148538 http://trac.webkit.org/changeset/189338 2015-09-03 Brian Burg Web Inspector: InspectorController should support multiple frontend channels https://bugs.webkit.org/show_bug.cgi?id=148538 Reviewed by Joseph Pecoraro. Explicitly disconnect the frontend channel when closing the frontend. Rename createInspectorPage/closeFrontend to the symmetric and unambiguous {open,close}FrontendConnection in the WebInspector class. * WebProcess/WebCoreSupport/WebInspectorClient.cpp: (WebKit::WebInspectorClient::openInspectorFrontend): (WebKit::WebInspectorClient::closeInspectorFrontend): * WebProcess/WebCoreSupport/WebInspectorClient.h: Stop using a forwarded type. * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::openFrontendConnection): (WebKit::WebInspector::closeFrontendConnection): (WebKit::WebInspector::remoteFrontendConnected): (WebKit::WebInspector::remoteFrontendDisconnected): (WebKit::WebInspector::createInspectorPage): Deleted. (WebKit::WebInspector::closeFrontend): Deleted. * WebProcess/WebPage/WebInspector.h: 2015-09-03 Timothy Hatcher Web Inspector: Closing the Safari window when the Web Inspector is one of the other windows in split screen mode can cause the entire screen to go black https://bugs.webkit.org/show_bug.cgi?id=148777 Reviewed by Brian Burg. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformDidClose): (WebKit::WebInspectorProxy::platformHide): (WebKit::WebInspectorProxy::platformAttach): Call close instead of orderOut: to make fullscreen and tile modes with Web Inspector work as expected. 2015-09-03 Brady Eidson Move SecurityOriginData from WK2 to WebCore. https://bugs.webkit.org/show_bug.cgi?id=148739 Reviewed by Tim Horton. This will be needed for upcoming IndexedDB work. * CMakeLists.txt: * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/DatabaseProcess.messages.in: * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h: * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in: * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: * DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.cpp: * DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.h: * NetworkProcess/NetworkProcess.cpp: * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: * Shared/WebCrossThreadCopier.cpp: * Shared/WebCrossThreadCopier.h: * Shared/WebsiteData/WebsiteData.cpp: * UIProcess/API/APINavigationClient.h: * UIProcess/API/APIUIClient.h: * UIProcess/API/C/WKPage.cpp: * UIProcess/API/Cocoa/WKUserContentController.mm: * UIProcess/API/gtk/WebKitUIClient.cpp: * UIProcess/Cocoa/NavigationState.h: * UIProcess/Cocoa/NavigationState.mm: * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: * UIProcess/Storage/StorageManager.cpp: * UIProcess/Storage/StorageManager.h: * UIProcess/Storage/StorageManager.messages.in: * UIProcess/UserContent/WebScriptMessageHandler.h: * UIProcess/UserContent/WebUserContentControllerProxy.cpp: * UIProcess/UserContent/WebUserContentControllerProxy.h: * UIProcess/UserContent/WebUserContentControllerProxy.messages.in: * UIProcess/WebCookieManagerProxy.cpp: * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: * WebProcess/MediaCache/WebMediaKeyStorageManager.h: * WebProcess/Storage/StorageAreaMap.cpp: * WebProcess/UserContent/WebUserContentController.cpp: * WebProcess/WebCoreSupport/WebChromeClient.cpp: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: * WebProcess/WebProcess.cpp: * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: 2015-09-03 Tim Horton [Mac] Add support for testing swipes https://bugs.webkit.org/show_bug.cgi?id=148700 Reviewed by Beth Dakin. * UIProcess/API/mac/WKView.mm: (takeWindowSnapshot): (-[WKView _takeViewSnapshot]): Fall back to the non-hardware snapshotting path if the hardware path fails, which usually happens if the view is fully off-screen (as in the case of WebKitTestRunner). 2015-09-02 Tim Horton Add a modern API way to know that the navigation gesture snapshot was removed, for WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=148693 Reviewed by Anders Carlsson. * UIProcess/API/APINavigationClient.h: (API::NavigationClient::didRemoveNavigationGestureSnapshot): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageNavigationClient): * UIProcess/API/C/WKPageNavigationClient.h: * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: * UIProcess/Cocoa/NavigationState.h: * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::setNavigationDelegate): (WebKit::NavigationState::navigationGestureSnapshotWasRemoved): * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::navigationGestureDidEnd): (WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved): * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::didRemoveNavigationGestureSnapshot): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didRemoveNavigationGestureSnapshot): * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::didRemoveNavigationGestureSnapshot): * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/CoordinatedGraphics/WebView.h: Add a callback for WKTR when the swipe snapshot is removed. 2015-09-02 Andreas Kling ScrollbarThemes should be returned by reference. Reviewed by Zalan Bujtas. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::paintControlForLayerInContext): 2015-09-02 Gyuyoung Kim REGRESSION(r188206): [EFL] Adjust scrollbar width to ewk_view_contents_size_get API test https://bugs.webkit.org/show_bug.cgi?id=148701 Reviewed by Csaba Osztrogonác. r188206 applied to use non-overlay scrollbar on EFL minibrowser. So we need to adjust scrollwidth to ewk_view_contents_size_get API test as well. * UIProcess/API/efl/tests/test_ewk2_view.cpp: (TEST_F): 2015-09-02 Emanuele Aina Fix build with ENABLE(DATABASE_PROCESS) and !ENABLE(INDEXED_DATABASE) https://bugs.webkit.org/show_bug.cgi?id=146550 Reviewed by Brady Eidson. Given that INDEXED_DATABASE at the moment is the only user of DATABASE_PROCESS, their guards got inevitably mixed up with various levels of consistency. Since the --no-indexed-database flag from build-webkit leaves DATABASE_PROCESS enabled, this resulted in build failures. * DatabaseProcess/DatabaseProcess.cpp: * DatabaseProcess/DatabaseToWebProcessConnection.cpp: * Shared/Databases/DatabaseProcessCreationParameters.cpp: * Shared/Databases/DatabaseProcessCreationParameters.h: * UIProcess/WebProcessPool.cpp: * WebProcess/Databases/WebToDatabaseProcessConnection.cpp: * WebProcess/Databases/WebToDatabaseProcessConnection.h: Add missing ENABLE(INDEXED_DATABASE) guards and moved the misplaced ones. * DatabaseProcess/DatabaseProcess.h: Ditto, and also add a forward declaration for SecurityOriginData since with INDEXED_DATABASE off SecurityOriginData.h is no longer included by way of UniqueIDBDatabaseIdentifier.h. 2015-09-01 Brian Burg Web Inspector: opt the Inspector process out of page visibility-based process suppression when running tests https://bugs.webkit.org/show_bug.cgi?id=148686 Reviewed by Timothy Hatcher. This may be the cause of debug test timeouts and high execution time variance that have been plaguing the bots. Process suppression shouldn't happen for inspector process during tests anyway, so it shouldn't hurt to flip this. * UIProcess/API/C/WKPreferencesRefPrivate.h: The stated default here is incorrect, the default value is true. * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _pageVisibilityBasedProcessSuppressionEnabled]): Added. (-[WKPreferences _setPageVisibilityBasedProcessSuppressionEnabled:]): Added. * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCreateInspectorPage): 2015-09-01 Alexey Proskuryakov Update sandbox after r179367 https://bugs.webkit.org/show_bug.cgi?id=148683 rdar://problem/21767401 Reviewed by Darin Adler. * Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb: 2015-08-26 Andy Estes [Content Filtering] Determine navigation and content policy before continuing to filter a load https://bugs.webkit.org/show_bug.cgi?id=148506 Reviewed by Brady Eidson. Deleted parts of r188486 and r188851. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::convertMainResourceLoadToDownload): 2015-08-31 Chris Dumez Range.detach() / NodeIterator.detach() should be no-ops as per the latest DOM specification https://bugs.webkit.org/show_bug.cgi?id=148454 Reviewed by Ryosuke Niwa. Update Range API call sites to reflect changes. * WebProcess/InjectedBundle/API/mac/WKDOMRange.mm: (-[WKDOMRange collapse:]): (-[WKDOMRange startContainer]): (-[WKDOMRange startOffset]): (-[WKDOMRange endContainer]): (-[WKDOMRange endOffset]): (-[WKDOMRange isCollapsed]): (-[WKDOMRange text]): Deleted. * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::getImageForFindMatch): (WebKit::FindController::selectFindMatch): * WebProcess/WebPage/WebPage.cpp: (WebKit::targetFrameForEditing): (WebKit::WebPage::firstRectForCharacterRangeAsync): Deleted. * WebProcess/WebPage/efl/WebPageEfl.cpp: (WebKit::targetFrameForEditing): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::rangeForWebSelectionAtPosition): (WebKit::WebPage::rangeForBlockAtPoint): (WebKit::containsRange): (WebKit::unionDOMRanges): (WebKit::WebPage::contractedRangeFromHandle): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::dictionaryPopupInfoForRange): (WebKit::WebPage::firstRectForCharacterRange): Deleted. 2015-08-31 Tim Horton iOS WebKit2 find-in-page doesn't support multi-line results, is often blank https://bugs.webkit.org/show_bug.cgi?id=148599 Reviewed by Beth Dakin. * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::findString): (WebKit::FindController::didFindString): * WebProcess/WebPage/FindController.h: Add didFindString() for FindControllerIOS. * WebProcess/WebPage/ios/FindControllerIOS.mm: (WebKit::FindIndicatorOverlayClientIOS::drawRect): (WebKit::FindController::updateFindIndicator): (WebKit::setCompositionSelectionChangeEnabledInAllFrames): (WebKit::FindController::willFindString): (WebKit::FindController::didFindString): (WebKit::FindController::didFailToFindString): (WebKit::FindController::didHideFindIndicator): * WebProcess/WebPage/ios/FindIndicatorOverlayClientIOS.h: (WebKit::FindIndicatorOverlayClientIOS::FindIndicatorOverlayClientIOS): Adopt TextIndicator and shrink-wrapping. We'll re-create the indicator if the device/page scale factor change; this is the only case in which a TextIndicator sticks around when page scale changes -- we should come up with a better model! 2015-08-31 Antti Koivisto Network Cache: Stale content after back navigation https://bugs.webkit.org/show_bug.cgi?id=148634 Reviewed by Chris Dumez. It is possible to get an older version of the previous page when navigating back. This can happen if the main resource load has not completed before navigating away from the page. Network cache entry is normally updated when the load completes. In case of cancellation we would leave any existing entry as-is. However we render incrementally and user might have seen some content from the partial load already. Navigating back to the cached page could show older version of the content. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::abort): If a network load is canceled by the client after receiving response but before the load has completed remove any existing cache entry for it. 2015-08-28 Myles C. Maxfield Migrate GraphicsContexts from pointers to references https://bugs.webkit.org/show_bug.cgi?id=148561 Reviewed by Tim Horton. * PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::paint): * Shared/cairo/ShareableBitmapCairo.cpp: (WebKit::ShareableBitmap::paint): * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: (WebKit::imageForRect): * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: (WebKit::InjectedBundleRangeHandle::renderedImage): * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::paint): (WebKit::NetscapePlugin::snapshot): * WebProcess/Plugins/Netscape/NetscapePlugin.h: * WebProcess/Plugins/Netscape/NetscapePluginNone.cpp: (WebKit::NetscapePlugin::platformPaint): * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: (WebKit::NetscapePlugin::platformPaint): * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: (WebKit::NetscapePlugin::platformPaint): * WebProcess/Plugins/PDF/PDFPlugin.h: * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::updateControlTints): (WebKit::PDFPlugin::paintControlForLayerInContext): * WebProcess/Plugins/Plugin.cpp: (WebKit::Plugin::updateControlTints): * WebProcess/Plugins/Plugin.h: * WebProcess/Plugins/PluginProxy.cpp: (WebKit::PluginProxy::paint): * WebProcess/Plugins/PluginProxy.h: * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::paint): * WebProcess/Plugins/PluginView.h: * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: (WebKit::convertCairoSurfaceToShareableBitmap): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::drawRect): (WebKit::WebPage::snapshotAtSize): (WebKit::WebPage::snapshotNode): * WebProcess/WebPage/ios/FindControllerIOS.mm: (WebKit::FindIndicatorOverlayClientIOS::drawRect): 2015-08-28 Eric Carlson [Mac] Restructure WebMediaSessionManager for testing https://bugs.webkit.org/show_bug.cgi?id=148593 Reviewed by Jer Noble. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::mediaSessionManager): Call WebMediaSessionManager::singleton, not WebMediaSessionManagerMac::singleton. 2015-08-28 Jer Noble [iOS] Add WebKit/WebKit2 settings to control automatic data loading https://bugs.webkit.org/show_bug.cgi?id=148579 Reviewed by Anders Carlsson. Add a property to WKWebViewConfiguration to control whether clients are allowed to load media data automatically. Pass this configuration on through to WebCore. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration _mediaDataLoadsAutomatically]): (-[WKWebViewConfiguration _setMediaDataLoadsAutomatically:]): * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-08-28 Jer Noble [iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2. https://bugs.webkit.org/show_bug.cgi?id=147512 Reviewed by Anders Carlsson. Default the value of allowsInlineMediaPlayback to YES on iPad and NO on iPhone and iPod. Add a new configuration property, _inlineMediaPlaybackRequiresPlaysInlineAttribute, which defaults to NO on iPad and YES on iPhone and iPad. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute): (WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute): * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]): (-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]): * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-08-28 Timothy Horton Add navigation gesture callbacks to WKPageNavigationClient https://bugs.webkit.org/show_bug.cgi?id=148568 Reviewed by Anders Carlsson. * UIProcess/API/APINavigationClient.h: (API::NavigationClient::didBeginNavigationGesture): (API::NavigationClient::willEndNavigationGesture): (API::NavigationClient::didEndNavigationGesture): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageNavigationClient): * UIProcess/API/C/WKPageNavigationClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::navigationGestureDidBegin): (WebKit::WebPageProxy::navigationGestureWillEnd): (WebKit::WebPageProxy::navigationGestureDidEnd): 2015-08-28 Timothy Horton Get rid of the DynamicSizeWithMinimumViewSize layout mode https://bugs.webkit.org/show_bug.cgi?id=148554 Reviewed by Anders Carlsson. * UIProcess/API/C/WKLayoutMode.h: * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _layoutMode]): (-[WKWebView _setLayoutMode:]): (-[WKWebView _setMinimumViewSize:]): Deleted. (-[WKWebView _minimumViewSize]): Deleted. * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/Cocoa/_WKLayoutMode.h: * UIProcess/API/mac/WKView.mm: (-[WKView _setMinimumViewSize:]): Deleted. (-[WKView _minimumViewSize]): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::scaleViewAndUpdateGeometryFenced): Deleted. * UIProcess/WebPageProxy.h: * UIProcess/mac/WKViewLayoutStrategy.mm: (+[WKViewLayoutStrategy layoutStrategyWithPage:view:mode:]): (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy initWithPage:view:mode:]): Deleted. (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy _updateTransientScale:]): Deleted. (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]): Deleted. (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didChangeMinimumViewSize]): Deleted. (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willStartLiveResize]): Deleted. (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didEndLiveResize]): Deleted. (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didChangeFrameSize]): Deleted. (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willChangeLayoutStrategy]): Deleted. * WebProcess/WebPage/DrawingArea.h: (WebKit::DrawingArea::replyWithFenceAfterNextFlush): Deleted. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scaleViewAndUpdateGeometryFenced): Deleted. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::replyWithFenceAfterNextFlush): Deleted. 2015-08-28 Timothy Horton [Mac] Right-clicking on GIFs spins the UI process for a while https://bugs.webkit.org/show_bug.cgi?id=148566 Reviewed by Brady Eidson. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): (WebKit::WebPageProxy::platformInitializeShareMenuItem): * UIProcess/WebPageProxy.h: * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::platformInitializeShareMenuItem): Move all of the code to make a Share menuitem into platformInitializeShareMenuItem. Make an NSImage directly from the image data if possible. 2015-08-28 Michael Catanzaro [CMake] LIBSECCOMP_INCLUDE_DIRS should be added to WebKit2_SYSTEM_INCLUDE_DIRECTORIES https://bugs.webkit.org/show_bug.cgi?id=148552 Reviewed by Žan Doberšek. LIBSECCOMP_INCLUDE_DIRS should be added to WebKit2_SYSTEM_INCLUDE_DIRECTORIES, not WebKit2_INCLUDE_DIRECTORIES. (So that warnings from libseccomp headers are suppressed. Not that there are any right now.) * PlatformGTK.cmake: 2015-08-28 Michael Catanzaro Minor fixes in reportUnexpectedSyscall https://bugs.webkit.org/show_bug.cgi?id=148551 Reviewed by Žan Doberšek. There is an off-by-one in the static assert. Also, an unsigned long long is passed in, but the parameter is an int. Then it's passed to writeUnsignedInt, which takes an unsigned int. Let's use unsigned int instead. (The value is a syscall number, so it's safe to truncate regardless -- it never be anywhere near as large as an int, unless the input is malicious, in which case truncating it is the right thing to do anyway -- so this is just a matter of style.) * Shared/linux/SeccompFilters/Syscall.cpp: (WebKit::reportUnexpectedSyscall): 2015-08-28 Carlos Garcia Campos [GTK] Simplify the internal API to create a WebView https://bugs.webkit.org/show_bug.cgi?id=148570 Reviewed by Žan Doberšek. Now that all the information required to create a WebView is in API::PageConfiguration, we can simplify the internal API to receive only the configuration instead of receiving a long list of parameters that we use to build a new API::PageConfiguration. * UIProcess/API/C/gtk/WKView.cpp: (WKViewCreate): * UIProcess/API/C/gtk/WKView.h: * UIProcess/API/gtk/WebKitWebContext.cpp: (webkitWebContextCreatePageForWebView): * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseCreate): (webkitWebViewBaseCreateWebPage): * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::platformCreateInspectorPage): 2015-08-27 Timothy Horton Video full-screen shouldn't use the DynamicSizeWithMinimumViewSize layout mode https://bugs.webkit.org/show_bug.cgi?id=148553 Reviewed by Zalan Bujtas. * UIProcess/API/mac/WKView.mm: (-[WKView _supportsArbitraryLayoutModes]): (-[WKView _updateSupportsArbitraryLayoutModes]): (-[WKView _didCommitLoadForMainFrame]): * UIProcess/API/mac/WKViewInternal.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::beganEnterFullScreen): (WebKit::PageClientImpl::beganExitFullScreen): * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Deleted. (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Deleted. It's not OK to just randomly change the layout mode, because the client can change it or its properties out from under us, and also because we weren't resetting it to whatever the client had specified. I recently implemented a better way to override layout modes, for PDF, so use that here. Also, we shouldn't use DynamicSizeWithMinimumViewSize, we should just use the "normal" mode (ViewSize), since we've already ensured a minimum size by setting contentMinSize. 2015-08-27 Alexey Proskuryakov pluginInfo.clientLoadPolicy is used uninitialized in WebContent process https://bugs.webkit.org/show_bug.cgi?id=148550 Reviewed by Tim Horton. This fixes flakiness on plugins/plugin-javascript-access.html. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::decode): 2015-08-27 Timothy Horton Factor out Lookup invocation https://bugs.webkit.org/show_bug.cgi?id=148509 Reviewed by Anders Carlsson. * Shared/DictionaryPopupInfo.cpp: Removed. * Shared/DictionaryPopupInfo.h: Removed. Moved to WebCore. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): Add encode/decoders for DictionaryPopupInfo now that it's in WebCore. * Shared/WebCoreArgumentCoders.h: * Shared/WebHitTestResult.h: * Shared/mac/ArgumentCodersMac.h: * UIProcess/API/mac/WKView.mm: (+[WKView hideWordDefinitionWindow]): (-[WKView _dismissContentRelativeChildWindows]): * UIProcess/PageClient.h: * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didPerformDictionaryLookup): * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _animationControllerForText]): * UIProcess/mac/WebPageProxyMac.mm: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::showDefinitionForAttributedString): (WebKit::PDFPlugin::lookupTextAtLocation): * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performDictionaryLookupAtLocation): (WebKit::WebPage::performDictionaryLookupForSelection): (WebKit::WebPage::dictionaryPopupInfoForRange): (WebKit::WebPage::dictionaryPopupInfoForSelectionInPDFPlugin): (WebKit::WebPage::lookupTextAtLocation): Adjust to new names and move stuff to WebCore. 2015-08-27 Brian Burg Web Inspector: FrontendChannel should know its own connection type https://bugs.webkit.org/show_bug.cgi?id=148482 Reviewed by Joseph Pecoraro. * WebProcess/WebPage/WebInspector.h: add connectionType(). 2015-08-27 Csaba Osztrogonác [EFL] REGRESSION: 50+ layout tests crash https://bugs.webkit.org/show_bug.cgi?id=148471 Reviewed by Gyuyoung Kim. * UIProcess/CoordinatedGraphics/WebView.cpp: (WebKit::WebView::WebView): 2015-08-27 Zan Dobersek Fix WKMutableArray creations in WKUserMediaPermissionRequest https://bugs.webkit.org/show_bug.cgi?id=148489 Reviewed by Carlos Garcia Campos. Call WKMutableArrayCreate() to create the WKMutableArray objects. WKMutableArrayRef type is a pointer, so calling 'WKMutableArrayRef()' just sets a null value to the variable that is then returned and queried for size in WebKitTestRunner's TestController, resulting in a crash. * UIProcess/API/C/WKUserMediaPermissionRequest.cpp: (WKUserMediaPermissionRequestDeviceNamesVideo): (WKUserMediaPermissionRequestDeviceNamesAudio): 2015-08-26 Emanuele Aina [ThreadedCompositor] Use WTF::Condition together with WTF::Lock https://bugs.webkit.org/show_bug.cgi?id=148493 Reviewed by Gyuyoung Kim. * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: Replace ThreadCondition::signal() calls with Condition::notifyOne(). * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: Replace ThreadCondition usage with Condition. 2015-08-26 Wenson Hsieh Fix crash due to animationDidEnd called on deallocated RemoteLayerTreeHost https://bugs.webkit.org/show_bug.cgi?id=148442 Reviewed by Tim Horton. A PlatformCAAnimationRemote's backpointer to a deallocated RemoteLayerTreeHost is not invalidated when its host removes its reference to it. * UIProcess/mac/RemoteLayerTreeHost.mm: (WebKit::RemoteLayerTreeHost::layerWillBeRemoved): Invalidate a backpointer from the PlatformCAAnimationRemotes to the RemoteLayerTreeHost. 2015-08-26 Beth Dakin REGRESSION: Safari navigates after a cancelled force click https://bugs.webkit.org/show_bug.cgi?id=148491 -and corresponding- rdar://problem/22394323 Reviewed by Tim Horton. Use the current stage to determine which type of cancel this is. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::immediateActionDidCancel): 2015-08-26 Eric Carlson Media Session: make MediaSessionMetadata a class https://bugs.webkit.org/show_bug.cgi?id=148486 Reviewed by Jer Noble. * Shared/WebCoreArgumentCoders.h: struct MediaSessionMetadata -> class MediaSessionMetadata. * UIProcess/WebPageProxy.h: Ditto. 2015-08-26 Zan Dobersek Unreviewed. Fix the crashes in GTK+'s WebKitTestRunner by setting the process pool on the API::PageConfiguration object in webkitWebViewBaseCreate(). * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseCreate): 2015-08-25 Beth Dakin Speculative build fix. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): 2015-08-25 Beth Dakin Long press gesture recognizer should adjust delay based on other recognizers https://bugs.webkit.org/show_bug.cgi?id=148402 -and corresponding- rdar://problem/22278723 Reviewed by Tim Horton. Call _setAdjustsDelayBasedOnOtherRecognizers with a value of YES. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): 2015-08-24 Gyuyoung Kim Unreviewed, EFL and GTK build fix since r188895. * CMakeLists.txt: Rename Rename VisitedLinkProvider to VisitedLinkStore. 2015-08-24 Anders Carlsson Rename VisitedLinkProvider to VisitedLinkStore https://bugs.webkit.org/show_bug.cgi?id=148406 Reviewed by Tim Horton. * DerivedSources.make: * Shared/API/APIObject.h: * Shared/Cocoa/APIObject.mm: (API::Object::newObject): * UIProcess/API/APIPageConfiguration.cpp: (API::PageConfiguration::copy): (API::PageConfiguration::visitedLinkStore): (API::PageConfiguration::setVisitedLinkStore): (API::PageConfiguration::visitedLinkProvider): Deleted. (API::PageConfiguration::setVisitedLinkProvider): Deleted. * UIProcess/API/APIPageConfiguration.h: * UIProcess/API/C/WKContext.cpp: (WKContextAddVisitedLink): (WKContextClearVisitedLinks): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/_WKVisitedLinkStore.mm: (-[_WKVisitedLinkStore init]): (-[_WKVisitedLinkStore dealloc]): (-[_WKVisitedLinkStore addVisitedLinkWithURL:]): (-[_WKVisitedLinkStore removeAll]): (-[_WKVisitedLinkStore _apiObject]): * UIProcess/API/Cocoa/_WKVisitedLinkStoreInternal.h: (WebKit::wrapper): * UIProcess/VisitedLinkProvider.cpp: (WebKit::generateIdentifier): Deleted. (WebKit::VisitedLinkProvider::create): Deleted. (WebKit::VisitedLinkProvider::~VisitedLinkProvider): Deleted. (WebKit::VisitedLinkProvider::VisitedLinkProvider): Deleted. (WebKit::VisitedLinkProvider::addProcess): Deleted. (WebKit::VisitedLinkProvider::removeProcess): Deleted. (WebKit::VisitedLinkProvider::addVisitedLinkHash): Deleted. (WebKit::VisitedLinkProvider::removeAll): Deleted. (WebKit::VisitedLinkProvider::webProcessWillOpenConnection): Deleted. (WebKit::VisitedLinkProvider::webProcessDidCloseConnection): Deleted. (WebKit::VisitedLinkProvider::addVisitedLinkHashFromPage): Deleted. (WebKit::nextPowerOf2): Deleted. (WebKit::tableSizeForKeyCount): Deleted. (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired): Deleted. (WebKit::VisitedLinkProvider::resizeTable): Deleted. (WebKit::VisitedLinkProvider::sendTable): Deleted. * UIProcess/VisitedLinkStore.cpp: Renamed from Source/WebKit2/UIProcess/VisitedLinkProvider.cpp. (WebKit::generateIdentifier): (WebKit::VisitedLinkStore::create): (WebKit::VisitedLinkStore::~VisitedLinkStore): (WebKit::VisitedLinkStore::VisitedLinkStore): (WebKit::VisitedLinkStore::addProcess): (WebKit::VisitedLinkStore::removeProcess): (WebKit::VisitedLinkStore::addVisitedLinkHash): (WebKit::VisitedLinkStore::removeAll): (WebKit::VisitedLinkStore::webProcessWillOpenConnection): (WebKit::VisitedLinkStore::webProcessDidCloseConnection): (WebKit::VisitedLinkStore::addVisitedLinkHashFromPage): (WebKit::nextPowerOf2): (WebKit::tableSizeForKeyCount): (WebKit::VisitedLinkStore::pendingVisitedLinksTimerFired): (WebKit::VisitedLinkStore::resizeTable): (WebKit::VisitedLinkStore::sendTable): * UIProcess/VisitedLinkStore.h: Renamed from Source/WebKit2/UIProcess/VisitedLinkProvider.h. * UIProcess/VisitedLinkStore.messages.in: Renamed from Source/WebKit2/UIProcess/VisitedLinkProvider.messages.in. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::processDidFinishLaunching): (WebKit::WebPageProxy::creationParameters): * UIProcess/WebPageProxy.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): (WebKit::WebProcessPool::createWebPage): * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shutDown): (WebKit::WebProcessProxy::addVisitedLinkStore): (WebKit::WebProcessProxy::didDestroyVisitedLinkStore): (WebKit::WebProcessProxy::addVisitedLinkProvider): Deleted. (WebKit::WebProcessProxy::didDestroyVisitedLinkProvider): Deleted. * UIProcess/WebProcessProxy.h: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebPage/VisitedLinkTableController.cpp: (WebKit::VisitedLinkTableController::addVisitedLink): 2015-08-24 Tim Horton (Finally...) get rid of WKViewIOS https://bugs.webkit.org/show_bug.cgi?id=148404 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKView.h: * UIProcess/API/ios/WKViewIOS.mm: Removed. * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::PageClientImpl): Deleted. (WebKit::PageClientImpl::didRelaunchProcess): Deleted. (WebKit::PageClientImpl::refView): Deleted. (WebKit::PageClientImpl::derefView): Deleted. * UIProcess/ios/WKContentView.h: * UIProcess/ios/WKContentView.mm: (-[WKContentView initWithFrame:processPool:configuration:wkView:]): Deleted. * WebKit2.xcodeproj/project.pbxproj: Get rid of WKViewIOS and references to it. * DatabaseProcess/ios/DatabaseProcessIOS.mm: (WebKit::DatabaseProcess::initializeSandbox): * NetworkProcess/ios/NetworkProcessIOS.mm: (WebKit::NetworkProcess::initializeSandbox): * Shared/Plugins/mac/PluginSandboxProfile.mm: (WebKit::pluginSandboxProfileDirectory): * Shared/ios/ChildProcessIOS.mm: (WebKit::ChildProcess::initializeSandbox): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::initializeSandbox): Look for WKWebView instead of WKView if we have it. 2015-08-24 Anders Carlsson Rename _WKVisitedLinkProvider to _WKVisitedLinkStore for consistency https://bugs.webkit.org/show_bug.cgi?id=148398 Reviewed by Tim Horton. We'd like to call the abstract classes providers and the concrete classes stores in WebKit. Begin by renaming _WKVisitedLinkProvider to _WKVisitedLinkStore, but keep the former around as a deprecated class. * Shared/API/Cocoa/WebKitPrivate.h: * Shared/Cocoa/APIObject.mm: (API::Object::newObject): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration _visitedLinkStore]): (-[WKWebViewConfiguration _setVisitedLinkStore:]): (-[WKWebViewConfiguration _visitedLinkProvider]): (-[WKWebViewConfiguration _setVisitedLinkProvider:]): (-[WKWebViewConfiguration _validate]): * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: * UIProcess/API/Cocoa/_WKVisitedLinkProvider.h: * UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm: (-[_WKVisitedLinkProvider init]): Deleted. (-[_WKVisitedLinkProvider dealloc]): Deleted. (-[_WKVisitedLinkProvider addVisitedLinkWithURL:]): Deleted. (-[_WKVisitedLinkProvider removeAll]): Deleted. (-[_WKVisitedLinkProvider _apiObject]): Deleted. * UIProcess/API/Cocoa/_WKVisitedLinkStore.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKVisitedLinkProvider.h. * UIProcess/API/Cocoa/_WKVisitedLinkStore.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm. (-[_WKVisitedLinkStore init]): (-[_WKVisitedLinkStore dealloc]): (-[_WKVisitedLinkStore addVisitedLinkWithURL:]): (-[_WKVisitedLinkStore removeAll]): (-[_WKVisitedLinkStore _apiObject]): * UIProcess/API/Cocoa/_WKVisitedLinkStoreInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKVisitedLinkProviderInternal.h. (WebKit::wrapper): * WebKit2.xcodeproj/project.pbxproj: 2015-08-24 Wenson Hsieh Use _NSScrollingPredominantAxisFilter for wheel event filtering on Mac https://bugs.webkit.org/show_bug.cgi?id=147320 Reviewed by Simon Fraser. Refactored to use a predominant axis filter instead of a predominant axis tracker. This allows us to employ AppKit's _NSScrollingPredominantAxisFilter when possible, and use the wheel event delta tracker as a fallback. Here, we refactor EventDispatcher to use the new filters for mainframe scrolling. No new tests, since this change does not add new functionality. * WebProcess/WebPage/EventDispatcher.cpp: Include WheelEventDeltaFilterMac.h when necessary. (WebKit::EventDispatcher::EventDispatcher): Initialize a WheelEventDeltaFilterMac when possible. Otherwise, fall back to a BasicWheelEventDeltaFilter. (WebKit::EventDispatcher::wheelEvent): Use filtered deltas to initialize the platform wheel event instead of zeroing out non-predominant axes. * WebProcess/WebPage/EventDispatcher.h: Replace m_recentWheelEventDeltaTracker with m_recentWheelEventDeltaFilter. 2015-08-23 Andy Estes [Content Filtering] REGRESSION (r182356): Provisional URL is incorrect in didReceiveServerRedirectForProvisionalLoadForFrame when Content Filtering is enabled https://bugs.webkit.org/show_bug.cgi?id=147872 rdar://problem/22044000 Reviewed by Dan Bernstein. The provisional DocumentLoader request URL does not reflect redirects when content filtering is enabled, but the URL argument passed to dispatchDidReceiveServerRedirectForProvisionalLoad() does, so use it intead. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): Sent DidReceiveServerRedirectForProvisionalLoadForFrame using the URL argument. * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: 2015-08-23 Csaba Osztrogonác Typo fix after r188842. * CMakeLists.txt: 2015-08-23 Csaba Osztrogonác Speculative buildfix after r188828. * CMakeLists.txt: 2015-08-22 Tim Horton Factor out and add logging to swipe-start hysteresis code https://bugs.webkit.org/show_bug.cgi?id=148361 Reviewed by Darin Adler. * UIProcess/ViewGestureController.cpp: (WebKit::ViewGestureController::ViewGestureController): * UIProcess/mac/ViewGestureController.h: (WebKit::ViewGestureController::wheelEventWasNotHandledByWebCore): (WebKit::ViewGestureController::shouldIgnorePinnedState): (WebKit::ViewGestureController::setShouldIgnorePinnedState): (WebKit::ViewGestureController::PendingSwipeTracker::PendingSwipeTracker): (WebKit::ViewGestureController::PendingSwipeTracker::shouldIgnorePinnedState): (WebKit::ViewGestureController::PendingSwipeTracker::setShouldIgnorePinnedState): Move pending-swipe members into PendingSwipeTracker. * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::scrollEventCanInfluenceSwipe): (WebKit::deltaShouldCancelSwipe): (WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe): (WebKit::ViewGestureController::handleScrollWheelEvent): (WebKit::ViewGestureController::PendingSwipeTracker::handleEvent): (WebKit::ViewGestureController::PendingSwipeTracker::eventWasNotHandledByWebCore): (WebKit::ViewGestureController::PendingSwipeTracker::tryToStartSwipe): (WebKit::ViewGestureController::PendingSwipeTracker::reset): (WebKit::ViewGestureController::trackSwipeGesture): (WebKit::ViewGestureController::setDidMoveSwipeSnapshotCallback): Move pending-swipe methods into PendingSwipeTracker. Clean up the logic a bit. Add some logging. 2015-08-22 Timothy Horton WebKitTestRunner should use WKWebView on OS X and iOS https://bugs.webkit.org/show_bug.cgi?id=143743 Reviewed by Anders Carlsson. Patch by Enrica Casucci and myself. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _windowOcclusionDetectionEnabled]): (-[WKWebView _setWindowOcclusionDetectionEnabled:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: Add SPI to disable window occlusion detection, for WebKitTestRunner's use. * Shared/WebPreferencesDefinitions.h: Remove a completely unused WebPreference. It is a WebCore Setting, but in the API it's exposed as a WKPage setter and WKView and WKWebView property instead of as a WKPreference, so there's no need for the WebPreference. * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageAddUserScript): (WKBundlePageAddUserStyleSheet): (WKBundlePageRemoveAllUserContent): * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::addUserScript): (WebKit::WebPage::addUserStyleSheet): (WebKit::WebPage::removeAllUserContent): * WebProcess/WebPage/WebPage.h: Add WKBundlePage functions for user script and style sheet manipulation. These use the WebPage's WebUserContentController instead of the WebPageGroupProxy's (used by the WKBundle functions), so they work correctly with the modern API. 2015-08-22 Michael Catanzaro Unreviewed, attempt to fix GTK build after r188718 * CMakeLists.txt: Build WKPageConfigurationRef.cpp * PlatformEfl.cmake: Don't build WKPageConfigurationRef.cpp 2015-08-22 Antti Koivisto Decode data URLs in web process https://bugs.webkit.org/show_bug.cgi?id=148128 Reviewed by Darin Adler. * WebProcess/Network/WebResourceLoadScheduler.cpp: (WebKit::WebResourceLoadScheduler::scheduleLoad): Don't send data: loads to the network process, handle them locally. (WebKit::WebResourceLoadScheduler::startLocalLoad): Call ResourceLoder::start() directly. 2015-08-21 Commit Queue Unreviewed, rolling out r188807, r188813, and r188815. https://bugs.webkit.org/show_bug.cgi?id=148349 lots of 32-bit build problems, better to resolve separately and try again (Requested by thorton on #webkit). Reverted changesets: "WebKitTestRunner should use WKWebView on OS X and iOS" https://bugs.webkit.org/show_bug.cgi?id=143743 http://trac.webkit.org/changeset/188807 "Stop building WebKitTestRunner for 32-bit platforms" https://bugs.webkit.org/show_bug.cgi?id=143743 http://trac.webkit.org/changeset/188813 "Stop building WebKitTestRunner for 32-bit platforms" https://bugs.webkit.org/show_bug.cgi?id=143743 http://trac.webkit.org/changeset/188815 2015-08-21 Timothy Horton WebKitTestRunner should use WKWebView on OS X and iOS https://bugs.webkit.org/show_bug.cgi?id=143743 Reviewed by Anders Carlsson. Patch by Enrica Casucci and myself. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _windowOcclusionDetectionEnabled]): (-[WKWebView _setWindowOcclusionDetectionEnabled:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: Add SPI to disable window occlusion detection, for WebKitTestRunner's use. * Shared/WebPreferencesDefinitions.h: Remove a completely unused WebPreference. It is a WebCore Setting, but in the API it's exposed as a WKPage setter and WKView and WKWebView property instead of as a WKPreference, so there's no need for the WebPreference. * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageAddUserScript): (WKBundlePageAddUserStyleSheet): (WKBundlePageRemoveAllUserContent): * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::addUserScript): (WebKit::WebPage::addUserStyleSheet): (WebKit::WebPage::removeAllUserContent): * WebProcess/WebPage/WebPage.h: Add WKBundlePage functions for user script and style sheet manipulation. These use the WebPage's WebUserContentController instead of the WebPageGroupProxy's (used by the WKBundle functions), so they work correctly with the modern API. 2015-08-21 Alexey Proskuryakov Improve how UI events are dispatched by WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=148326 Reviewed by Anders Carlsson. Added "fully synchronous mode for testing", in which all messages are dispatched synchronously. When an async message is sent in this mode, it is wrapped into a sync one automatically. A client must opt in, either by using WKBundlePagePostSynchronousMessageForTesting(), or by calling WKContextConfigurationAllowFullySynchronousModeForTesting(). This makes sure that we don't increase potential for IPC misuse. * WebProcess/WebPage/WebPage.messages.in: Yay, fewer messages! * UIProcess/API/C/WKPage.cpp: (WKPageSetShouldSendEventsSynchronously): Deleted. * UIProcess/API/C/WKPagePrivate.h: We no longer need WKPageSetShouldSendEventsSynchronously and associated custom messages. * WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::wheelEvent): (WebKit::updateWheelEventTestTriggersIfNeeded): Deleted. Removed code that was only needed to support pseudo-syncronous scrolling in tests. * Platform/IPC/Connection.cpp: (IPC::Connection::sendMessage): (IPC::Connection::dispatchSyncMessage): (IPC::Connection::dispatchMessage): * Platform/IPC/Connection.h: (IPC::Connection::allowFullySynchronousModeForTesting): (IPC::Connection::sendSync): * Platform/IPC/MessageDecoder.cpp: (IPC::MessageDecoder::shouldDispatchMessageWhenWaitingForSyncReply): (IPC::MessageDecoder::shouldUseFullySynchronousModeForTesting): (IPC::MessageDecoder::setImportanceAssertion): (IPC::MessageDecoder::unwrapForTesting): * Platform/IPC/MessageDecoder.h: (IPC::MessageDecoder::UUID): * Platform/IPC/MessageEncoder.cpp: (IPC::MessageEncoder::setShouldDispatchMessageWhenWaitingForSyncReply): (IPC::MessageEncoder::setFullySynchronousModeForTesting): (IPC::MessageEncoder::wrapForTesting): * Platform/IPC/MessageEncoder.h: (IPC::MessageEncoder::UUID): * Platform/IPC/MessageFlags.h: * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/C/WKContextConfigurationRef.cpp: (WKContextConfigurationSetMediaKeysStorageDirectory): (WKContextConfigurationAllowFullySynchronousModeForTesting): * UIProcess/API/C/WKContextConfigurationRef.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::handleMouseEvent): (WebKit::WebPageProxy::sendWheelEvent): (WebKit::WebPageProxy::handleKeyboardEvent): (WebKit::WebPageProxy::handleTouchEvent): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::renderTreeSize): (WebKit::WebPageProxy::setShouldSendEventsSynchronously): Deleted. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::processDidFinishLaunching): * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePagePostMessage): (WKBundlePagePostSynchronousMessageForTesting): (WKBundlePagePostSynchronousMessage): Deleted. * WebProcess/InjectedBundle/API/c/WKBundlePage.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::mouseEvent): (WebKit::handleWheelEvent): (WebKit::WebPage::wheelEvent): (WebKit::handleKeyEvent): (WebKit::WebPage::keyEvent): (WebKit::WebPage::validateCommand): (WebKit::WebPage::touchEvent): (WebKit::WebPage::scroll): (WebKit::WebPage::postMessage): (WebKit::WebPage::postSynchronousMessageForTesting): (WebKit::WebPage::mouseEventSyncForTesting): Deleted. (WebKit::WebPage::wheelEventSyncForTesting): Deleted. (WebKit::WebPage::keyEventSyncForTesting): Deleted. (WebKit::WebPage::touchEventSyncForTesting): Deleted. (WebKit::WebPage::postSynchronousMessage): Deleted. * WebProcess/WebPage/WebPage.h: 2015-08-20 Matt Rajca Media Session: let UI clients change the volume of the focused media element https://bugs.webkit.org/show_bug.cgi?id=148289 Reviewed by Tim Horton. * UIProcess/API/C/WKMediaSessionFocusManager.cpp: (WKMediaSessionFocusManagerSetVolumeOfFocusedMediaElement): * UIProcess/API/C/WKMediaSessionFocusManager.h: * UIProcess/WebMediaSessionFocusManager.cpp: (WebKit::WebMediaSessionFocusManager::updatePlaybackAttribute): (WebKit::WebMediaSessionFocusManager::setVolumeOfFocusedMediaElement): * UIProcess/WebMediaSessionFocusManager.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setVolumeOfMediaElement): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setVolumeOfMediaElement): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-08-21 Anders Carlsson Get rid of uses of the old callOnMainThread function that takes a function ptr + context https://bugs.webkit.org/show_bug.cgi?id=148324 Reviewed by Tim Horton. * UIProcess/mac/WKPrintingView.mm: (prepareDataForPrintingOnSecondaryThread): (-[WKPrintingView knowsPageRange:]): 2015-08-21 Chris Dumez Regression(r188698): http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header.html is very flaky https://bugs.webkit.org/show_bug.cgi?id=148205 Reviewed by Antti Koivisto. After r188640, successful revalidation of resources in the memory cache would cause us to drop the corresponding resource in the disk cache. This patch addresses the issue by not removing the cache entry if the response is a successful revalidation (i.e. status code == 304). Longer term, we should probably update the entry in the disk cache (if it exists) when it is revalidated by the memory cache. Currently, revalidation by the memory cache bypasses the disk cache and goes straight to the network. Then, when the response comes back as a 304, we try and store the response in the cache. However, a 304 status code is not cacheable so the cache rejects it. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::store): 2015-08-20 Joonghun Park [EFL] Revise PlatformWebView ctor according to r188718 https://bugs.webkit.org/show_bug.cgi?id=148282 Reviewed by Gyuyoung Kim. * PlatformEfl.cmake: 2015-08-20 Alex Christensen GTK build fix after r188693. * UIProcess/API/gtk/PageClientImpl.h: Delete mediaDocumentNaturalSizeChanged which could be renamed to imageOrMediaDocumentSizeChanged, but there's no reason to have an empty function overriding another virtual function that is also empty. 2015-08-20 Joonghun Park [EFL] Fix build error since r188693 https://bugs.webkit.org/show_bug.cgi?id=148279 Reviewed by Gyuyoung Kim. * UIProcess/efl/WebViewEfl.h: 2015-08-20 Anders Carlsson Use WKPageConfigurationRef in WebKitTestRunner https://bugs.webkit.org/show_bug.cgi?id=147996 Reviewed by Tim Horton. * UIProcess/API/ios/WKViewIOS.mm: (-[WKView _commonInitializationWithConfigurationRef:]): (-[WKView initWithFrame:configurationRef:]): * UIProcess/API/mac/WKView.mm: (-[WKView initWithFrame:configurationRef:]): Make sure to copy the configuration, matching what we do in the modern API. 2015-08-20 Beth Dakin Standalone image documents should send their size to the UIClient just like standalone media documents https://bugs.webkit.org/show_bug.cgi?id=148195 -and corresponding- rdar://problem/21951253 Reviewed by Tim Horton. This patch re-names mediaDocumentNaturalSizeChanged() to imageOrMediaDocumentSizeChanged(), and, as the new name implies, uses the function for both media documents and images. * UIProcess/API/APIUIClient.h: (API::UIClient::didClickAutoFillButton): (API::UIClient::imageOrMediaDocumentSizeChanged): (API::UIClient::mediaDocumentNaturalSizeChanged): Deleted. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: The WKWebView and PageClient implementations of this function were actually not being used, so this patch removes them and just keeps the UIClient stuff. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView performDragOperation:]): (-[WKWebView _mediaDocumentNaturalSizeChanged:]): Deleted. * UIProcess/API/Cocoa/WKWebViewInternal.h: More re-naming. * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::UIClient): (WebKit::UIDelegate::UIClient::didNotHandleTapAsClick): (WebKit::UIDelegate::UIClient::imageOrMediaDocumentSizeChanged): (WebKit::UIDelegate::UIClient::mediaDocumentNaturalSizeChanged): Deleted. * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::installViewStateChangeCompletionHandler): (WebKit::WebPageProxy::imageOrMediaDocumentSizeChanged): (WebKit::WebPageProxy::setShouldDispatchFakeMouseMoveEvents): (WebKit::WebPageProxy::mediaDocumentNaturalSizeChanged): Deleted. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::useFixedLayoutDidChange): (WebKit::WebPageProxy::fixedLayoutSizeDidChange): * UIProcess/WebPageProxy.messages.in: The WKWebView and PageClient implementations of this function were actually not being used, so this patch removes them and just keeps the UIClient stuff. * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): Deleted. * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): Deleted. More re-naming. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::imageOrMediaDocumentSizeChanged): (WebKit::WebChromeClient::mediaDocumentNaturalSizeChanged): Deleted. * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::imageOrMediaDocumentSizeChanged): (WebKit::WebPage::mediaDocumentNaturalSizeChanged): Deleted. * WebProcess/WebPage/WebPage.h: 2015-08-19 Eric Carlson Remove ENABLE_WEBVTT_REGIONS https://bugs.webkit.org/show_bug.cgi?id=148184 Reviewed by Jer Noble. * Configurations/FeatureDefines.xcconfig: Remove ENABLE_WEBVTT_REGIONS. 2015-08-18 Dean Jackson Support CSS filters without webkit prefix https://bugs.webkit.org/show_bug.cgi?id=148138 Reviewed by Sam Weinig. Rename WebkitFilter to Filter. * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp: (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): 2015-08-19 Alex Christensen Build TestWTF on Mac with CMake. https://bugs.webkit.org/show_bug.cgi?id=147972 Reviewed by Tim Horton. * PlatformMac.cmake: Make more forwarding headers. 2015-08-18 Filip Pizlo Replace all uses of std::mutex/std::condition_variable with WTF::Lock/WTF::Condition https://bugs.webkit.org/show_bug.cgi?id=148140 Reviewed by Geoffrey Garen. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::traverse): * Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::processIncomingMessage): (IPC::Connection::SyncMessageState::dispatchMessages): (IPC::Connection::SyncMessageState::dispatchMessageAndResetDidScheduleDispatchMessagesForConnection): (IPC::Connection::sendMessage): (IPC::Connection::waitForMessage): (IPC::Connection::processIncomingMessage): (IPC::Connection::installIncomingSyncMessageCallback): (IPC::Connection::uninstallIncomingSyncMessageCallback): (IPC::Connection::hasIncomingSyncMessage): (IPC::Connection::connectionDidClose): (IPC::Connection::sendOutgoingMessages): (IPC::Connection::enqueueIncomingMessage): (IPC::Connection::dispatchOneMessage): * Platform/IPC/Connection.h: * Shared/BlockingResponseMap.h: (BlockingResponseMap::waitForResponse): (BlockingResponseMap::didReceiveResponse): (BlockingResponseMap::cancel): * UIProcess/Plugins/gtk/PluginInfoCache.cpp: (WebKit::PluginInfoCache::saveToFile): (WebKit::PluginInfoCache::updatePluginInfo): * UIProcess/Plugins/gtk/PluginInfoCache.h: * UIProcess/mac/WKPrintingView.h: * UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): (prepareDataForPrintingOnSecondaryThread): (-[WKPrintingView knowsPageRange:]): 2015-08-19 Chris Dumez WebKit may keep outdated entry in the disk cache after a reload https://bugs.webkit.org/show_bug.cgi?id=148137 Reviewed by Antti Koivisto. WebKit would keep outdated entry in the disk cache after a reload in the following scenario: 1. We have an entry in the cache 2. The user reloads 3. We get a fresh resource from the network but this one is not cacheable In this case, we now remove the stale entry from the cache to make sure it is not served to following requests (e.g. history navigations). * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didFinishLoading): Remove the entry from the cache if its redirection is no longer cacheable. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::store): If we make the decision not to store the response, then remove the entry in the cache for this resource if it exists. (WebKit::NetworkCache::Cache::remove): * NetworkProcess/cache/NetworkCache.h: Add new remove() overload taking a ResourceRequest argument so the call site does not have the compute the key. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::removeFromPendingWriteOperations): (WebKit::NetworkCache::Storage::remove): * NetworkProcess/cache/NetworkCacheStorage.h: When we're asked to remove an entry with a given key, also remove it from the pending write operations. This pre-existing bug would prevent the new layout test from passing. 2015-08-18 Zan Dobersek [GLib] GMainLoopSource should receive the std::function<> objects through rvalue references https://bugs.webkit.org/show_bug.cgi?id=147981 Reviewed by Carlos Garcia Campos. * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::runTaskInQueue): Move the std::function<> into the scheduling call. 2015-08-18 Dan Bernstein [iOS] Safari’s Web Content process crashes when decoding an NSError containing an identity https://bugs.webkit.org/show_bug.cgi?id=148135 Reviewed by Sam Weinig. * Configurations/WebContent-iOS.entitlements: Added the com.apple.identities keychain access group. The Networking process already has it since r169655. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitialize): Always allow the UI process to decode keys. 2015-08-18 Jincheol Jo [EFL] Web Inspector: make to use StringBuilder in inspectorBaseURL https://bugs.webkit.org/show_bug.cgi?id=148126 Reviewed by Gyuyoung Kim. * UIProcess/efl/WebInspectorProxyEfl.cpp: (WebKit::WebInspectorProxy::inspectorBaseURL): (WebKit::WebInspectorProxy::platformInspectedWindowHeight): 2015-08-18 Anders Carlsson Fix build, and fix the version check. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): 2015-08-18 Anders Carlsson REGRESSION: Playing audio causes near-instant crash https://bugs.webkit.org/show_bug.cgi?id=148059 rdar://problem/22282680 Reviewed by Sam Weinig. The version of WebKit that Safari 6.2.8, 7.1.8 and 8.0.8 built against had an ABI incompatible WKPageUIClientV4 struct. Thankfully we're not going to ship any versions of Safari that use the "normal" WKPageUIClientV4 struct so just assume that it's always the broken one and fix it up by converting it to a WKPageUIClientV5 struct and setting that as the page UI client. * UIProcess/API/C/WKPage.cpp: (fixUpBotchedPageUIClient): (WKPageSetPageUIClient): 2015-08-17 Filip Pizlo Replace all remaining uses of WTF::Mutex with WTF::Lock https://bugs.webkit.org/show_bug.cgi?id=148089 Reviewed by Geoffrey Garen. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::postDatabaseTask): (WebKit::DatabaseProcess::performNextDatabaseTask): * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::shutdown): (WebKit::UniqueIDBDatabase::postMainThreadTask): (WebKit::UniqueIDBDatabase::performNextMainThreadTask): (WebKit::UniqueIDBDatabase::postDatabaseTask): (WebKit::UniqueIDBDatabase::performNextDatabaseTask): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: * Platform/IPC/Connection.cpp: (IPC::Connection::sendSyncMessage): (IPC::Connection::sendSyncMessageFromSecondaryThread): (IPC::Connection::waitForSyncReply): (IPC::Connection::processIncomingSyncReply): (IPC::Connection::connectionDidClose): * Platform/IPC/Connection.h: * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::appendUpdate): * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::ThreadedCompositor::createCompositingThread): (WebKit::ThreadedCompositor::runCompositingThread): (WebKit::ThreadedCompositor::terminateCompositingThread): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: (WebKit::CustomProtocolManager::addCustomProtocol): (WebKit::CustomProtocolManager::removeCustomProtocol): (WebKit::CustomProtocolManager::registerScheme): (WebKit::CustomProtocolManager::unregisterScheme): (WebKit::CustomProtocolManager::supportsScheme): (WebKit::CustomProtocolManager::protocolForID): * Shared/Network/CustomProtocols/CustomProtocolManager.h: * Shared/linux/SeccompFilters/SeccompBroker.cpp: * WebProcess/Plugins/PluginProcessConnectionManager.cpp: (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): (WebKit::PluginProcessConnectionManager::removePluginProcessConnection): (WebKit::PluginProcessConnectionManager::pluginProcessCrashed): * WebProcess/Plugins/PluginProcessConnectionManager.h: * WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::addScrollingTreeForPage): (WebKit::EventDispatcher::removeScrollingTreeForPage): (WebKit::EventDispatcher::wheelEvent): * WebProcess/WebPage/EventDispatcher.h: * WebProcess/soup/WebKitSoupRequestInputStream.cpp: (webkitSoupRequestInputStreamReadAsync): (webkitSoupRequestInputStreamAddData): 2015-08-17 Alex Christensen Speculative GTK build fix after r188553 * CMakeLists.txt: Added new files. 2015-08-17 Myles C. Maxfield Implement IntegerHasher https://bugs.webkit.org/show_bug.cgi?id=147866 Reviewed by Darin Adler and Anders Carlsson. Use new #include. * DatabaseProcess/IndexedDB/IDBIdentifier.h: * Platform/IPC/StringReference.cpp: 2015-08-13 Anders Carlsson Add WKWindowFeaturesRef and a new modern createNewPage UI client callback https://bugs.webkit.org/show_bug.cgi?id=147989 Reviewed by Tim Horton. Re-land this and make sure we actually allocate a WKWindowFeatures object. * Platform/IPC/mac/ConnectionMac.mm: * Shared/API/APIObject.h: * Shared/API/c/WKBase.h: * UIProcess/API/APIWindowFeatures.cpp: Added. * UIProcess/API/APIWindowFeatures.h: Added. * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): * UIProcess/API/C/WKPageUIClient.h: * UIProcess/API/C/WKWindowFeaturesRef.cpp: Added. (WKWindowFeaturesGetTypeID): * UIProcess/API/C/WKWindowFeaturesRef.h: Added. * UIProcess/API/Cocoa/WKWindowFeatures.mm: (-[WKWindowFeatures dealloc]): (-[WKWindowFeatures menuBarVisibility]): (-[WKWindowFeatures statusBarVisibility]): (-[WKWindowFeatures toolbarsVisibility]): (-[WKWindowFeatures allowsResizing]): (-[WKWindowFeatures x]): (-[WKWindowFeatures y]): (-[WKWindowFeatures width]): (-[WKWindowFeatures height]): (-[WKWindowFeatures _apiObject]): (-[WKWindowFeatures _initWithWindowFeatures:]): Deleted. * UIProcess/API/Cocoa/WKWindowFeaturesInternal.h: (WebKit::wrapper): * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::createNewPage): * WebKit2.xcodeproj/project.pbxproj: 2015-08-17 Sam Weinig API::PageConfiguration's sessionID needs to be set whenever the API::WebsiteDataStore is set https://bugs.webkit.org/show_bug.cgi?id=148097 Reviewed by Anders Carlsson. We were getting an empty SessionID set on the WebPageProxy (and crashing asserting down the line) when using a WKPageConfiguration with a WKWebsiteDataStore set on it. Tests: WebKit2.WKPageConfigurationBasicWithDataStore WebKit2.WKPageConfigurationBasicWithNonPersistentDataStore * UIProcess/API/APIPageConfiguration.cpp: (API::PageConfiguration::setWebsiteDataStore): Set the sessionID member whenever changing the WebsiteDataStore. * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreGetDefaultDataStore): (WKWebsiteDataStoreCreateNonPersistentDataStore): * UIProcess/API/C/WKWebsiteDataStoreRef.h: Expose functions for getting default and new non-persistent data stores via the C-SPI. Useful for testing and transitioning users of the C-SPI to the new model. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): Remove explicit setting of the sessionID. This is handled by the above call to setWebsiteDataStore(). 2015-08-17 Wenson Hsieh Cannot change WKWebView scrollView deceleration rate https://bugs.webkit.org/show_bug.cgi?id=148086 Reviewed by Simon Fraser. Updates the preferred scroll deceleration factor when the scrollView's decelerationRate is explicitly set by the user, so when snap scrolling is inactive and [WKWebView scrollViewWillBeginDragging] sets its scrollView's decelerationRate to the preferred decelerationRate, it will be set to the updated value. * UIProcess/ios/WKScrollView.mm: (-[WKScrollView setDecelerationRate:]): Overrides setDecelerationRate to update _preferredScrollDecelerationFactor. 2015-08-17 Timothy Horton Adopt shrink-wrapping for TextIndicators on Mac https://bugs.webkit.org/show_bug.cgi?id=148064 Reviewed by Beth Dakin. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindIndicator): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): Use the new option, TextIndicatorOptionIncludeMarginIfRangeMatchesSelection, for iOS and FindController, because we can keep the margins in these cases because we don't have to animate to/from the blue highlight. 2015-08-16 Timothy Horton Refactor ViewGestureController swipe snapshot removal to be more platform-independent https://bugs.webkit.org/show_bug.cgi?id=148062 Reviewed by Dan Bernstein. * Platform/Logging.h: Add a ViewGestures logging channel. * UIProcess/ViewGestureController.cpp: Added. (viewGestureControllersForAllPages): (WebKit::ViewGestureController::ViewGestureController): (WebKit::ViewGestureController::~ViewGestureController): (WebKit::ViewGestureController::gestureControllerForPage): (WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame): (WebKit::ViewGestureController::didRepaintAfterNavigation): (WebKit::ViewGestureController::didHitRenderTreeSizeThreshold): (WebKit::ViewGestureController::didRestoreScrollPosition): (WebKit::ViewGestureController::didReachMainFrameLoadTerminalState): (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): (WebKit::ViewGestureController::checkForActiveLoads): (WebKit::ViewGestureController::SnapshotRemovalTracker::eventsDescription): (WebKit::ViewGestureController::SnapshotRemovalTracker::SnapshotRemovalTracker): (WebKit::ViewGestureController::SnapshotRemovalTracker::log): (WebKit::ViewGestureController::SnapshotRemovalTracker::start): (WebKit::ViewGestureController::SnapshotRemovalTracker::reset): (WebKit::ViewGestureController::SnapshotRemovalTracker::eventOccurred): (WebKit::ViewGestureController::SnapshotRemovalTracker::cancelOutstandingEvent): (WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackIfPossible): (WebKit::ViewGestureController::SnapshotRemovalTracker::fireRemovalCallbackImmediately): (WebKit::ViewGestureController::SnapshotRemovalTracker::watchdogTimerFired): (WebKit::ViewGestureController::SnapshotRemovalTracker::startWatchdog): Build a platform-independent SnapshotRemovalTracker, which keeps track of various events that we wait for before removing the snapshot. This is constructed from the union of ViewGestureController{IOS, Mac}'s snapshot removal code, and each platform ViewGestureController can specify which events to wait for (because this currently differs slightly). Add logging to SnapshotRemovalTracker to make debugging snapshot removal issues much easier. * UIProcess/mac/ViewGestureController.h: (WebKit::ViewGestureController::backgroundColorForCurrentSnapshot): (WebKit::ViewGestureController::didFinishLoadForMainFrame): (WebKit::ViewGestureController::didFailLoadForMainFrame): * UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::platformTeardown): (WebKit::ViewGestureController::beginSwipeGesture): (WebKit::ViewGestureController::endSwipeGesture): (WebKit::ViewGestureController::setRenderTreeSize): (WebKit::ViewGestureController::willCommitPostSwipeTransitionLayerTree): (WebKit::ViewGestureController::removeSwipeSnapshot): (viewGestureControllersForAllPages): Deleted. (WebKit::ViewGestureController::ViewGestureController): Deleted. (WebKit::ViewGestureController::~ViewGestureController): Deleted. (WebKit::ViewGestureController::didRestoreScrollPosition): Deleted. (WebKit::ViewGestureController::mainFrameLoadDidReachTerminalState): Deleted. (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): Deleted. (WebKit::ViewGestureController::activeLoadMonitoringTimerFired): Deleted. (WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired): Deleted. (WebKit::ViewGestureController::removeSwipeSnapshotIfReady): Deleted. * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::platformTeardown): (WebKit::ViewGestureController::endSwipeGesture): (WebKit::ViewGestureController::forceRepaintIfNeeded): (WebKit::ViewGestureController::removeSwipeSnapshot): (WebKit::ViewGestureController::ViewGestureController): Deleted. (WebKit::ViewGestureController::~ViewGestureController): Deleted. (WebKit::ViewGestureController::beginSwipeGesture): Deleted. (WebKit::ViewGestureController::didHitRenderTreeSizeThreshold): Deleted. (WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame): Deleted. (WebKit::ViewGestureController::mainFrameLoadDidReachTerminalState): Deleted. (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): Deleted. (WebKit::ViewGestureController::activeLoadMonitoringTimerFired): Deleted. (WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired): Deleted. (WebKit::ViewGestureController::removeSwipeSnapshotAfterRepaint): Deleted. Move shareable snapshot removal code to a new platform-independent ViewGestureController file. Move the ViewGestureController constructor/destructor to the platform-independent file. * UIProcess/mac/ViewGestureController.messages.in: * WebKit2.xcodeproj/project.pbxproj: 2015-08-11 Andy Estes [Cocoa] Add redirect support to CustomProtocolManager https://bugs.webkit.org/show_bug.cgi?id=147871 Reviewed by Dan Bernstein. NSURLProtocols have the ability to generate redirect responses. This change teaches CustomProtocolManager how to handle them. * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: (WebKit::CustomProtocolManager::wasRedirectedToRequest): Called -URLProtocol:wasRedirectedToRequest:redirectResponse: on the NSURLProtocolClient. * Shared/Network/CustomProtocols/CustomProtocolManager.h: * Shared/Network/CustomProtocols/CustomProtocolManager.messages.in: Defined WasRedirectedToRequest. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp: (WebKit::CustomProtocolManager::wasRedirectedToRequest): Defined empty function. * UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm: (-[WKCustomProtocolLoader connection:willSendRequest:redirectResponse:]): If a redirect response is received, send WasRedirectedToRequest and return nil to ignore the redirect. 2015-08-13 Andy Estes [Cocoa] Downloads do not start if policy decision is made asynchronously https://bugs.webkit.org/show_bug.cgi?id=147985 Reviewed by Brady Eidson. * WebProcess/Network/WebResourceLoader.cpp: Updated to include SubresourceLoader.h. * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::convertMainResourceLoadToDownload): Started a new download if the main resource loader is not calling didReceiveResponse. 2015-08-14 Simon Fraser Speculative fix for iOS build failure. * Shared/mac/RemoteLayerTreeTransaction.h: 2015-08-14 Philippe Normand Unreviewed, remove dead code after r188385. * UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp: (webkitUserMediaPermissionRequestAllow): Deleted. 2015-08-14 Carlos Garcia Campos Unreviewed. Fix the build with !ENABLE(MEDIA_STREAM) after r188385. * UIProcess/API/C/WKUserMediaPermissionRequest.cpp: (WKUserMediaPermissionRequestDeviceNamesVideo): (WKUserMediaPermissionRequestDeviceNamesAudio): 2015-08-14 Carlos Garcia Campos Unreviewed. Fix GTK+ build after r188386. * UIProcess/API/gtk/WebKitWindowProperties.cpp: (webkitWindowPropertiesUpdateFromWebWindowFeatures): 2015-08-13 Tim Horton Performing a Lookup on wrapped text puts the popover arrow in the wrong place (off to the right) https://bugs.webkit.org/show_bug.cgi?id=148012 Reviewed by Simon Fraser. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didPerformDictionaryLookup): * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _animationControllerForText]): Adopt the new SPI, handing it the first text rect, instead of having it guess where to put the popover. 2015-08-13 Commit Queue Unreviewed, rolling out r188418. https://bugs.webkit.org/show_bug.cgi?id=148017 Fix EFL after the rollout of r188404 (Requested by smfr on #webkit). Reverted changeset: "[CMake] Unreviewed build fix after r188404" http://trac.webkit.org/changeset/188418 2015-08-13 Commit Queue Unreviewed, rolling out r188404. https://bugs.webkit.org/show_bug.cgi?id=148014 Broke 4 API tests (Requested by smfr on #webkit). Reverted changeset: "Add WKWindowFeaturesRef and a new modern createNewPage UI client callback" https://bugs.webkit.org/show_bug.cgi?id=147989 http://trac.webkit.org/changeset/188404 2015-08-13 Tim Horton Try to fix the Gtk/EFL build. * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindIndicator): 2015-08-13 Tim Horton Refactor and improve TextIndicator to prepare for tests https://bugs.webkit.org/show_bug.cgi?id=147622 Reviewed by Simon Fraser. * Shared/WebCoreArgumentCoders.cpp: (IPC::encodeOptionalImage): (IPC::decodeOptionalImage): (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): Move encode/decodeOptionalImage to their own functions to avoid duplication. * UIProcess/API/mac/WKView.mm: (-[WKView _dictionaryLookupPopoverWillClose:]): (-[WKView _setTextIndicator:]): (-[WKView _setTextIndicator:withLifetime:]): (-[WKView _clearTextIndicatorWithAnimation:]): (-[WKView _dismissContentRelativeChildWindows]): (-[WKView _dismissContentRelativeChildWindowsWithAnimation:]): * UIProcess/API/mac/WKViewInternal.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setTextIndicator): * UIProcess/WebPageProxy.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): (WebKit::PageClientImpl::didPerformDictionaryLookup): * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _animationControllerForText]): * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindIndicator): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): (WebKit::shouldUseTextIndicatorForLink): Deleted. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::dictionaryPopupInfoForRange): (WebKit::WebPage::performImmediateActionHitTestAtLocation): Adopt TextIndicatorOptions. Adjust to Range method renames. 2015-08-13 Jaehun Lim [CMake] Unreviewed build fix after r188404 * CMakeLists.txt: Add UIProcess/API/APIWindowFeatures.cpp, UIProcess/API/C/WKWindowFeaturesRef.cpp 2015-08-13 Wenson Hsieh A focused node should not be assisted when handling touch events synchronously https://bugs.webkit.org/show_bug.cgi?id=147836 Reviewed by Enrica Casucci. Makes interaction with touch handlers no longer assist the currently focused element in the general case. Added plumbing to reassist a currently focused node when dispatching touch events, so that an input that programmatically focuses itself and prevents default on a touch event will be properly assisted when it has been programmatically focused (either through Javascript or the autofocus attribute) prior to receiving the touch event. This patch also removes the now unnecessary special-casing of the Gmail settings app that currently makes the keyboard deploy upon autofocus. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Removed special case to avoid the early return for Gmail Add Account. * WebProcess/WebCoreSupport/WebChromeClient.h: Added a handler for refocusing an element. * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: (WebKit::WebChromeClient::elementDidRefocus): Makes refocusing an element trigger input assistance on iOS. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::dispatchTouchEvent): Removes logic to focus the currently focused element upon receiving a touch event. 2015-08-13 Anders Carlsson Add WKWindowFeaturesRef and a new modern createNewPage UI client callback https://bugs.webkit.org/show_bug.cgi?id=147989 Reviewed by Tim Horton. * Platform/IPC/mac/ConnectionMac.mm: * Shared/API/APIObject.h: * Shared/API/c/WKBase.h: * UIProcess/API/APIWindowFeatures.cpp: Added. * UIProcess/API/APIWindowFeatures.h: Added. * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): * UIProcess/API/C/WKPageUIClient.h: * UIProcess/API/C/WKWindowFeaturesRef.cpp: Added. (WKWindowFeaturesGetTypeID): * UIProcess/API/C/WKWindowFeaturesRef.h: Added. * UIProcess/API/Cocoa/WKWindowFeatures.mm: (-[WKWindowFeatures dealloc]): (-[WKWindowFeatures menuBarVisibility]): (-[WKWindowFeatures statusBarVisibility]): (-[WKWindowFeatures toolbarsVisibility]): (-[WKWindowFeatures allowsResizing]): (-[WKWindowFeatures x]): (-[WKWindowFeatures y]): (-[WKWindowFeatures width]): (-[WKWindowFeatures height]): (-[WKWindowFeatures _apiObject]): (-[WKWindowFeatures _initWithWindowFeatures:]): Deleted. * UIProcess/API/Cocoa/WKWindowFeaturesInternal.h: (WebKit::wrapper): * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::createNewPage): * WebKit2.xcodeproj/project.pbxproj: 2015-08-13 Simon Fraser FilterOperation.h should not include FilterEffect.h https://bugs.webkit.org/show_bug.cgi?id=147970 Reviewed by Daniel Bates. FilterEffect.h pulls in lots of JSC goop via runtime/Uint8ClampedArray.h, so move its include to FilterOperation.cpp. Causes include bloat because FilterOperation.h is pulled in via RenderStyle.h. * UIProcess/ios/WebVideoFullscreenManagerProxy.h: 2015-08-12 Anders Carlsson Use WTF::Optional in WindowFeatures https://bugs.webkit.org/show_bug.cgi?id=147956 Reviewed by Sam Weinig. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): * UIProcess/API/Cocoa/WKWindowFeatures.mm: (-[WKWindowFeatures _initWithWindowFeatures:]): 2015-08-13 Matthew Daiter Linking device query ability from WebKit2 to clients https://bugs.webkit.org/show_bug.cgi?id=147263 Reviewed by Jer Noble. * Platform/mac/LayerHostingContext.mm: (WebKit::LayerHostingContext::setColorMatchUntaggedContent): (WebKit::LayerHostingContext::colorMatchUntaggedContent): * UIProcess/API/C/WKUserMediaPermissionRequest.cpp: (WKUserMediaPermissionRequestAllow): (WKUserMediaPermissionRequestDeviceNamesVideo): (WKUserMediaPermissionRequestDeviceNamesAudio): * UIProcess/API/C/WKUserMediaPermissionRequest.h: * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision): Deleted. * UIProcess/UserMediaPermissionRequestManagerProxy.h: * UIProcess/UserMediaPermissionRequestProxy.cpp: (WebKit::UserMediaPermissionRequestProxy::allow): (WebKit::UserMediaPermissionRequestProxy::deny): * UIProcess/UserMediaPermissionRequestProxy.h: * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: (WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision): 2015-08-12 Alexey Proskuryakov [Mac] WebKit processes should have access to com.apple.nesessionmanager.flow-divert-token https://bugs.webkit.org/show_bug.cgi?id=147949 rdar://problem/22254920 Reviewed by Anders Carlsson. * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: * WebProcess/com.apple.WebProcess.sb.in: 2015-08-12 Brian Burg Web Inspector: CRASH under WebInspector::closeFrontend for some protocol tests https://bugs.webkit.org/show_bug.cgi?id=147948 Reviewed by Joseph Pecoraro. * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::closeFrontend): Don't invalidate the channel if it's null. * WebProcess/WebPage/WebInspector.h: Add default member variable values. 2015-08-12 Joseph Pecoraro Web Inspector: Not receiving responses for async request IndexedDB.requestDatabaseNames https://bugs.webkit.org/show_bug.cgi?id=147844 Reviewed by Brian Burg. * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp: (WebKit::WebIDBFactoryBackend::getDatabaseNames): This method should not return without calling either the success or error callbacks. In this case, it can succeed with an empty list. 2015-08-12 Enrica Casucci Element interaction should not be canceled when the menu is already being shown. https://bugs.webkit.org/show_bug.cgi?id=147945 rdar://problem/22206433 Reviewed by Beth Dakin. When preview is canceled by the action menu gesture, we should not stop interacting with the element, since the information about the element is used for the menu actions. We now expose a new method in the action sheet assistant to know if the action sheed is being shown and we use this as an indication that we should not stop the interaction with the element. * UIProcess/ios/WKActionSheetAssistant.h: * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant isShowingSheet]): Added. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionStoppedFromPreviewItemController:]): Do not stop the interaction if the sheet is being shown. 2015-08-12 Matt Rajca Fixed the Release build when MEDIA_SESSION is enabled. * UIProcess/API/C/WKPage.cpp: (WKPageHandleMediaEvent): 2015-08-07 Matt Rajca Media Session: notify the UI process when media controls are enabled/disabled https://bugs.webkit.org/show_bug.cgi?id=147802 Reviewed by Eric Carlson. * UIProcess/WebMediaSessionFocusManager.cpp: (WebKit::WebMediaSessionFocusManager::playbackAttributeDidChange): Generalized to take different attributes. (WebKit::WebMediaSessionFocusManager::mediaElementIsPlayingDidChange): Deleted. * UIProcess/WebMediaSessionFocusManager.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::isPlayingMediaDidChange): Process new attributes for enabling/disabling media controls. 2015-08-12 Devin Rousso Web Inspector: Implement selector highlighting for iOS https://bugs.webkit.org/show_bug.cgi?id=147919 Reviewed by Timothy Hatcher. * UIProcess/WKInspectorHighlightView.mm: (-[WKInspectorHighlightView _layoutForNodeHighlight:offset:]): Added offset parameter to start drawing the highlight at that index of the highlight quad list. (-[WKInspectorHighlightView _layoutForNodeListHighlight:]): Loops through the highlight quads and draws a new highlight for every 4 highlight quad objects. (-[WKInspectorHighlightView update:]): Now uses the light highlighting for both nodes and lists of nodes. 2015-08-11 Carlos Garcia Campos NetworkProcess: DNS prefetch happens in the Web Process https://bugs.webkit.org/show_bug.cgi?id=147824 Reviewed by Alexey Proskuryakov. DNS prefetch requests started in the WebProcess should be sent to the network process when it's enabled. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::prefetchDNS): Do the actual DNS prefetch. * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: Add PrefetchDNS message. * WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp: (webkitWebExtensionDidReceiveMessage): Use WebProcess::prefetchDNS(). * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::prefetchDNS): Ditto. * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::sendTapHighlightForNodeIfNecessary): Use FrameLoaderClient to do the DNS prefetch. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::prefetchDNS): Send the request to the network process if it's enabled, otherwise do the actual DNS prefetch. * WebProcess/WebProcess.h: 2015-08-11 Hunseop Jeong Try to fix the EFL build after r188279 https://bugs.webkit.org/show_bug.cgi?id=147917 Reviewed by Gyuyoung Kim. Replaced the WKPageLoaderClient with variable name because it is removed in r188279. * UIProcess/efl/PageLoadClientEfl.cpp: (WebKit::PageLoadClientEfl::PageLoadClientEfl): * UIProcess/efl/PagePolicyClientEfl.cpp: (WebKit::PagePolicyClientEfl::PagePolicyClientEfl): 2015-08-11 Andy Estes Tried again to fix the iOS build. * UIProcess/ios/WKGeolocationProviderIOS.mm: (-[WKGeolocationProviderIOS initWithProcessPool:]): 2015-08-11 Dan Bernstein Tried to fix the iOS build. * UIProcess/ios/WKGeolocationProviderIOS.mm: (-[WKGeolocationProviderIOS initWithProcessPool:]): 2015-08-11 Andy Estes WebFrameLoaderClient::dispatchDecidePolicyForResponse() calls an std::function after it's been moved from https://bugs.webkit.org/show_bug.cgi?id=147873 Reviewed by Alexey Proskuryakov. I noticed during code inspection that we were calling an std::function after WTF::move() has been called on it. Calling an empty std::function results in a C++ exception being thrown. I don't know how to make a sync IPC message fail, so I'm not sure how to test this. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): Called didReceivePolicyDecision instead. 2015-08-11 Beth Dakin REGRESSION (r188053): Sometimes unable to save an image from Google Search/ imgur via long press https://bugs.webkit.org/show_bug.cgi?id=147896 Reviewed by Enrica Casucci. http://trac.webkit.org/changeset/188053 added code to call cleanupSheet when the long press gesture is cancelled. However, the gesture will be called with the cancelled state when then user taps an item in the action sheet (such as “save image”), and sometimes the “cancel” comes in before the image has been saved. That is a problem because we need to avoid cleaning up the sheet until after the image is saved. Before that patch, we never cleaned up the sheet on cancel, so this patch goes back to that behavior. We also have to remove some assertions that assume that everything will be totally cleaned up when a new sheet is created, but that is not necessarily true due to interactions between the preview gesture and the long press gesture. Remove assertions. * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]): (-[WKActionSheetAssistant showImageSheet]): (-[WKActionSheetAssistant showLinkSheet]): (-[WKActionSheetAssistant showDataDetectorsSheet]): Revert the part of Enrica’s patch that called cleanupSheet when the gesture is cancelled. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _longPressRecognized:]): 2015-08-11 Anders Carlsson Remove unversioned client structs from the C SPI https://bugs.webkit.org/show_bug.cgi?id=147894 Reviewed by Dan Bernstein. * Shared/API/c/WKConnectionRef.h: * UIProcess/API/C/WKContext.h: * UIProcess/API/C/WKContextConnectionClient.h: * UIProcess/API/C/WKContextDownloadClient.h: * UIProcess/API/C/WKContextHistoryClient.h: * UIProcess/API/C/WKContextInjectedBundleClient.h: * UIProcess/API/C/WKCookieManager.h: * UIProcess/API/C/WKDatabaseManager.h: * UIProcess/API/C/WKGeolocationManager.h: * UIProcess/API/C/WKIconDatabase.h: * UIProcess/API/C/WKNotificationProvider.h: * UIProcess/API/C/WKPageContextMenuClient.h: * UIProcess/API/C/WKPageDiagnosticLoggingClient.h: * UIProcess/API/C/WKPageFindClient.h: * UIProcess/API/C/WKPageFindMatchesClient.h: * UIProcess/API/C/WKPageFormClient.h: * UIProcess/API/C/WKPageLoaderClient.h: * UIProcess/API/C/WKPagePolicyClient.h: * UIProcess/API/C/WKPageUIClient.h: * WebProcess/InjectedBundle/API/c/WKBundle.h: * WebProcess/InjectedBundle/API/c/WKBundlePageBanner.h: * WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h: * WebProcess/InjectedBundle/API/c/WKBundlePageDiagnosticLoggingClient.h: * WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h: * WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h: * WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h: * WebProcess/InjectedBundle/API/c/WKBundlePageLoaderClient.h: * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h: * WebProcess/InjectedBundle/API/c/WKBundlePagePolicyClient.h: * WebProcess/InjectedBundle/API/c/WKBundlePageResourceLoadClient.h: * WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h: 2015-08-11 Dan Bernstein Reverted r188255, because it turned out that delegates do nonot need this information. * UIProcess/API/APIUIClient.h: (API::UIClient::footerHeight): (API::UIClient::drawHeader): (API::UIClient::drawFooter): (API::UIClient::printFrame): (API::UIClient::canRunModal): (API::UIClient::runModal): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIDelegate): (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota): (WebKit::UIDelegate::UIClient::printFrame): (WebKit::UIDelegate::UIClient::close): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runOpenPanel): (WebKit::WebPageProxy::printFrame): (WebKit::WebPageProxy::printMainFrame): (WebKit::WebPageProxy::setMediaVolume): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::setShouldSendEventsSynchronously): * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::print): (WebKit::WebChromeClient::exceededDatabaseQuota): 2015-08-11 Dan Bernstein [Cocoa] The UI delegate can't tell if printing was user-initiated https://bugs.webkit.org/show_bug.cgi?id=147869 Reviewed by Sam Weinig. * UIProcess/API/APIUIClient.h: (API::UIClient::printFrame): Added processingUserGesture argument. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): Updated for new client function signature. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Added userInitiated boolean argument to -_webView:printFrame:. * UIProcess/Cocoa/UIDelegate.h: Added bool to m_delegateMethods for the new method. * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIDelegate): (WebKit::UIDelegate::setDelegate): Initialized new bool. (WebKit::UIDelegate::UIClient::printFrame): Pass processingUserGesture as the delegate’s userInitiated argument. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::printFrame): Added processingUserGesture argument, passing it along to the client. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: Added processingUserGesture argument to printFrame. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::print): Pass new argument. 2015-08-10 Matthew Daiter Add MediaDeviceIdentifier to WebsiteDataTypes https://bugs.webkit.org/show_bug.cgi?id=147853 Reviewed by Jer Noble. * Shared/WebsiteData/WebsiteDataTypes.h: 2015-08-10 Sam Weinig Try to fix the 32-bit build. * UIProcess/API/mac/WKViewInternal.h: 2015-08-08 Sam Weinig Replace WebPageConfiguration with API::PageConfiguration and expose a C-SPI accessor for it https://bugs.webkit.org/show_bug.cgi?id=147811 Reviewed by Darin Adler. - Adds the missing pieces from WebPageConfiguration into API::PageConfiguration. - Adds C-SPI to set and get the WebsiteDataStore on the WKPageConfigurationRef. - Uses API::PageConfiguration to pass configuration information from WKWebView/WKView to WebPageProxy. - Stores the API::PageConfiguration on the WebPageProxy and exposes a new C-SPI function, WKPageCopyPageConfiguration, to get a copy of it. * UIProcess/API/APIPageConfiguration.cpp: (API::PageConfiguration::create): (API::PageConfiguration::PageConfiguration): (API::PageConfiguration::~PageConfiguration): (API::PageConfiguration::copy): (API::PageConfiguration::processPool): (API::PageConfiguration::setRelatedPage): (API::PageConfiguration::visitedLinkProvider): (API::PageConfiguration::setVisitedLinkProvider): (API::PageConfiguration::websiteDataStore): (API::PageConfiguration::setWebsiteDataStore): (API::PageConfiguration::sessionID): (API::PageConfiguration::setSessionID): (API::PageConfiguration::webPageConfiguration): Deleted. * UIProcess/API/APIPageConfiguration.h: (API::PageConfiguration::preferenceValues): (API::PageConfiguration::treatsSHA1SignedCertificatesAsInsecure): (API::PageConfiguration::setTreatsSHA1SignedCertificatesAsInsecure): (API::PageConfiguration::alwaysRunsAtForegroundPriority): (API::PageConfiguration::setAlwaysRunsAtForegroundPriority): (API::PageConfiguration::create): Deleted. * UIProcess/API/C/WKPage.cpp: (WKPageGetPageGroup): (WKPageCopyPageConfiguration): (WKPageLoadURL): * UIProcess/API/C/WKPage.h: * UIProcess/API/C/WKPageConfigurationRef.cpp: (WKPageConfigurationSetRelatedPage): (WKPageConfigurationGetWebsiteDataStore): (WKPageConfigurationSetWebsiteDataStore): * UIProcess/API/C/WKPageConfigurationRef.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/ios/WKViewIOS.mm: (-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]): * UIProcess/API/mac/WKView.mm: (-[WKView _setPrimaryTrackingArea:]): (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): (-[WKView initWithFrame:configurationRef:]): (-[WKView wantsUpdateLayer]): * UIProcess/API/mac/WKViewInternal.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::create): (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::~WebPageProxy): (WebKit::WebPageProxy::configuration): (WebKit::WebPageProxy::processIdentifier): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::pageID): (WebKit::WebPageProxy::sessionID): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit): (WebKit::WebProcessPool::createWebPage): (WebKit::WebProcessPool::download): * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::webPage): (WebKit::WebProcessProxy::createWebPage): * UIProcess/WebProcessProxy.h: (WebKit::WebProcessProxy::processPool): * UIProcess/ios/WKContentView.h: * UIProcess/ios/WKContentView.mm: (-[WKContentView _commonInitializationWithProcessPool:configuration:]): (-[WKContentView initWithFrame:processPool:configuration:webView:]): (-[WKContentView initWithFrame:processPool:configuration:wkView:]): (-[WKContentView dealloc]): 2015-08-10 Commit Queue Unreviewed, rolling out r187131 and r187286. https://bugs.webkit.org/show_bug.cgi?id=147839 Causing mroe frequent crashes with invalid layer bounds (rdar://problem/21465328) (Requested by smfr on #webkit). Reverted changesets: "[iOS] Menu drop down such as on nike.com does not stay" https://bugs.webkit.org/show_bug.cgi?id=147047 http://trac.webkit.org/changeset/187131 "[iOS] REGRESSION (187131): Loading CuteOverload zooms in to the top left corner." https://bugs.webkit.org/show_bug.cgi?id=147251 http://trac.webkit.org/changeset/187286 2015-08-07 Matt Rajca Media Session: generalize isFocusedContentMediaElementPlaying so it works with other playback attributes https://bugs.webkit.org/show_bug.cgi?id=147797 Reviewed by Simon Fraser. * UIProcess/API/C/WKMediaSessionFocusManager.cpp: (WKMediaSessionFocusManagerValueForPlaybackAttribute): (WKMediaSessionFocusManagerIsFocusedContentMediaElementPlaying): Deleted. * UIProcess/API/C/WKMediaSessionFocusManager.h: * UIProcess/WebMediaSessionFocusManager.cpp: (WebKit::WebMediaSessionFocusManager::valueForPlaybackAttribute): (WebKit::WebMediaSessionFocusManager::mediaControlIsEnabledDidChange): (WebKit::WebMediaSessionFocusManager::isFocusedContentMediaElementPlaying): Deleted. (WebKit::WebMediaSessionFocusManager::mediaElementIsPlayingDidChange): Deleted. * UIProcess/WebMediaSessionFocusManager.h: 2015-08-10 Zan Dobersek [CoordinatedGraphics] Fix forward declarations of CoordinatedGraphicsLayerState, ViewportAttributes https://bugs.webkit.org/show_bug.cgi?id=147823 Reviewed by Carlos Garcia Campos. * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: * WebProcess/WebPage/LayerTreeHost.h: 2015-08-10 Carlos Garcia Campos [GTK] Crash when the web view is destroyed while the screensaver DBUs proxy is being created https://bugs.webkit.org/show_bug.cgi?id=147780 Reviewed by Sergio Villar Senin. We should cancel the screenSaverInhibitCancellable on dispose. Also use adoptGRef() when creating the cancellable object to not leak it. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseDispose): (webkitWebViewBaseSendInhibitMessageToScreenSaver): (webkitWebViewBaseInhibitScreenSaver): 2015-08-09 Chris Dumez Follow-up nit fixes after r187691. https://bugs.webkit.org/show_bug.cgi?id=128006 Reviewed by Gavin Barraclough. Use modern for-loops instead of explicit iterators. * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::shouldCoalesceChallenge): (WebKit::AuthenticationManager::coalesceChallengesMatching): 2015-08-07 Filip Pizlo Lightweight locks should be adaptive https://bugs.webkit.org/show_bug.cgi?id=147545 Reviewed by Geoffrey Garen. * WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::clearQueuedTouchEventsForPage): (WebKit::EventDispatcher::getQueuedTouchEventsForPage): (WebKit::EventDispatcher::touchEvent): (WebKit::EventDispatcher::dispatchTouchEvents): * WebProcess/WebPage/EventDispatcher.h: * WebProcess/WebPage/ViewUpdateDispatcher.cpp: (WebKit::ViewUpdateDispatcher::visibleContentRectUpdate): (WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate): * WebProcess/WebPage/ViewUpdateDispatcher.h: 2015-08-07 Wenson Hsieh Temporarily allow programmatic input assistance for adding Gmail account https://bugs.webkit.org/show_bug.cgi?id=147792 Reviewed by Enrica Casucci. Temporary fix for keyboard input sliding out and immediately back in upon user interaction in the Gmail 2-factor authentication page. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Early return no longer triggers due to lack of user interaction when adding a new Gmail account through Settings. 2015-08-07 Brady Eidson Move concrete KeyedDecoder/Encoder implementations to WebCore. https://bugs.webkit.org/show_bug.cgi?id=147757. Rubberstamped by Andy Estes. * DatabaseProcess/IndexedDB/IDBSerialization.cpp: (WebKit::serializeIDBKeyPath): (WebKit::deserializeIDBKeyPath): (WebKit::serializeIDBKeyData): (WebKit::deserializeIDBKeyData): * PlatformEfl.cmake: * PlatformGTK.cmake: * WebKit2.xcodeproj/project.pbxproj: 2015-08-07 Carlos Garcia Campos Unreviewed. Fix GTK+ compile warning also introduced in r188121. * UIProcess/API/gtk/WebKitInstallMissingMediaPluginsPermissionRequest.cpp: (webkit_install_missing_media_plugins_permission_request_get_description): 2015-08-07 Carlos Garcia Campos Unreviewed. Fix GTK+ debug build after r188121. * UIProcess/API/gtk/WebKitInstallMissingMediaPluginsPermissionRequest.cpp: (webkit_install_missing_media_plugins_permission_request_get_description): 2015-08-07 Carlos Garcia Campos [GStreamer] Do not automatically show PackageKit codec installation notifications https://bugs.webkit.org/show_bug.cgi?id=135973 Reviewed by Philippe Normand. Add InstallMissingMediaPluginsPermissionRequest to ask the API layer whether to allow or deny the installation of missing media plugins. And add a GTK+ implementation based on current permission request API. Replace the PageClientImpl::createGstInstallPluginsContext() with decicePolicyForInstallMissingMediaPluginsPermissionRequest() that passes the InstallMissingMediaPluginsPermissionRequest object to the API layer. The allow method receives the GstInstallPluginsContext now, so that it can be created by the API implementation. * PlatformEfl.cmake: * PlatformGTK.cmake: * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::decicePolicyForInstallMissingMediaPluginsPermissionRequest): * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/API/gtk/WebKitInstallMissingMediaPluginsPermissionRequest.cpp: Added. (createGstInstallPluginsContext): (webkitInstallMissingMediaPluginsPermissionRequestAllow): (webkitInstallMissingMediaPluginsPermissionRequestDeny): (webkit_permission_request_interface_init): (webkitInstallMissingMediaPluginsPermissionRequestDispose): (webkit_install_missing_media_plugins_permission_request_class_init): (webkitInstallMissingMediaPluginsPermissionRequestCreate): (webkit_install_missing_media_plugins_permission_request_get_description): * UIProcess/API/gtk/WebKitInstallMissingMediaPluginsPermissionRequest.h: Added. * UIProcess/API/gtk/WebKitInstallMissingMediaPluginsPermissionRequestPrivate.h: Added. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewRequestInstallMissingMediaPlugins): * UIProcess/API/gtk/WebKitWebViewPrivate.h: * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: * UIProcess/API/gtk/docs/webkit2gtk-4.0.types: * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: * UIProcess/API/gtk/webkit2.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/efl/WebViewEfl.h: * UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.cpp: Copied from Source/WebKit2/UIProcess/gstreamer/WebPageProxyGStreamer.cpp. (WebKit::InstallMissingMediaPluginsPermissionRequest::InstallMissingMediaPluginsPermissionRequest): (WebKit::InstallMissingMediaPluginsPermissionRequest::~InstallMissingMediaPluginsPermissionRequest): (WebKit::InstallMissingMediaPluginsPermissionRequest::allow): (WebKit::InstallMissingMediaPluginsPermissionRequest::deny): (WebKit::InstallMissingMediaPluginsPermissionRequest::didEndRequestInstallMissingMediaPlugins): * UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.h: Copied from Source/WebKit2/WebProcess/WebPage/gstreamer/WebPageGStreamer.cpp. (WebKit::InstallMissingMediaPluginsPermissionRequest::create): (WebKit::InstallMissingMediaPluginsPermissionRequest::page): (WebKit::InstallMissingMediaPluginsPermissionRequest::details): (WebKit::InstallMissingMediaPluginsPermissionRequest::description): * UIProcess/gstreamer/WebPageProxyGStreamer.cpp: (WebKit::WebPageProxy::requestInstallMissingMediaPlugins): * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::requestInstallMissingMediaPlugins): * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/gstreamer/WebPageGStreamer.cpp: (WebKit::WebPage::requestInstallMissingMediaPlugins): 2015-08-06 Beth Dakin TextIndicator can have stale contentImage data and crash https://bugs.webkit.org/show_bug.cgi?id=147770 -and corresponding- rdar://problem/22181735 Reviewed by Tim Horton. If there is no contentImage or contentImageWithHighlight, set them to nullptr. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::decode): 2015-08-06 Dan Bernstein Fixed all the builds after trying to fix the non-HAVE(LINK_PREVIEW) build. * UIProcess/ios/WKContentViewInteraction.mm: 2015-08-06 Dan Bernstein Fixed the non-HAVE(LINK_PREVIEW) build. * UIProcess/ios/WKContentViewInteraction.mm: 2015-08-06 Enrica Casucci Cleanup action sheet only when long press is canceled (non ended). https://bugs.webkit.org/show_bug.cgi?id=147766 rdar://problem/22181842 Reviewed by Tim Horton. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _longPressRecognized:]): 2015-08-06 Matt Rajca Media Session: notify focus manager clients when the playing state of the focused media element changes https://bugs.webkit.org/show_bug.cgi?id=147745 Reviewed by Tim Horton. Added plumbing to allow focus manager's clients to be notified when the focused Content media element begins playing or is paused. * UIProcess/API/C/WKMediaSessionFocusManager.cpp: (WKMediaSessionFocusManagerSetClient): * UIProcess/API/C/WKMediaSessionFocusManager.h: * UIProcess/WebMediaSessionFocusManager.cpp: (WebKit::WebMediaSessionFocusManager::initializeClient): (WebKit::WebMediaSessionFocusManager::mediaElementIsPlayingDidChange): * UIProcess/WebMediaSessionFocusManager.h: * UIProcess/WebMediaSessionFocusManagerClient.cpp: (WebKit::WebMediaSessionFocusManagerClient::didChangePlaybackAttribute): * UIProcess/WebMediaSessionFocusManagerClient.h: * WebKit2.xcodeproj/project.pbxproj: 2015-08-06 Alex Christensen Make CMake usable on Mac. https://bugs.webkit.org/show_bug.cgi?id=147756 Reviewed by Tim Horton. * PlatformMac.cmake: DatabaseProcess_SOURCES needs something in order to not have errors when generating build systems from CMake. This doesn't fix everything, but it can now be used to build jsc again. 2015-08-06 Enrica Casucci Build fix for iOS after http://trac.webkit.org/changeset/188053. Unreviewed. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _registerPreview]): 2015-08-06 Enrica Casucci Allow long press to cancel link preview. https://bugs.webkit.org/show_bug.cgi?id=147743 rdar://problem/22128839 Reviewed by Tim Horton. We should be able to show the context menu at the beginnig of link preview. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _removeDefaultGestureRecognizers]): (-[WKContentView _addDefaultGestureRecognizers]): (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): (-[WKContentView _longPressRecognized:]): (-[WKContentView _singleTapRecognized:]): (-[WKContentView _registerPreview]): (-[WKContentView _unregisterPreview]): 2015-08-06 Matt Rajca Media Session: rename isFocusedContentMediaElementPaused and get rid of callback https://bugs.webkit.org/show_bug.cgi?id=147726 Reviewed by Simon Fraser. - isFocusedContentMediaElementPaused should be renamed to isFocusedContentMediaElementPlaying to match recent refactoring work. - isFocusedContentMediaElementPlaying itself does not need a callback anymore because the value can be returned directly. * UIProcess/API/C/WKMediaSessionFocusManager.cpp: (WKMediaSessionFocusManagerIsFocusedContentMediaElementPlaying): Removed callback and renamed from... (WKMediaSessionFocusManagerIsFocusedContentMediaElementPaused): Deleted. * UIProcess/API/C/WKMediaSessionFocusManager.h: * UIProcess/WebMediaSessionFocusManager.cpp: (WebKit::WebMediaSessionFocusManager::isFocusedContentMediaElementPlaying): Removed callback and renamed from... (WebKit::WebMediaSessionFocusManager::isFocusedContentMediaElementPaused): Deleted. * UIProcess/WebMediaSessionFocusManager.h: 2015-08-06 Csaba Osztrogonác [EFL] Bump EFL version to 1.15.0 https://bugs.webkit.org/show_bug.cgi?id=147450 Reviewed by Gyuyoung Kim. * PlatformEfl.cmake: 2015-08-06 Carlos Garcia Campos [GTK] Crash closing a page when a context menu is open https://bugs.webkit.org/show_bug.cgi?id=147682 Reviewed by Sergio Villar Senin. Implement WebContextMenuProxy::cancelTracking() to clear the internal menu when the web page is closed. * UIProcess/gtk/WebContextMenuProxyGtk.cpp: (WebKit::WebContextMenuProxyGtk::cancelTracking): (WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): Deleted. * UIProcess/gtk/WebContextMenuProxyGtk.h: 2015-08-04 Matt Rajca Media Session: push paused state to the media session focus manager instead of polling https://bugs.webkit.org/show_bug.cgi?id=147633 Reviewed by Simon Fraser. * UIProcess/WebMediaSessionFocusManager.cpp: (WebKit::WebMediaSessionFocusManager::isFocusedContentMediaElementPaused): Report whether the focused media element is currently playing. The callback is no longer necessary and will be removed in a future patch in favor of returning a value directly. (WebKit::WebMediaSessionFocusManager::mediaElementIsPlayingDidChange): Keep track of whether the focused media element is currently playing. * UIProcess/WebMediaSessionFocusManager.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::isPlayingMediaDidChange): If the focused media element begins/ends playing, keep track of its playing state. (WebKit::WebPageProxy::isMediaElementPaused): Deleted. We now push media playback state changes instead of polling. * UIProcess/WebPageProxy.h: isPlayingMediaDidChange is now passed the ID of the media element that triggered the 'playing' state change. This can be used in conjunction with the IsSourcePlaying media flag to identify whether the source element begin/ended playing. * UIProcess/WebPageProxy.messages.in: Ditto. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::setPluginIsPlayingAudio): Since a media element did not trigger this, pass in 0 for the source media element. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::isPlayingMediaDidChange): isPlayingMediaDidChange is now passed the ID of the media element that triggered the 'playing' state change. * WebProcess/WebCoreSupport/WebChromeClient.h: Ditto. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::isMediaElementPaused): Deleted. We now push media playback state changes instead of polling. * WebProcess/WebPage/WebPage.h: Ditto. * WebProcess/WebPage/WebPage.messages.in: Ditto. 2015-08-05 Tim Horton PDFPlugins are clipped in link previews (and remain so when opened) https://bugs.webkit.org/show_bug.cgi?id=147708 Reviewed by Simon Fraser. * UIProcess/API/mac/WKView.mm: (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView _supportsArbitraryLayoutModes]): (-[WKView _didCommitLoadForMainFrame]): (-[WKView _setLayoutMode:]): (-[WKView _setViewScale:]): Avoid using any layout mode other than "ViewSize" for main frame PluginDocuments, because they will often end up behaving incorrectly (especially with PDFPlugin, which is even more special in that it takes over application of page scale). Save any incoming changes to the viewScale and layoutMode, and re-apply them once we load something in the main frame that is *not* a PluginDocument. * UIProcess/API/mac/WKViewInternal.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scalePage): Make sure to reset WebCore's page scale if the main frame contains a PluginDocument that takes care of page scale itself. (WebKit::WebPage::didCommitLoad): Do the same thing as what we do in WKView _didCommitLoadForMainFrame, but without the UI process round-trip, to avoid an ugly flash. * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::didCommitLoad): * UIProcess/WebFrameProxy.h: (WebKit::WebFrameProxy::containsPluginDocument): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didCommitLoadForFrame): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didCommitLoadForMainFrame): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad): Plumb and keep track of whether the main frame contains a PluginDocument or not. 2015-08-05 Filip Pizlo Unreviewed, roll out http://trac.webkit.org/changeset/187972. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::postDatabaseTask): (WebKit::DatabaseProcess::performNextDatabaseTask): * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::shutdown): (WebKit::UniqueIDBDatabase::postMainThreadTask): (WebKit::UniqueIDBDatabase::performNextMainThreadTask): (WebKit::UniqueIDBDatabase::postDatabaseTask): (WebKit::UniqueIDBDatabase::performNextDatabaseTask): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: * Platform/IPC/Connection.cpp: (IPC::Connection::sendSyncMessage): (IPC::Connection::sendSyncMessageFromSecondaryThread): (IPC::Connection::waitForSyncReply): (IPC::Connection::processIncomingSyncReply): (IPC::Connection::connectionDidClose): * Platform/IPC/Connection.h: * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::appendUpdate): * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::ThreadedCompositor::createCompositingThread): (WebKit::ThreadedCompositor::runCompositingThread): (WebKit::ThreadedCompositor::terminateCompositingThread): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: (WebKit::CustomProtocolManager::addCustomProtocol): (WebKit::CustomProtocolManager::removeCustomProtocol): (WebKit::CustomProtocolManager::registerScheme): (WebKit::CustomProtocolManager::unregisterScheme): (WebKit::CustomProtocolManager::supportsScheme): (WebKit::CustomProtocolManager::protocolForID): * Shared/Network/CustomProtocols/CustomProtocolManager.h: * Shared/linux/SeccompFilters/SeccompBroker.cpp: * WebProcess/Plugins/PluginProcessConnectionManager.cpp: (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): (WebKit::PluginProcessConnectionManager::removePluginProcessConnection): (WebKit::PluginProcessConnectionManager::pluginProcessCrashed): * WebProcess/Plugins/PluginProcessConnectionManager.h: * WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::addScrollingTreeForPage): (WebKit::EventDispatcher::removeScrollingTreeForPage): (WebKit::EventDispatcher::wheelEvent): * WebProcess/WebPage/EventDispatcher.h: * WebProcess/soup/WebKitSoupRequestInputStream.cpp: (webkitSoupRequestInputStreamReadAsync): (webkitSoupRequestInputStreamAddData): 2015-08-05 Ryosuke Niwa WebInspectorProxy should make WKWebView first responder https://bugs.webkit.org/show_bug.cgi?id=147676 Reviewed by Timothy Hatcher. Revert r181927 now that WKWebView forwards the first responder role to WKView as needed. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformBringToFront): (WebKit::WebInspectorProxy::platformAttach): 2015-08-04 Filip Pizlo Rename Mutex to DeprecatedMutex https://bugs.webkit.org/show_bug.cgi?id=147675 Reviewed by Geoffrey Garen. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::postDatabaseTask): (WebKit::DatabaseProcess::performNextDatabaseTask): * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::shutdown): (WebKit::UniqueIDBDatabase::postMainThreadTask): (WebKit::UniqueIDBDatabase::performNextMainThreadTask): (WebKit::UniqueIDBDatabase::postDatabaseTask): (WebKit::UniqueIDBDatabase::performNextDatabaseTask): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: * Platform/IPC/Connection.cpp: (IPC::Connection::sendSyncMessage): (IPC::Connection::sendSyncMessageFromSecondaryThread): (IPC::Connection::waitForSyncReply): (IPC::Connection::processIncomingSyncReply): (IPC::Connection::connectionDidClose): * Platform/IPC/Connection.h: * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::appendUpdate): * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::ThreadedCompositor::createCompositingThread): (WebKit::ThreadedCompositor::runCompositingThread): (WebKit::ThreadedCompositor::terminateCompositingThread): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: (WebKit::CustomProtocolManager::addCustomProtocol): (WebKit::CustomProtocolManager::removeCustomProtocol): (WebKit::CustomProtocolManager::registerScheme): (WebKit::CustomProtocolManager::unregisterScheme): (WebKit::CustomProtocolManager::supportsScheme): (WebKit::CustomProtocolManager::protocolForID): * Shared/Network/CustomProtocols/CustomProtocolManager.h: * Shared/linux/SeccompFilters/SeccompBroker.cpp: * WebProcess/Plugins/PluginProcessConnectionManager.cpp: (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): (WebKit::PluginProcessConnectionManager::removePluginProcessConnection): (WebKit::PluginProcessConnectionManager::pluginProcessCrashed): * WebProcess/Plugins/PluginProcessConnectionManager.h: * WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::addScrollingTreeForPage): (WebKit::EventDispatcher::removeScrollingTreeForPage): (WebKit::EventDispatcher::wheelEvent): * WebProcess/WebPage/EventDispatcher.h: * WebProcess/soup/WebKitSoupRequestInputStream.cpp: (webkitSoupRequestInputStreamReadAsync): (webkitSoupRequestInputStreamAddData): 2015-08-05 Daniel Bates REGRESSION (r185111): Clicking phone numbers doesn't prompt to call sometimes https://bugs.webkit.org/show_bug.cgi?id=147678 Reviewed by Brady Eidson. Teach WebKit to save and restore the "should open external URLs" policy. * Shared/SessionState.cpp: (WebKit::isValidEnum): Added. (WebKit::PageState::encode): Modified to encode the "should open external URLs" policy. (WebKit::PageState::decode): Modified to decode the "should open external URLs" policy. * Shared/SessionState.h: Added ShouldOpenExternalURLsPolicy to PageState (defaults to WebCore::ShouldOpenExternalURLsPolicy::ShouldNotAllow). * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _killWebContentProcessAndResetState]): Added; used in the unit test TestWebKitAPI/Tests/WebKit2Cocoa/ShouldOpenExternalURLsInNewWindowActions.mm. * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declare -[WKWebView _killWebContentProcessAndResetState]. * UIProcess/mac/LegacySessionStateCoding.cpp: Defined constant sessionHistoryEntryShouldOpenExternalURLsPolicyKey. (WebKit::encodeSessionHistory): Modified to encode the "should open external URLs" policy. (WebKit::decodeSessionHistoryEntry): Modified to decode the "should open external URLs" policy. * WebProcess/WebCoreSupport/SessionStateConversion.cpp: (WebKit::toPageState): Copy "should open external URLs" policy from specified history item. (WebKit::toHistoryItem): Apply "should open external URLs" policy from PageState to HistoryItem. 2015-08-04 Antti Koivisto Network cache fetches should have timeout https://bugs.webkit.org/show_bug.cgi?id=147631 Reviewed by Andreas Kling. System might be under heavy I/O pressure. If it takes long time to get data from disk we should load from network instead. This patch introduces 1.5s timeout for disk reads. If the last dispatched cache read takes longer than that we cancel all active and pending reads and just load those resources from network. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::ReadOperation::ReadOperation): (WebKit::NetworkCache::Storage::ReadOperation::cancel): (WebKit::NetworkCache::Storage::ReadOperation::finish): Factor to functions. (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::updateFileModificationTime): (WebKit::NetworkCache::Storage::dispatchReadOperation): (WebKit::NetworkCache::Storage::finishReadOperation): (WebKit::NetworkCache::Storage::cancelAllReadOperations): (WebKit::NetworkCache::Storage::dispatchPendingReadOperations): (WebKit::NetworkCache::Storage::dispatchPendingWriteOperations): Also make dispatch functions transfer the operation ownership. (WebKit::NetworkCache::shouldStoreBodyAsBlob): (WebKit::NetworkCache::Storage::dispatchWriteOperation): * NetworkProcess/cache/NetworkCacheStorage.h: 2015-08-04 Matt Rajca Media Session: add a focus manager that WebKit clients can use to access the focused media element https://bugs.webkit.org/show_bug.cgi?id=147629 Reviewed by Tim Horton. * Shared/API/APIObject.h: Added a new type for the focus manager. * Shared/API/c/WKBase.h: Added a new type for the focus manager. * UIProcess/API/C/WKAPICast.h: Added a new type for the focus manager. * UIProcess/API/C/WKContext.cpp: The "global" focus manager is accessed via WKContext. (WKContextGetMediaSessionFocusManager): * UIProcess/API/C/WKContext.h: * UIProcess/API/C/WKMediaSessionFocusManager.cpp: Added C wrapper for WebMediaSessionFocusManager. (WKMediaSessionFocusManagerGetTypeID): (WKMediaSessionFocusManagerIsFocusedContentMediaElementPaused): * UIProcess/API/C/WKMediaSessionFocusManager.h: Added C wrapper for WebMediaSessionFocusManager. * UIProcess/WebMediaSessionFocusManager.cpp: Added to keep track of the focused media element in the UI process and let clients query this state. (WebKit::WebMediaSessionFocusManager::supplementName): (WebKit::WebMediaSessionFocusManager::create): (WebKit::WebMediaSessionFocusManager::WebMediaSessionFocusManager): (WebKit::WebMediaSessionFocusManager::refWebContextSupplement): (WebKit::WebMediaSessionFocusManager::derefWebContextSupplement): (WebKit::WebMediaSessionFocusManager::isFocusedContentMediaElementPaused): Check if the media element on the focused page is paused. (WebKit::WebMediaSessionFocusManager::setFocusedMediaElement): Keep track of the focused page / media element pair. (WebKit::WebMediaSessionFocusManager::clearFocusedMediaElement): Reset the focused page / media element pair. * UIProcess/WebMediaSessionFocusManager.h: Added. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::isMediaElementPaused): Updated to take a UnsignedCallback. (WebKit::WebPageProxy::focusedContentMediaElementDidChange): Store the focused media element in the focus manager. * UIProcess/WebPageProxy.h: * UIProcess/WebProcessPool.cpp: Added WebMediaSessionFocusManager as a supplement. * UIProcess/WebProcessPool.h: WebMediaSessionFocusManager is a supplement, so include its header. * WebKit2.xcodeproj/project.pbxproj: Added new sources and ran sort-xcode-project. 2015-08-04 Anders Carlsson Get rid of ReasonForCallingAllowPlugins since it's not used anywhere https://bugs.webkit.org/show_bug.cgi?id=147648 Reviewed by Andreas Kling. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::objectContentType): * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::getPluginInfo): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::createPlugin): (WebKit::WebPage::canPluginHandleResponse): (WebKit::WebPage::canShowMIMEType): 2015-08-04 Alexey Proskuryakov Implement NPAPI redirect handling https://bugs.webkit.org/show_bug.cgi?id=138675 rdar://problem/15779101 Patch by Jeffrey Pfau, updated and tweaked by me. Reviewed by Anders Carlsson. * PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::loadURL): (WebKit::PluginControllerProxy::continueStreamLoad): (WebKit::PluginControllerProxy::cancelStreamLoad): (WebKit::PluginControllerProxy::didEvaluateJavaScript): (WebKit::PluginControllerProxy::streamWillSendRequest): (WebKit::PluginControllerProxy::streamDidReceiveResponse): * PluginProcess/PluginControllerProxy.h: * PluginProcess/PluginControllerProxy.messages.in: * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::willSendRequest): * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_ConvertPoint): (WebKit::NPN_URLRedirectResponse): (WebKit::initializeBrowserFuncs): (WebKit::netscapeBrowserFuncs): * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::getAuthenticationInfo): (WebKit::NetscapePlugin::registerRedirect): (WebKit::NetscapePlugin::urlRedirectResponse): (WebKit::NetscapePlugin::setIsPlayingAudio): (WebKit::NetscapePlugin::NPP_URLNotify): (WebKit::NetscapePlugin::NPP_URLRedirectNotify): (WebKit::NetscapePlugin::NPP_GetValue): (WebKit::NetscapePlugin::didEvaluateJavaScript): (WebKit::NetscapePlugin::streamWillSendRequest): (WebKit::NetscapePlugin::streamDidReceiveResponse): * WebProcess/Plugins/Netscape/NetscapePlugin.h: * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: (WebKit::NetscapePluginStream::~NetscapePluginStream): (WebKit::NetscapePluginStream::willSendRequest): (WebKit::NetscapePluginStream::didReceiveResponse): (WebKit::NetscapePluginStream::stop): (WebKit::NetscapePluginStream::setURL): (WebKit::NetscapePluginStream::cancel): * WebProcess/Plugins/Netscape/NetscapePluginStream.h: (WebKit::NetscapePluginStream::streamID): (WebKit::NetscapePluginStream::npStream): * WebProcess/Plugins/PDF/PDFPlugin.h: * WebProcess/Plugins/Plugin.h: * WebProcess/Plugins/PluginController.h: * WebProcess/Plugins/PluginProxy.cpp: (WebKit::PluginProxy::didEvaluateJavaScript): (WebKit::PluginProxy::streamWillSendRequest): (WebKit::PluginProxy::streamDidReceiveResponse): (WebKit::PluginProxy::setPluginIsPlayingAudio): (WebKit::PluginProxy::continueStreamLoad): (WebKit::PluginProxy::cancelStreamLoad): * WebProcess/Plugins/PluginProxy.h: * WebProcess/Plugins/PluginProxy.messages.in: * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::Stream::streamID): (WebKit::PluginView::Stream::Stream): (WebKit::PluginView::Stream::cancel): (WebKit::PluginView::Stream::continueLoad): (WebKit::buildHTTPHeaders): (WebKit::lastModifiedDateMS): (WebKit::PluginView::Stream::willSendRequest): (WebKit::PluginView::Stream::didReceiveResponse): (WebKit::PluginView::cancelStreamLoad): (WebKit::PluginView::continueStreamLoad): (WebKit::PluginView::cancelManualStreamLoad): * WebProcess/Plugins/PluginView.h: 2015-08-04 Chris Dumez Unreviewed, rolling out r187812. This is not safe Reverted changeset: "[WK2] Reserve Vector capacity in VectorArgumentCoder::decode()" https://bugs.webkit.org/show_bug.cgi?id=147619 http://trac.webkit.org/changeset/187812 2015-08-03 Chris Dumez [WK2] Reserve Vector capacity in VectorArgumentCoder::decode() https://bugs.webkit.org/show_bug.cgi?id=147619 Reviewed by Andreas Kling. Reserve Vector capacity in VectorArgumentCoder::decode() as we know the size of the Vector in advance. * Platform/IPC/ArgumentCoders.h: 2015-08-03 Gyuyoung Kim [CoordinatedGraphics] Rearrange uses of USE_COORDINATED_GRAPHICS_MULTIPROCESS https://bugs.webkit.org/show_bug.cgi?id=147256 Reviewed by Benjamin Poulain. Reduce uses of USE_COORDINATED_GRAPHICS_MULTIPROCESS guard in order to fix build breaks when USE_COORDINATED_GRAPHICS_MULTIPROCESS is off. This is first step to switch between multiprocess model to thread model. * PlatformEfl.cmake: * Shared/DrawingAreaInfo.h: * UIProcess/API/C/CoordinatedGraphics/WKView.cpp: (WKViewFindZoomableAreaForRect): * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp: (WebKit::CoordinatedDrawingAreaProxy::CoordinatedDrawingAreaProxy): * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp: (WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState): * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h: * UIProcess/CoordinatedGraphics/PageViewportController.cpp: (WebKit::PageViewportController::pageTransitionViewportReady): * UIProcess/CoordinatedGraphics/WebPageProxyCoordinatedGraphics.cpp: * UIProcess/CoordinatedGraphics/WebView.cpp: * UIProcess/CoordinatedGraphics/WebView.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::commitPageTransitionViewport): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp: (WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea): * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h: * WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp: * WebProcess/WebPage/DrawingAreaImpl.cpp: (WebKit::DrawingAreaImpl::DrawingAreaImpl): * WebProcess/WebPage/DrawingAreaImpl.h: * WebProcess/WebPage/LayerTreeHost.cpp: (WebKit::LayerTreeHost::create): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::sendViewportAttributesChanged): (WebKit::WebPage::pageDidRequestScroll): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-08-03 Matt Rajca Media Session: let UI clients query whether a media element is paused https://bugs.webkit.org/show_bug.cgi?id=147588 Reviewed by Tim Horton. Added plumbing to determine if a page's media element is paused. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::isMediaElementPaused): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::isMediaElementPaused): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-08-03 Chris Dumez Make sure error handling code APIUserContentExtensionStore closes open file descriptors https://bugs.webkit.org/show_bug.cgi?id=147562 Reviewed by Alex Christensen. Make sure error handling code APIUserContentExtensionStore closes open file descriptors to avoid leaking them. * NetworkProcess/cache/NetworkCacheData.cpp: (WebKit::NetworkCache::adoptAndMapFile): * UIProcess/API/APIUserContentExtensionStore.cpp: (API::compiledToFile): 2015-08-03 Beth Dakin Need WKWebView API to enable/disable link preview https://bugs.webkit.org/show_bug.cgi?id=147573 -and corresponding- rdar://problem/22077836 Reviewed by Dan Bernstein. WKView implementation. * UIProcess/API/Cocoa/WKViewPrivate.h: New API. Call into WKView to handle Mac. * UIProcess/API/Cocoa/WKWebView.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView allowsLinkPreview]): (-[WKWebView setAllowsLinkPreview:]): Remove the SPI declaration from WKWebViewPrivate in order to make this API. * UIProcess/API/Cocoa/WKWebViewPrivate.h: Handle the Mac side. * UIProcess/API/mac/WKView.mm: (-[WKView viewDidMoveToWindow]): (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView allowsBackForwardNavigationGestures]): (-[WKView allowsLinkPreview]): (-[WKView setAllowsLinkPreview:]): Don’t register previews when link preview is prevented. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _registerPreview]): 2015-08-03 Tim Horton [iOS] Link previews sometimes don't hide the link highlight https://bugs.webkit.org/show_bug.cgi?id=147585 Reviewed by Beth Dakin. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionStartedFromPreviewItemController:]): (-[WKContentView _interactionStoppedFromPreviewItemController:]): (-[WKContentView _previewItemController:didDismissPreview:committing:]): (-[WKContentView _previewItemController:willPresentPreview:forPosition:inSourceView:]): Deleted. Use interactionStarted/Stopped, which are always called, instead of didDismiss/willPresent, which are only called if we return a custom view controller from _presentedViewControllerForPreviewItemController. We continue using didDismiss to inform clients of dismissal because they'll only care if they customized the view controller. 2015-08-03 Chris Dumez [WK2][NetworkCache] Do not munmap() on the main thread https://bugs.webkit.org/show_bug.cgi?id=147569 Reviewed by Geoffrey Garen. Do not munmap() on the main thread for performance reasons and consistency as we already make sure to mmap() on another thread. * NetworkProcess/cache/NetworkCacheDataCocoa.mm: (WebKit::NetworkCache::Data::adoptMap): 2015-08-03 Wenson Hsieh Inputs with the autofocus attribute cause the keyboard to not deploy https://bugs.webkit.org/show_bug.cgi?id=147555 Reviewed by Andreas Kling. Upon submitting a form by pressing "Go" on the keyboard, an on the next page with the autofocus attribute may become non-interactible. When attempting to tap on the input, nothing seems to happen. This is because the state of WebPage upon invoking WebPage::elementDidFocus indicates (incorrectly) that the input element is already focused, and therefore hits an early return. To solve this, we explicitly reset m_hasFocusedDueToUserInteraction upon transitioning to a new page. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didStartPageTransition): On iOS, resets m_hasFocusedDueToUserInteraction as well. It was previously thought that this would be handled by blur() called on the assisted element when submitting a form. However, pressing "Go" on the iOS keyboard is an implicit submission and does not trigger a blur event. 2015-08-03 Chris Dumez Fix error handling case in Cache::dumpContentsToFile() https://bugs.webkit.org/show_bug.cgi?id=147567 Reviewed by Andreas Kling. Cache::dumpContentsToFile() was expecting openFile() to return 0 in case of error. However, it returns invalidPlatformFileHandle, which is -1 on Unix. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::dumpContentsToFile): 2015-08-03 Chris Dumez Make sure WebMemorySampler doesn't leak file descriptor https://bugs.webkit.org/show_bug.cgi?id=147564 Reviewed by Anders Carlsson. WebMemorySampler was opening files but never closing them. * Shared/WebMemorySampler.cpp: (WebKit::WebMemorySampler::stop): * Shared/WebMemorySampler.h: 2015-08-03 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.5 release. * gtk/NEWS: Add release notes for 2.9.5. 2015-07-27 Matt Rajca Media Session: inform the UI process when the focused Content media element changes https://bugs.webkit.org/show_bug.cgi?id=147323 Reviewed by Tim Horton. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::isPlayingMediaDidChange): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::focusedContentMediaElementDidChange): * WebProcess/WebCoreSupport/WebChromeClient.h: 2015-07-31 Chris Dumez Drop dummy Timer callbacks https://bugs.webkit.org/show_bug.cgi?id=147516 Reviewed by Alexey Proskuryakov. Drop dummy Timer callbacks in the code base. A lot of Timer callbacks do nothing else beside calling a particular method. In such case, we can use the called method as Timer callback instead. * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): (WebKit::RemoteLayerTreeDrawingArea::layerFlushTimerFired): Deleted. 2015-07-31 Chris Dumez [WK2][NetworkCache] Drop HTTP method from NetworkCache::Key https://bugs.webkit.org/show_bug.cgi?id=143348 Reviewed by Antti Koivisto. Drop HTTP method from NetworkCache::Key as we only cache GET responses for now. Even when we start caching HEAD responses, we likely will not want the method to be part of the key because: - A HEAD response can be used to update the headers of a previously cached response to GET - A cached GET response may be used to satisfy subsequent HEAD requests * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::makeCacheKey): * NetworkProcess/cache/NetworkCacheKey.cpp: (WebKit::NetworkCache::Key::Key): (WebKit::NetworkCache::Key::operator==): (WebKit::NetworkCache::Key::decode): (WebKit::NetworkCache::Key::operator=): Deleted. (WebKit::NetworkCache::Key::computeHash): Deleted. (WebKit::NetworkCache::Key::encode): Deleted. * NetworkProcess/cache/NetworkCacheKey.h: (WebKit::NetworkCache::Key::method): Deleted. 2015-07-31 Chris Dumez Coalesce concurrent authentication challenges for the same ProtectionSpace https://bugs.webkit.org/show_bug.cgi?id=147496 Reviewed by Alexey Proskuryakov. Coalesce concurrent authentication challenges for the same ProtectionSpace. Ideally, this would be done in the network layer but short term, this will make sure the user no longer gets repeating authentication dialogs for the same protection space. This gets rid of a long-standing bug in WebKit / Safari where visiting a site using HTTP authentication would pop up one authentication dialog for each subresource being loaded from the network (especially when the main resource is loaded from the cache). * Shared/Authentication/AuthenticationManager.cpp: (WebKit::canCoalesceChallenge): (WebKit::AuthenticationManager::addChallengeToChallengeMap): (WebKit::AuthenticationManager::shouldCoalesceChallenge): (WebKit::AuthenticationManager::coalesceChallengesMatching): (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): (WebKit::AuthenticationManager::useCredentialForChallenge): (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): (WebKit::AuthenticationManager::AuthenticationManager): Deleted. * Shared/Authentication/AuthenticationManager.h: 2015-07-31 Joseph Pecoraro Unreviewed parameter name typo fix. * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _setHiddenPageDOMTimerThrottlingEnabled:]): 2015-07-31 Carlos Garcia Campos [GTK] NPAPI code crashes on Wayland https://bugs.webkit.org/show_bug.cgi?id=147297 Reviewed by Žan Doberšek. Do not crete NPAPI plugins when runing on Wayland, since they are not supported. ENABLE_NETSCAPE_PLUGIN_API option used to be incompatible with building with the Wayland target, but now that we allow to build X11 and Wayland targets at the same time, we need runtime checks to avoid creating NPAPI plugins in Wayland. * UIProcess/API/gtk/WebKitSettings.cpp: (webkit_settings_set_enable_plugins): Do not allow to change the setting when running in Wayland. * UIProcess/gtk/WebPreferencesGtk.cpp: (WebKit::WebPreferences::platformInitializeStore): Initialize EnablePlugins preference to false when running in Wayland. 2015-07-30 Joseph Pecoraro LayoutTests/inspector frequently run slow and timeout when run in WebKit2 but not WebKit1 https://bugs.webkit.org/show_bug.cgi?id=147456 Reviewed by Timothy Hatcher. By default, WebKit2 WebPage's on PLATFORM(COCOA) enabling DOM Timer throttling. Under testing, this ends up impacting Web Inspector tests that create their own WKWebView which never gets displayed and so gets throttled. Disable throttling on the Inspector's view during testing. * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _hiddenPageDOMTimerThrottlingEnabled]): (-[WKPreferences _setHiddenPageDOMTimerThrottlingEnabled:]): SPI to toggle DOM timer throttling. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::createInspectorPage): * UIProcess/WebInspectorProxy.h: (WebKit::WebInspectorProxy::isUnderTest): Provide a way to get if we are under test, and set it before calling into the platform method. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCreateInspectorPage): When testing, disable timer throttling. 2015-07-30 Eric Carlson [iOS] Set AirPlay discovery mode to disabled when page is hidden https://bugs.webkit.org/show_bug.cgi?id=147455 Reviewed by Enrica Casucci. * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: (-[WKAirPlayRoutePicker _dismissAirPlayRoutePickerIPad]): Set discovery mode to disabled after the picker has been closed. (-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]): Ditto. 2015-07-29 Dean Jackson Don't use (Details) when exposing SPI https://bugs.webkit.org/show_bug.cgi?id=147426 Reviewed by Dan Bernstein. If we are declaring the interface without any implementation, we should use class extensions. * Platform/spi/ios/AssertionServicesSPI.h: * Platform/spi/ios/CorePDFSPI.h: * Platform/spi/ios/DataDetectorsUISPI.h: * Platform/spi/ios/ManagedConfigurationSPI.h: * Platform/spi/ios/UIKitSPI.h: * Shared/API/Cocoa/WKRemoteObjectCoder.mm: * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: * UIProcess/_WKWebViewPrintFormatter.mm: * UIProcess/mac/WebPageProxyMac.mm: 2015-07-30 Chris Dumez [WK2][NetworkCache] Stop closing files on the main thread https://bugs.webkit.org/show_bug.cgi?id=147410 Reviewed by Andreas Kling. After r186510, we no longer open cache files on the main thread. However, we still close them on the main thread. This patch makes sure we close the files on another thread instead. * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: (WebKit::NetworkCache::IOChannel::IOChannel): 2015-07-30 Simon Fraser Convert Path applier to use std::function https://bugs.webkit.org/show_bug.cgi?id=147368 Reviewed by Sam Weinig. Use std::function for Path::apply(). * Shared/WebCoreArgumentCoders.cpp: (IPC::pathEncodeApplierFunction): (IPC::ArgumentCoder::encode): (IPC::pathPointCountApplierFunction): Deleted. 2015-07-30 Joonghun Park [EFL] Enable IndexedDB based on DatabaseProcess https://bugs.webkit.org/show_bug.cgi?id=147221 Reviewed by Csaba Osztrogonác. * DatabaseProcess/efl/DatabaseProcessMainEfl.cpp: Add ecore_init(). Without this call, it leads to crash when launching DatabaseProcess. * PlatformEfl.cmake: Add missing include_directory. * Shared/efl/ProcessExecutablePathEfl.cpp: (WebKit::executablePathOfDatabaseProcess): * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp: (WebKit::ProcessLauncher::launchProcess): * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Add default path for indexedDB sqlite3 db file. 2015-07-30 Chris Dumez Minimize children vector capacity changes in PlatformCALayerRemote::recursiveBuildTransaction() https://bugs.webkit.org/show_bug.cgi?id=147446 Reviewed by Simon Fraser. Minimize children vector capacity changes in PlatformCALayerRemote::recursiveBuildTransaction() by leveraging the fact that we know in advance how many layer IDs are going to be added. We now set the Vector size from the start, instead of clearing it and then growing the vector capacity when appending the layer IDs one by one. * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp: (WebKit::PlatformCALayerRemote::recursiveBuildTransaction): 2015-07-30 Chris Dumez Mark more classes as fast allocated https://bugs.webkit.org/show_bug.cgi?id=147440 Reviewed by Sam Weinig. Mark more classes as fast allocated for performance. We heap-allocate objects of those types throughout the code base. * NetworkProcess/cache/NetworkCacheStorage.cpp: * NetworkProcess/cache/NetworkCacheStorage.h: * Platform/IPC/MessageRecorder.h: * Platform/mac/LayerHostingContext.h: 2015-07-29 Andy VanWagoner Implement basic types for ECMAScript Internationalization API https://bugs.webkit.org/show_bug.cgi?id=146926 Reviewed by Benjamin Poulain. * Configurations/FeatureDefines.xcconfig: Enabled INTL. 2015-07-29 Chris Dumez [WK2] Use FastMalloc in IPC::MessageDecoder https://bugs.webkit.org/show_bug.cgi?id=147425 Reviewed by Sam Weinig. Use FastMalloc in IPC::MessageDecoder instead of system malloc, for performance reasons and consistency. * Platform/IPC/ArgumentDecoder.cpp: (IPC::ArgumentDecoder::~ArgumentDecoder): (IPC::ArgumentDecoder::initialize): 2015-07-29 Enrica Casucci Preview should not start if touch handler prevents default. https://bugs.webkit.org/show_bug.cgi?id=147423 rdar://problem/22061043 Reviewed by Tim Horton. We need to check if _highlightLongPressCanClick has not been reset before we allow the preview. It can be reset by a touch handler preventing default. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): 2015-07-29 Chris Fleizach AX: iOS: VoiceOver hangs indefinitely when an JS alert appears https://bugs.webkit.org/show_bug.cgi?id=147386 Reviewed by Dan Bernstein. Make sure this also builds on iOS8. * Platform/IPC/mac/ConnectionMac.mm: 2015-07-29 Michael Catanzaro [Seccomp] Further improvements to default web process policy https://bugs.webkit.org/show_bug.cgi?id=142987 Provide various helper functions to allow more flexible construction of filesystem access policies. Reviewed by Žan Doberšek. Improve the policy. Also, remove ifdefs to reduce potential for breakage in non-default configurations. * Shared/linux/SeccompFilters/SyscallPolicy.cpp: (WebKit::SyscallPolicy::addDefaultWebProcessPolicy): 2015-07-29 Chris Dumez Avoid unnecessarily constructing PlatformMediaSessionManager on Document destruction https://bugs.webkit.org/show_bug.cgi?id=147398 Reviewed by Jer Noble. Only call PlatformMediaSessionManager::stopAllMediaPlaybackForProcess() in destructors if an PlatformMediaSessionManager instance already exists, to avoid constructing one unecessarily at that point. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didClose): 2015-07-28 Carlos Garcia Campos [GTK] Add API to set the maximum number of web processes per WebKitWebContext https://bugs.webkit.org/show_bug.cgi?id=147108 Reviewed by Gustavo Noronha Silva. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_set_web_process_count_limit): (webkit_web_context_get_web_process_count_limit): * UIProcess/API/gtk/WebKitWebContext.h: * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: 2015-07-28 Carlos Garcia Campos [GTK] Fix empty space in popup menus when first item is selected https://bugs.webkit.org/show_bug.cgi?id=147358 Reviewed by Martin Robinson. It happens when one of the first elements are selected, because we try to center the current selection on the combo element. When the menu is large enough to make the element centered we need to leave empty space at the beginning. This can be fixed by not scrolling to center the selected item when it's above the combo element. This ensure the selected item will always be visible, even if it's not centered. If the selected item is already centered or below the combo element, the behaviour doesn't change and we scroll to center it. * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: (WebKit::WebPopupMenuProxyGtk::showPopupMenu): 2015-07-28 Jincheol Jo [EFL] Fix typos in ewk_extension.cpp https://bugs.webkit.org/show_bug.cgi?id=147396 Reviewed by Gyuyoung Kim. Fix from toEwkExtendion to toEwkExtension. * WebProcess/InjectedBundle/API/efl/ewk_extension.cpp: (toEwkExtension): (EwkExtension::didCreatePage): (EwkExtension::willDestroyPage): (EwkExtension::didReceiveMessage): (toEwkExtendion): Deleted. 2015-07-28 Alexey Proskuryakov Clean up usesAsyncCallbacks handling in ResourceHandle https://bugs.webkit.org/show_bug.cgi?id=147342 Reviewed by Darin Adler. Update for a renaming in WebCore. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::cleanup): * Shared/Downloads/soup/DownloadSoup.cpp: (WebKit::Download::platformInvalidate): 2015-07-28 Chris Fleizach AX: iOS: VoiceOver hangs indefinitely when an JS alert appears https://bugs.webkit.org/show_bug.cgi?id=147386 Reviewed by Anders Carlsson. Support the iOS platform API to notify accessibility clients when the WebProcess is about to suspend (because of some modal dialog). Luckily, we did all the hardwork for OSX a few years ago to support this paradigm. * Platform/IPC/mac/ConnectionMac.mm: (IPC::AccessibilityProcessSuspendedNotification): (IPC::Connection::willSendSyncMessage): (IPC::Connection::didReceiveSyncReply): 2015-07-28 Yusuke Suzuki [ES6] Add ENABLE_ES6_MODULES compile time flag with the default value "false" https://bugs.webkit.org/show_bug.cgi?id=147350 Reviewed by Sam Weinig. * Configurations/FeatureDefines.xcconfig: 2015-07-28 Said Abou-Hallawa [iOS] REGRESSION(r168075): Fullscreen web video doesn't pause on screen lock https://bugs.webkit.org/show_bug.cgi?id=147269 Reviewed by Andreas Kling. Media elements should pause when the application is going to EnterBackground under lock regardless whether it is in full screen or not. * Platform/spi/ios/UIKitSPI.h: Forward declare [UIApplication isSuspendedUnderLock]. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationDidEnterBackground): [UIApp isSuspendedUnderLock] can only be called in the UIProcess. We need to call it here and pass it to the WebPage in the WebProcess as part of the ApplicationDidEnterBackground message. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Add the new parameter: 'isSuspendedUnderLock' to the ApplicationDidEnterBackground message. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applicationDidEnterBackground): On iOS, the WebPage needs to notify the MediaSessionManagerIOS that it received the message ApplicationDidEnterBackground. 2015-07-28 Yongjun Zhang Bounds in InteractionInformationAtPosition should be always in main frame coordinate space. https://bugs.webkit.org/show_bug.cgi?id=147372 When we prepare the bounds for InteractionInformationAtPosition, we should convert the rect to main frame space since WKContent in UIProcess expects it to be in the web view space. Reviewed by Tim Horton. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): Convert the bounding rect to main frame space if the element is inside a sub-frame. 2015-07-27 Simon Fraser PathApplierFunction should take a reference to a PathElement https://bugs.webkit.org/show_bug.cgi?id=147337 Reviewed by Dan Bates. Convert PathApplierFunction to take a const PathElement&, since it can never be null. * Shared/WebCoreArgumentCoders.cpp: (IPC::pathPointCountApplierFunction): (IPC::pathEncodeApplierFunction): 2015-07-28 Jer Noble [iOS] Notify fullscreen controller in UIProcess whether external playback is allowed https://bugs.webkit.org/show_bug.cgi?id=147343 Reviewed by Brady Eidson. Pass the boolean property wirelessVideoPlaybackDisabled across the UIProcess/WebProcess boundary. * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setWirelessVideoPlaybackDisabled): * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenInterfaceContext::setWirelessVideoPlaybackDisabled): (WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager): (WebKit::WebVideoFullscreenManager::setWirelessVideoPlaybackDisabled): 2015-07-28 Carlos Garcia Campos [GTK] Use fastMalloc instead of g_slice https://bugs.webkit.org/show_bug.cgi?id=147357 Reviewed by Sergio Villar Senin. The use of g_slice is no longer encouraged by glib developers. * UIProcess/API/gtk/WebKitCredential.cpp: (webkitCredentialCreate): (webkit_credential_free): * UIProcess/API/gtk/WebKitJavascriptResult.cpp: (webkitJavascriptResultCreate): (webkit_javascript_result_unref): * UIProcess/API/gtk/WebKitMimeInfo.cpp: (webkitMimeInfoCreate): (webkit_mime_info_unref): * UIProcess/API/gtk/WebKitNavigationAction.cpp: (webkitNavigationActionCreate): (webkit_navigation_action_copy): (webkit_navigation_action_free): * UIProcess/API/gtk/WebKitPrivate.h: * UIProcess/API/gtk/WebKitScriptDialog.cpp: (webkitScriptDialogCopy): (webkitScriptDialogFree): * UIProcess/API/gtk/WebKitUserContent.cpp: (webkit_user_style_sheet_unref): (webkit_user_style_sheet_new): (webkit_user_script_unref): (webkit_user_script_new): 2015-07-27 Dan Bernstein [iOS] REGRESSION (r187376): Form editing buttons are missing from the Shortcut Bar https://bugs.webkit.org/show_bug.cgi?id=147351 Reviewed by Adele Peterson. We were relying on -[WKContentView inputAccessoryView] getting called to initialize the form accessory view, even when that method would always return nil, as it does on iPad. After r187376, that method changed to initializing the view only when returning it, which caused this bug. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _displayFormNodeInputView]): Call the new -_ensureFormAccessoryView from here, when we are going to need the view. (-[WKContentView _ensureFormAccessoryView]): Moved initialization code from -inputAccessoryView here, and removed outdated +instancesRespondToSelector: check. (-[WKContentView inputAccessoryView]): Now calls through -formAccessoryView. (-[WKContentView formAccessoryView]): Added call to -_ensureFormAccessoryView here. 2015-07-27 Andreas Kling WebsiteDataStore should clean up its storage in the network process when destroyed. Reviewed by Darin Adler. Have ~WebsiteDataStore() send a DestroyPrivateBrowsingSession message to all networking processes for ephemeral sessions. This plugs a NetworkStorageSession leak that could retain a large CFNetwork object graph. This complements r187115 which did the same for network process storage owned by API::Session objects. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::~WebsiteDataStore): 2015-07-27 Tim Horton First in-window viewStateChange synchronously blocks despite not previously being in-window https://bugs.webkit.org/show_bug.cgi?id=147344 Reviewed by Simon Fraser. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateViewState): (WebKit::WebPageProxy::dispatchViewStateChange): The whole point of m_viewWasEverInWindow was so that we would not synchronously wait when a view was added to a window for the first time, only all subsequent times. However, since m_viewWasEverInWindow was being set *before* being checked in dispatchViewStateChange, we were always blocking. This is a huge waste of main-thread time, because there's no reason to wait for the first paint if you've never seen the view before (and shouldn't expect it to have content). Instead, set the flag after dispatching a view state change, so it becomes "have we ever sent a view state with IsInWindow set" instead. 2015-07-27 Tim Horton [iOS] Long press or link click can sometimes trigger during/after a preview https://bugs.webkit.org/show_bug.cgi?id=147338 Reviewed by Enrica Casucci. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _longPressRecognized:]): Bail if we're previewing. (-[WKContentView _dataForPreviewItemController:atPosition:type:]): (-[WKContentView _presentedViewControllerForPreviewItemController:]): Always avoid allowing clicks and start interaction when previewing a link. 2015-07-27 Andreas Kling [iOS] Occasional crashes in WebPage::elementDidBlur()'s async block. Reviewed by Anders Carlsson. Protect the WebPage object until the dispatch_async block has finished. I have no way to repro this, but there's evidence of some crashing here. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::elementDidBlur): 2015-07-27 Michael Catanzaro [Seccomp] Set appropriate filters when trapping syscalls by default https://bugs.webkit.org/show_bug.cgi?id=142983 If we trap syscalls by default, we must not set separate filters to trap anything here, since it will fail causing us to crash. But also, there are some things we must allow unconditionally even when trapping by default. sigreturn, obviously. Also, let's whitelist brk here instead of in platform-specific code. Reviewed by Žan Doberšek. * Shared/linux/SeccompFilters/SeccompBroker.cpp: (WebKit::SeccompBroker::launchProcess): Don't trap sigprocmask or sigaction unless allow is the default action. Also, allow sigreturn and brk is allow is not the default. * Shared/linux/SeccompFilters/SeccompFilters.cpp: Added (WebKit::SeccompFilters::defaultAction): * Shared/linux/SeccompFilters/SeccompFilters.h: Added defaultAction 2015-07-27 Matthew Daiter Renamed duplicate vectors inside UserMediaPermissionRequestProxy https://bugs.webkit.org/show_bug.cgi?id=147321 Reviewed by Eric Carlson. * UIProcess/UserMediaPermissionRequestProxy.cpp: (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy): * UIProcess/UserMediaPermissionRequestProxy.h: (WebKit::UserMediaPermissionRequestProxy::videoDeviceUIDs): (WebKit::UserMediaPermissionRequestProxy::audioDeviceUIDs): (WebKit::UserMediaPermissionRequestProxy::deviceUIDsVideo): Deleted. (WebKit::UserMediaPermissionRequestProxy::deviceUIDsAudio): Deleted. * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: (WebKit::UserMediaPermissionRequestManager::startRequest): 2015-07-27 Carlos Garcia Campos [GTK] Pass a GstInstallPluginsContext to gst_install_plugins_async https://bugs.webkit.org/show_bug.cgi?id=147103 Reviewed by Philippe Normand. This allows PackageKit to properly position the window and make it transient to the web view window. * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::setCursor): Disambiguate Cursor now that we include gtkx.h. (WebKit::PageClientImpl::createGstInstallPluginsContext): Create a new GstInstallPluginsContext and set the web view window XID when running on X11. * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/PageClient.h: * UIProcess/efl/WebViewEfl.h: * UIProcess/gstreamer/WebPageProxyGStreamer.cpp: (WebKit::WebPageProxy::requestInstallMissingMediaPlugins): Use PageClient::createGstInstallPluginsContext() to create a new GstInstallPluginsContext and pass it to gst_install_plugins_async(). 2015-07-26 Gwang Yoon Hwang [ThreadedCompositor] Unreviewed build fix after r186059 https://bugs.webkit.org/show_bug.cgi?id=147315 * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::ThreadedCompositor::glContext): Explicitly cast u_int64 to GLNativeWindowType. * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: (WebKit::ThreadedCoordinatedLayerTreeHost::create): Update declaration to match with modified definition. 2015-07-26 Chris Dumez [WK2][iOS] WebContent process main thread should have fixed priority https://bugs.webkit.org/show_bug.cgi?id=147313 Reviewed by Darin Adler. WebContent process main thread should have fixed priority on iOS 9. Priority decay regresses PLT and fixing the main thread's priority gives up a ~3% progression on warm PLT (tested on iPhone 5s). * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-07-26 Dan Bernstein Suppressed an Xcode 7 warning about including a nib in an iOS build product. * Configurations/BaseLegacyProcess.xcconfig: Exclude xib files on iOS. * Configurations/BaseXPCService.xcconfig: Ditto. 2015-07-24 Ryosuke Niwa iOS 8 build fix attempt after r187215. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Deleted. 2015-07-24 Yongjun Zhang Don't create UIWebFormAccessory if we don't require accessory view. https://bugs.webkit.org/show_bug.cgi?id=147283 Don't try to intialize _formAccessoryView if requiresAccessoryView returns false since we don't need it yet. Reviewed by Dan Bernstein. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView inputAccessoryView]): 2015-07-24 Anders Carlsson WKWebsiteDataStore remove methods don't properly delete cookies https://bugs.webkit.org/show_bug.cgi?id=147282 rdar://problem/21948230 Reviewed by Sam Weinig. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): Call deleteCookiesForHostnames instead of iterating over each hostname. * WebProcess/Cookies/WebCookieManager.cpp: (WebKit::WebCookieManager::deleteCookiesForHostname): Call deleteCookiesForHostnames. 2015-07-24 Anders Carlsson Networking process crash in NetworkConnectionToWebProcess::convertMainResourceLoadToDownload while attempting to download a blob https://bugs.webkit.org/show_bug.cgi?id=147276 rdar://problem/21423353 Reviewed by Andreas Kling. We currently don't support downloading blobs, so for now just bail if we encounter a null loader inside convertMainResourceLoadToDownload (which happens when trying to download a blob URL). * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader): Rewrite the assertion to be more clear - it's fine to do an extra hash lookup in debug builds. (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): Bail if loader is null. 2015-07-24 Yusuke Suzuki Remove runtime flags for symbols https://bugs.webkit.org/show_bug.cgi?id=147246 Reviewed by Alex Christensen. * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKPreferencesPrivate.h: 2015-07-24 Yusuke Suzuki Object.getOwnPropertySymbols on large list takes very long https://bugs.webkit.org/show_bug.cgi?id=146137 Reviewed by Mark Lam. * WebProcess/Plugins/Netscape/NPJSObject.cpp: (WebKit::NPJSObject::enumerate): 2015-07-24 Simon Fraser Recode.net gets into a continual resize loop in split fullscreen https://bugs.webkit.org/show_bug.cgi?id=147266 rdar://problem/21409047 Reviewed by Tim Horton. In split fullscreen, we use fixed layout and scale to shrink pages down to fit a given width. This is re-evaluated every time the document width changes. However some pages, like recode.net, end up continually resizing because when laid out unconstrained they use a narrower width than when laid out with a fixed layout size. In fixed layout, they actually use more width than the fixed layout size. Detect and break this cycle by just not re-scaling when we've done one fixed layout, and the document is now taking more width than the fixed layout width. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): 2015-07-24 Carlos Garcia Campos [GStreamer] Crashes during plugin installation https://bugs.webkit.org/show_bug.cgi?id=144099 Reviewed by Philippe Normand. Move the missing plugins installation to the UI process, ensuring there's a single installer running and cancelling the request when the page is closed or the media player is deleted. * PlatformEfl.cmake: Add new files to compilation. * PlatformGTK.cmake: Ditto. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: Add RequestInstallMissingMediaPlugins message. * UIProcess/gstreamer/WebPageProxyGStreamer.cpp: Added. (WebKit::WebPageProxy::requestInstallMissingMediaPlugins): Call gst_install_plugins_async() and send DidEndRequestInstallMissingMediaPlugins message back to the web process when done. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::requestInstallMissingMediaPlugins): Call WebPage::requestInstallMissingMediaPlugins(). * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::close): Invalidate the install missing plugins request callback. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Add DidEndRequestInstallMissingMediaPlugins message. * WebProcess/WebPage/gstreamer/WebPageGStreamer.cpp: Added. (WebKit::WebPage::requestInstallMissingMediaPlugins): Send RequestInstallMissingMediaPlugins to the UI process or complete the request early if there's already a request in progress. (WebKit::WebPage::didEndRequestInstallMissingMediaPlugins): Complete the request. 2015-07-24 Carlos Garcia Campos Unreviewed. Fix the build with MEDIA_STREAM disabled after r187282. RealtimeMediaSource is only defined when MEDIA_STREAM is enabled. * UIProcess/UserMediaPermissionRequestProxy.cpp: * UIProcess/UserMediaPermissionRequestProxy.h: 2015-07-24 Carlos Garcia Campos REGRESSION(r187100): [GTK] ASSERTION FAILED: Attempt to access post layout data before receiving it when typing backspace https://bugs.webkit.org/show_bug.cgi?id=147196 Reviewed by Žan Doberšek. Do not try to use the PostLayoutData from EditorState when isMissingPostLayoutData is true. That happens when there's a layout pending, and EditorStateChanged is sent again after that layout with the post layout data. So we can just return early and wait until the second message. * UIProcess/API/gtk/WebKitEditorState.cpp: (webkitEditorStateChanged): * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseUpdateTextInputState): 2015-07-23 Alex Christensen Fix 32-bit build after r187272. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): Added some WK_API_ENABLED. 2015-07-23 Dan Bernstein REGRESSION (r184026): Safari AutoFill with Contact info for phone number is broken https://bugs.webkit.org/show_bug.cgi?id=147249 Reviewed by Sam Weinig. * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (encodeObject): Use encodeString only for strings that encode as NSString or NSMutableString. It can’t encode arbitrary NSString subclasses. (decodeObject): Use decodeString for NSMutableString as well. 2015-07-23 Zalan Bujtas [iOS] REGRESSION (187131): Loading CuteOverload zooms in to the top left corner. https://bugs.webkit.org/show_bug.cgi?id=147251 rdar://problem/21953359 Calling zoomToRect() should result in essentially the same zoom scale as if we called setZoomScale with the new page scale factor. Reviewed by Benjamin Poulain. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): 2015-07-23 Matthew Daiter Linking WebKit2 to be able to grab media sources from a UID https://bugs.webkit.org/show_bug.cgi?id=147202 Reviewed by Brent Fulgham. * UIProcess/UserMediaPermissionRequestProxy.cpp: (WebKit::UserMediaPermissionRequestProxy::getDeviceNameForUID): * UIProcess/UserMediaPermissionRequestProxy.h: 2015-07-23 Alex Christensen Remove compile and runtime flags for promises. https://bugs.webkit.org/show_bug.cgi?id=147244 Reviewed by Yusuke Suzuki. * Configurations/FeatureDefines.xcconfig: * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKPreferencesPrivate.h: 2015-07-21 Jer Noble Notify the UI delegate when a MediaDocument's natural size changes https://bugs.webkit.org/show_bug.cgi?id=147182 Reviewed by Simon Fraser. Pipe notifications of media document natural size changes up from the chrome client, through to the UIProcess, through the page client, through the WKWebView, to the UIDelegate. * UIProcess/API/APIUIClient.h: (API::UIClient::mediaDocumentNaturalSizeChanged): * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _mediaDocumentNaturalSizeChanged:]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::mediaDocumentNaturalSizeChanged): * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::mediaDocumentNaturalSizeChanged): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::mediaDocumentNaturalSizeChanged): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::mediaDocumentNaturalSizeChanged): * WebProcess/WebPage/WebPage.h: * UIProcess/API/gtk/PageClientImpl.h: Add default, empty implementation of new pure-virtual method. * UIProcess/efl/WebViewEfl.h: Ditto. 2015-07-23 Enrica Casucci Removing one incorrect annotation from the previous change. Unreviewed. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: 2015-07-23 Enrica Casucci [iOS] Add another preview delegate for didDismissPreview. https://bugs.webkit.org/show_bug.cgi?id=147241 rdar://problem/21664211 Reviewed by Tim Horton and Yongjun Zhang. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _previewItemController:didDismissPreview:committing:]): 2015-07-23 Dan Bernstein Second pass at [iOS] Keyboard shortcuts that take focus away from the web view end up typing a letter into the newly focused field https://bugs.webkit.org/show_bug.cgi?id=146732 Reviewed by Darin Adler. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interpretKeyEvent:isCharEvent:]): Rather than checking if the view is first responder, which it might still be when the Web Content processes invokes this callback, check if we are in editable content before forwarding the event to the keyboard. 2015-07-23 Jer Noble Unreviewed build fix after r187251; rename flag -> allows. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): 2015-07-23 Alex Christensen [iOS] Unreviewed build fix after r187251. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): Use the correct name for the boolean to pass along to SetAllowsMediaDocumentInlinePlayback. 2015-07-23 Enrica Casucci One more iOS build fix. Unreviewed. * Platform/spi/ios/UIKitSPI.h: * UIProcess/ios/WKContentViewInteraction.h: 2015-07-23 Matthew Daiter Bridged passing lists of devices between the UIProcess and the WebProcess https://bugs.webkit.org/show_bug.cgi?id=147056 Reviewed by Brent Fulgham. * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: Modified file to reflect changes made to the header in the .messages.in file (WebKit::UserMediaPermissionRequestManagerProxy::createRequest): Ditto (WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision): * UIProcess/UserMediaPermissionRequestManagerProxy.h: Ditto * UIProcess/UserMediaPermissionRequestProxy.cpp: Ditto (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy): * UIProcess/UserMediaPermissionRequestProxy.h: (WebKit::UserMediaPermissionRequestProxy::create): (WebKit::UserMediaPermissionRequestProxy::deviceUIDsVideo): (WebKit::UserMediaPermissionRequestProxy::deviceUIDsAudio): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestUserMediaPermissionForFrame): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: Changed heading * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: (WebKit::UserMediaPermissionRequestManager::startRequest): (WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision): * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didReceiveUserMediaPermissionDecision): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Changed heading 2015-07-23 Yongjun Zhang Adopt the new _previewItemControllerDidCancelPreview delegate method. https://bugs.webkit.org/show_bug.cgi?id=147238 Don't allow hightlight long press to trigger tap if the link preview is cancelled because the link is not preview-able. Reviewed by Beth Dakin. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _previewItemControllerDidCancelPreview:]): 2015-07-23 Enrica Casucci iOS build fix after http://trac.webkit.org/changeset/187238. Unreviewed. * Platform/spi/ios/UIKitSPI.h: 2015-07-23 Jer Noble [WK2] Add a WKWebView property for whether the view is displaying a media document https://bugs.webkit.org/show_bug.cgi?id=147233 Reviewed by Beth Dakin. Add a _isDisplayingStandaloneMediaDocument property, which queries the frame for whether the current MIME type is one which our media engines support. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _isDisplayingStandaloneMediaDocument]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::isDisplayingStandaloneMediaDocument): * UIProcess/WebFrameProxy.h: 2015-07-21 Jer Noble [iOS] Add an explicit API to allow media documents to (temporarily) play inline https://bugs.webkit.org/show_bug.cgi?id=147181 Reviewed by Beth Dakin. Add a WKWebView(Private) API which allows MediaDocuments loaded by the view to play their contents inline, regardless of whether inline playback is restricted on the current device. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setRequiresUserActionForMediaPlayback:]): Added. Pass through to WebPageProxy. (-[WKWebView _allowsMediaDocumentInlinePlayback]): Ditto. * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::allowsMediaDocumentInlinePlayback): Simple getter. (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): Set, and conditionally pass the new value to WebPage. * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setAllowsMediaDocumentInlinePlayback): Set, and conditionally notify WebCore page of the change. * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::allowsMediaDocumentInlinePlayback): Simple getter. * WebProcess/WebPage/WebPage.messages.in: Add new messages. 2015-07-23 Beth Dakin Should not allow previews of 1x1 images https://bugs.webkit.org/show_bug.cgi?id=147237 -and corresponding- rdar://problem/21968460 Reviewed by Tim Horton. 1x1 images are used on some sites to cover actual images, which leads to a misleading preview experience. There is not any reason why you would really want to preview an image this small nor any reason to believe that the preview would result in anything useful. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-07-23 Brady Eidson Crash in WebPlatformStrategies::createPingHandle - Deref a null NetworkingContext. and https://bugs.webkit.org/show_bug.cgi?id=147227 Reviewed by Alexey Proskuryakov. * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::createPingHandle): Skip it if there's a null NetworkingContext. 2015-07-23 Tim Horton Remove some files that should have been removed with WebKit2 Windows https://bugs.webkit.org/show_bug.cgi?id=147223 Reviewed by Csaba Osztrogonác. * Shared/API/c/cf/WKURLRequestCF.cpp: Removed. * Shared/API/c/cf/WKURLRequestCF.h: Removed. * Shared/API/c/cf/WKURLResponseCF.cpp: Removed. * Shared/API/c/cf/WKURLResponseCF.h: Removed. 2015-07-23 Timothy Horton Fix the build * Platform/spi/ios/UIKitSPI.h: 2015-07-23 Tim Horton Remove files that were meant to be removed in r173929 * WebProcess/WebPage/mac/WebInspectorMac.mm: Removed. 2015-07-23 Tim Horton Remove files that were meant to be removed in r168213 * UIProcess/API/Cocoa/WKErrorRecoveryAttempting.h: Removed. 2015-07-23 Tim Horton Remove files that were meant to be removed in r168229 * UIProcess/API/Cocoa/WKSession.h: Removed. * UIProcess/API/Cocoa/WKSession.mm: Removed. * UIProcess/API/Cocoa/WKSessionInternal.h: Removed. 2015-07-23 Tim Horton Remove files that were meant to be removed in r165014 * WebProcess/WebPage/mac/WKAccessibilityWebPageObject.h: Removed. * WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm: Removed. 2015-07-23 Carlos Garcia Campos [GTK] Add API to allow executing editing commands that require an argument https://bugs.webkit.org/show_bug.cgi?id=146781 Reviewed by Gustavo Noronha Silva. Commands like InsertImage or CreateLink receive an argument, but we only have webkit_web_view_execute_editing_command() that doesn't receive any argument. This patch adds webkit_web_view_execute_editing_command_with_argument() for those commands. It also adds WEBKIT_EDITING_COMMAND_INSERT_IMAGE and WEBKIT_EDITING_COMMAND_CREATE_LINK to the predefined editing commands. * UIProcess/API/gtk/WebKitEditingCommands.h: Add WEBKIT_EDITING_COMMAND_INSERT_IMAGE and WEBKIT_EDITING_COMMAND_CREATE_LINK. * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_execute_editing_command_with_argument): * UIProcess/API/gtk/WebKitWebView.h: * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::executeEditCommand): Pass also the argument to the message. * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::executeEditCommand): Add the argument parameter to the message handler. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Add argument parameter to ExecuteEditCommand message. 2015-07-22 Sukolsak Sakshuwong Add ENABLE_WEBASSEMBLY feature flag for WebAssembly https://bugs.webkit.org/show_bug.cgi?id=147212 Reviewed by Filip Pizlo. * Configurations/FeatureDefines.xcconfig: 2015-07-22 James Savage Use updated CoreAnimation snapshot SPI. https://bugs.webkit.org/show_bug.cgi?id=147197 Reviewed by Tim Horton. Patch by James Savage. * Platform/spi/ios/UIKitSPI.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): 2015-07-22 Timothy Horton Fix the build * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView cleanupInteraction]): 2015-07-22 Commit Queue Unreviewed, rolling out r187196. https://bugs.webkit.org/show_bug.cgi?id=147213 broke all the iOS builds (Requested by thorton on #webkit). Reverted changeset: "Use updated CoreAnimation snapshot SPI." https://bugs.webkit.org/show_bug.cgi?id=147197 http://trac.webkit.org/changeset/187196 2015-07-22 Tim Horton Fix the build * UIProcess/ios/WKContentViewInteraction.h: 2015-07-22 Tim Horton [iOS] Adjust the preview architecture https://bugs.webkit.org/show_bug.cgi?id=147203 Reviewed by Simon Fraser. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _dataForPreviewItemController:atPosition:type:]): Link previews should win over image previews if both are possible. 2015-07-22 James Savage Use updated CoreAnimation snapshot SPI. https://bugs.webkit.org/show_bug.cgi?id=147197 Reviewed by Tim Horton. * Platform/spi/ios/UIKitSPI.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): 2015-07-22 Tim Horton [iOS] Adjust the preview architecture https://bugs.webkit.org/show_bug.cgi?id=147203 Reviewed by Beth Dakin. * Platform/spi/ios/UIKitSPI.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setAllowsLinkPreview:]): Deleted. * UIProcess/ios/WKContentView.mm: (-[WKContentView willMoveToWindow:]): Deleted. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView cleanupInteraction]): (-[WKContentView _registerPreview]): (-[WKContentView _unregisterPreview]): (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): (-[WKContentView _dataForPreviewItemController:atPosition:type:]): (-[WKContentView _presentationRectForPreviewItemController:]): (-[WKContentView _presentedViewControllerForPreviewItemController:]): (-[WKContentView _previewItemController:commitPreview:]): (-[WKContentView _previewItemController:willPresentPreview:forPosition:inSourceView:]): (-[WKContentView _previewItemController:didDismissPreview:committing:]): (-[WKContentView _presentationSnapshotForPreviewItemController:]): (-[WKContentView _presentationRectsForPreviewItemController:]): (-[WKContentView gestureRecognizerShouldBegin:]): Deleted. (-[WKContentView _registerPreviewInWindow:]): Deleted. (-[WKContentView _unregisterPreviewInWindow:]): Deleted. (-[WKContentView previewViewControllerForPosition:inSourceView:]): Deleted. (-[WKContentView commitPreviewViewController:]): Deleted. (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): Deleted. (-[WKContentView didDismissPreviewViewController:committing:]): Deleted. Register and unregister in setup/cleanupInteraction instead of when moving between windows. Implement 'shouldBegin' instead of interacting directly with the recognizer. Make use of system enums instead of our own. Let UIPreviewItemController handle shrink-wrapping and the indicator view. 2015-07-22 Gyuyoung Kim [EFL] Support indexeddb for WK2 https://bugs.webkit.org/show_bug.cgi?id=145867 Reviewed by Csaba Osztrogonác. Add stub implementation for indexeddb. Move KeyedDecoder and KeyedEncoder from gtk to glib in order to share it between GTK and EFL ports. * DatabaseProcess/EntryPoint/unix/DatabaseProcessMain.cpp: * DatabaseProcess/efl/DatabaseProcessMainEfl.cpp: Copied from Source/WebKit2/DatabaseProcess/EntryPoint/unix/DatabaseProcessMain.cpp. (WebKit::DatabaseProcessMainUnix): * PlatformEfl.cmake: * PlatformGTK.cmake: * Shared/glib/KeyedDecoder.cpp: Renamed from Source/WebKit2/Shared/gtk/KeyedDecoder.cpp. (WebKit::KeyedDecoder::KeyedDecoder): (WebKit::KeyedDecoder::~KeyedDecoder): (WebKit::KeyedDecoder::dictionaryFromGVariant): (WebKit::KeyedDecoder::decodeBytes): (WebKit::KeyedDecoder::decodeSimpleValue): (WebKit::KeyedDecoder::decodeBool): (WebKit::KeyedDecoder::decodeUInt32): (WebKit::KeyedDecoder::decodeInt32): (WebKit::KeyedDecoder::decodeInt64): (WebKit::KeyedDecoder::decodeFloat): (WebKit::KeyedDecoder::decodeDouble): (WebKit::KeyedDecoder::decodeString): (WebKit::KeyedDecoder::beginObject): (WebKit::KeyedDecoder::endObject): (WebKit::KeyedDecoder::beginArray): (WebKit::KeyedDecoder::beginArrayElement): (WebKit::KeyedDecoder::endArrayElement): (WebKit::KeyedDecoder::endArray): * Shared/glib/KeyedDecoder.h: Renamed from Source/WebKit2/Shared/gtk/KeyedDecoder.h. * Shared/glib/KeyedEncoder.cpp: Renamed from Source/WebKit2/Shared/gtk/KeyedEncoder.cpp. (WebKit::KeyedEncoder::KeyedEncoder): (WebKit::KeyedEncoder::~KeyedEncoder): (WebKit::KeyedEncoder::encodeBytes): (WebKit::KeyedEncoder::encodeBool): (WebKit::KeyedEncoder::encodeUInt32): (WebKit::KeyedEncoder::encodeInt32): (WebKit::KeyedEncoder::encodeInt64): (WebKit::KeyedEncoder::encodeFloat): (WebKit::KeyedEncoder::encodeDouble): (WebKit::KeyedEncoder::encodeString): (WebKit::KeyedEncoder::beginObject): (WebKit::KeyedEncoder::endObject): (WebKit::KeyedEncoder::beginArray): (WebKit::KeyedEncoder::beginArrayElement): (WebKit::KeyedEncoder::endArrayElement): (WebKit::KeyedEncoder::endArray): (WebKit::KeyedEncoder::finishEncoding): * Shared/glib/KeyedEncoder.h: Renamed from Source/WebKit2/Shared/gtk/KeyedEncoder.h. * UIProcess/Databases/efl/DatabaseProcessProxyEfl.cpp: Copied from Source/WebKit2/DatabaseProcess/EntryPoint/unix/DatabaseProcessMain.cpp. (WebKit::DatabaseProcessProxy::platformGetLaunchOptions): 2015-07-22 Michael Catanzaro [Seccomp] Canonicalize filesystem path when whitelisting it https://bugs.webkit.org/show_bug.cgi?id=142986 Reviewed by Žan Doberšek. * Shared/linux/SeccompFilters/SyscallPolicy.cpp: (WebKit::canonicalizeFileName): (WebKit::SyscallPolicy::addFilePermission): (WebKit::SyscallPolicy::addDirectoryPermission): 2015-07-21 Simon Fraser Add logging for TiledCoreAnimationDrawingArea resizing https://bugs.webkit.org/show_bug.cgi?id=147180 Reviewed by Tim Horton. Add a "Resize" log channel for WebKit2, and use it to log data in scaleViewToFitDocumentIfNeeded(). * Platform/Logging.h: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): 2015-07-22 Sam Weinig Encode/Decode underlying errors when serializing NSErrors https://bugs.webkit.org/show_bug.cgi?id=147199 Reviewed by Anders Carlsson. * Shared/mac/WebCoreArgumentCodersMac.mm: (IPC::ArgumentCoder::decode): (IPC::encodeNSError): (IPC::ArgumentCoder::encodePlatformData): (IPC::decodeNSError): (IPC::ArgumentCoder::decodePlatformData): Break out encoding/decoding of the NSErrors into a helpers so they can be called for the underlying error. 2015-07-22 Beth Dakin Animated images should animate in previews https://bugs.webkit.org/show_bug.cgi?id=147173 -and corresponding- rdar://problem/21637698 Reviewed by Dan Bernstein. InteractionInformationAtPosition needs to know if it’s an animated image. * Shared/InteractionInformationAtPosition.cpp: (WebKit::InteractionInformationAtPosition::encode): (WebKit::InteractionInformationAtPosition::decode): * Shared/InteractionInformationAtPosition.h: New delegate method to create a link preview view controller for animated images. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Treat animated images more like link previews. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView previewViewControllerForPosition:inSourceView:]): Set info.isAnimatedImage * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-07-22 Michael Catanzaro [Seccomp Filters] Add helpers to get XDG base directory locations https://bugs.webkit.org/show_bug.cgi?id=142982 Reviewed by Zan Dobersek. * PlatformEfl.cmake: * PlatformGTK.cmake: * Shared/linux/SeccompFilters/XDGBaseDirectory.h: Added. * Shared/linux/SeccompFilters/XDGBaseDirectoryGLib.cpp: Added. (WebKit::userHomeDirectory): (WebKit::userCacheDirectory): (WebKit::userConfigDirectory): (WebKit::userDataDirectory): (WebKit::userRuntimeDirectory): 2015-07-22 Gyuyoung Kim [EFL][WK2] EWK2ContextTestMultipleProcesses.ewk_context_network_process_model fails to pass https://bugs.webkit.org/show_bug.cgi?id=142967 Reviewed by Csaba Osztrogonác. Though processIdentifier() can return 0 when a page is not closed, ewk_context_network_process_model has not been considered process id can be 0. This patch adds a protection logic which doesn't test when process id is 0 at the moment. * UIProcess/API/efl/tests/test_ewk2_context.cpp: (TEST_F): 2015-07-22 Carlos Garcia Campos Unreviewed. Fix some warnings when generating GTK+ HTML API docs. * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add WebKitWebsiteDataManager and WebKitWebEditor. 2015-07-21 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.4 release. * gtk/NEWS: Add release notes for 2.9.4. 2015-07-21 Joseph Pecoraro Web Inspector: [Mac] "Open Image In New Window" context menu item does nothing on an image https://bugs.webkit.org/show_bug.cgi?id=147175 Reviewed by Timothy Hatcher. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::getContextMenuFromProposedMenu): (WebKit::WebInspectorProxy::platformCreateInspectorPage): Remove default context menus that won't work in the inspector page. 2015-07-21 Benjamin Poulain [Content Extensions] Use a jump table when consecutive transitions have different targets https://bugs.webkit.org/show_bug.cgi?id=147099 Reviewed by Alex Christensen. * UIProcess/API/APIUserContentExtensionStore.h: 2015-07-21 Daniel Bates Fix the build following (https://bugs.webkit.org/show_bug.cgi?id=147112) * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::reinstateNetworkProcessAssertionState): Guard implementation with PLATFORM(IOS) since this logic is specific to the iOS port. 2015-07-21 Simon Fraser Rename the 'View' log channel to 'Printing' https://bugs.webkit.org/show_bug.cgi?id=147172 Reviewed by Zalan Bujtas. "View" was a terrible name for a log channel that was all about printing. Sort the log channels. * Platform/Logging.h: * UIProcess/API/mac/WKView.mm: (-[WKView drawRect:]): (-[WKView printOperationWithPrintInfo:forFrame:]): * UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): (pageDidComputePageRects): (-[WKPrintingView knowsPageRange:]): (-[WKPrintingView drawRect:]): (-[WKPrintingView rectForPage:]): (-[WKPrintingView beginDocument]): (-[WKPrintingView endDocument]): 2015-07-21 Zalan Bujtas [iOS] Menu drop down such as on nike.com does not stay https://bugs.webkit.org/show_bug.cgi?id=147047 rdar://problem/21046961 Reviewed by Benjamin Poulain. This is a workaround for unintended scrolling while scaling. (Based on Benjamin Poulain's WIP patch for webkit.org/b/136904) In certain cases when scaling would result in moving the scrollview (which would trigger a scroll event on WebCore side), zoomRect is called instead of setZoomScale to ensure that the scroll position stays intact. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): 2015-07-21 Daniel Bates WTFCrash() in WebKit::WebProcess::networkConnection() https://bugs.webkit.org/show_bug.cgi?id=147112 Reviewed by Gavin Barraclough. Fixes an issue where a newly launched network process may be jetsam'd because it has not taken a process assertion between the time it was launched and the time when a web process makes use of it. Initially a network process does not have a process assertion. A process assertion is taken (if one has not been taken) for the network process when a process assertion is taken for at least one web process. When the network process crashes a WebProcess may ultimately launch a new network process in WebProcess::networkConnection(). The new network process may be jetsam'd immediately when the system is under some measure pressure because it has a low jetsam priority, 0 (since it does not have a process assertion and higher priority implies that a process is less likely to be jetsam'd). And the logic in WebProcess::networkConnection() explicitly calls CRASH() if the newly launched network process crashes immediately. Towards preventing the newly launched network process from being jetsam'd we should obtain a process assertion for it. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): Initialize m_didNetworkProcessCrash to false. (WebKit::WebProcessPool::ensureNetworkProcess): If the network process crashed (m_didNetworkProcessCrash == true) then tell each process in the pool to reinstate their network activity token for the new network process. (WebKit::WebProcessPool::networkProcessCrashed): Set m_didNetworkProcessCrash to true when the network process crashed. * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::reinstateNetworkProcessAssertionState): Added. (WebKit::WebProcessProxy::didSetAssertionState): Add assert to ensure we never have both a background- and foreground- activity token for the network process. * UIProcess/WebProcessProxy.h: 2015-07-21 Daniel Bates ASSERT(m_suspendMessageCount >= 0) fails in ProcessThrottler::didCancelProcessSuspension() when WebContent process crashes; Network process may never voluntarily suspend https://bugs.webkit.org/show_bug.cgi?id=147122 Reviewed by Chris Dumez. Fixes an issue where the network process may never voluntarily release its process assertion. Currently the network process always sends both a ProcessReadyToSuspend and CancelPrepareToSuspend message in response to receiving a PrepareToSuspend message and CancelPrepareToSuspend message, respectively. The process throttler expects to receive either a ProcessReadyToSuspend message or a CancelPrepareToSuspend message (and not both) in response to sending the message sequence PrepareToSuspend, CancelPrepareToSuspend. When a process throttler receives both messages in response to this sequence then its internal message count becomes imbalanced and it will never release the process assertion it manages. One user interaction that can cause such an imbalance, in the process throttler held by NetworkProcessProxy, is switching tabs. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::cancelPrepareToSuspend): Do not send message NetworkProcessProxy::DidCancelProcessSuspension. * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::didCancelProcessSuspension): Deleted. * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/Network/NetworkProcessProxy.messages.in: Remove message NetworkProcessProxy::DidCancelProcessSuspension. 2015-07-21 Matthew Daiter Make sure to invalidate requests for user media after webpage reset https://bugs.webkit.org/show_bug.cgi?id=147155 Reviewed by Brent Fulgham. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetState): Added user media reset 2015-07-21 Tim Horton [iOS] Avoid using a TextIndicator if there are non-text things to indicate https://bugs.webkit.org/show_bug.cgi?id=147152 Reviewed by Beth Dakin. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::shouldUseTextIndicatorForLink): (WebKit::WebPage::getPositionInformation): Fall back to a rectangular area instead of a TextIndicator if there are any non-inline elements inside the link. 2015-07-21 Andreas Kling API::Session should clean up its storage in the network process when destroyed. Reviewed by Anders Carlsson. Have ~Session() send a DestroyPrivateBrowsingSession message to all networking processes for ephemeral sessions. This plugs a NetworkStorageSession leak that could retain a large CFNetwork object graph. * UIProcess/API/APISession.cpp: (API::Session::~Session): 2015-07-21 Sungmann Cho Make PluginProxy::handleMouseEvent() asynchronous. https://bugs.webkit.org/show_bug.cgi?id=146142 Reviewed by Anders Carlsson. PluginProxy::handleMouseEvent() forwards the generated mouse event to PluginControllerProxy using a synchronous message, but the recipient always reply immediately with the same value("true") even before handling the received message. So I think PluginProxy::handleMouseEvent() is perfectly OK to process its messages asynchronously. * PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::handleMouseEvent): * PluginProcess/PluginControllerProxy.h: * PluginProcess/PluginControllerProxy.messages.in: * WebProcess/Plugins/PluginProxy.cpp: (WebKit::PluginProxy::handleMouseEvent): 2015-07-20 Carlos Garcia Campos [GTK] Add API to be notified about editor state changes https://bugs.webkit.org/show_bug.cgi?id=145875 Reviewed by Gustavo Noronha Silva. Add WebKitEditorState object, that is created on demand by the WebKitWebView and can be used to get the typing attributes of the editor at the current position or selection. * PlatformGTK.cmake: * Shared/EditorState.cpp: Use part of the PostLayoutData struct for the GTK port too. (WebKit::EditorState::encode): Encode PostLayoutData for GTK and remove our custom cursorRect. (WebKit::EditorState::decode): Decode PostLayoutData for GTK and remove our custom cursorRect. (WebKit::EditorState::PostLayoutData::encode): Reorder it to reduce the amonut of ifdefs. (WebKit::EditorState::PostLayoutData::decode): Ditto. * Shared/EditorState.h: Add AttributeStrikeThrough to TypingAttributes enum. * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::selectionDidChange): Rename updateTextInputState() to selectionDidChange() and also notify the WebKitWebView. * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/API/gtk/WebKitEditorState.cpp: Added. (webkitEditorStateGetProperty): (webkit_editor_state_class_init): (webkitEditorStateSetTypingAttributes): (webkitEditorStateCreate): (webkitEditorStateChanged): (webkit_editor_state_get_typing_attributes): * UIProcess/API/gtk/WebKitEditorState.h: Added. * UIProcess/API/gtk/WebKitEditorStatePrivate.h: Added. * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewSelectionDidChange): Notify the WebKitEditorState if it has already been created. (webkit_web_view_get_editor_state): Ensure a WebKitEditorState and return it. * UIProcess/API/gtk/WebKitWebView.h: * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseUpdateTextInputState): Get the caret cursor rect from PostLayoutData. * UIProcess/API/gtk/WebKitWebViewPrivate.h: * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols. * UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Add webkit_editor_state_get_type. * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for WebKitEditorState. * UIProcess/API/gtk/webkit2.h: Include WebKitEditorState.h. * UIProcess/PageClient.h: * UIProcess/gtk/WebPageProxyGtk.cpp: (WebKit::WebPageProxy::editorStateChanged): Call PageClientImpl::selectionDidChange(). * WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::WebPage::platformEditorState): Add typing attributes to EditorState. 2015-07-20 Simon Fraser Fix the iOS build. * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: 2015-07-20 Simon Fraser Facebook in tiled fullscreen is slow https://bugs.webkit.org/show_bug.cgi?id=147134 rdar://problem/21823349 Reviewed by Tim Horton. TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded() could cause a page to toggle between two fixed layout sizes differing by a pixel, because of rounding. This would cause lots of extra layouts and painting. This happened because the the fixed layout size was computed using ceil(m_webPage.size().width() / viewScale) * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): 2015-07-20 Wenson Hsieh Fix crash due to RemoteLayerTreeDisplayRefreshMonitor outliving RemoteLayerTreeDrawingArea https://bugs.webkit.org/show_bug.cgi?id=147124 Reviewed by Simon Fraser. Refactors RemoteLayerTreeDisplayRefreshMonitor to use a weak pointer rather than a reference to its RemoteLayerTreeDrawingArea, since the drawing area may be deallocated before the monitor in some rare cases. This rarely caused pages using requestAnimationFrame to crash on iOS. However, this should not be the case: logically, a RemoteLayerTreeDrawingArea should always outlive its refresh monitors. Refer to https://bugs.webkit.org/show_bug.cgi?id=147128 for more details. * WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h: * WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.mm: (WebKit::RemoteLayerTreeDisplayRefreshMonitor::RemoteLayerTreeDisplayRefreshMonitor): (WebKit::RemoteLayerTreeDisplayRefreshMonitor::~RemoteLayerTreeDisplayRefreshMonitor): On destruction, checks first to see whether or not the drawing area has been deallocated before telling it to update its monitors. (WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback): * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: (WebKit::RemoteLayerTreeDrawingArea::createWeakPtr): Creates and returns a new weak pointer to itself. * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): 2015-07-20 Alex Christensen [Content Extensions] Cache actions with domains that match everything https://bugs.webkit.org/show_bug.cgi?id=147050 Reviewed by Benjamin Poulain. * UIProcess/API/APIUserContentExtensionStore.h: 2015-07-20 Gordon Sheridan Support blocking a plug-in for non-security reasons https://bugs.webkit.org/show_bug.cgi?id=145009 Reviewed by Anders Carlsson. * Shared/Plugins/PluginModuleInfo.h: Replace PluginModuleBlocked with separate enum values for blocking for security and compatibility. * UIProcess/API/C/WKAPICast.h: (WebKit::toWKPluginLoadPolicy): Modify to handle change to PluginModuleBlocked enum. (WebKit::toPluginModuleLoadPolicy): Ditto. * UIProcess/API/C/WKPluginLoadPolicy.h: Added enum value for blocking a plugin for compatibility reasons. * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: (WebKit::shouldBlockPlugin): Check load policy for both reasons a plugin may be blocked. (WebKit::WKPlugInModuleLoadPolicyToPluginModuleLoadPolicy): Added function to convert between load policy enum types. (WebKit::PluginInfoStore::defaultLoadPolicyForPlugin): Modified to call WKLoadPolicyForPluginVersion() which can distinguish between blocked for security or compatibility. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::findPlugin): Updated to recognize both PluginModuleBlocked enum values that indicate a plugin is blocked. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::createPlugin): Ditto. (WebKit::WebPage::canPluginHandleResponse): Ditto. 2015-07-20 Antti Koivisto NSURLCache fallback does not work on iOS due to sandboxing https://bugs.webkit.org/show_bug.cgi?id=146314 Reviewed by Anders Carlsson. This broke with earlier cache path computation changes. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): NSURLCache path is relative to the container cache path so "." is sufficient. This puts the cache files under /Library/Caches/com.apple.WebKit.Networking/ 2015-07-20 Jeremy Jones Adopt AVPlayerLayerView https://bugs.webkit.org/show_bug.cgi?id=146862 Reviewed by Simon Fraser. The CALayerHost is replaced with WebLayerHostView to be compatible with UIView animations. videoLayerFrame and videoLayerGravity no longer need to be stored because they are stored where they are used in the interface. Some animation is improved in the conversion. * UIProcess/ios/WebVideoFullscreenManagerProxy.h: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (+[WebLayerHostView layerClass]): Add class WebLayerHostView. (-[WebLayerHostView contextID]): (-[WebLayerHostView setContextID:]): (-[WebLayerHostView layerHost]): (WebKit::WebVideoFullscreenManagerProxy::invalidate): layer -> view (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Apply the hostingDeviceScaleFactor transform to -sublayerTransform instead of to -transform. This more directly inverts the tranform WebProcess and allows -transform to be used for animation in the UIProcess. This is important because UIView's actions animate -transform, but not -sublayerTrasform. (WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): layer -> view (WebKit::WebVideoFullscreenModelContext::setVideoLayerFrame): Deleted. (WebKit::WebVideoFullscreenModelContext::videoLayerFrame): Deleted. (WebKit::WebVideoFullscreenModelContext::setVideoLayerGravity): Deleted. (WebKit::WebVideoFullscreenModelContext::videoLayerGravity): Deleted. * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Set initial video layer frame to fix start point of animation. (WebKit::WebVideoFullscreenManager::didSetupFullscreen): dispatch_async allows the CATransaction to complete before continuing with the animation. This prevents a flash during animation. 2015-07-20 Tim Horton REGRESSION (r174287): Flash of black when opening a new web view or navigating to a new page https://bugs.webkit.org/show_bug.cgi?id=147127 Reviewed by Simon Fraser. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::snapshotAtSize): Avoid using an invalid documentBackgroundColor, fall back to baseBackgroundColor like we did before r174287. 2015-07-20 Michael Catanzaro [Seccomp] Should be easier to debug blocked syscalls https://bugs.webkit.org/show_bug.cgi?id=142980 These should be printed even when not running in debug mode. There is no value in hiding errors from release build users. Reviewed by Žan Doberšek. * Shared/linux/SeccompFilters/SeccompBroker.cpp: (WebKit::SeccompBroker::runLoop): Don't close stderr et. al. in release builds. * Shared/linux/SeccompFilters/Syscall.cpp: (WebKit::write_uint): Added. (WebKit::reportUnexpectedSyscall): Added. (WebKit::Syscall::createFromContext): Call reportUnexpectedSyscall. Also, no need to crash here in release builds. * Shared/linux/SeccompFilters/SyscallPolicy.cpp: (WebKit::SyscallPolicy::hasPermissionForPath): Print a warning when access is denied. (WebKit::SyscallPolicy::permissionToString): Added. * Shared/linux/SeccompFilters/SyscallPolicy.h: Add permissionToString. 2015-07-20 Csaba Osztrogonác Fix the !ENABLE(VIDEO) build after r186396 https://bugs.webkit.org/show_bug.cgi?id=147116 Reviewed by Brent Fulgham. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didClose): 2015-07-20 Tomas Popela [GTK] Add selection-changed signal to the WebKit2 API https://bugs.webkit.org/show_bug.cgi?id=137116 Reviewed by Carlos Garcia Campos. Add a new object WebKitWebEditor where the editing capabilities of a WebPage will be grouped and exposed. Add the selection-changed signal there (we used the same name as in WK1 API). * PlatformGTK.cmake: * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: * WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.cpp: Added. (didChangeSelection): (webkitWebEditorCreate): (webkit_web_editor_get_page): * WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h: Added. * WebProcess/InjectedBundle/API/gtk/WebKitWebEditorPrivate.h: Added. * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: (webkitWebPageGetPage): (webkit_web_page_get_editor): * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h: * WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h: * WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h: 2015-07-16 Anders Carlsson WebsiteDataStore operations need to grab background assertions https://bugs.webkit.org/show_bug.cgi?id=147015 rdar://problem/21799011 Reviewed by Sam Weinig. * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::fetchWebsiteData): (WebKit::NetworkProcessProxy::deleteWebsiteData): (WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::fetchWebsiteData): (WebKit::WebProcessProxy::deleteWebsiteData): (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): 2015-07-19 Michael Catanzaro Unreviewed, placate -Wmismatched-tags after r187011 It's basically bug #146990 again. Oops. * WebProcess/gtk/SeccompFiltersWebProcessGtk.h: 2015-07-19 Michael Catanzaro [GTK] Add seccomp filters support https://bugs.webkit.org/show_bug.cgi?id=110014 Reviewed by Žan Doberšek. Allow building with ENABLE_SECCOMP_FILTERS=ON. Based on work by Thiago Marcos P. Santos. * PlatformGTK.cmake: Support ENABLE_SECCOMP_FILTERS build option. * WebProcess/gtk/SeccompFiltersWebProcessGtk.cpp: Added. (WebKit::SeccompFiltersWebProcessGtk::SeccompFiltersWebProcessGtk): (WebKit::SeccompFiltersWebProcessGtk::platformInitialize): * WebProcess/gtk/SeccompFiltersWebProcessGtk.h: Added. * WebProcess/soup/WebProcessSoup.cpp: (WebKit::WebProcess::platformInitializeWebProcess): Initialize default GTK+ web process seccomp filters. 2015-07-18 Gyuyoung Kim Reduce PassRefPtr in WebKit2 - 3 https://bugs.webkit.org/show_bug.cgi?id=146995 Reviewed by Daniel Bates. To remove PassRefPtr, this patch reduces use of PassRefPtr in WebKit2. Because some uses depend on WebCore, WebCore, WK1 ports are modified as well. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::getOrCreateUniqueIDBDatabase): * DatabaseProcess/DatabaseProcess.h: * PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::takeInitializationReply): * PluginProcess/PluginControllerProxy.h: * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: (WebKit::CoordinatedBackingStore::texture): * Shared/CoordinatedGraphics/CoordinatedBackingStore.h: (WebKit::CoordinatedBackingStore::create): * Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp: (WebKit::WebCoordinatedSurface::create): (WebKit::WebCoordinatedSurface::createWithSurface): * Shared/CoordinatedGraphics/WebCoordinatedSurface.h: * UIProcess/API/APILoaderClient.h: (API::LoaderClient::webCryptoMasterKey): * UIProcess/API/APINavigationClient.h: (API::NavigationClient::webCryptoMasterKey): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageLoaderClient): (WKPageSetPageNavigationClient): * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::createPopupMenuProxy): (WebKit::PageClientImpl::createContextMenuProxy): (WebKit::PageClientImpl::createColorPicker): * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/Authentication/WebCredential.h: * UIProcess/Authentication/WebProtectionSpace.h: * UIProcess/AutoCorrectionCallback.h: * UIProcess/Cocoa/NavigationState.h: * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::webCryptoMasterKey): * UIProcess/CoordinatedGraphics/WebView.cpp: (WebKit::WebView::createPopupMenuProxy): (WebKit::WebView::createContextMenuProxy): (WebKit::WebView::createColorPicker): * UIProcess/CoordinatedGraphics/WebView.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.h: * UIProcess/efl/WebViewEfl.cpp: (WebKit::WebViewEfl::createPopupMenuProxy): (WebKit::WebViewEfl::createContextMenuProxy): (WebKit::WebViewEfl::createColorPicker): * UIProcess/efl/WebViewEfl.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::createPopupMenuProxy): (WebKit::PageClientImpl::createContextMenuProxy): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::dataSelectionForPasteboard): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::createPopupMenuProxy): (WebKit::PageClientImpl::createContextMenuProxy): (WebKit::PageClientImpl::createColorPicker): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::dataSelectionForPasteboard): * WebProcess/Network/WebResourceLoadScheduler.cpp: (WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad): (WebKit::WebResourceLoadScheduler::schedulePluginStreamLoad): * WebProcess/Network/WebResourceLoadScheduler.h: * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::fromNPP): (WebKit::NetscapePlugin::snapshot): (WebKit::NetscapePlugin::liveResourceData): * WebProcess/Plugins/Netscape/NetscapePlugin.h: * WebProcess/Plugins/Plugin.h: * WebProcess/Plugins/PluginProxy.cpp: (WebKit::PluginProxy::snapshot): (WebKit::PluginProxy::liveResourceData): * WebProcess/Plugins/PluginProxy.h: * WebProcess/Storage/StorageNamespaceImpl.cpp: (WebKit::StorageNamespaceImpl::storageArea): (WebKit::StorageNamespaceImpl::copy): * WebProcess/Storage/StorageNamespaceImpl.h: * WebProcess/WebCoreSupport/SessionStateConversion.cpp: (WebKit::toHistoryItem): * WebProcess/WebCoreSupport/SessionStateConversion.h: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createPopupMenu): (WebKit::WebChromeClient::createSearchPopupMenu): * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::createDocumentLoader): (WebKit::WebFrameLoaderClient::createFrame): (WebKit::WebFrameLoaderClient::createPlugin): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::create): (WebKit::WebPage::createDocumentLoader): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::lookupTextAtLocation): 2015-07-18 Simon Fraser Scroll position jumps when scrolling scaling pages down in split view https://bugs.webkit.org/show_bug.cgi?id=147072 rdar://problem/21769577 Reviewed by Sam Weinig. When apple.com/music is in Split View at a reduced scale, scrolling the page can cause unwanted scroll jumps. This happened because we'd enter TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded() with a pending layout, so run the autosizing logic. When scrolled near the bottom, the unconstrained layout resulted in a shorter document, which truncated the scroll position. The scaled layout then restored the longer document, but it also restored that truncated scroll position. Forcing a layout is sufficient to fix the bug for this page, and doing a single layout (which will happen anyway) is preferable to running the autosize logic if layout happens to be dirty. I was not able to make a test to reproduce the problem. Entering scaleViewToFitDocumentIfNeeded() with pending layout was triggerable using a transform transition, but I was not able to reproduce incorrect scroll position restoration. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): 2015-07-17 Andy Estes [iOS] Further tighten the sandbox around pages fetched with Content-Disposition: attachment https://bugs.webkit.org/show_bug.cgi?id=147044 rdar://problem/21567820 Reviewed by Brady Eidson. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): Enabled Content-Disposition: attachment sandbox on iOS. 2015-07-17 Tim Horton [iOS] TextIndicator has a large forehead when line-height > 1 https://bugs.webkit.org/show_bug.cgi?id=147058 Reviewed by Dean Jackson. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): Apply a review comment that I left myself and then forgot about. 2015-07-17 Enrica Casucci [iOS] Implement selectionInteractionAssistant accessor. https://bugs.webkit.org/show_bug.cgi?id=147054 rdar://problem/20864286 Reviewed by Tim Horton. One more change to adopt the new selection interaction model on iOS. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView selectionInteractionAssistant]): 2015-07-17 Dan Bernstein REGRESSION (r186964): Crash in WebKit2.CloseFromWithinCreatePage https://bugs.webkit.org/show_bug.cgi?id=147055 Reviewed by Alex Christensen. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::createNewPage): Grab the main frame’s URL before calling out to the client, who may destroy the frame. 2015-07-17 Dan Bernstein WebKit2 part of The external URL policy is not reported correctly in navigation actions that create new windows https://bugs.webkit.org/show_bug.cgi?id=147040 Reviewed by Dean Jackson. * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::createNewPage): Disallow App Links if the new page is for the same protocol, host and port as the main frame of this page. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction): Disallow App Links if m_shouldSuppressAppLinksInNextNavigationPolicyDecision is set, and reset it. See below for when we set it. (WebKit::WebPageProxy::decidePolicyForNewWindowAction): Disallow App Links if the new window is for the same protocol, host and port as the main frame of this page. (WebKit::WebPageProxy::createNewPage): Make the new page disallow App Links in the first policy decision if it is for the same protocol, host and port as the main frame of this page. * UIProcess/WebPageProxy.h: Added m_shouldSuppressAppLinksInNextNavigationPolicyDecision member variable. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createWindow): Pass the shouldOpenExternalURLsPolicy. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): Ditto. 2015-07-17 Tim Horton iOS TextIndicators include text that is not supposed to be indicated https://bugs.webkit.org/show_bug.cgi?id=147028 Reviewed by Sam Weinig. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::shouldCreateTransientPaintingSnapshot): 2015-07-17 Carlos Garcia Campos [GTK] Cleanup PasteboardHelper https://bugs.webkit.org/show_bug.cgi?id=147035 Reviewed by Žan Doberšek. Use PasteboardHelper::singleton() instead of PasteboardHelper::defaultPasteboardHelper(). * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseConstructed): * UIProcess/gtk/DragAndDropHandler.cpp: (WebKit::DragAndDropHandler::startDrag): (WebKit::DragAndDropHandler::fillDragData): (WebKit::DragAndDropHandler::dataObjectForDropData): (WebKit::DragAndDropHandler::requestDragData): 2015-07-16 Matt Baker [Mac] Web Inspector toolbar can be covered by the Safari tab bar when docked to the right https://bugs.webkit.org/show_bug.cgi?id=146994 Reviewed by Timothy Hatcher. WebInspectorProxy contained logic which ignored the next frame change notification from the inspected view, whenever it updated the frames of both the Inspector view and inspected view. This patch removes that logic, as it prevented the Inspector's frame from being adjusted after changes to the browser's top content inset. * UIProcess/mac/WebInspectorProxyMac.mm: (-[WKWebInspectorProxyObjCAdapter ignoreNextInspectedViewFrameDidChange]): Deleted. (-[WKWebInspectorProxyObjCAdapter inspectedViewFrameDidChange:]): Deleted. (WebKit::WebInspectorProxy::inspectedViewFrameDidChange): Deleted. 2015-07-16 Joseph Pecoraro Web Inspector: [Mac] Save dialog not working when inspector is docked https://bugs.webkit.org/show_bug.cgi?id=146991 Reviewed by Sam Weinig. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::runOpenPanel): (WebKit::WebInspectorProxy::platformSave): When the window is nil (docked) use a non-window version of running the dialog. 2015-07-16 Tim Horton Add shrink-wrapped link highlights https://bugs.webkit.org/show_bug.cgi?id=147021 Reviewed by Enrica Casucci. * Shared/InteractionInformationAtPosition.cpp: (WebKit::InteractionInformationAtPosition::encode): (WebKit::InteractionInformationAtPosition::decode): * Shared/InteractionInformationAtPosition.h: Add a TextIndicator to InteractionInformationAtPosition. Make use of some new C++ features. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): (-[WKContentView didDismissPreviewViewController:committing:]): Make use of the TextIndicator (if we have one) to show a shrink-wrapped snapshot of the link. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): Build a TextIndicator for the link if possible. 2015-07-16 Matt Rajca Media Session: remove plumbing for delivering start/end-of-interruption events https://bugs.webkit.org/show_bug.cgi?id=147005 Reviewed by Eric Carlson. Instead of receiving interruptions through WebKit, we will provide platform-specific implementations in WebCore so the same behavior is available to all clients. * UIProcess/API/C/WKPage.cpp: * UIProcess/API/C/WKPagePrivate.h: * UIProcess/WebPageProxy.cpp: * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-07-16 Michael Catanzaro REGRESSION(r186464): [SOUP] ASSERTION FAILED: !m_messageReceiverMapCount when closing any tab https://bugs.webkit.org/show_bug.cgi?id=147006 Reviewed by Anders Carlsson. Remove the message receiver before it is deallocated. * UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp: (WebKit::CustomProtocolManagerProxy::~CustomProtocolManagerProxy): 2015-07-16 Brady Eidson Review feedback followup for: REGRESSION(r186088): Crash under WebKit::WebPageProxy::didFailLoadForFrame and https://bugs.webkit.org/show_bug.cgi?id=146988 * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::refView): CFRetain instead of Obj-C retain. (WebKit::PageClientImpl::derefView): CFRelease instead of Obj-C release. 2015-07-16 Michael Catanzaro [Linux] Seccomp: fix -Wmismatched-tags https://bugs.webkit.org/show_bug.cgi?id=146990 Reviewed by Žan Doberšek. WebProcessCreationParameters is a struct nowadays, not a class, so declare it appropriately. * Shared/linux/SeccompFilters/SyscallPolicy.h: 2015-07-16 Carlos Garcia Campos REGRESSION(r185415): [GTK] Browsers crash when an input method is enabled https://bugs.webkit.org/show_bug.cgi?id=146639 Reviewed by Žan Doberšek. In r185415 I assumed that preedit signals were always emitted after a keypress was handled by the WebView. However, some input methods handle the keyboard events before the WebView, and preedit signals are emitted but no key event has been handled by the WebView. So, instead of asserting when filter key event completion handler is nullptr, we should check whether the current event was generated for a WebView filter request or not. In case the completion handler is nullptr, we send the event directly to the page, instead of going through the WebView, since there won't be editing commands for those events anyway. * UIProcess/gtk/InputMethodFilter.cpp: (WebKit::InputMethodFilter::handleKeyboardEvent): (WebKit::InputMethodFilter::handleKeyboardEventWithCompositionResults): 2015-07-15 Carlos Garcia Campos Unreviewed. Follow up to r186887 for GTK+. Add GTK+ implementation of PageClientImpl::refView/derefView. * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::refView): (WebKit::PageClientImpl::derefView): * UIProcess/API/gtk/PageClientImpl.h: 2015-07-15 Carlos Garcia Campos [GTK] Input method filter is always enabled when the view is focused https://bugs.webkit.org/show_bug.cgi?id=146965 Reviewed by Martin Robinson. It should only be enabled when the view is focused and there's an editable element focused. In r138544, when input methods were implemented, the message SetInputMethodState was added, but it was never used. Instead, the notifyFocusIn method of the IM filter enables the input method unconditionally. We should actually use the SetInputMethodState message to enable/disable input methods when editable elements are focused/unfocused. * UIProcess/gtk/InputMethodFilter.cpp: (WebKit::InputMethodFilter::setEnabled): Call notifyFocusedIn/Out when inputs methods are enabled/disabled instead of notifying the IM context directly. (WebKit::InputMethodFilter::setCursorRect): Do not update the cursor position if input methods are didabled. (WebKit::InputMethodFilter::notifyFocusedIn): Do nothing when input methods are disabled. Do not enable input methods uncontionally here. (WebKit::InputMethodFilter::notifyFocusedOut): Do not disable input methods uncontionally here. * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::setInputMethodState): Call WebPage::setInputMethodState() for GTK platform. * WebProcess/WebPage/WebPage.h: Add setInputMethodState() for GTK platform. * WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::WebPage::setInputMethodState): Update input method state and send SetInputMethodState message to the UI process if state changed. 2015-07-15 Brady Eidson REGRESSION(r186088): Crash under WebKit::WebPageProxy::didFailLoadForFrame and https://bugs.webkit.org/show_bug.cgi?id=146988 Reviewed by Sam Weinig. When a loader delegate callback results in the WKView getting deallocated, then the PageClient is also destroyed. WebPageProxy then (often) turns around and uses the PageClient anyways. Tried to write a TestWebKitAPI test for this, but only didFailLoadForFrame appears to obviously be vulnerable, and there seems to be no way to reproduce that failure case under TestWebKitAPI. * UIProcess/PageClient.h: Add ref/derefView. * UIProcess/API/gtk/PageClientImpl.h: Stub them out. * UIProcess/efl/WebViewEfl.h: Stub them out. * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::refView): [m_wkView retain] (WebKit::PageClientImpl::derefView): [m_wkView release] * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::refView): Retain all 3 views. (WebKit::PageClientImpl::derefView): Release all 3 views. * UIProcess/WebPageProxy.cpp: (WebKit::PageClientProtector::PageClientProtector): Calls refView() on the PageClient. (WebKit::PageClientProtector::~PageClientProtector): Calls derefView() on the PageClient. (WebKit::WebPageProxy::didChangeBackForwardList): All methods that make m_loaderClient or m_pageClient callouts get a protector at their head. (WebKit::WebPageProxy::willGoToBackForwardListItem): (WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList): (WebKit::WebPageProxy::findPlugin): (WebKit::WebPageProxy::didCreateMainFrame): (WebKit::WebPageProxy::didCreateSubframe): (WebKit::WebPageProxy::didStartProgress): (WebKit::WebPageProxy::didChangeProgress): (WebKit::WebPageProxy::didFinishProgress): (WebKit::WebPageProxy::didDestroyNavigation): (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): (WebKit::WebPageProxy::didChangeProvisionalURLForFrame): (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): (WebKit::WebPageProxy::didFinishLoadForFrame): (WebKit::WebPageProxy::didFailLoadForFrame): (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): (WebKit::WebPageProxy::didReceiveTitleForFrame): (WebKit::WebPageProxy::didFirstLayoutForFrame): (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): (WebKit::WebPageProxy::didLayoutForCustomContentProvider): (WebKit::WebPageProxy::didLayout): (WebKit::WebPageProxy::didRemoveFrameFromHierarchy): (WebKit::WebPageProxy::didDisplayInsecureContentForFrame): (WebKit::WebPageProxy::didRunInsecureContentForFrame): (WebKit::WebPageProxy::didDetectXSSForFrame): (WebKit::WebPageProxy::frameDidBecomeFrameSet): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForNewWindowAction): (WebKit::WebPageProxy::decidePolicyForResponse): (WebKit::WebPageProxy::decidePolicyForResponseSync): (WebKit::WebPageProxy::unableToImplementPolicy): (WebKit::WebPageProxy::didNavigateWithNavigationData): (WebKit::WebPageProxy::didPerformClientRedirect): (WebKit::WebPageProxy::didPerformServerRedirect): (WebKit::WebPageProxy::didUpdateHistoryTitle): (WebKit::WebPageProxy::wrapCryptoKey): (WebKit::WebPageProxy::unwrapCryptoKey): (WebKit::WebPageProxy::navigationGestureDidBegin): (WebKit::WebPageProxy::navigationGestureWillEnd): (WebKit::WebPageProxy::navigationGestureDidEnd): (WebKit::WebPageProxy::willRecordNavigationSnapshot): 2015-07-15 Sam Weinig Color match plug-ins https://bugs.webkit.org/show_bug.cgi?id=146987 Reviewed by Dean Jackson. * Platform/mac/LayerHostingContext.h: * Platform/mac/LayerHostingContext.mm: (WebKit::LayerHostingContext::setColorMatchUntaggedContent): (WebKit::LayerHostingContext::colorMatchUntaggedContent): Add setter/getter for color matching untagged content. * PluginProcess/mac/PluginControllerProxyMac.mm: (WebKit::PluginControllerProxy::updateLayerHostingContext): Have plug-ins CAContext's color match untagged colors into sRGB. 2015-07-15 Michael Catanzaro [GTK] Rename PACKAGE_LOCALE_DIR to LOCALEDIR https://bugs.webkit.org/show_bug.cgi?id=146975 Reviewed by Martin Robinson. * PlatformGTK.cmake: * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_class_init): * WebProcess/gtk/WebProcessMainGtk.cpp: 2015-07-15 Michael Catanzaro [GTK] Rename LIBEXECDIR to PKGLIBEXECDIR https://bugs.webkit.org/show_bug.cgi?id=140070 Reviewed by Martin Robinson. The path that's currently stored in LIBEXECDIR is one level lower than the real LIBEXECDIR, which we are going to need. Introduce PKGLIBEXECDIR so that we can use LIBEXECDIR for the real LIBEXECDIR in the future. * PlatformGTK.cmake: * Shared/gtk/ProcessExecutablePathGtk.cpp: (WebKit::findWebKitProcess): 2015-07-15 Daniel Bates [Mac][WK2] Videos should only have access to cookies when -[NSURLRequest HTTPShouldHandleCookies] is YES https://bugs.webkit.org/show_bug.cgi?id=146763 Reviewed by Darin Adler. We should only fetch cookies from the Network process when -[NSURLRequest HTTPShouldHandleCookies] is YES. This makes us more closely match the behavior of the CFNetwork implementation of -[__NSURLSessionLocal {_copyCookiesForRequestUsingAllAppropriateStorageSemantics, _getCookieHeadersForTask:completionHandler}]. * Shared/mac/CookieStorageShim.mm: (-[WKNSURLSessionLocal _copyCookiesForRequestUsingAllAppropriateStorageSemantics:]): (-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]): 2015-07-14 Enrica Casucci [iOS] Add support for updateSelectionWithExtentPoint:withBoundary. https://bugs.webkit.org/show_bug.cgi?id=146951 rdar://problem/20864286 Reviewed by Tim Horton. Add implementation for new method used by text selection engine on iOS. The new function modifies the selection near the given point and snaps it at the boundary of the specified granularity. * UIProcess/WebPageProxy.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView updateSelectionWithExtentPoint:completionHandler:]): (-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]): (-[WKContentView _characterBeforeCaretSelection]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateSelectionWithExtentPoint): (WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary): (WebKit::WebPageProxy::requestDictationContext): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::rangeForGranularityAtPoint): (WebKit::WebPage::selectTextWithGranularityAtPoint): (WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): 2015-07-15 Michael Catanzaro [Linux] SeccompBrokerClient should cache arbitrary file descriptors https://bugs.webkit.org/show_bug.cgi?id=140068 Reviewed by Žan Doberšek. If malloc() attempts to open /proc/sys/vm/overcommit_memory in a SIGSYS signal handler, the SeccompBroker will attempt to recursively broker the open() syscall. Generalize the existing code that already handles the similar case where malloc() opens /sys/devices/system/cpu/online to handle this situation as well. * Shared/linux/SeccompFilters/SeccompBroker.cpp: (WebKit::SIGSYSHandler): (WebKit::SeccompBrokerClient::SeccompBrokerClient): (WebKit::SeccompBrokerClient::~SeccompBrokerClient): (WebKit::SeccompBrokerClient::handleIfOpeningCachedFile): (WebKit::SeccompBrokerClient::cacheFile): (WebKit::SeccompBrokerClient::handleIfOpeningOnlineCPUCount): Deleted. 2015-07-15 ChangSeok Oh [GTK] Accelerated compositing is enabled by MiniBrowser in Wayland https://bugs.webkit.org/show_bug.cgi?id=146827 Reviewed by Žan Doberšek. WebKit2Gtk+ does not currently support accelerated compositing. For the reason, we forcedly disable it in webkitWebViewBaseCreateWebPage. However, when we launch MiniBrowser in wayland, the unsupported feature is re-enabled since the existing setting is overwritten by a newly created one. Here the default value for accelerated compositing is true. We can fix this by moving the code disabling accelerated composition to WebPreferences::platformInitializeStore() so that we make sure the accelerated compositing is always disabled for wayland. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseCreateWebPage): Deleted. * UIProcess/gtk/WebPreferencesGtk.cpp: (WebKit::WebPreferences::platformInitializeStore): 2015-07-15 Dan Bernstein Fixed build fix. * Platform/spi/ios/SafariServicesSPI.h: 2015-07-14 Ryuan Choi [CoordinatedGraphics] Possible wrong rendering with scrolling https://bugs.webkit.org/show_bug.cgi?id=146958 Reviewed by Gyuyoung Kim. While r174261 fixing build break, there is some mistake that flushes contents layer instead of overlay layer. * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: (WebKit::CoordinatedLayerTreeHost::didFlushRootLayer): 2015-07-14 Dan Bernstein Attempted build fixes. * Platform/spi/ios/SafariServicesSPI.h: 2015-07-14 Dan Bernstein Attempted build fixes. * Platform/spi/ios/SafariServicesSPI.h: 2015-07-14 Anders Carlsson Remove wkPopupMenu from WebCoreSystemInterface; it's not called from WebCore https://bugs.webkit.org/show_bug.cgi?id=146945 Reviewed by Tim Horton. * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): Deleted. 2015-07-14 Anders Carlsson Release assert under StyleResolver::loadPendingImages() caused by MemoryPressureHandler https://bugs.webkit.org/show_bug.cgi?id=146940 rdar://problem/21605505 Reviewed by Sam Weinig. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::processWillSuspendImminently): 2015-07-14 Sam Weinig WebKit needs to serialize numeric values in NSError userInfo https://bugs.webkit.org/show_bug.cgi?id=146936 Reviewed by Anders Carlsson. * Shared/mac/WebCoreArgumentCodersMac.mm: (IPC::ArgumentCoder::encodePlatformData): Encode userInfo values that are NSNumbers in addition to NSStrings and NSURLs. Decoding is already handled. 2015-07-14 Michael Catanzaro [Linux] SeccompFilters: whitelist all NPAPI plugin directories https://bugs.webkit.org/show_bug.cgi?id=140067 Reviewed by Žan Doberšek. * PlatformEfl.cmake: Build PluginSearchPath.cpp * PlatformGTK.cmake: Build PluginSearchPath.cpp * Shared/Plugins/unix/PluginSearchPath.cpp: Added. (WebKit::pluginsDirectories): Moved from PluginInfoStoreUnix.cpp. * Shared/Plugins/unix/PluginSearchPath.h: Added. * Shared/linux/SeccompFilters/SyscallPolicy.cpp: (WebKit::SyscallPolicy::addDefaultWebProcessPolicy): Add the entire plugin search path to the whitelist. * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp: (WebKit::PluginInfoStore::pluginsDirectories): Now gets plugins directories from PluginSearchPath.cpp 2015-07-14 Yongjun Zhang https://bugs.webkit.org/show_bug.cgi?id=146917 iOS WebKit doesn't build. rdar://problem/21801544 Fix the build - don't use deprecated methods. Reviewed by Dan Bernstein. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _registerPreviewInWindow:]): (-[WKContentView _unregisterPreviewInWindow:]): 2015-07-14 Yongjun Zhang https://bugs.webkit.org/show_bug.cgi?id=146909 Add actions for default link preview that uses SFSafariViewController. Use the new private properties to prepare actions for the default link preview controller. Reviewed by Dan Bernstein. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView previewViewControllerForPosition:inSourceView:]): 2015-07-14 Michael Catanzaro [Linux] SeccompFilters: whitelist source directory on all ports https://bugs.webkit.org/show_bug.cgi?id=140066 Reviewed by Žan Doberšek. Move this from EFL to port-independent code. * Shared/linux/SeccompFilters/SyscallPolicy.cpp: (WebKit::SyscallPolicy::addDefaultWebProcessPolicy): * WebProcess/efl/SeccompFiltersWebProcessEfl.cpp: (WebKit::SeccompFiltersWebProcessEfl::platformInitialize): 2015-07-14 Zan Dobersek [GTK] Add a runtime check for X11 display in webkitWebViewBaseExitAcceleratedCompositingMode() https://bugs.webkit.org/show_bug.cgi?id=146711 Reviewed by Carlos Garcia Campos. webkitWebViewBaseExitAcceleratedCompositingMode() is already guarded with X11 build guards, but it should also do a runtime check that the program is running under an X11 display before proceeding. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseDidRelaunchWebProcess): 2015-07-13 Matt Rajca Media Session: add plumbing for delivering start/end-of-interruption events https://bugs.webkit.org/show_bug.cgi?id=146837 Reviewed by Tim Horton. * UIProcess/API/C/WKPage.cpp: (WKPageHandleMediaSessionInterruptionEvent): * UIProcess/API/C/WKPagePrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleMediaSessionInterruptionEvent): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::handleMediaSessionInterruptionEvent): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-07-13 Simon Fraser [iOS WK2] When choosing an initial viewport scale, take overflow on the into account https://bugs.webkit.org/show_bug.cgi?id=146918 rdar://problem/9222837 Reviewed by Tim Horton. Use as input to the viewport scaling algorithm a contents size from the FrameView that takes overflow on the viewport renderer into account. This prevents unexpected viewports scaling on pages that have content that overflows their expressed contents size, but apply overflow to the . * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::mainFrameDidLayout): Use contentsSizeRespectingOverflow(), rather than raw contentsSize(), to determine scaling. 2015-07-13 Dan Bernstein Fixed the build. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _registerPreviewInWindow:]): (-[WKContentView _unregisterPreviewInWindow:]): 2015-07-13 Dan Bernstein Removed now-unused SPI -[WKWebView _loadRequest:withOptions:]. Rubber-stamped by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _loadRequest:withOptions:]): Deleted. * UIProcess/API/Cocoa/WKWebViewPrivate.h: 2015-07-13 Anders Carlsson Apps linked with a deployment target of iOS 7.x or earlier crash when using modern WebKit API https://bugs.webkit.org/show_bug.cgi?id=146913 rdar://problem/21789252 Reviewed by Dan Bernstein. Make a top-level symlink from /System/Library/PrivateFrameworks/WebKit.framework to /System/Library/Frameworks/WebKit.framework. * WebKit2.xcodeproj/project.pbxproj: 2015-07-13 Anders Carlsson Silverlight causes tabs to hang https://bugs.webkit.org/show_bug.cgi?id=146912 rdar://problem/21686508 Reviewed by Sam Weinig. Make sure to link production builds of the legacy plug-in process against the shim on 10.11 and newer. * Configurations/PluginProcess.xcconfig: 2015-07-13 Michael Catanzaro [Linux] SeccompFilters: handle alternate install prefixes https://bugs.webkit.org/show_bug.cgi?id=140065 Reviewed by Žan Doberšek. If the install prefix is something other than /usr, e.g. /usr/local or ~/jhbuild/install, then we want to make sure to allow libraries and data from that prefix. * PlatformEfl.cmake: * Shared/linux/SeccompFilters/SyscallPolicy.cpp: (WebKit::SyscallPolicy::addDefaultWebProcessPolicy): 2015-07-13 Carlos Garcia Campos [GTK] Contents not correctly laid out when the web view is not realized https://bugs.webkit.org/show_bug.cgi?id=142532 Reviewed by Darin Adler. The problem is that we are not reporting any size until the web view is realized, so any web view loaded in a separate tab in the browser, will report 0x0 as the window.innerWidth, window.innerHeight until the view is realized. Websites that use the window.innerWidth/innerHeight during the page load to decide how to lay out the contents will be rendered wrongly. I haven't been able to reproduce this with unit tests, as this requires the particular case of same window but different web views using tabs for example. * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::viewSize): Always report the drawing area size to make usre it's in sync with the WebProcess page size. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseSizeAllocate): Remove the optimization of only report the size when it has changed, since both the redirected window and the drawing area already do that check. Also remove the optimization of waiting until the view is mapped to report its size, since that's often too late for websites using the window size during load. (webkitWebViewBaseMap): Never report size on map, it should have already been reported by size-allocate. 2015-07-11 Nikita Vasilyev Web Inspector: Inspector should be able to be docked to the bottom of a narrow window https://bugs.webkit.org/show_bug.cgi?id=146871 Reviewed by Timothy Hatcher. * UIProcess/WebInspectorProxy.cpp: * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCanAttach): * WebProcess/WebPage/WebInspector.cpp: 2015-07-11 Joseph Pecoraro Allow clients to opt-out of default app link link actions https://bugs.webkit.org/show_bug.cgi?id=146883 Reviewed by Dan Bernstein. * UIProcess/API/APIUIClient.h: (API::UIClient::shouldIncludeAppLinkActionsForElement): * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::shouldIncludeAppLinkActionsForElement): Plumbing for a new delegate message to ask the client if they would like app link actions or not. Default is yes. * UIProcess/ios/WKActionSheetAssistant.h: * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant showImageSheet]): (-[WKActionSheetAssistant showLinkSheet]): (-[WKActionSheetAssistant defaultActionsForLinkSheet:]): (-[WKActionSheetAssistant defaultActionsForImageSheet:]): Pass elementInfo into methods generating default actions. (-[WKActionSheetAssistant _appendOpenActionsForURL:actions:elementInfo:]): When generating open actions, if the process has AppLink capabilities ask the client if they want to include AppLink actions or fall back to the basic Open action. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView actionSheetAssistant:shouldIncludeAppLinkActionsForElement:]): (-[WKContentView previewViewControllerForPosition:inSourceView:]): * UIProcess/ios/WKPDFView.mm: (-[WKPDFView actionSheetAssistant:shouldIncludeAppLinkActionsForElement:]): Assistant delegate implementations forward to the UIDelegate. 2015-07-11 Joseph Pecoraro Update default link action sheets for app links https://bugs.webkit.org/show_bug.cgi?id=146658 Reviewed by Dan Bernstein. * Shared/mac/SandboxUtilities.h: * Shared/mac/SandboxUtilities.mm: Renamed from Source/WebKit2/Shared/mac/SandboxUtilities.cpp. (WebKit::processHasEntitlement): * UIProcess/ApplicationStateTracker.mm: (WebKit::applicationType): (WebKit::hasEntitlement): Deleted. * WebKit2.xcodeproj/project.pbxproj: Share a helper for checking if the current process has an entitlement. * UIProcess/API/Cocoa/_WKElementAction.h: * UIProcess/API/Cocoa/_WKElementAction.mm: (+[_WKElementAction _elementActionWithType:title:actionHandler:]): (+[_WKElementAction _elementActionWithType:customTitle:assistant:]): * UIProcess/API/Cocoa/_WKElementActionInternal.h: Add an internal way to make an element action with a standard type and regular handler. We use this for the new standard types that don't have a default implementation. * UIProcess/ios/WKActionSheetAssistant.mm: (applicationHasAppLinkEntitlements): (appLinkForURL): Helpers checking access to app links and fetching app links. (-[WKActionSheetAssistant _appendOpenActionsForURL:actions:]): (-[WKActionSheetAssistant defaultActionsForLinkSheet]): (-[WKActionSheetAssistant defaultActionsForImageSheet]): Create "Open in Safari" and "Open in 'App'" default actions for AppLinks, otherwise add the normal default "Open" action. 2015-07-11 Enrica Casucci Remove incorrect overriding of inputAssistantItem in WKContentView. https://bugs.webkit.org/show_bug.cgi?id=146863 rdar://problem/21507154 Reviewed by Sam Weinig. Correction to the patch in r186713. We need to provide the inputAssistantItem from the responder. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView inputAccessoryView]): 2015-07-11 Commit Queue Unreviewed, rolling out r186689 and r186710. https://bugs.webkit.org/show_bug.cgi?id=146880 May have caused a PLT regression and broken a layout test (Requested by cdumez on #webkit). Reverted changesets: "[WK2] Increase the QoS of some of our WorkQueues to match the one of our processes" https://bugs.webkit.org/show_bug.cgi?id=146855 http://trac.webkit.org/changeset/186689 "REGRESSION (r186689?): fast/frames/frame-limit.html timeout on Mavericks {Release,Debug} WK2 bots" https://bugs.webkit.org/show_bug.cgi?id=146876 http://trac.webkit.org/changeset/186710 2015-07-10 Enrica Casucci Remove incorrect overriding of inputAssistantItem in WKContentView. https://bugs.webkit.org/show_bug.cgi?id=146863 rdar://problem/21507154 Reviewed by Dan Bernstein. Removing implementation of inputAssistantItem and moving initialization of formAccessoryView to inputAccessoryView to avoid interfering with the keyboard handling of the assistant bar. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView inputAccessoryView]): (-[WKContentView inputAssistantItem]): Deleted. (-[WKContentView _inputAssistantItem]): Deleted. 2015-07-10 Simon Fraser [iOS WK2] Scrolling issues on horizontally scrollable RTL pages https://bugs.webkit.org/show_bug.cgi?id=146872 rdar://problem/7569416 Reviewed by Sam Weinig. Horizontally scrollable RTL pages in WebKit2 had a variety of issues: they had a gap down the right edge, and unreachable content on the left side, focussing form fields scrolled to the wrong location, and programmatic scrolls scrolled to the wrong place. Fix by plumbing the WebCore notion of scrollOrigin through to the UI process, and using it in various places. There are three main aspects to the patch: 1. scroll origin is included in RemoteLayerTreeTransaction, and plumbed through to -[WKWebView _scrollToContentOffset:] for correct programmatic scrolling, including zooming to focused form elements. The WKContentView's boundsOrigin is set to the scroll origin so that the view coordinates match document coordinates. 2. WebPageProxy::computeCustomFixedPositionRect() uses the actual documentRect() rather than just conjuring up a rect with a zero origin, which makes position:fixed work correctly. 3. _interactionViewsContainerView (which hosts tap highlights) is positioned to coincide with the origin of the documentRect (i.e. at the scroll origin, which may not be top-left). This allows tap highlights to show in the correct location. 4. ScrollView::unobscuredContentRect() is fixed to take scroll origin into account; if the returned rect is wrong, RenderLayer::hitTest() incorrectly clips the hit testing area. * Shared/mac/RemoteLayerTreeTransaction.h: (WebKit::RemoteLayerTreeTransaction::scrollOrigin): (WebKit::RemoteLayerTreeTransaction::setScrollOrigin): * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTransaction::encode): (WebKit::RemoteLayerTreeTransaction::decode): (WebKit::RemoteLayerTreeTransaction::description): Dump some more info. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _scrollToContentOffset:scrollOrigin:]): (-[WKWebView _scrollToContentOffset:]): Deleted. * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::requestScroll): * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/CoordinatedGraphics/WebView.cpp: (WebKit::WebView::requestScroll): * UIProcess/CoordinatedGraphics/WebView.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestScroll): * UIProcess/WebPageProxy.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::requestScroll): (WebKit::PageClientImpl::documentRect): (WebKit::PageClientImpl::contentsSize): Deleted. * UIProcess/ios/WKContentView.mm: (-[WKContentView _didCommitLayerTree:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::computeCustomFixedPositionRect): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::requestScroll): * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::willCommitLayerTree): 2015-07-10 Chris Dumez [WK2] Diagnostic logging messages are causing too much IPC https://bugs.webkit.org/show_bug.cgi?id=146873 Reviewed by Ryosuke Niwa. Diagnostic logging messages are causing too much IPC. To address the problem, we now do the sampling of the senders' side (WebContent process and Networking process) instead of the receiver's side (UIProcess). * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::logDiagnosticMessage): (WebKit::NetworkProcess::logDiagnosticMessageWithResult): (WebKit::NetworkProcess::logDiagnosticMessageWithValue): * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::logSampledDiagnosticMessage): (WebKit::NetworkProcessProxy::logSampledDiagnosticMessageWithResult): (WebKit::NetworkProcessProxy::logSampledDiagnosticMessageWithValue): * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/Network/NetworkProcessProxy.messages.in: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::logDiagnosticMessage): (WebKit::WebPageProxy::logDiagnosticMessageWithResult): (WebKit::WebPageProxy::logDiagnosticMessageWithValue): (WebKit::WebPageProxy::logSampledDiagnosticMessage): (WebKit::WebPageProxy::logSampledDiagnosticMessageWithResult): (WebKit::WebPageProxy::logSampledDiagnosticMessageWithValue): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp: (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage): (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult): (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue): 2015-07-10 Dean Jackson Airplay button and placeholder are missing in inline controls https://bugs.webkit.org/show_bug.cgi?id=146869 Reviewed by Simon Fraser. Fix a typo in the ENABLE that was causing the Airplay setting (allowsAirPlayForMediaPlayback, which becomes webkitWirelessVideoPlaybackDisabled) to default to false. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): Change WIRELESS_TARGET_PLAYBACK to WIRELESS_PLAYBACK_TARGET. 2015-07-10 Tim Horton Use CoreAnimation fences instead of synchronous IPC to synchronize resize https://bugs.webkit.org/show_bug.cgi?id=146294 Reviewed by Anders Carlsson. * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: (WebKit::TiledCoreAnimationDrawingAreaProxy::createFenceForGeometryUpdate): Tiny followup; don't touch Connection if the connection isn't valid. 2015-07-10 Chris Dumez [WK2] Increase the QoS of some of our WorkQueues to match the one of our processes https://bugs.webkit.org/show_bug.cgi?id=146855 Reviewed by Anders Carlsson. Increase the QoS of some of our WorkQueues to match the one of our processes. For e.g., even though the WebContent and the Networking processes have USER_UNITIATED QoS, the IPC between them is using a WorkQueue with DEFAULT QoS. Similarly, the WorkQueue used for network cache reads has DEFAULT QoS. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::Storage): * Platform/IPC/Connection.cpp: (IPC::Connection::Connection): 2015-07-10 Zalan Bujtas Crash at WebCore::WebPage::innerFrameQuad. https://bugs.webkit.org/show_bug.cgi?id=146843 rdar://problem/21501819 Reviewed by Andreas Kling. We may end up with a null rootEditableElement() after calling Document::updateLayout(). Speculative fix. Not reproducible. * WebProcess/WebPage/WebPage.h: Some const cleanup. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::innerFrameQuad): null check assistedNode.rootEditableElement() (WebKit::constrainPoint): (WebKit::WebPage::selectWithGesture): (WebKit::WebPage::visiblePositionInFocusedNodeForPoint): (WebKit::WebPage::selectPositionAtPoint): (WebKit::WebPage::selectPositionAtBoundaryWithDirection): (WebKit::WebPage::selectTextWithGranularityAtPoint): (WebKit::WebPage::updateSelectionWithExtentPoint): (WebKit::WebPage::getPositionInformation): 2015-07-09 Jon Honeycutt [iOS] Document picker has overlapping icons on iPad https://bugs.webkit.org/show_bug.cgi?id=146808 Reviewed by Sam Weinig. * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel documentMenu:didPickDocumentPicker:]): Don't show this UI as a popover on iPad; the default is a full screen form sheet. 2015-07-09 Dan Bernstein WebKit2 part of Track and expose policies for external URL schemes and App Links separately https://bugs.webkit.org/show_bug.cgi?id=146822 Reviewed by Anders Carlsson. * Shared/NavigationActionData.cpp: (WebKit::NavigationActionData::encode): (WebKit::NavigationActionData::decode): * Shared/NavigationActionData.h: Replaced the shouldOpenExternalURLsPolicy boolean member with a shouldOpenExternalURLsPolicy member whose type is ShouldOpenExternalURLsPolicy, and updated encoding and decoding: * UIProcess/API/APINavigationAction.h: Added shouldOpenAppLinks boolean to NavigationAction::create and the constructor. It augments the policy in the NavigationActionData with a valude decided in the UI process. Replaced shouldOpenExternalURLs() with shouldOpenExternalSchemes() and shouldOpenAppLinks() which check the policy and the new m_shouldOpenAppLinks boolean. * UIProcess/API/Cocoa/WKNavigationAction.mm: (-[WKNavigationAction _shouldOpenExternalSchemes]): Getter for new property, calls through to the NavigationAction. (-[WKNavigationAction _shouldOpenAppLinks]): Ditto. (-[WKNavigationAction _shouldOpenExternalURLs]): Now deprecated and returns the _shouldOpenExternalSchemes value. * UIProcess/API/Cocoa/WKNavigationActionPrivate.h: Declared new properties for the two policies and deprecated old property. * UIProcess/Cocoa/NavigationState.mm: (WebKit::tryAppLink): Changed to use NavigationAction::shouldOpenAppLinks, which encapsulates logic that used to be here. * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::createNewPage): Allow App Links (if already allowed by policy). * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction): Moved logic from tryAppLink in NavigationState.mm here and pass the result to NavigationAction::create. (WebKit::WebPageProxy::decidePolicyForNewWindowAction): Allow App Links (if already allowed by policy). * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::loadRequest): Changed the default policy to not allow App Links (but still allow external schemes). * WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp: (WKBundleNavigationActionGetShouldTryAppLinks): Added this getter. * WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h: * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp: (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction): * WebProcess/InjectedBundle/InjectedBundleNavigationAction.h: Added m_shouldTryAppLinks boolean member, initialized from the policy. Updated the initialization of m_shouldOpenExternalURLs to account for the new policy. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Pass the policy in the navigation data. 2015-07-09 Tim Horton Use CoreAnimation fences instead of synchronous IPC to synchronize resize https://bugs.webkit.org/show_bug.cgi?id=146294 Reviewed by Anders Carlsson. Because of changes in underlying frameworks, we can no longer depend on blocking the UI process main thread to be sufficient to synchronize UI process CA commits with commits coming from the Web process. Instead, we have to use CoreAnimation fences to perform this synchronization. Instead of blocking inside waitForAndDispatchImmediately, we'll end up blocking during the CA commit. * Platform/mac/LayerHostingContext.mm: Use HAVE(COREANIMATION_FENCES). * Platform/IPC/Connection.cpp: (IPC::Connection::Connection): (IPC::Connection::processIncomingMessage): (IPC::Connection::installIncomingSyncMessageCallback): (IPC::Connection::uninstallIncomingSyncMessageCallback): Keep track of a set of incoming sync message callbacks, and fire them (on another queue) when a sync message arrives. (IPC::Connection::hasIncomingSyncMessage): * Platform/IPC/Connection.h: Add a way to check if there are any sync messages in the queue. * UIProcess/API/mac/WKView.mm: (-[WKView forceAsyncDrawingAreaSizeUpdate:]): (-[WKView waitForAsyncDrawingAreaSizeUpdate]): These are no longer used; do nothing on 10.10+. * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry): * WebProcess/WebPage/DrawingArea.h: (WebKit::DrawingArea::updateGeometry): * WebProcess/WebPage/DrawingArea.messages.in: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scaleViewAndUpdateGeometryFenced): * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::updateGeometry): * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: Add a MachSendRight parameter to UpdateGeometry, so that we can send along a fence port with the geometry update if needed. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::updateGeometry): Apply the incoming fence so that geometry changes will be synchronized between processes. * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: (WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate): Don't wait for DidUpdateGeometry to come in if we're using fences to achieve the same thing. (WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry): Create and block us on a fence and send it along with the geometry update. If a sync message is in the incoming message queue, don't create the fence; if a sync message comes in at any point after we've installed the fence (but before the relevant commit completes), invalidate the fence, so that we won't end up temorarily deadlocked waiting for the fence timeout. 2015-07-09 Michael Catanzaro [GTK] Crash when spell checker returns no guesses https://bugs.webkit.org/show_bug.cgi?id=146805 Reviewed by Martin Robinson. Properly handle ContextMenuItemTagNoGuessesFound in the switch statement. * UIProcess/API/gtk/WebKitContextMenuActions.cpp: (webkitContextMenuActionGetForContextMenuItem): 2015-07-09 Alex Christensen [Content Extensions] Add 3 byte jump size. https://bugs.webkit.org/show_bug.cgi?id=146425 Reviewed by Darin Adler. * UIProcess/API/APIUserContentExtensionStore.h: Increment CurrentContentExtensionFileVersion because of change in the bytecode. 2015-07-09 Anders Carlsson SafariViewController loads partial webpage or entirely blank webpage https://bugs.webkit.org/show_bug.cgi?id=146815 rdar://problem/21734757 Reviewed by Dan Bernstein. * Platform/spi/ios/UIKitSPI.h: Add _hostProcessIdentifier getter. * UIProcess/ApplicationStateTracker.h: Change ApplicationStateTracker to hold on to a WKContentView instead of a UIView. * UIProcess/ApplicationStateTracker.mm: (WebKit::applicationType): Add a helper function that returns the type of application the web view is hosted by (regular application, view service or extension). (WebKit::ApplicationStateTracker::ApplicationStateTracker): Register notifications and update m_isInBackground. For regular applications, just listen for UIApplication notifications. For view services, walk the view controller hierarchy and find the service view controller and listen for notifications and use BKS to find the background state of the host application. For extensions, just use BKSApplicationStateMonitor directly. (WebKit::isViewService): Deleted. * UIProcess/ios/WKContentView.mm: (-[WKContentView willMoveToWindow:]): If we're moving out of a window, null out the state tracker. (-[WKContentView didMoveToWindow]): If we moved to a window, create a new state tracker. (-[WKContentView isBackground]): Handle a null application state. (-[WKContentView _commonInitializationWithProcessPool:configuration:]): Deleted. Don't create the application state here. 2015-07-09 Dan Bernstein [Cocoa] Report the first paint after committing a load as a rendering progress event https://bugs.webkit.org/show_bug.cgi?id=146765 Reviewed by Tim Horton. * Shared/API/Cocoa/_WKRenderingProgressEvents.h: Added _WKRenderingProgressEventFirstPaint. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): If this is the first layer tree commit since the load was committed, and the delegate is observing _WKRenderingProgressEventFirstPaint, call NavigationState::didFirstPaint. * UIProcess/Cocoa/NavigationState.h: * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::didFirstPaint): Added. Calls -_webView:renderingProgressDidChange: with _WKRenderingProgressEventFirstPaint. 2015-07-08 Jinwoo Song [EFL] When closing inspector window, EwkView is not released properly. https://bugs.webkit.org/show_bug.cgi?id=146716 Reviewed by Gyuyoung Kim. It's because inspector window could not be deleted by remaining reference from inspector view(evas object). This patch deletes the inspector window after finishing the evas object smart call. * UIProcess/efl/WebInspectorProxyEfl.cpp: (WebKit::destroyInspectorWindow): (WebKit::WebInspectorProxy::platformDidClose): 2015-07-08 Hyungwook Lee Fix ASSERTION FAILED: !m_pendingNavigationID in WebPage::reload(). https://bugs.webkit.org/show_bug.cgi?id=146546 Reviewed by Darin Adler. We did't reset pendingNavigationID value when request url is empty. Hence we need to ignore ASSERT check in this case. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::reload): 2015-07-08 Gyuyoung Kim Use Ref/RefPtr instead of PassRefPtr in WebKit2 - 2 https://bugs.webkit.org/show_bug.cgi?id=146591 Reviewed by Darin Adler. Following patch in order to reduce use of PassRefPtr. * Shared/BlobDataFileReferenceWithSandboxExtension.h: * Shared/Cocoa/CompletionHandlerCallChecker.h: * Shared/Cocoa/CompletionHandlerCallChecker.mm: (WebKit::CompletionHandlerCallChecker::create): * Shared/Downloads/DownloadAuthenticationClient.h: (WebKit::DownloadAuthenticationClient::create): * Shared/SandboxExtension.h: * Shared/ShareableResource.cpp: (WebKit::ShareableResource::create): * Shared/ShareableResource.h: * Shared/mac/ObjCObjectGraph.h: (WebKit::ObjCObjectGraph::create): * Shared/mac/SandboxExtensionMac.mm: (WebKit::SandboxExtension::create): * UIProcess/API/Cocoa/WKProcessGroup.mm: (getInjectedBundleInitializationUserData): * UIProcess/WebPreferences.cpp: (WebKit::WebPreferences::create): * UIProcess/WebPreferences.h: * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: (WKBundlePageOverlayCreate): * WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm: (WKBundlePageBannerCreateBannerWithCALayer): * WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp: (WebKit::InjectedBundleDOMWindowExtension::create): * WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.h: * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp: (WebKit::InjectedBundleHitTestResult::create): * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h: * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp: (WebKit::InjectedBundleNavigationAction::create): * WebProcess/InjectedBundle/InjectedBundleNavigationAction.h: * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp: (WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems): (WebKit::InjectedBundlePageContextMenuClient::prepareForImmediateAction): * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: (WebKit::InjectedBundleScriptWorld::create): * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h: * WebProcess/Network/NetworkProcessConnection.h: (WebKit::NetworkProcessConnection::create): * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::create): * WebProcess/Network/WebResourceLoader.h: * WebProcess/Notifications/NotificationPermissionRequestManager.cpp: (WebKit::NotificationPermissionRequestManager::create): * WebProcess/Notifications/NotificationPermissionRequestManager.h: * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::create): * WebProcess/Plugins/Netscape/NetscapePlugin.h: * WebProcess/Plugins/Netscape/NetscapePluginStream.h: (WebKit::NetscapePluginStream::create): * WebProcess/Plugins/PDF/PDFPlugin.h: * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::create): * WebProcess/Plugins/PDF/PDFPluginAnnotation.h: (WebKit::PDFPluginAnnotation::PDFPluginAnnotationEventListener::create): * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h: * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: (WebKit::PDFPluginChoiceAnnotation::create): * WebProcess/Plugins/PDF/PDFPluginPasswordField.h: * WebProcess/Plugins/PDF/PDFPluginPasswordField.mm: (WebKit::PDFPluginPasswordField::create): * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h: * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm: (WebKit::PDFPluginTextAnnotation::create): * WebProcess/Plugins/PluginProcessConnection.h: (WebKit::PluginProcessConnection::create): * WebProcess/Plugins/PluginProcessConnectionManager.cpp: (WebKit::PluginProcessConnectionManager::create): * WebProcess/Plugins/PluginProcessConnectionManager.h: * WebProcess/Plugins/PluginProxy.cpp: (WebKit::PluginProxy::create): * WebProcess/Plugins/PluginProxy.h: * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::URLRequest::create): (WebKit::PluginView::Stream::create): (WebKit::PluginView::create): * WebProcess/Plugins/PluginView.h: * WebProcess/Scrolling/RemoteScrollingCoordinator.h: (WebKit::RemoteScrollingCoordinator::create): * WebProcess/Storage/StorageAreaImpl.cpp: (WebKit::StorageAreaImpl::create): * WebProcess/Storage/StorageAreaImpl.h: * WebProcess/Storage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::create): * WebProcess/Storage/StorageAreaMap.h: * WebProcess/WebConnectionToUIProcess.cpp: (WebKit::WebConnectionToUIProcess::create): * WebProcess/WebConnectionToUIProcess.h: * WebProcess/WebCoreSupport/WebPopupMenu.cpp: (WebKit::WebPopupMenu::create): * WebProcess/WebCoreSupport/WebPopupMenu.h: * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: (WebKit::WebSearchPopupMenu::create): * WebProcess/WebCoreSupport/WebSearchPopupMenu.h: * WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.h: * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h: (WebKit::WebFrameNetworkingContext::create): * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h: (WebKit::WebFrameNetworkingContext::create): * WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h: (WebKit::RemoteLayerTreeDisplayRefreshMonitor::create): * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: (WebKit::CoordinatedLayerTreeHost::create): * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: (WebKit::ThreadedCoordinatedLayerTreeHost::create): * WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::create): * WebProcess/WebPage/EventDispatcher.h: * WebProcess/WebPage/PageBanner.h: * WebProcess/WebPage/WebBackForwardListProxy.h: (WebKit::WebBackForwardListProxy::create): * WebProcess/WebPage/WebContextMenu.h: (WebKit::WebContextMenu::create): * WebProcess/WebPage/WebDocumentLoader.h: (WebKit::WebDocumentLoader::create): * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::create): * WebProcess/WebPage/WebInspector.h: * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::create): * WebProcess/WebPage/WebInspectorUI.h: * WebProcess/WebPage/WebOpenPanelResultListener.cpp: (WebKit::WebOpenPanelResultListener::create): * WebProcess/WebPage/WebOpenPanelResultListener.h: * WebProcess/WebPage/WebPageOverlay.cpp: (WebKit::WebPageOverlay::create): * WebProcess/WebPage/WebPageOverlay.h: * WebProcess/WebPage/WebUndoStep.cpp: (WebKit::WebUndoStep::create): * WebProcess/WebPage/WebUndoStep.h: * WebProcess/WebPage/mac/PageBannerMac.mm: (WebKit::PageBanner::create): * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h: * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: (WebKit::PlatformCAAnimationRemote::create): * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create): * WebProcess/ios/WebVideoFullscreenManager.h: * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::create): 2015-07-08 Anders Carlsson WKSecurityOrigin.h has wrong availability info https://bugs.webkit.org/show_bug.cgi?id=146761 rdar://problem/21735802 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKSecurityOrigin.h: 2015-07-08 Andreas Kling [iOS] Scrolling is laggy when the keyboard is up and a form element is focused. Reviewed by Enrica Casucci. Every touch on the page causes us to call elementDidFocus(), since we may need to bring up a keyboard if the node had previously been programmatically focused. This was causing little lag spikes during scrolling every time you'd put your finger to the screen. Have WebPage::elementDidFocus() return early if the node already has focus, and we've started an input session in response to non-programmatic focus already. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::elementDidFocus): (WebKit::WebPage::elementDidBlur): 2015-07-08 Matt Rajca Media Session: indicate to clients whether a media session has active media elements https://bugs.webkit.org/show_bug.cgi?id=146742 Reviewed by Tim Horton. * UIProcess/API/C/WKPage.cpp: (WKPageHasMediaSessionWithActiveMediaElements): * UIProcess/API/C/WKPagePrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::hasMediaSessionWithActiveMediaElementsDidChange): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::hasMediaSessionWithActiveMediaElementsDidChange): * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::hasMediaSessionWithActiveMediaElementsDidChange): * WebProcess/WebCoreSupport/WebChromeClient.h: 2015-07-07 Matt Rajca Media Session: propagate artwork URL with metadata to UI clients https://bugs.webkit.org/show_bug.cgi?id=146698 Reviewed by Tim Horton. * Shared/WebMediaSessionMetadata.h: (WebKit::WebMediaSessionMetadata::artworkURL): * UIProcess/API/C/WKMediaSessionMetadata.cpp: (WKMediaSessionMetadataCopyArtworkURL): * UIProcess/API/C/WKMediaSessionMetadata.h: 2015-07-08 Yongjun Zhang Don't allow page scroll when previewing a link or image. https://bugs.webkit.org/show_bug.cgi?id=146741 rdar://problem/21733053 Reviewed by Beth Dakin. Don't let preview gesture and scroll panning gesture or zooming gesture recognize at the same time. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]): 2015-07-08 Tim Horton Snapshots can be misplaced when custom swipe views are offset from the window origin https://bugs.webkit.org/show_bug.cgi?id=146744 Reviewed by Dean Jackson. * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): Keep swipeArea in window coordinates; it was already in window coordinates when using custom swipe views, but not in the non-custom case. Convert from window coordinates to parent-of-m_swipeLayer coordinates when determining m_swipeLayer's frame. 2015-07-07 Andy Estes [iOS][WK2] Ignore synthetic clicks in subframes initiated on a previous page https://bugs.webkit.org/show_bug.cgi?id=146712 Reviewed by Benjamin Poulain. r178980 fixed an issue where, if a main frame navigation occurs in response to a touch event, a synthetic click event could fire on the navigated-to page. This change extends this fix to apply to subframes. * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::WebFrame): * WebProcess/WebPage/WebFrame.h: (WebKit::WebFrame::firstLayerTreeTransactionIDAfterDidCommitLoad): (WebKit::WebFrame::setFirstLayerTreeTransactionIDAfterDidCommitLoad): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad): Stored the next layer tree transaction ID, and called cancelPotentialTapInFrame(), for the committed frame. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::handleTap): Determined the first post-commit layer tree transaction ID from the tap target node's frame. (WebKit::WebPage::commitPotentialTap): Ditto. (WebKit::WebPage::cancelPotentialTap): Called cancelPotentialTapInFrame(), passing m_mainFrame. (WebKit::WebPage::cancelPotentialTapInFrame): Taught to only cancel a potential tap whose target node is a descendant of the given frame. (WebKit::WebPage::updateVisibleContentRects): Updated to use the main frame's first post-commit layer tree transaction ID. 2015-07-08 Brady Eidson Move PingLoaders to the NetworkingProcess. and https://bugs.webkit.org/show_bug.cgi?id=146710 Reviewed by Tim Horton. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::loadPing): Create a PingHandle and then return. * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::createPingHandle): If the Network process is enabled, compile the appropriate load parameters and then message to it. Otherwise, use the default in-process PingHandle. * WebProcess/WebCoreSupport/WebPlatformStrategies.h: 2015-07-08 Beth Dakin Only support image previews for clients that implement commitPreviewedImageWithURL delegate https://bugs.webkit.org/show_bug.cgi?id=146739 -and corresponding- rdar://problem/21692929 Reviewed by Tim Horton. We should only support image previews for clients that implement commitPreviewedImageWithURL delegate since there is no default commit action. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView previewViewControllerForPosition:inSourceView:]): 2015-07-08 Anders Carlsson Make ApplicationStateTracker be per view instead of being a singleton https://bugs.webkit.org/show_bug.cgi?id=146737 Reviewed by Andreas Kling. * UIProcess/ApplicationStateTracker.h: Update to be per view instead of a singleton. * UIProcess/ApplicationStateTracker.mm: (WebKit::ApplicationStateTracker::ApplicationStateTracker): Change to take a view + selectors. (WebKit::ApplicationStateTracker::~ApplicationStateTracker): Invalidate the state monitor and remove the listeners. (WebKit::ApplicationStateTracker::applicationDidEnterBackground): Just call the single background method. (WebKit::ApplicationStateTracker::applicationWillEnterForeground): Just call the single foreground method. (WebKit::ApplicationStateTracker::singleton): Deleted. (WebKit::ApplicationStateTracker::addListener): Deleted. (WebKit::ApplicationStateTracker::invokeListeners): Deleted. (WebKit::ApplicationStateTracker::pruneListeners): Deleted. * UIProcess/ios/WKContentView.mm: (-[WKContentView _commonInitializationWithProcessPool:configuration:]): Create the ApplicationStateTracker here. (-[WKContentView isBackground]): Get the ivar instead of the singleton. 2015-07-08 Beth Dakin InteractionInformationAtPosition bounds seem wrong on many sites, affects apple.com https://bugs.webkit.org/show_bug.cgi?id=146736 -and corresponding- rdar://problem/21655549 Reviewed by Tim Horton. http://trac.webkit.org/changeset/186132/ changed the bounds for InteractionInformationAtPosition. The image-related changes are good, but the link-related changes feel wrong on many sites. We should revert the change for now and just use the absoluteBoundingBoxRect() for non-images. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-07-08 Beth Dakin Add actions to image previews https://bugs.webkit.org/show_bug.cgi?id=146702 -and corresponding- Reviewed by Sam Weinig. Add an array of actions and _WKActivatedElementInfo in order to properly invoke the actions. * UIProcess/WKImagePreviewViewController.h: * UIProcess/WKImagePreviewViewController.mm: (-[WKImagePreviewViewController loadView]): (-[WKImagePreviewViewController initWithCGImage:defaultActions:elementInfo:]): (_scaleSizeWithinSize): (-[WKImagePreviewViewController initWithCGImage:]): Deleted. Re-factor defaultActionsForImageSheet into a stand-alone function so that it can be invoked for previews as well as for the action sheet. * UIProcess/ios/WKActionSheetAssistant.h: * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant showImageSheet]): (-[WKActionSheetAssistant defaultActionsForLinkSheet]): (-[WKActionSheetAssistant defaultActionsForImageSheet]): (-[WKActionSheetAssistant showLinkSheet]): WKImagePreviewViewController initializer now takes the default actions and _WKActivatedElementInfo. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView previewViewControllerForPosition:inSourceView:]): 2015-07-08 Dan Bernstein [iOS] Keyboard shortcuts that take focus away from the web view end up typing a letter into the newly focused field https://bugs.webkit.org/show_bug.cgi?id=146732 Reviewed by Sam Weinig. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interpretKeyEvent:isCharEvent:]): Bail out if we are no longer the first responder. 2015-07-07 Anders Carlsson Always begin a background task when needed, not just when we go into the background https://bugs.webkit.org/show_bug.cgi?id=146704 Reviewed by Gavin Barraclough. The system let background code run for the same amount of time regardless of whether the assertion was grabbed when the app is in the foreground or being backgrounded, so remove the background/foreground tracking code. * UIProcess/ios/ProcessAssertionIOS.mm: (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager init]): Deleted. (-[WKProcessAssertionBackgroundTaskManager _applicationWillEnterForeground]): Deleted. (-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackground]): Deleted. 2015-07-08 Antti Koivisto Network Cache: Don't open files in main thread https://bugs.webkit.org/show_bug.cgi?id=146722 Follow-up. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::dispatchReadOperation): Accessing m_bodyFilter is technically not thread safe so keep it in main thread. 2015-07-08 Antti Koivisto Network Cache: Don't open files in main thread https://bugs.webkit.org/show_bug.cgi?id=146722 Reviewed by Chris Dumez. While we use open() with O_NONBLOCK profiling indicates that we still may block up to 5ms under the syscall in some case. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::dispatchReadOperation): Dispatch read operation to a concurrent queue. With this we can also eliminate the separate dispatch() for body blob read. 2015-07-08 Sungmann Cho [Unix] Remove unused local variable from Connection::sendOutgoingMessage(). https://bugs.webkit.org/show_bug.cgi?id=146713 Reviewed by Csaba Osztrogonác. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::sendOutgoingMessage): 2015-07-07 Tim Horton Occasional null deref in the CA callback in flushLayers() https://bugs.webkit.org/show_bug.cgi?id=146700 Reviewed by Simon Fraser. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::flushLayers): * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::flushLayers): Make sure we keep the WebPage alive, and null-check the potentially null WebCore objects (Page and Frame). 2015-07-06 Matt Rajca Media Session: propagate metadata changes to UI clients https://bugs.webkit.org/show_bug.cgi?id=146660 Reviewed by Tim Horton. * CMakeLists.txt: Added WebMediaSessionMetadata and WKMediaSessionMetadata. * Shared/API/APIObject.h: Added a media session metadata type. * Shared/API/c/WKBase.h: * Shared/WebMediaSessionMetadata.cpp: Added API adapter for WebCore::MediaSessionMetadata. (WebKit::WebMediaSessionMetadata::create): (WebKit::WebMediaSessionMetadata::WebMediaSessionMetadata): (WebKit::WebMediaSessionMetadata::~WebMediaSessionMetadata): * Shared/WebMediaSessionMetadata.h: Added API adapter for WebCore::MediaSessionMetadata. (WebKit::WebMediaSessionMetadata::title): (WebKit::WebMediaSessionMetadata::artist): (WebKit::WebMediaSessionMetadata::album): * UIProcess/API/APIUIClient.h: Added 'mediaSessionMetadataDidChange' interface. (API::UIClient::mediaSessionMetadataDidChange): * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKMediaSessionMetadata.cpp: Added C wrapper for WebMediaSessionMetadata. (WKMediaSessionMetadataGetTypeID): (WKMediaSessionMetadataCopyTitle): (WKMediaSessionMetadataCopyArtist): (WKMediaSessionMetadataCopyAlbum): * UIProcess/API/C/WKMediaSessionMetadata.h: Added C wrapper for WebMediaSessionMetadata. * UIProcess/API/C/WKPage.cpp: Forward 'mediaSessionMetadataDidChange' to client. (WKPageSetPageUIClient): * UIProcess/API/C/WKPageUIClient.h: Added 'mediaSessionMetadataDidChange' callback. * UIProcess/WebPageProxy.cpp: Forward 'mediaSessionMetadataDidChange' to UI client. (WebKit::WebPageProxy::mediaSessionMetadataDidChange): * WebKit2.xcodeproj/project.pbxproj: Added WebMediaSessionMetadata and WKMediaSessionMetadata. 2015-07-07 Brady Eidson HTTP Auth cached after disabling private browsing/reset. and https://bugs.webkit.org/show_bug.cgi?id=146654 Reviewed by Tim Horton. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::getAuthenticationInfo): 2015-07-07 Anders Carlsson Make sure to remove the download message receiver before freeing it https://bugs.webkit.org/show_bug.cgi?id=146687 Reviewed by Simon Fraser. * UIProcess/Downloads/DownloadProxyMap.cpp: (WebKit::DownloadProxyMap::downloadFinished): 2015-07-07 Chris Dumez Unreviewed, Fix non-Mac build after r186464. * UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp: (WebKit::CustomProtocolManagerProxy::~CustomProtocolManagerProxy): 2015-07-06 Anders Carlsson Make sure to remove message receivers before they are deallocated https://bugs.webkit.org/show_bug.cgi?id=146666 rdar://problem/21331118 Reviewed by Tim Horton. Add code so we can assert that there are no message receiver maps pointing to a message receiver when it's being destroyed. Fix all the assertions by calling removeMessageReceiver in the right places. * Platform/IPC/MessageReceiver.h: (IPC::MessageReceiver::~MessageReceiver): (IPC::MessageReceiver::willBeAddedToMessageReceiverMap): (IPC::MessageReceiver::willBeRemovedFromMessageReceiverMap): * Platform/IPC/MessageReceiverMap.cpp: (IPC::MessageReceiverMap::addMessageReceiver): (IPC::MessageReceiverMap::removeMessageReceiver): (IPC::MessageReceiverMap::invalidate): * Shared/ChildProcess.cpp: (WebKit::ChildProcess::removeMessageReceiver): * Shared/ChildProcess.h: * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::removeMessageReceiver): * Shared/ChildProcessProxy.h: * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController dealloc]): * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h: * UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm: (WebKit::CustomProtocolManagerProxy::~CustomProtocolManagerProxy): * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy): * UIProcess/WebConnectionToWebProcess.cpp: (WebKit::WebConnectionToWebProcess::invalidate): * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: (-[WKWebProcessPlugInBrowserContextController dealloc]): * WebProcess/WebConnectionToUIProcess.cpp: (WebKit::WebConnectionToUIProcess::invalidate): 2015-07-06 Brent Fulgham Ensure media playback is stopped during page close https://bugs.webkit.org/show_bug.cgi?id=146554 Reviewed by Brady Eidson. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didClose): Make sure to clean up any running media sessions when the process is being shut down. 2015-07-06 Commit Queue Unreviewed, rolling out r186385. https://bugs.webkit.org/show_bug.cgi?id=146668 crashes 3 webaudio tests in debug builds (Requested by alexchristensen on #webkit). Reverted changeset: "Ensure media playback is stopped during page close" https://bugs.webkit.org/show_bug.cgi?id=146554 http://trac.webkit.org/changeset/186385 2015-07-06 Brent Fulgham Ensure media playback is stopped during page close https://bugs.webkit.org/show_bug.cgi?id=146554 Reviewed by Brady Eidson. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didClose): Make sure to clean up any running media sessions when the process is being shut down. 2015-07-06 Yongjun Zhang Allow UIDelegate to customize link actions in preview. https://bugs.webkit.org/show_bug.cgi?id=146567 Add a new UIDelegate method to pass the defaultActions and elementInfo to client to allow the client customize the actions based on the element. Also add a new SPI runActionWithElementInfo: to _WKElementAction and make it aware of the WKActionSheetAssistant that creates it, so that the client can run the action without knowing WKActionSheetAssistant. Reviewed by Beth Dakin. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add delegate method _webView:previewViewControllerForURL:defaultActions:elementInfo:. * UIProcess/API/Cocoa/_WKElementAction.h: Add a SPI runActionWithElementInfo:. * UIProcess/API/Cocoa/_WKElementAction.mm: (-[_WKElementAction _initWithTitle:actionHandler:type:assistant:]): Modified initializer, also initialize _defaultActionSheetAssistant iVar if the caller provides that. (+[_WKElementAction elementActionWithTitle:actionHandler:]): Use the new initializer. (+[_WKElementAction _elementActionWithType:customTitle:assistant:]): A new helper method to create _WKElementAction with assistant. (+[_WKElementAction _elementActionWithType:assistant:]): (+[_WKElementAction elementActionWithType:customTitle:]): (-[_WKElementAction runActionWithElementInfo:]): * UIProcess/API/Cocoa/_WKElementActionInternal.h: * UIProcess/ios/WKActionSheetAssistant.h: Add a method defaultActionsForLinkSheet. * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant defaultActionsForLinkSheet]): Get default actions for current link that is activated. (-[WKActionSheetAssistant showLinkSheet]): Use defaultActionsForLinkSheet. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView previewViewControllerForPosition:inSourceView:]): Pass defaultActions and elementInfo to UIDelegate when querying for preview view controller. (-[WKContentView didDismissPreviewViewController:committing:]): 2015-07-06 Brady Eidson ShouldOpenExternalURLsPolicy should default to "Allow" for WK2 API loads. and https://bugs.webkit.org/show_bug.cgi?id=146563 Reviewed by Geoff Garen. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView loadRequest:]): Move _loadRequest:withOptions: logic back here, just without options. (-[WKWebView _loadRequest:withOptions:]): This SPI is now unneeded, but must remain inactive. * UIProcess/WebPageProxy.h: 2015-07-06 Csaba Osztrogonác URTBF after r186357 to fix non Cocoa platforms. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::deleteWebsiteData): 2015-07-06 Antti Koivisto With multipart/replaced (e.g. motion JPEG), m_bufferedDataForCache grows unbounded in Networking process https://bugs.webkit.org/show_bug.cgi?id=146630 Follow-up. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveBuffer): Typo 1014 -> 1024 2015-07-06 Commit Queue Unreviewed, rolling out r185896. https://bugs.webkit.org/show_bug.cgi?id=146647 Caused by a refcounting error in GTK+; it's actually legal for the event to be null, just the gi annotations were wrong. (Requested by mcatanzaro on #webkit). Reverted changeset: "[GTK] Crash performing drag-and-drop" https://bugs.webkit.org/show_bug.cgi?id=146267 http://trac.webkit.org/changeset/185896 2015-07-06 Anders Carlsson Provide API to clear the HSTS cache https://bugs.webkit.org/show_bug.cgi?id=146565 rdar://problem/20023805 Reviewed by Tim Horton. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::deleteWebsiteData): * NetworkProcess/NetworkProcess.h: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::clearHSTSCache): * Shared/WebsiteData/WebsiteDataTypes.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (dataTypesToString): * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::computeNetworkProcessAccessTypeForDataRemoval): 2015-07-06 Antti Koivisto With multipart/replaced (e.g. motion JPEG), m_bufferedDataForCache grows unbounded in Networking process https://bugs.webkit.org/show_bug.cgi?id=146630 Reviewed by Chris Dumez. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveResponseAsync): Don't buffer multipart/x-mixed-replace. We never want to cache these. (WebKit::NetworkResourceLoader::didReceiveBuffer): Limit the maximum size of the cache buffer to 10MB. This prevents unbounded memory growth if the resource keeps streaming. It also prevents giant entries from pushing other data out of the cache. (WebKit::NetworkResourceLoader::didFinishLoading): 2015-07-06 Zan Dobersek [GTK] Guard X11-specific code in webkitWebViewBaseDidRelaunchWebProcess() https://bugs.webkit.org/show_bug.cgi?id=146627 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseDidRelaunchWebProcess): Guard calls to DrawingAreaImpl::setNativeSurfaceHandleForCompositing() that pass in an X11 Window ID with the PLATFORM(X11) build guards. 2015-07-05 Chris Dumez [WK2] Current page's scroll position is lost when transferring sessionState from one view to another https://bugs.webkit.org/show_bug.cgi?id=146625 Reviewed by Gavin Barraclough. The current page's scroll position was lost when transferring the sessionState from one view to another. This is because we only update the current WebBackForwardListItem after navigating away. However, when the client swaps WebViews for navigating, we don't detect this as navigating away and the current WebBackForwardListItem is not updated with the current page's state (including the scroll position). This means that the information is not transferred via the sessionState and the scroll position (among other things) ends up being lost when navigating back in the new WebView. Retrieving the session state is a synchronous API and we want to avoid doing a synchronous IPC between the UIProcess and the WebProcess to retrieve the current page's state. Therefore, the approach chosen in this patch is to detect when the user is done scrolling the main frame (using a HystererisActivity) and then update the scroll position on the current HistoryItem. This way, the current WebBackForwardListItem normally has an up-to-date scroll position for the main frame when the sessionState is queried by the client. The solution is not perfect as we don't keep the whole page state up-to-date for the current WebBackForwardListItem, only the main frame state. However, the proposed solution is cheap, avoid synchronous IPC and provides a much better user experience in most cases. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::pageDidScroll): (WebKit::WebPage::pageStoppedScrolling): * WebProcess/WebPage/WebPage.h: 2015-07-05 Timothy Hatcher Crash when closing the web inspector https://bugs.webkit.org/show_bug.cgi?id=146620 Reviewed by Darin Adler. * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::closeWindow): Null check the connection, like it is in other places where it is used. 2015-07-04 Chris Dumez Drop RefPtr::clear() method https://bugs.webkit.org/show_bug.cgi?id=146556 Reviewed by Brady Eidson. Drop RefPtr::clear() method in favor of "= nullptr;" pattern. 2015-07-03 Dan Bernstein [Xcode] Update some build settings as recommended by Xcode 7 https://bugs.webkit.org/show_bug.cgi?id=146597 Reviewed by Sam Weinig. * Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE and GCC_NO_COMMON_BLOCKS. Removed GCC_MODEL_TUNING. * WebKit2.xcodeproj/project.pbxproj: Updated LastUpgradeCheck. 2015-07-03 Carlos Garcia Campos REGRESSION(r186025): [SOUP] NetworkCache gets blocked in traverse since r186025 https://bugs.webkit.org/show_bug.cgi?id=146545 Reviewed by Sergio Villar Senin. In r186025 the readSync method used when traversing the cache files was removed in favor of using parallel async reads to speed up the traverse. The approach used doesn't work for soup, because the IO operations are async, but run their callbacks in the current thread. The network cache now runs up to 5 async reads in the io work queue thread, and waits for them to finish, and those asycn reads never finish for the soup backend because the thread is blocked waiting for them. We need to use a different thread to run those reads. * NetworkProcess/cache/NetworkCacheIOChannel.h: Add readSyncInThread private method. * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::IOChannel::read): When not called in the main thread, call readSyncInThread() instead. (WebKit::NetworkCache::IOChannel::readSyncInThread): Run the read operation synchronously in a different thread, since the current thread might be blocked waiting for us. 2015-07-02 Przemek Piorkowski [EFL] test_ewk2_application_cache_manager has been failed since r185527 https://bugs.webkit.org/show_bug.cgi?id=146016 Reviewed by Gyuyoung Kim. In order to handle properly WebApplicationCacheManagerProxy implementation which use WebsiteDataRecord it is necessary to enable PUBLIC_SUFFIX_LIST for EFL. Implementation of PUBLIC_SUFFIX_LIST already exists for soup so EFL can use it as well. * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp: (TEST_F): enable ewk_application_cache_manager as it is passing now. 2015-07-02 Commit Queue Unreviewed, rolling out r186247 and r186250. https://bugs.webkit.org/show_bug.cgi?id=146572 Broke the build on Mavericks bots (Requested by cdumez on #webkit). Reverted changesets: "Provide API to clear the HSTS cache" https://bugs.webkit.org/show_bug.cgi?id=146565 http://trac.webkit.org/changeset/186247 "Unreviewed build fix for non-COCOA ports after r186247." http://trac.webkit.org/changeset/186250 2015-07-02 Jinwoo Song Unreviewed build fix for non-COCOA ports after r186247. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::deleteWebsiteData): Add PLATFORM(COCOA) guard. 2015-07-02 Anders Carlsson Provide API to clear the HSTS cache https://bugs.webkit.org/show_bug.cgi?id=146565 rdar://problem/20023805 Reviewed by Tim Horton. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::deleteWebsiteData): * NetworkProcess/NetworkProcess.h: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::clearHSTSCache): * Shared/WebsiteData/WebsiteDataTypes.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (dataTypesToString): * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::computeNetworkProcessAccessTypeForDataRemoval): 2015-07-02 Mark Lam Gardening: fix broken 32-bit build.. https://bugs.webkit.org/show_bug.cgi?id=146416 Not reviewed. * UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm: (API::SerializedScriptValue::deserialize): 2015-07-02 Brent Fulgham Correct *another* typo in r186238. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Fix parameter name scrolView -> scrollView. 2015-07-02 Brent Fulgham Correct typo in r186238. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): 2015-07-02 Brent Fulgham Provide delegate SPI for clients to notify WebKit about content inset changes https://bugs.webkit.org/show_bug.cgi?id=146482 Reviewed by Darin Adler. Provide a new SPI for WebKit client applications to use to inform WebKit of planned adjustments to the edge insets of the view. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add new optional delegate method. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): If the new delegate method exists, use the specified content insets, rather than the current state of the view. 2015-07-02 Beth Dakin Allow the UIDelegate to customize an image preview https://bugs.webkit.org/show_bug.cgi?id=146557 -and corresponding- rdar://problem/21657424 Reviewed by Tim Horton. Add imageURL to InteractionInformationAtPosition. * Shared/InteractionInformationAtPosition.cpp: (WebKit::InteractionInformationAtPosition::encode): (WebKit::InteractionInformationAtPosition::decode): * Shared/InteractionInformationAtPosition.h: Two new delegate methods. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Call the delegate methods at the appropriate time. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView previewViewControllerForPosition:inSourceView:]): (-[WKContentView commitPreviewViewController:]): Include the imageURL in InteractionInformationAtPosition. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-07-02 Anders Carlsson Instead of requiring ToT UIKIt, check that UI_WEB_TOUCH_EVENT_HAS_IS_POTENTIAL_TAP is defined to 1 https://bugs.webkit.org/show_bug.cgi?id=146558 Reviewed by Beth Dakin. * Shared/ios/NativeWebTouchEventIOS.mm: (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): 2015-07-02 Brady Eidson Remove change I accidentally committed in r186232 * UIProcess/WebsiteData/WebsiteDataStore.h: 2015-07-02 Alex Christensen Fix EWS build after r186182. * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::userMediaPermissionRequestManager): Don't export a function defined in a header, or it will generate a weak external symbol. 2015-07-02 Brady Eidson Add preference to disable all http-equiv. and https://bugs.webkit.org/show_bug.cgi?id=146553 Reviewed by Sam Weinig. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMetaRefreshEnabled): Still expose this SPI, but have it affect the "httpEquivEnabled" setting. (WKPreferencesGetMetaRefreshEnabled): Ditto (WKPreferencesSetHTTPEquivEnabled): (WKPreferencesGetHTTPEquivEnabled): * UIProcess/API/C/WKPreferencesRefPrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-07-02 Mark Lam WKWebView evaluateJavaScript:completionHandler: should reuse its JSContext instance. https://bugs.webkit.org/show_bug.cgi?id=146416 Reviewed by Anders Carlsson. The core issue here is that we need to be able to deserialized an API::SerializedScriptValue instance into an ObjC object graph. We'll solve this by introducing a API::SerializedScriptValue::deserialize() functions that does the job. The deserialize() function will will use a SharedJSContext to provide the needed JSContext for doing this work. Also updated ScriptMessageHandlerDelegate::didPostMessage() to use this new deserialize() function. * Shared/API/APISerializedScriptValue.h: (API::SerializedScriptValue::deserialize): (API::SerializedScriptValue::internalRepresentation): - Changed to return a WebCore::SerializedScriptValue*. This makes it friendlier to use in the 2 places that need it. * UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm: Added. (API::SharedJSContext::SharedJSContext): (API::SharedJSContext::ensureContext): (API::SharedJSContext::releaseContext): (API::SerializedScriptValue::deserialize): * UIProcess/API/Cocoa/WKUserContentController.mm: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView evaluateJavaScript:completionHandler:]): * UIProcess/API/gtk/WebKitWebView.cpp: (webkitWebViewRunJavaScriptCallback): - Removed a now unnecessary cast. * WebKit2.xcodeproj/project.pbxproj: 2015-07-02 Dan Bernstein [iOS] Stop making symlinks from PrivateFrameworks to Frameworks https://bugs.webkit.org/show_bug.cgi?id=146542 Reviewed by Sam Weinig. * WebKit2.xcodeproj/project.pbxproj: Removed the build phase that makes the directory of symlinks. 2015-07-02 Carlos Garcia Campos [GTK] WebSQL doesn't work because openDatabase always fails with DOM Exception 18 https://bugs.webkit.org/show_bug.cgi?id=146234 Reviewed by Sergio Villar Senin. This is because we don't provide any quota, and 0 is used by default, so there's never enough quota and openDatabase fails. We should expose this in the API, but for now, we could use a default quota of 5MB like WTR does. * UIProcess/API/gtk/WebKitUIClient.cpp: Override exceededDatabaseQuota and return always the default quota. * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::exceededDatabaseQuota): Return the quota based on the expected usage and current database usabe like mac does. (WebKit::WebInspectorProxy::platformCreateInspectorPage): Add custom UI client to implement exceededDatabaseQuota. 2015-07-02 Commit Queue Unreviewed, rolling out r185704. https://bugs.webkit.org/show_bug.cgi?id=146544 Didn't fix the problem (Requested by anttik on #webkit). Reverted changeset: "~4% Membuster regression after WebKit r185452" https://bugs.webkit.org/show_bug.cgi?id=146112 http://trac.webkit.org/changeset/185704 2015-07-02 Carlos Garcia Campos [GTK] Accelerated Compositing stops working after a web process crash https://bugs.webkit.org/show_bug.cgi?id=146508 Reviewed by Martin Robinson. The problem is that we don't send the window ID again to the new web process. * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::didRelaunchProcess): Call webkitWebViewBaseDidRelaunchWebProcess(). * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseDidRelaunchWebProcess): Set the window ID to the new drawing area. * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: 2015-07-01 Joseph Pecoraro Web Inspector: [Mac] InspectorFrontendHost.beep() doesn't play a sound, sandbox warnings https://bugs.webkit.org/show_bug.cgi?id=146525 Reviewed by Timothy Hatcher. * WebProcess/com.apple.WebProcess.sb.in: Get NSBeep working without any sandbox warnings. 2015-07-01 Anders Carlsson Remove code to recompute rounded window corners https://bugs.webkit.org/show_bug.cgi?id=146534 Reviewed by Simon Fraser. This code is no longer needed since we're always layer-backed now. * UIProcess/API/mac/WKView.mm: (-[WKView displayIfNeeded]): Deleted. (-[WKView _cacheWindowBottomCornerRect]): Deleted. * UIProcess/API/mac/WKViewInternal.h: 2015-07-01 Yongjun Zhang Web page doesn't update its loading state when web process becomes suspended if there are pending network requests (XHR). https://bugs.webkit.org/show_bug.cgi?id=146439 When web page is loading, we hold a background activity token in NavigationState and we release the token when the page done loading. A web page can start loading subresources (like XHR) after the page is loaded, and WebPageProxy will update its _networkRequestsInProgress state which will notify the client there is network actvity on-going. Since we don't hold the background activity token after page is loaded, the WebContent process could become suspended without notifying the client and the client will lose track of the loading state. The first thought was to hold another background activity when _networkRequestsInProgress flag is set in NavigationState. However, this could result in side-effect that a WebContent process can stay active for too long if there is a long lasting XHR resquest. This patch fix this by notifying the client that network activity is stopped when WebContent process is going to be suspended. We also cache the networkRequestsInProgress state for suspended process, so that when it becomes foreground, we can tell the client the correct state of network activity. Reviewed by Dan Bernstein. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): Initialize m_hasNetworkRequestsOnSuspended. (WebKit::WebPageProxy::processWillBecomeSuspended): If there is pending requests on suspend, cache the network activity state and notify the client. (WebKit::WebPageProxy::processWillBecomeForground): Restore the network activity state when the process becomes foreground. (WebKit::WebPageProxy::resetState): * UIProcess/WebPageProxy.h: Add a data member m_hasNetworkRequestsOnSuspended to cache the network activity state on process suspend. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didSetAssertionState): 2015-07-01 Dean Jackson Disable the experimental WebGL2 implementation https://bugs.webkit.org/show_bug.cgi?id=146526 Reviewed by Myles Maxfield. Add (and disable) an ENABLE_WEBGL2 flag. * Configurations/FeatureDefines.xcconfig: 2015-07-01 Brady Eidson Never try to pass URLs to LaunchServices when they're the same domain as the current URL. and https://bugs.webkit.org/show_bug.cgi?id=146521 Reviewed by Alex Christensen. * UIProcess/Cocoa/NavigationState.mm: (WebKit::tryAppLink): Compare the proposed URL to the current URL to see if they’re in the same domain. (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): 2015-07-01 Tim Horton WKWebView snapshots have the wrong scale after rotation https://bugs.webkit.org/show_bug.cgi?id=146476 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): "Coordinate" -> "Coordinates". (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Defer any snapshotting that happens during a resize until after the resize completes. This will ensure that (in the case of an IOSurface snapshot) the tiles are up to date, and (in the case of a software snapshot) that our understanding of the scale and scroll offset of the WKContentView are up to date, so that we can correctly convert from view to content coordinates in the UI process. (-[WKWebView _endAnimatedResize]): Perform the deferred snapshotting after the resize completes. 2015-07-01 Beth Dakin This is a quick follow-on to http://trac.webkit.org/changeset/186132 Rubber-stamped by Darin Adler. Make this a one-liner. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-07-01 Matthew Daiter Enable MEDIA_STREAM flag https://bugs.webkit.org/show_bug.cgi?id=145947 Reviewed by Eric Carlson. * Configurations/FeatureDefines.xcconfig: Add MEDIA_STREAM flag * WebKit2.xcodeproj/project.pbxproj: Changed some project to private declarations of headers * WebProcess/WebCoreSupport/WebUserMediaClient.cpp: * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::userMediaPermissionRequestManager): 2015-07-01 Brady Eidson Check shouldOpenExternalURLs instead of isProcessingUserGesture before passing URL to LaunchServices. and https://bugs.webkit.org/show_bug.cgi?id=146513 Reviewed by Darin Adler. * UIProcess/Cocoa/NavigationState.mm: (WebKit::tryAppLink): The expected value of isProcessingUserGesture is lost over redirects. shouldOpenExternalURLs actually fits this role perfectly. 2015-07-01 Michael Catanzaro [GTK] [Wayland] Build broken with ENABLE_WAYLAND_TARGET=ON https://bugs.webkit.org/show_bug.cgi?id=146512 Unreviewed, fix build with ENABLE_WAYLAND_TARGET=ON after r185949. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseCreateWebPage): 2015-06-30 Martin Robinson [GTK] REGRESSION(r183936): Test /webkit2/WebKitWebContext/spell-checker fails since r183936 https://bugs.webkit.org/show_bug.cgi?id=144828 Reviewed by Carlos Garcia Campos. Instead of setting spell checking languages unconditionally when building int developer mode, add some C API that allows setting them in WebKitTestRunner. * PlatformGTK.cmake: Add the new C API file to the source list. * UIProcess/API/C/gtk/WKTextCheckerGtk.cpp: (WKTextCheckerSetSpellCheckingLanguages): Added this function which allows settings the spell checking languages from the C API. * UIProcess/API/C/gtk/WKTextCheckerGtk.h: Added. * UIProcess/gtk/TextCheckerGtk.cpp: (WebKit::enchantTextChecker): Remove the hack which sets the spell checking languages automatically for development builds. 2015-07-01 Joseph Pecoraro [Mac] Numerous CGColor leaks in swipe gestures https://bugs.webkit.org/show_bug.cgi?id=146501 Reviewed by Tim Horton. * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): 2015-07-01 Joseph Pecoraro [Mac] Confusing RetainPtr use in TiledCoreAnimationDrawingArea https://bugs.webkit.org/show_bug.cgi?id=146503 Reviewed by Tim Horton. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom): Simplify adoption into a new RetainPtr. 2015-06-30 Simon Fraser Fix CoordinatedGraphics. * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: (WebKit::CoordinatedLayerTreeHost::didFlushRootLayer): 2015-06-30 Simon Fraser More Gtk/EFL fixing. * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: (WebKit::CoordinatedLayerTreeHost::didFlushRootLayer): * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::flushPendingLayerChanges): 2015-06-30 Andy VanWagoner Implement ECMAScript Internationalization API https://bugs.webkit.org/show_bug.cgi?id=90906 Reviewed by Benjamin Poulain. * Configurations/FeatureDefines.xcconfig: add ENABLE_INTL flag 2015-06-30 Simon Fraser Fix Mac and Windows builds. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::flushLayers): 2015-06-30 Simon Fraser [iOS] Missing tiles inside position:fixed on scrolling https://bugs.webkit.org/show_bug.cgi?id=146485 rdar://problem/21226861 Reviewed by Tim Horton. Layer flushing adjusts the coverage rect for tiled layers, but does so at times when position:fixed layers are moved around by the scrolling tree. The computed coverage rect then doesn't reflect the layer's on-screen position, causing missing tiles. Fix by pushing the notion of being in a "stable state" onto FrameView, and passing that state into the layer flush. When not in a stable state, flushing doesn't change the visible and coverage rects for layers that are viewport-constrained. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateVisibleContentRects): * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::flushLayers): 2015-06-30 Hyungwook Lee [EFL] Implement ewk_favicon_database_clear() API. https://bugs.webkit.org/show_bug.cgi?id=146337 Reviewed by Gyuyoung Kim. We need to provide way to clear favicon data. * UIProcess/API/efl/ewk_favicon_database.cpp: (EwkFaviconDatabase::getIconSurfaceSynchronously): (EwkFaviconDatabase::clearFaviconDatabase): (EwkFaviconDatabase::iconDataReadyForPageURL): (ewk_favicon_database_icon_change_callback_del): (ewk_favicon_database_clear): * UIProcess/API/efl/ewk_favicon_database.h: * UIProcess/API/efl/ewk_favicon_database_private.h: * UIProcess/API/efl/tests/test_ewk2_favicon_database.cpp: (TEST_F): 2015-06-30 Andreas Kling [iOS] Ignore viewport rect changes during zoom bouncing. Reviewed by Benjamin Poulain. When the user has pinch-zoomed past the maximum zoom scale and lets go of the screen, we animate a bounce back to the maximum scale. Suppress viewport rect updates during this bounce animation since we don't need them anyway. This fixes an issue where we'd sometimes get a weird rect during the animation and if could send that to the web process, causing it to generate tiles for a part of the page that's not actually exposed. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _updateVisibleContentRects]): 2015-06-30 Enrica Casucci WebKit should heuristically exclude scrolling touch events from the user gesture category Reviewed by Benjamin Poulain. * Platform/spi/ios/UIKitSPI.h: * Shared/WebEvent.h: (WebKit::WebTouchEvent::WebTouchEvent): (WebKit::WebTouchEvent::position): (WebKit::WebTouchEvent::isPotentialTap): (WebKit::WebTouchEvent::isGesture): (WebKit::WebTouchEvent::gestureScale): (WebKit::WebTouchEvent::gestureRotation): * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent): * Shared/ios/NativeWebTouchEventIOS.mm: (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): * Shared/ios/WebTouchEventIOS.cpp: (WebKit::WebTouchEvent::encode): (WebKit::WebTouchEvent::decode): Pipe isPotentialTap through. 2015-06-30 Carlos Alberto Lopez Perez [GTK] [EFL] Unreviewed build fix after r186118. Add if PLATFORM(COCOA) back. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::nonVisibleProcessCleanupTimerFired): * WebProcess/WebProcess.h: 2015-06-30 Simon Fraser Crash under _layoutForNodeHighlight: when inspecting espn.com https://bugs.webkit.org/show_bug.cgi?id=146422 Reviewed by Joseph Pecoraro. When inspecting espn.com, MobileSafari sometimes crashes, because highlight.quads is empty. I was not able to quickly determine why. Fix by bailing in this case. * UIProcess/WKInspectorHighlightView.mm: (-[WKInspectorHighlightView _layoutForNodeHighlight:]): 2015-06-30 Matt Baker Web Inspector: Reduce rendering frames "Other" time by instrumenting compositing https://bugs.webkit.org/show_bug.cgi?id=146168 Reviewed by Brian Burg. * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::flushLayers): * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::flushLayers): Added CA transaction post-commit handlers to instrument end of composite. 2015-06-30 Beth Dakin The bounds on InteractionInformationAtPosition should be more precise https://bugs.webkit.org/show_bug.cgi?id=146468 -and corresponding- rdar://problem/20739834 Reviewed by Enrica Casucci and Simon Fraser. For links, get the TextQuads from the Range, and for images, look at the absoluteContentQuad(). All other items can continue to use absoluteBoundingBox. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-06-30 Anders Carlsson Disable Spintracer when getting the list of plug-ins https://bugs.webkit.org/show_bug.cgi?id=146467 rdar://problem/21616640 Reviewed by Tim Horton. * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::populatePluginCache): 2015-06-30 Anders Carlsson Java Plugin cannot launch JavaUpdater.app after renaming https://bugs.webkit.org/show_bug.cgi?id=146464 rdar://problem/19747153 Reviewed by Tim Horton. Check for both "JavaUpdater.app" and "Java Updater.app". * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::isJavaUpdaterURL): 2015-06-30 Chris Dumez [WK2] Avoid taking a useless / blank navigation snapshot when navigating after restoring sessionState https://bugs.webkit.org/show_bug.cgi?id=146446 Reviewed by Darin Adler. We currently take a useless / blank navigation snapshot when navigating after restoring the back / forward list from a sessionState object. This is because we get a current HistoryItem from the sessionState which we have never really navigated to. We then take a navigation snapshot for the current HistoryItem when navigating away as we usually do. However, in this case, the HistoryItem was imported and there is nothing to snapshot. Taking this snapshot is not only wasteful, it can also potentially overwrite the snapshot that was set by the client using WKWebView._saveBackForwardSnapshotForItem() SPI. To address the problem, this patch suppresses navigation snapshotting after restoring the back / forward list from a session state and until the next load is committed. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::recordNavigationSnapshot): (WebKit::WebPageProxy::restoreFromSessionState): (WebKit::WebPageProxy::didCommitLoadForFrame): * UIProcess/WebPageProxy.h: 2015-06-29 Anders Carlsson Get rid of unused WKSI functions https://bugs.webkit.org/show_bug.cgi?id=146443 Reviewed by Tim Horton. * UIProcess/API/Cocoa/WKWebView.mm: * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): Deleted. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::nonVisibleProcessCleanupTimerFired): * WebProcess/WebProcess.h: * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::destroyRenderingResources): 2015-06-29 Gyuyoung Kim [GTK] Unreviewed GTK build fix since r186088 and r186095. https://bugs.webkit.org/show_bug.cgi?id=146449 * PlatformGTK.cmake: * UIProcess/API/gtk/PageClientImpl.h: 2015-06-29 Gyuyoung Kim Unreviewed EFL build fix since r186088 and r186095. * CMakeLists.txt: Remove ConnectionStack.cpp. * UIProcess/CoordinatedGraphics/WebView.h: Override virtual didFailLoadForMainFrame(). 2015-06-29 Brady Eidson Flag sync XHRs from the network process so they can be handled appropriately. and https://bugs.webkit.org/show_bug.cgi?id=146441 Reviewed by Darin Adler. * NetworkProcess/NetworkResourceLoader.h: (WebKit::NetworkResourceLoader::loadingSynchronousXHR): Return isSynchronous(). 2015-06-29 Anders Carlsson Remove an empty group from the Xcode project. * WebKit2.xcodeproj/project.pbxproj: 2015-06-29 Anders Carlsson Get rid of ConnectionStack https://bugs.webkit.org/show_bug.cgi?id=146437 Reviewed by Andreas Kling. Just use a TemporaryChange and a static variable instead. * NetworkProcess/NetworkConnectionToWebProcess.cpp: * PluginProcess/WebProcessConnection.cpp: (WebKit::WebProcessConnection::setGlobalException): (WebKit::WebProcessConnection::didReceiveMessage): (WebKit::WebProcessConnection::didReceiveSyncMessage): * Shared/ConnectionStack.cpp: Removed. (WebKit::ConnectionStack::singleton): Deleted. * Shared/ConnectionStack.h: Removed. (WebKit::ConnectionStack::current): Deleted. (WebKit::ConnectionStack::CurrentConnectionPusher::CurrentConnectionPusher): Deleted. (WebKit::ConnectionStack::CurrentConnectionPusher::~CurrentConnectionPusher): Deleted. * WebKit2.xcodeproj/project.pbxproj: 2015-06-29 Tim Horton Fix the build. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didFailLoadForMainFrame]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::didFailLoadForMainFrame): 2015-06-29 Dean Jackson Temporarily disable PICTURE_SIZES https://bugs.webkit.org/show_bug.cgi?id=146435 Temporarily disable PICTURE_SIZES because it causes problems with out of date polyfills. Temporarily disable PICTURE_SIZES until Safari branches. * Configurations/FeatureDefines.xcconfig: 2015-06-29 Anders Carlsson Don't try to access a possibly deallocated WebFrameProxy object https://bugs.webkit.org/show_bug.cgi?id=146428 rdar://problem/21446364 Reviewed by Tim Horton. Make sure to call isMainFrame before calling out to the client inside WebPageProxy::didFailLoadForFrame, matching what we do for WebPageProxy::didFinishLoadForFrame. Also, add a ViewGestureController::didFailLoadForMainFrame function and call that instead of calling didFinishLoadForMainFrame in the failure case. * UIProcess/API/mac/WKView.mm: (-[WKView _didFailLoadForMainFrame]): * UIProcess/API/mac/WKViewInternal.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFailLoadForFrame): * UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::mainFrameLoadDidReachTerminalState): (WebKit::ViewGestureController::didFinishLoadForMainFrame): Deleted. * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didFailLoadForMainFrame): * UIProcess/mac/ViewGestureController.h: (WebKit::ViewGestureController::didFinishLoadForMainFrame): (WebKit::ViewGestureController::didFailLoadForMainFrame): * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::mainFrameLoadDidReachTerminalState): (WebKit::ViewGestureController::didFinishLoadForMainFrame): Deleted. 2015-06-29 Yongjun Zhang Disable default gesture recognizers on preview. https://bugs.webkit.org/show_bug.cgi?id=146424 rdar://problem/21572828 We should disable default gesture recognizers on preview, to avoid activating links or triggering touch events accidentally. We can enable them after preview finishes. Reviewed by Beth Dakin. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): (-[WKContentView didDismissPreviewViewController:committing:]): 2015-06-27 Ryosuke Niwa Font panel doesn't get updated when bolding text via cmd+b in Mail on OS X https://bugs.webkit.org/show_bug.cgi?id=146379 Reviewed by Darin Adler. Since font panel doesn't open in WebKit2 at the moment, just add an empty implementation of didApplyStyle * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::didApplyStyle): * WebProcess/WebCoreSupport/WebEditorClient.h: * WebProcess/WebPage/WebPage.h: 2015-06-29 Dean Jackson Setting to enable/disable media controls sizing on page zoom https://bugs.webkit.org/show_bug.cgi?id=146423 Reviewed by Eric Carlson. Add a new setting "MediaControlsScaleWithPageZoom" that can disable the behaviour we currently implement on iOS, where the media controls attempt to remain at a fixed size independent of page zoom. * Shared/WebPreferencesDefinitions.h: Initialize to false on iOS, true otherwise. * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMediaControlsScaleWithPageZoom): (WKPreferencesGetMediaControlsScaleWithPageZoom): * UIProcess/API/C/WKPreferencesRefPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-06-29 Chris Dumez [WK2][iOS] Swipe gesture snapshot stays up for 3 seconds when swiping back after top-hit navigation https://bugs.webkit.org/show_bug.cgi?id=146415 Reviewed by Tim Horton. Swipe gesture snapshot previously stayed up for 3 seconds when swiping back after a top-hit navigation. This is because we do not restore the scroll position in this case and the ViewGestureController was waiting for the scroll position to be restored before taking down the snapshot. This patch adds a fail-safe mechanism so that the WebProcess can let the UIProcess know (via a CouldNotRestorePageState IPC) that the page state (including scroll position) could not be restored so that it can let the ViewGestureController it should not wait for the scroll position to be restored. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _couldNotRestorePageState]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::couldNotRestorePageState): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::couldNotRestorePageState): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::restorePageState): 2015-06-29 Chris Dumez [WK2][iOS] Add WKWebView private API to save a back/forward snapshot https://bugs.webkit.org/show_bug.cgi?id=146398 Reviewed by Dan Bernstein. Add WKWebView private API to save a back/forward snapshot so that the client can make sure a back/forward snapshot is available even when swapping WKWebView upon navigation. This matches the WKView.saveBackForwardSnapshotForItem API we have on Mac. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView saveBackForwardSnapshotForItem:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: 2015-06-29 Anders Carlsson Use DISPATCH_SOURCE_TYPE_MEMORYPRESSURE instead of DISPATCH_SOURCE_TYPE_MEMORYSTATUS https://bugs.webkit.org/show_bug.cgi?id=146413 Reviewed by Andreas Kling. Replace SPI with API. * UIProcess/ios/WebMemoryPressureHandlerIOS.mm: (WebKit::WebMemoryPressureHandler::WebMemoryPressureHandler): * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): Deleted. 2015-06-29 Enrica Casucci [iOS] Hardware Keyboard: All combinations of arrow keys and space key do not scroll the view. https://bugs.webkit.org/show_bug.cgi?id=146290 rdar://problem/18466015 We don't normally get called by the keyboard to handle the event if we are not interacting with editable content. In order to receive all the hardware keyboard events we need to implement _handleKeyUIEvent which is called for every key event when the view is first responder. This gives us the opportunity to send each keystroke to the WebProcess to let any Javascript handler intercept it and then perform the default action for the key combination. Unfortunately this mechanism does not provide key repeat, which is implemented in the keyboard layer. In order to have it at least for the arrow keys, we use the keyCommands mechanism only for those. Reviewed by Darin Adler. * Platform/spi/ios/UIKitSPI.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _scrollByOffset:]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView canPerformAction:withSender:]): (-[WKContentView keyCommands]): (-[WKContentView _arrowKey:]): (-[WKContentView _handleKeyUIEvent:]): (-[WKContentView handleKeyEvent:]): (-[WKContentView handleKeyWebEvent:]): (-[WKContentView _interpretKeyEvent:isCharEvent:]): 2015-06-28 Dan Bernstein Fixed the iOS 8.x build after r186066. * UIProcess/ios/WebVideoFullscreenManagerProxy.h: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::create): 2015-06-28 Dan Bernstein Fixed the iOS build after r186059. * UIProcess/ios/WebVideoFullscreenManagerProxy.h: 2015-06-28 Chris Fleizach AX: iOS: Crash at accessibilityObjectForMainFramePlugin() https://bugs.webkit.org/show_bug.cgi?id=146399 Reviewed by Darin Adler. Could not reproduce issue, but the invalid address seems to indicate this is a nullptr access is happening when we try to get the plugin of the m_page variable when it has not been initialized. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::accessibilityObjectForMainFramePlugin): 2015-06-28 Gyuyoung Kim Use Ref/RefPtr instead of PassRefPtr in WebKit2 https://bugs.webkit.org/show_bug.cgi?id=146190 Reviewed by Darin Adler. As a step to remove PassRefPtr, this patch reduces use of PassRefPtr in WebKit2. * Shared/API/c/WKContextMenuItem.cpp: (WKContextMenuItemCreateAsAction): (WKContextMenuItemCreateAsCheckableAction): * Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp: (WebKit::WebCoordinatedSurface::create): * Shared/CoordinatedGraphics/WebCoordinatedSurface.h: * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp: (WebKit::ThreadSafeCoordinatedSurface::create): * Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.h: * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: (WebKit::ThreadedCompositor::create): * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: * Shared/Plugins/NPRemoteObjectMap.cpp: (WebKit::NPRemoteObjectMap::create): * Shared/Plugins/NPRemoteObjectMap.h: * Shared/WebBatteryStatus.h: (WebKit::WebBatteryStatus::create): * Shared/WebCertificateInfo.h: (WebKit::WebCertificateInfo::create): * Shared/WebContextMenuItem.h: (WebKit::WebContextMenuItem::create): * Shared/WebRenderObject.cpp: (WebKit::WebRenderObject::create): * Shared/WebRenderObject.h: (WebKit::WebRenderObject::create): * UIProcess/API/APINavigationData.h: (API::NavigationData::create): * UIProcess/API/APISession.cpp: (API::Session::createEphemeral): * UIProcess/API/APISession.h: * UIProcess/API/APISessionState.cpp: (API::SessionState::create): * UIProcess/API/APISessionState.h: * UIProcess/API/APIUserScript.h: * UIProcess/API/APIWebsiteDataStore.cpp: (API::WebsiteDataStore::createNonPersistentDataStore): (API::WebsiteDataStore::create): * UIProcess/API/APIWebsiteDataStore.h: * UIProcess/API/C/WKCredential.cpp: (WKCredentialCreate): (WKCredentialCreateWithCertificateInfo): * UIProcess/API/C/WKPage.cpp: (WKPageCopySessionState): (WKPageSetPageContextMenuClient): * UIProcess/API/C/WKSessionStateRef.cpp: (WKSessionStateCreateFromData): * UIProcess/API/C/WKUserScriptRef.cpp: (WKUserScriptCreateWithSource): * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm: (-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]): * UIProcess/API/Cocoa/WKProcessGroup.mm: (-[WKProcessGroup _setAllowsSpecificHTTPSCertificate:forHost:]): * UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _setAllowsSpecificHTTPSCertificate:forHost:]): * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (+[WKWebsiteDataStore nonPersistentDataStore]): * UIProcess/API/efl/ewk_auth_request_private.h: (EwkAuthRequest::create): * UIProcess/API/efl/ewk_back_forward_list_item_private.h: (EwkBackForwardListItem::create): * UIProcess/API/efl/ewk_context.cpp: (EwkContext::create): * UIProcess/API/efl/ewk_context_menu_private.h: (EwkContextMenu::create): * UIProcess/API/efl/ewk_download_job_private.h: (EwkDownloadJob::create): * UIProcess/API/efl/ewk_file_chooser_request_private.h: (EwkFileChooserRequest::create): * UIProcess/API/efl/ewk_form_submission_request_private.h: (EwkFormSubmissionRequest::create): * UIProcess/API/efl/ewk_navigation_data_private.h: (EwkNavigationData::create): * UIProcess/API/efl/ewk_security_origin_private.h: (EwkSecurityOrigin::create): * UIProcess/Authentication/AuthenticationChallengeProxy.h: (WebKit::AuthenticationChallengeProxy::create): * UIProcess/Authentication/AuthenticationDecisionListener.h: (WebKit::AuthenticationDecisionListener::create): * UIProcess/Authentication/WebCredential.h: (WebKit::WebCredential::create): * UIProcess/Authentication/WebProtectionSpace.h: (WebKit::WebProtectionSpace::create): * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::HistoryClient::didNavigateWithNavigationData): * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::create): * UIProcess/Databases/DatabaseProcessProxy.h: * UIProcess/Launcher/ProcessLauncher.h: (WebKit::ProcessLauncher::create): * UIProcess/Launcher/mac/ProcessLauncherMac.mm: * UIProcess/Notifications/WebNotificationManagerProxy.cpp: (WebKit::WebNotificationManagerProxy::create): * UIProcess/Notifications/WebNotificationManagerProxy.h: * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::create): * UIProcess/Plugins/PluginProcessProxy.h: * UIProcess/Scrolling/RemoteScrollingTree.cpp: (WebKit::RemoteScrollingTree::create): * UIProcess/Scrolling/RemoteScrollingTree.h: * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: (WebKit::ScrollingTreeOverflowScrollingNodeIOS::create): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): * UIProcess/efl/WebPopupMenuListenerEfl.h: (WebKit::WebPopupMenuListenerEfl::create): * UIProcess/efl/WebViewEfl.cpp: (WebKit::WebView::create): * UIProcess/ios/WebVideoFullscreenManagerProxy.h: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::create): 2015-06-28 Dan Bernstein [Cocoa] Remove _WKSecurityOrigin.{h,mm} https://bugs.webkit.org/show_bug.cgi?id=146402 Reviewed by Sam Weinig. * UIProcess/API/Cocoa/WKSecurityOrigin.mm: Declare and define _WKSecurityOrigin here. (-[WKSecurityOrigin methodSignatureForSelector:]): Moved into a WKBinaryCompatibility category. (-[WKSecurityOrigin forwardInvocation:]): Ditto. * UIProcess/API/Cocoa/_WKSecurityOrigin.h: Removed. * UIProcess/API/Cocoa/_WKSecurityOrigin.mm: Removed. * WebKit2.xcodeproj/project.pbxproj: Removed references to _WKSecurityOrigin.{h,mm}. 2015-06-28 Dan Bernstein Tried to fix the EFL buid after r186046. * UIProcess/efl/PageUIClientEfl.cpp: (WebKit::PageUIClientEfl::PageUIClientEfl): 2015-06-28 Dan Bernstein REGRESSION (r185915): Source-incompatible change in WKPageUIClient https://bugs.webkit.org/show_bug.cgi?id=146396 Reviewed by Anders Carlsson. * UIProcess/API/C/WKPageUIClient.h: Renamed runJavaScript{Alert,Confirm,Prompt}_deprecatedForUseWithV0 back to runJavaScript{Alert,Confirm,Prompt} in client versions prior to V5. 2015-06-28 Tim Horton REGRESSION: Page footers are displayed above the bottom of the WebView due to tiled scaling https://bugs.webkit.org/show_bug.cgi?id=146393 Reviewed by Sam Weinig. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): Don't include the top content inset in the layout size. 2015-06-26 Antti Koivisto Make NetworkCache::traverse faster https://bugs.webkit.org/show_bug.cgi?id=146354 Reviewed by Anders Carlsson. * NetworkProcess/cache/NetworkCacheIOChannel.h: (WebKit::NetworkCache::IOChannel::path): (WebKit::NetworkCache::IOChannel::type): * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: (WebKit::NetworkCache::IOChannel::open): (WebKit::NetworkCache::IOChannel::read): (WebKit::NetworkCache::IOChannel::write): (WebKit::NetworkCache::IOChannel::readSync): Deleted. Not needed anymore. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::WriteOperation::WriteOperation): (WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation): Add TraverseOperation, similar to Read/Write. (WebKit::NetworkCache::Storage::open): (WebKit::NetworkCache::Storage::traverse): Use async I/O. Use condition variable to allow maximum 5 parallel file reads. * NetworkProcess/cache/NetworkCacheStorage.h: 2015-06-27 Carlos Garcia Campos [SOUP] NetworkCache: Make NetworkProcess::clearDiskCache actually clear the the resources depending on the date https://bugs.webkit.org/show_bug.cgi?id=146316 Reviewed by Sergio Villar Senin. And make sure the completion handler is called, as well. This functionality is already implemented in Storage::clear(), so we just need to pass the time point and completion handler to Cache::clear(). * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::clearDiskCache): 2015-06-26 Beth Dakin Rubber-stamped by Tim Horton. As Dan pointed out in https://bugs.webkit.org/show_bug.cgi?id=146350 , this way of getting the screen size was problematic on multiple counts. Fixed here by using UIScreen. * UIProcess/WKImagePreviewViewController.mm: (-[WKImagePreviewViewController initWithCGImage:]): 2015-06-26 Beth Dakin WebPage::getPositionInformation() should not copy an image that is larger than the screen https://bugs.webkit.org/show_bug.cgi?id=146367 Reviewed by Tim Horton. Maintain aspectRatio, but scale down the buffer size if the image is larger than the screen. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-06-26 Mark Lam Re-instating the #import and assertion removed in r186014. https://bugs.webkit.org/show_bug.cgi?id=146358 Not reviewed. * UIProcess/API/Cocoa/WKUserContentController.mm: - Speculative fix: should have used instead of . 2015-06-26 Mark Lam Gardening: remove an assertion and a #import to green the bot. https://bugs.webkit.org/show_bug.cgi?id=146358 Not reviewed. * UIProcess/API/Cocoa/WKUserContentController.mm: - Not sure why the cannot be found on some bots, but I'm removing it (and the assertion that needed it) for now while I investigate further. 2015-06-26 Mark Lam ScriptMessageHandlerDelegate::didPostMessage() should reuse its JSContext instance. https://bugs.webkit.org/show_bug.cgi?id=146358 Reviewed by Anders Carlsson. Currently, ScriptMessageHandlerDelegate::didPostMessage() creates a new JSContext each time it is called. This JSContext is used only once to deserialized a JSON object and then destroyed. We will change ScriptMessageHandlerDelegate to cache the JSContext and reuse it in all subsequent calls to didPostMessage(). Also added a @autoreleasepool scope in didPostMessage() so that transient ObjC objects will be release sooner. * UIProcess/API/Cocoa/WKUserContentController.mm: 2015-06-26 Beth Dakin Add support for image previews https://bugs.webkit.org/show_bug.cgi?id=146350 -and corresponding- rdar://problem/20640234 Reviewed by Tim Horton. For images, use the actual image instead of a snapshot. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): ViewController for image preview. * UIProcess/WKImagePreviewViewController.h: Added. * UIProcess/WKImagePreviewViewController.mm: Added. (-[WKImagePreviewViewController loadView]): (-[WKImagePreviewViewController initWithCGImage:]): (-[WKImagePreviewViewController viewDidLayoutSubviews]): (_scaleSizeWithinSize): New enum and member variable to keep track of preview type. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: Only apply the http restriction to non-image links since we can still preview the image of a non-http image link. (-[WKContentView gestureRecognizerShouldBegin:]): Handle links and images. (-[WKContentView previewViewControllerForPosition:inSourceView:]): Return early for non-link previews. (-[WKContentView commitPreviewViewController:]): New files. * WebKit2.xcodeproj/project.pbxproj: Just use the actual image in the PositionInformation for image elements rather than taking a screen shot. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-06-26 Matt Rajca Wireless Playback Target-related #import should be a #include https://bugs.webkit.org/show_bug.cgi?id=146283 Reviewed by Eric Carlson. * Shared/WebCoreArgumentCoders.cpp: 2015-06-25 Joseph Pecoraro Web Inspector: Add Support for OS X Full Screen Mode https://bugs.webkit.org/show_bug.cgi?id=123510 Reviewed by Timothy Hatcher. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::createInspectorWindow): Allow full screen. 2015-06-25 Hyungwook Lee [EFL] Make send / receive messages to communicate the Web and UI Processes using Injected Bundle. https://bugs.webkit.org/show_bug.cgi?id=145685 Reviewed by Gyuyoung Kim. To have extensible port specific API facility using Injected Bundle, we need to load libewebkit_extension_manager.so in default that is same as what gtk port does. * UIProcess/API/efl/ewk_context.cpp: (EwkContext::EwkContext): (EwkContext::findOrCreateWrapper): (bundlePathForExtension): (EwkContext::create): (EwkContext::allowSpecificHTTPSCertificateForHost): (EwkContext::isDefaultBundle): (ewk_context_default_get): * UIProcess/API/efl/ewk_context_private.h: * WebProcess/efl/ExtensionManagerEfl.cpp: (WebKit::ExtensionManagerEfl::initialize): 2015-06-25 Simon Fraser [iOS WK2] Swiping back just after scrolling can cause some tiles to disappear https://bugs.webkit.org/show_bug.cgi?id=146329 rdar://problem/21233010 Reviewed by Tim Horton. When doing a back swipe, views interposed between the WKWebView and the WKContentView get positions and animations for the swipe. This -_updateVisibleContentRects to compute bad visible and unobscured rects, so we lose tiles. Fix by "freezing" the visible and unobscured content rects in the view being swiped for the duration of the navigation gesture. When swiping the main view, we just plumb through navigationGestureDidEnd(). When Reader is showing and the swiped view is different from the navigating view, use the new navigationGestureDidEnd() override which takes no arguments. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _updateVisibleContentRects]): (-[WKWebView _navigationGestureDidBegin]): (-[WKWebView _navigationGestureDidEnd]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::navigationGestureDidEnd): * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/CoordinatedGraphics/WebView.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::navigationGestureDidEnd): * UIProcess/WebPageProxy.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::navigationGestureDidBegin): (WebKit::PageClientImpl::navigationGestureDidEnd): * UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::beginSwipeGesture): (WebKit::ViewGestureController::endSwipeGesture): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::navigationGestureDidEnd): 2015-06-25 Joseph Pecoraro [Mac] Web Inspector: Window dragging on toolbar should behave more like native window dragging https://bugs.webkit.org/show_bug.cgi?id=146324 Reviewed by Timothy Hatcher. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/API/mac/WKView.mm: (-[WKView _startWindowDrag]): Add a way to start a window drag from a WKView using the most recent mouse down event. * WebProcess/WebPage/WebInspectorUI.h: * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::startWindowDrag): Send a message that we should start a window drag. * UIProcess/WebInspectorProxy.messages.in: * UIProcess/WebInspectorProxy.h: * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::startWindowDrag): (WebKit::WebInspectorProxy::platformStartWindowDrag): * UIProcess/efl/WebInspectorProxyEfl.cpp: (WebKit::WebInspectorProxy::platformStartWindowDrag): * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::platformStartWindowDrag): * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformStartWindowDrag): Let the platform start a window drag. Only implemented by Mac. 2015-06-25 Tim Horton [iOS] When using the back swipe gesture in Safari, the previous webpage will flash for a second https://bugs.webkit.org/show_bug.cgi?id=146326 Reviewed by Dean Jackson. * UIProcess/DrawingAreaProxy.h: (WebKit::DrawingAreaProxy::hideContentUntilPendingUpdate): (WebKit::DrawingAreaProxy::hideContentUntilAnyUpdate): (WebKit::DrawingAreaProxy::hideContentUntilNextUpdate): Deleted. * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h: * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): (WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilPendingUpdate): (WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilAnyUpdate): (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy): Deleted. (WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilNextUpdate): Deleted. Make it possible to distinguish between hiding the content until *any* commit comes in (for example, when we're coming back from being suspended and don't want to show anything until we are sure all the layers are valid) and hiding the content until the currently pending commit corresponding to the current state in the UI process has arrived (which is what we want when e.g. hiding content after a gesture navigation and not showing it until the commit including the navigation lands). * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _hideContentUntilNextUpdate]): * UIProcess/ios/WKContentView.mm: (-[WKContentView _applicationWillEnterForeground]): Make use of "hideContentUntilAnyUpdate". * UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::endSwipeGesture): Make use of "hideContentUntilPendingUpdate". 2015-06-25 Tim Horton Viewport units are wrong when scaled in 2-up mode, cause content to hop around on apple.com/music https://bugs.webkit.org/show_bug.cgi?id=146322 Reviewed by Simon Fraser. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): Inflate the fixed layout height (by the viewScale) so that it's the size of the view. 2015-06-25 Chris Dumez [WK2][iOS] Drop WebKitNetworkCacheTemporarilyDisabledForTesting NSUserDefaults https://bugs.webkit.org/show_bug.cgi?id=146323 Reviewed by Antti Koivisto. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::isNetworkCacheEnabled): 2015-06-25 Tim Horton Crash in ViewGestureController::didRestoreScrollPosition() running WKWebView.LoadAlternateHTMLStringFromProvisionalLoadError test https://bugs.webkit.org/show_bug.cgi?id=146309 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): Null-check. _gestureController can be null if allowsBackForwardNavigationGestures is NO. 2015-06-25 Carlos Garcia Campos [GTK] Add initial WebKitWebsiteDataManager API for process configuration options https://bugs.webkit.org/show_bug.cgi?id=146149 Reviewed by Sergio Villar Senin. Add WebKitWebsiteDataManager to replace the different ways we have to configure data store directories. WebKitWebContext:indexed-db-directory property has been removed, since it was added only in trunk, and WebKitWebContext:local-storage-directory has been deprecated. The method webkit_web_context_set_disk_cache_directory() has been deprecated too in favor of WebKitWebsiteDataManager. * PlatformGTK.cmake: Add new files to compilation. * UIProcess/API/gtk/WebKitPrivate.h: Move networkCacheSubdirectory definition here. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkitWebContextGetProperty): Replace indexed-db-directory getter with website-data-manager one. (webkitWebContextSetProperty): Replace indexed-db-directory setter with website-data-manager one. (webkitWebContextConstructed): Use the user provided WebKitWebsiteDataManager to configure the context or create a default WebKitWebsiteDataManager if not provided. (webkit_web_context_class_init): Replace indexed-db-directory property with website-data-manager. (webkit_web_context_new_with_website_data_manager): (webkit_web_context_get_website_data_manager): (webkitWebContextCreatePageForWebView): Get the WebsiteDataStore from the WebKitWebsiteDataManager. * UIProcess/API/gtk/WebKitWebContext.h: * UIProcess/API/gtk/WebKitWebsiteDataManager.cpp: Added. (webkitWebsiteDataManagerGetProperty): (webkitWebsiteDataManagerSetProperty): (webkit_website_data_manager_class_init): (webkitWebsiteDataManagerCreate): (webkitWebsiteDataManagerGetDataStore): (webkit_website_data_manager_new): (webkit_website_data_manager_get_local_storage_directory): (webkit_website_data_manager_get_disk_cache_directory): (webkit_website_data_manager_get_offline_application_cache_directory): (webkit_website_data_manager_get_indexeddb_directory): (webkit_website_data_manager_get_websql_directory): * UIProcess/API/gtk/WebKitWebsiteDataManager.h: Added. * UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h: Added. * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols. * UIProcess/API/gtk/docs/webkit2gtk-4.0.types: Add webkit_website_data_manager_get_type. * UIProcess/API/gtk/webkit2.h: Include WebKitWebsiteDataManager.h. 2015-06-25 Carlos Garcia Campos [GTK] Do not use legacy data store options in WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=146145 Reviewed by Gustavo Noronha Silva. Use a custom WebsiteDataStore in WebKitWebContext, configured with the context options, and passed to every page created. This is in preparation for exposing WebsiteDataStore in the public API. * PlatformGTK.cmake: Add APIWebsiteDataStore.cpp to compilation. * UIProcess/API/APIWebsiteDataStore.cpp: * UIProcess/API/gtk/APIWebsiteDataStoreGtk.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/gtk/WebKitWebContext.cpp: (websiteDataStoreConfigurationForWebProcessPoolConfiguration): Helper function to create the WebsiteDataStore configuration with the WebProcessPool configuration options. (webkitWebContextConstructed): Do not create a WebProcessPoolConfiguration with legacy options and create a WebsiteDataStore. (webkitWebContextCreatePageForWebView): Set the WebsiteDataStore and session ID in web page configuration. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseCreate): Create a WebPageConfiguration for the given options and pass it to webkitWebViewBaseCreateWebPage. (webkitWebViewBaseCreateWebPage): It receives now a WebPageConfiguration, instead of creating it based on the given parameters. * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: * UIProcess/gtk/WebProcessPoolGtk.cpp: Use WebsiteDataStore default configuration. (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): 2015-06-24 Anders Carlsson Detect view services by using the "com.apple.UIKit.vends-view-services" entitlement https://bugs.webkit.org/show_bug.cgi?id=146301 Reviewed by Tim Horton. * UIProcess/ApplicationStateTracker.mm: (WebKit::hasEntitlement): (WebKit::isViewService): 2015-06-24 Anders Carlsson WebContent process is unreponsive/idle when WKWebView is inside a view service. https://bugs.webkit.org/show_bug.cgi?id=146296 Reviewed by Tim Horton. * Platform/spi/ios/AssertionServicesSPI.h: Renamed from Source/WebKit2/Platform/spi/ios/BKSProcessAssertionSPI.h. Rename this and add SPI for BKSApplicationStateMonitor. * Platform/spi/ios/UIKitSPI.h: Add _UIApplicationIsExtension SPI. * UIProcess/ApplicationStateTracker.mm: (WebKit::isViewService): Return whether we're an extension or the safari view controller service. (WebKit::isBackgroundState): Helper function that returns whether a given BKSApplicationState is a background state. (WebKit::ApplicationStateTracker::ApplicationStateTracker): If we're a view service, create a BKSApplicationStateMonitor and listen for state changes for our pid. * UIProcess/ios/ProcessAssertionIOS.mm: Update #import. * WebKit2.xcodeproj/project.pbxproj: Update for rename. 2015-06-24 Matt Rajca MediaSession: propagate MediaSessionMetadata to WebPageProxy https://bugs.webkit.org/show_bug.cgi?id=146282 Reviewed by Darin Adler and Tim Horton. * Shared/WebCoreArgumentCoders.cpp: Added ArgumentEncoder support for MediaSessionMetadata so we can send it through the web page proxy. (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): * Shared/WebCoreArgumentCoders.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::mediaSessionMetadataDidChange): * UIProcess/WebPageProxy.h: Receive mediaSessionMetadataDidChange in the web page proxy. * UIProcess/WebPageProxy.messages.in: Added a new MediaSessionMetadataDidChange message. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::mediaSessionMetadataDidChange): Push a mediaSessionMetadataDidChange message through the web page proxy. * WebProcess/WebCoreSupport/WebChromeClient.h: 2015-06-24 Said Abou-Hallawa [Mac] A checkmark is briefly visible next to the webpage context menu items when they're clicked https://bugs.webkit.org/show_bug.cgi?id=146284 Reviewed by Darin Adler. The default value of [NSPopUpButtonCell altersStateOfSelectedItem] is YES. This makes the popup menu items checkable by default. We need to change the value of this attribute to NO when creating the popup menu, so the items are uncheckable. The value of this property needs to change back to YES if context menu is about selecting an option and not executing a command. * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::populate): 2015-06-24 Brady Eidson Update JavaScript dialog delegates to include a WKSecurityOriginRef argument. and https://bugs.webkit.org/show_bug.cgi?id=146249 Reviewed by Alex Christensen. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): Call the new signature if the client has it set. Otherwise fall back to the old signature. * UIProcess/API/C/WKPageUIClient.h: Deprecate the old method signature, and add the new one to the newest V5 client structure. 2015-06-24 Ryuan Choi Remove some dead code from Download https://bugs.webkit.org/show_bug.cgi?id=146268 Reviewed by Darin Adler. retrieveDestinationWithSuggestedFilename() was introduced for DownloadCFNetWin.cpp since r77585. didDecideDestination and others are also introduced for WebKit2 Windows port since r77055. Since WebKit2 Windows port is dropped, no one uses them now. * Shared/Downloads/Download.cpp: (WebKit::Download::decideDestinationWithSuggestedFilename): (WebKit::Download::retrieveDestinationWithSuggestedFilename): Deleted. * Shared/Downloads/Download.h: (WebKit::Download::destination): Deleted. * Shared/Downloads/ios/DownloadIOS.mm: (WebKit::Download::didDecideDestination): Deleted. * Shared/Downloads/mac/DownloadMac.mm: (WebKit::Download::didDecideDestination): Deleted. * Shared/Downloads/soup/DownloadSoup.cpp: (WebKit::Download::didDecideDestination): Deleted. 2015-06-23 Anders Carlsson Fix build. * UIProcess/ios/ProcessAssertionIOS.mm: (-[WKProcessAssertionBackgroundTaskManager init]): 2015-06-23 Michael Catanzaro [GTK] Crash performing drag-and-drop https://bugs.webkit.org/show_bug.cgi?id=146267 Reviewed by Darin Adler. Return early if gtk_get_current_event() returns null to avoid a crash. Note that this does not fix drag-and-drop. Note also this prevents the web process from forcing the UI process to crash by sending fake startDrag messages. * UIProcess/gtk/DragAndDropHandler.cpp: (WebKit::DragAndDropHandler::startDrag): 2015-06-23 Anders Carlsson Add a class that tracks whether we're a background or foreground application https://bugs.webkit.org/show_bug.cgi?id=146259 rdar://problem/19833808 Reviewed by Darin Adler. First step towards being able to send out these notifications for view services. * UIProcess/ApplicationStateTracker.h: Added. (WebKit::ApplicationStateTracker::isInBackground): * UIProcess/ApplicationStateTracker.mm: Added. (WebKit::ApplicationStateTracker::singleton): (WebKit::ApplicationStateTracker::ApplicationStateTracker): (WebKit::ApplicationStateTracker::addListener): (WebKit::ApplicationStateTracker::applicationDidEnterBackground): (WebKit::ApplicationStateTracker::applicationWillEnterForeground): (WebKit::ApplicationStateTracker::invokeListeners): (WebKit::ApplicationStateTracker::pruneListeners): * UIProcess/ios/ProcessAssertionIOS.mm: (-[WKProcessAssertionBackgroundTaskManager init]): (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): (-[WKProcessAssertionBackgroundTaskManager _applicationWillEnterForeground]): (-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackground]): (-[WKProcessAssertionBackgroundTaskManager dealloc]): Deleted. (-[WKProcessAssertionBackgroundTaskManager _applicationWillEnterForeground:]): Deleted. (-[WKProcessAssertionBackgroundTaskManager _applicationDidEnterBackground:]): Deleted. * UIProcess/ios/WKContentView.h: * UIProcess/ios/WKContentView.mm: (-[WKContentView _commonInitializationWithProcessPool:configuration:]): (-[WKContentView isBackground]): (-[WKContentView _applicationDidEnterBackground]): (-[WKContentView _applicationWillEnterForeground]): (-[WKContentView _applicationDidEnterBackground:]): Deleted. (-[WKContentView _applicationWillEnterForeground:]): Deleted. * WebKit2.xcodeproj/project.pbxproj: 2015-06-23 Anders Carlsson Remove windowResizerRect code, nobody is using it anymore https://bugs.webkit.org/show_bug.cgi?id=146265 Reviewed by Beth Dakin. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::windowResizerRect): Deleted. * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::windowResizerRect): Deleted. * WebProcess/WebPage/WebPage.h: 2015-06-23 Dan Bernstein Restore binary compatibility with iOS 8 Safari after r185877 https://bugs.webkit.org/show_bug.cgi?id=146263 Reviewed by Anders Carlsson. * Platform/spi/Cocoa: Added. * Platform/spi/Cocoa/NSInvocationSPI.h: Added. * UIProcess/API/Cocoa/WKSecurityOrigin.mm: (-[WKSecurityOrigin methodSignatureForSelector:]): Override to check _WKSecurityOrigin for possible category methods with the specified selector. (-[WKSecurityOrigin forwardInvocation:]): Invoke using the implementation of the _WKSecurityOrigin category method. * WebKit2.xcodeproj/project.pbxproj: 2015-06-23 Anders Carlsson Add operator! and copy/move constructors to WeakObjCPtr https://bugs.webkit.org/show_bug.cgi?id=146255 Reviewed by Andreas Kling. * Shared/mac/WeakObjCPtr.h: (WebKit::WeakObjCPtr::WeakObjCPtr): (WebKit::WeakObjCPtr::operator!): 2015-06-23 Antti Koivisto CrashTracer: com.apple.WebKit.Networking at JavaScriptCore: WTF::String::isolatedCopy const & https://bugs.webkit.org/show_bug.cgi?id=146236 rdar://problem/21380700 Reviewed by Andreas Kling. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::clear): Don't crash if this is called with network cache disabled. 2015-06-23 Simon Fraser Expose some more rendering progress events, and have MiniBrowser log for each of them https://bugs.webkit.org/show_bug.cgi?id=146227 Reviewed by Darin Adler. Add _WKRenderingProgressEventFirstLayoutAfterSuppressedIncrementalRendering and _WKRenderingProgressEventFirstPaintAfterSuppressedIncrementalRendering to the private header, and convert them to/from WebCore milestones. * Shared/API/Cocoa/_WKRenderingProgressEvents.h: * Shared/API/Cocoa/_WKRenderingProgressEventsInternal.h: (renderingProgressEvents): * UIProcess/API/Cocoa/WKWebView.mm: (layoutMilestones): 2015-06-23 Carlos Garcia Campos Unreviewed. Fix GTK+ build after r185876 and r185877. * UIProcess/API/gtk/WebKitUIClient.cpp: * UIProcess/API/gtk/WebKitUserContentManager.cpp: * UIProcess/API/gtk/WebKitWebView.cpp: 2015-06-23 Anders Carlsson Get rid of the window resizer size https://bugs.webkit.org/show_bug.cgi?id=146240 Reviewed by Darin Adler. This code was only used by older versions of GTK+, so get rid of it. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseNotifyResizerSize): Deleted. (toplevelWindowResizeGripVisibilityChanged): Deleted. (webkitWebViewBaseSetToplevelOnScreenWindow): Deleted. (resizeWebKitWebViewBaseFromAllocation): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setWindowResizerSize): Deleted. * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::windowResizerRect): (WebKit::WebPage::setWindowResizerSize): Deleted. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-06-23 Brady Eidson WKFrameInfo should have an accessor for the Frame's current security origin. https://bugs.webkit.org/show_bug.cgi?id=146162 Reviewed by Dan Bernstein. This patch: - Promotes _WKSecurityOrigin to API. - Makes the WKSecurityOrigin Cocoa API object work with API::SecurityOrigin. - Adds a WKSecurityOrigin accessor to WKFrameInfo. - Changes IPC messaging so every handler that calls out with a WKFrameInfo object gets a relevant SecurityOrigin to wrap. * Shared/API/APISecurityOrigin.h: (API::SecurityOrigin::create): (API::SecurityOrigin::SecurityOrigin): * Shared/API/Cocoa/WebKit.h: * Shared/API/c/WKSharedAPICast.h: (WebKit::toCopiedAPI): * Shared/Cocoa/APIObject.mm: (API::Object::newObject): * Shared/SecurityOriginData.cpp: (WebKit::SecurityOriginData::fromFrame): * Shared/SecurityOriginData.h: * UIProcess/API/APIFrameInfo.cpp: (API::FrameInfo::FrameInfo): * UIProcess/API/APIFrameInfo.h: * UIProcess/API/APINavigationClient.h: (API::NavigationClient::didFailProvisionalLoadInSubframeWithError): * UIProcess/API/APIUIClient.h: (API::UIClient::createNewPage): (API::UIClient::runJavaScriptAlert): (API::UIClient::runJavaScriptConfirm): (API::UIClient::runJavaScriptPrompt): * UIProcess/API/C/WKApplicationCacheManager.cpp: (WKApplicationCacheManagerGetApplicationCacheOrigins): * UIProcess/API/C/WKKeyValueStorageManager.cpp: (WKKeyValueStorageManagerGetKeyValueStorageOrigins): * UIProcess/API/C/WKOriginDataManager.cpp: (WKOriginDataManagerGetOrigins): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): (WKPageSetPageNavigationClient): * UIProcess/API/C/WKResourceCacheManager.cpp: (WKResourceCacheManagerGetCacheOrigins): * UIProcess/API/Cocoa/WKFrameInfo.h: * UIProcess/API/Cocoa/WKFrameInfo.mm: (-[WKFrameInfo securityOrigin]): * UIProcess/API/Cocoa/WKSecurityOrigin.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.h. * UIProcess/API/Cocoa/WKSecurityOrigin.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOrigin.mm. (-[WKSecurityOrigin dealloc]): (-[WKSecurityOrigin description]): (-[WKSecurityOrigin protocol]): (-[WKSecurityOrigin host]): (-[WKSecurityOrigin port]): (-[WKSecurityOrigin _apiObject]): * UIProcess/API/Cocoa/WKSecurityOriginInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKSecurityOriginInternal.h. (API::wrapper): * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/API/Cocoa/WKUserContentController.mm: * UIProcess/API/Cocoa/_WKSecurityOrigin.h: * UIProcess/API/Cocoa/_WKSecurityOrigin.mm: (-[_WKSecurityOrigin _initWithSecurityOrigin:]): Deleted. (-[_WKSecurityOrigin protocol]): Deleted. (-[_WKSecurityOrigin host]): Deleted. (-[_WKSecurityOrigin port]): Deleted. * UIProcess/Cocoa/NavigationState.h: * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError): * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::createNewPage): (WebKit::UIDelegate::UIClient::runJavaScriptAlert): (WebKit::UIDelegate::UIClient::runJavaScriptConfirm): (WebKit::UIDelegate::UIClient::runJavaScriptPrompt): (WebKit::UIDelegate::UIClient::exceededDatabaseQuota): (WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota): * UIProcess/UserContent/WebScriptMessageHandler.h: * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::didPostMessage): * UIProcess/UserContent/WebUserContentControllerProxy.h: * UIProcess/UserContent/WebUserContentControllerProxy.messages.in: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForNewWindowAction): (WebKit::WebPageProxy::decidePolicyForResponse): (WebKit::WebPageProxy::decidePolicyForResponseSync): (WebKit::WebPageProxy::createNewPage): (WebKit::WebPageProxy::runJavaScriptAlert): (WebKit::WebPageProxy::runJavaScriptConfirm): (WebKit::WebPageProxy::runJavaScriptPrompt): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserMessageHandlerDescriptorProxy::didPostMessage): * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createWindow): (WebKit::WebChromeClient::runJavaScriptAlert): (WebKit::WebChromeClient::runJavaScriptConfirm): (WebKit::WebChromeClient::runJavaScriptPrompt): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): 2015-06-23 Dan Bernstein Make -[WKWebView _certificateChain] public. https://bugs.webkit.org/show_bug.cgi?id=145886 Reviewed by Sam Weinig. * Shared/WebCertificateInfo.h: (WebKit::WebCertificateInfo::create): Changed to return a Ref rather than a PassRefPtr. * UIProcess/API/Cocoa/WKBrowsingContextController.mm: Added no-op overrides of new PageLoadState::Observer functions to PageLoadStateObserver. * UIProcess/API/Cocoa/WKProcessGroup.mm: (-[WKProcessGroup _setAllowsSpecificHTTPSCertificate:forHost:]): Updated for change to WebCertificateInfo::create. * UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _setAllowsSpecificHTTPSCertificate:forHost:]): Ditto. * UIProcess/API/Cocoa/WKWebView.h: Declared new certificateChain property on WKWebView. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView certificateChain]): Added. Returns the certificate chain from the page load state, or an empty array if there is no certificate chain. * UIProcess/API/Cocoa/WKWebViewPrivate.h: Deprecated _certificateChain. * UIProcess/Cocoa/NavigationState.h: Declared overrides of new PageLoadState::Observer functions. * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::willChangeCertificateInfo): Override to call -willChangeValueForKey:. (WebKit::NavigationState::didChangeCertificateInfo): Override to call -didChangeValueForKey:. * UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::commitChanges): Call the new observer functions willChangeCertificateInfo and didChangeCertificateInfo. (WebKit::PageLoadState::didCommitLoad): Added new certificateInfo parameter, which is stored in the uncommitted state. * UIProcess/PageLoadState.h: (WebKit::PageLoadState::certificateInfo): Added this getter. * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::didCommitLoad): Changed the parameter type from WebCore::CertificateInfo to WebCertificateInfo. * UIProcess/WebFrameProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didCommitLoadForFrame): Pass the certificate info to PageLoadState::didCommitLoad. 2015-06-22 Gyuyoung Kim [EFL][CustomProtocol] Do not add duplicated custom scheme https://bugs.webkit.org/show_bug.cgi?id=146199 Reviewed by Carlos Garcia Campos. WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol generates a crash when duplicated scheme is registered on debug mode, or just registers it on release mode. However application can register duplicate scheme by mistake or on purpose. Thus it would be good if we don't register it instead of registering it or generating a crash when trying to regiseter duplicated scheme. EFL port want to allow user to change registered callback, thus EWK2ContextTest::ewk_context_url_scheme_register() is modified to test it. Test: ewk_context_url_scheme_register() in test_ewk2_context.cpp. * UIProcess/API/efl/ewk_context.h: Added a comment to replace registered callback. * UIProcess/API/efl/tests/test_ewk2_context.cpp: (EWK2ContextTest::schemeRequestCallback1): (EWK2ContextTest::schemeRequestCallback2): (TEST_F): (EWK2ContextTest::schemeRequestCallback): Deleted. * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp: (WebKit::WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol): 2015-06-22 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.3 release. * gtk/NEWS: Add release notes for 2.9.3. 2015-06-22 Dan Bernstein Part 2 of [Xcode] Fold the WebKit2SandboxProfiles-IOSOverride target into the Sandbox Profiles target https://bugs.webkit.org/show_bug.cgi?id=146197 Rubber-stamped by Anders Carlsson. * WebKit2.xcodeproj/project.pbxproj: Deleted the WebKit2SandboxProfiles-IOSOverride target. 2015-06-22 Dean Jackson Rename PlatformCA*Mac to PlatformCA*Cocoa https://bugs.webkit.org/show_bug.cgi?id=146224 Reviewed by Simon Fraser. Rename PlatformCALayerMac and related files in platform/graphics/ca/mac to the more accurate Cocoa suffix. * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp: (WebKit::PlatformCALayerRemote::filtersCanBeComposited): * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm: (WebKit::PlatformCALayerRemoteCustom::create): * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom): 2015-06-22 Anders Carlsson Simplify Connection::SyncMessageState https://bugs.webkit.org/show_bug.cgi?id=146213 Reviewed by Andreas Kling. Since we no longer support Connections dispatching to multiple threads, we can make SyncMessageState into a singleton and get rid of the RunLoop -> SyncMessageState hash map. * Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::singleton): (IPC::Connection::SyncMessageState::SyncMessageState): (IPC::Connection::SyncMessageState::processIncomingMessage): (IPC::Connection::SyncMessageState::dispatchMessages): (IPC::Connection::waitForSyncReply): (IPC::Connection::processIncomingSyncReply): (IPC::Connection::processIncomingMessage): (IPC::Connection::connectionDidClose): (IPC::Connection::SyncMessageState::syncMessageStateMap): Deleted. (IPC::Connection::SyncMessageState::syncMessageStateMapMutex): Deleted. (IPC::Connection::SyncMessageState::getOrCreate): Deleted. (IPC::Connection::SyncMessageState::~SyncMessageState): Deleted. (IPC::Connection::Connection): Deleted. * Platform/IPC/Connection.h: 2015-06-20 Alex Christensen [Content Extensions] Add SPI to reload without content blocking. https://bugs.webkit.org/show_bug.cgi?id=146128 rdar://problem/20351903 Reviewed by Sam Weinig. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): (WebKit::WebPageCreationParameters::decode): * Shared/WebPageCreationParameters.h: * UIProcess/API/C/WKPage.cpp: (WKPageSetCustomUserAgent): (WKPageSetUserContentExtensionsEnabled): (WKPageSupportsTextEncoding): * UIProcess/API/C/WKPage.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _customUserAgent]): (-[WKWebView _setUserContentExtensionsEnabled:]): (-[WKWebView _userContentExtensionsEnabled]): (-[WKWebView _setCustomUserAgent:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::setShouldScaleViewToFitDocument): (WebKit::WebPageProxy::setUserContentExtensionsEnabled): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::userContentExtensionsEnabled): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::reinitializeWebPage): (WebKit::WebPage::setShouldScaleViewToFitDocument): (WebKit::WebPage::setUserContentExtensionsEnabled): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Pass a boolean from the API to WebCore. 2015-06-22 Anders Carlsson Remove m_clientRunLoop from IPC::Connection https://bugs.webkit.org/show_bug.cgi?id=146212 Reviewed by Sam Weinig. We only ever create connections whose messages are dispatched to the main run loop, so we can vastly simplify the code by only allowing messages to be dispatched there. * DatabaseProcess/DatabaseToWebProcessConnection.cpp: (WebKit::DatabaseToWebProcessConnection::DatabaseToWebProcessConnection): * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): * Platform/IPC/Connection.cpp: (IPC::Connection::createServerConnection): (IPC::Connection::createClientConnection): (IPC::Connection::Connection): (IPC::Connection::addWorkQueueMessageReceiver): (IPC::Connection::removeWorkQueueMessageReceiver): (IPC::Connection::waitForMessage): (IPC::Connection::sendSyncMessage): (IPC::Connection::sendSyncMessageFromSecondaryThread): (IPC::Connection::processIncomingMessage): (IPC::Connection::connectionDidClose): (IPC::Connection::dispatchDidReceiveInvalidMessage): (IPC::Connection::enqueueIncomingMessage): (IPC::Connection::wakeUpRunLoop): * Platform/IPC/Connection.h: * Platform/IPC/mac/ConnectionMac.mm: (IPC::Connection::receiveSourceEventHandler): * PluginProcess/WebProcessConnection.cpp: (WebKit::WebProcessConnection::WebProcessConnection): * Shared/ChildProcess.cpp: (WebKit::ChildProcess::initialize): * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::didFinishLaunching): * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::didFinishLaunching): * WebProcess/Databases/WebToDatabaseProcessConnection.cpp: (WebKit::WebToDatabaseProcessConnection::WebToDatabaseProcessConnection): * WebProcess/Network/NetworkProcessConnection.cpp: (WebKit::NetworkProcessConnection::NetworkProcessConnection): * WebProcess/Plugins/PluginProcessConnection.cpp: (WebKit::PluginProcessConnection::PluginProcessConnection): * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::createInspectorPage): * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::establishConnection): 2015-06-22 Anders Carlsson Crashes in hit testing under WebPage::acceptsFirstMouse() while handling sync message in plug-in teardown https://bugs.webkit.org/show_bug.cgi?id=146211 rdar://problem/17180615 Reviewed by Sam Weinig. If we're inside a sendSync message when we're being called, just bail. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::acceptsFirstMouse): 2015-06-22 Dan Bernstein Part 1 of [Xcode] Fold the WebKit2SandboxProfiles-IOSOverride target into the Sandbox Profiles target https://bugs.webkit.org/show_bug.cgi?id=146197 Reviewed by Anders Carlsson. * Configurations/SandboxProfiles.xcconfig: Added. Defines INSTALL_PATH based on the value of WK_INSTALL_OVERRIDE_SANDBOX_PROFILES. * WebKit2.xcodeproj/project.pbxproj: Use SandboxProfiles.xcconfig for the Sandbox Profiles target, and change the destination path in its Copy Files build phase to INSTALL_PATH. 2015-06-22 Antti Koivisto Crash replacing TabDocument in MobileSafari at WebKit: -[WKWebView(WKPrivate) _beginAnimatedResizeWithUpdates:] https://bugs.webkit.org/show_bug.cgi?id=146201 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _beginAnimatedResizeWithUpdates:]): No repro but if for some reason [_contentView bounds] width is zero we'll compute +Inf targetScale and then NaN contentOffset.x. Verified in lldb that this gives the exact crash signature seen. Fix by checking that [_contentView bounds] is not empty like is done with other inputs. 2015-06-22 Carlos Garcia Campos REGRESSION(r182303): [GTK] Context menu API is broken since r182303 https://bugs.webkit.org/show_bug.cgi?id=146202 Reviewed by Žan Doberšek. The problem is that ContextMenuclient API changed in r182303, but we didn't notice it either, and the default handler for getContextMenuFromProposedMenu was executed. An override keyword would have caught this. * UIProcess/API/gtk/WebKitContextMenuClient.cpp: Build a Vector of WebContextMenuItemData as expected by our API, and add add override keyword to ensure this doesn't happen again. 2015-06-22 Zan Dobersek [WK2] ConnectionUnix should use FastMalloc to allocate on-heap resources https://bugs.webkit.org/show_bug.cgi?id=146143 Reviewed by Carlos Garcia Campos. IPC handling in Unix-specific IPC::Connection implementation should use FastMalloc to allocate on-heap resources, instead of allocating via the system allocator. The AttachmentInfo class is marked as allocatable through FastMalloc. That way it can be allocated through FastMalloc while still handled through std::unique_ptr<>. The char[] arrays in readBytesFromSocket() and Connection::sendOutgoingMessage() are now handled through a MallocPtr<> object. In Connection::sendOutgoingMessage(), both the AttachmentInfo[] and char[] arrays are now only allocated if there are actual attachments contained in the message. The code that's conditioned with a non-empty attachments Vector is now also grouped together, in a single branch. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::readBytesFromSocket): (IPC::Connection::sendOutgoingMessage): 2015-06-22 Gyuyoung Kim [EFL] test_ewk2_application_cache_manager has been failed since r185527 https://bugs.webkit.org/show_bug.cgi?id=146016 Reviewed by Csaba Osztrogonác. * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp: (TEST_F): Disable this test for now. This test will be enabled again. 2015-06-16 Gavin Barraclough Page load performance regression due to bugs.webkit.org/show_bug.cgi?id=145542 https://bugs.webkit.org/show_bug.cgi?id=146198 Unreviewed rollout. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_prefetch_dns): 2015-06-21 Hyungwook Lee WKApplicationCacheManagerDeleteEntriesForOrigin() has wrong WebsiteDataTypes. https://bugs.webkit.org/show_bug.cgi?id=146180 Reviewed by Sam Weinig. Modify to use correct WebsiteDataTypes in WKApplicationCacheManagerDeleteEntriesForOrigin() * UIProcess/API/C/WKApplicationCacheManager.cpp: (WKApplicationCacheManagerDeleteEntriesForOrigin): 2015-06-21 Dan Bernstein REGRESSION (r184215): Plug-in services crash on launch on Yosemite https://bugs.webkit.org/show_bug.cgi?id=146195 Reviewed by Sam Weinig. * Configurations/PluginService.32.xcconfig: Changed the Yosemite definition of INFOPLIST_FILE such that it would also apply to the macosx10.10.internal SDK. * Configurations/PluginService.64.xcconfig: Ditto. 2015-06-21 Dan Bernstein Build fix. * Shared/API/Cocoa/WKFoundation.h: Don’t use generics if the SDK doesn’t support them. 2015-06-21 Michael Catanzaro [SOUP] Use GTask in WebKitSoupRequestInputStream https://bugs.webkit.org/show_bug.cgi?id=146184 Reviewed by Carlos Garcia Campos. Replace deprecated use of GSimpleAsyncResult with GTask. * WebProcess/soup/WebKitSoupRequestInputStream.cpp: (AsyncReadData::AsyncReadData): (webkitSoupRequestInputStreamReadAsyncResultComplete): (webkitSoupRequestInputStreamPendingReadAsyncComplete): (webkitSoupRequestInputStreamReadAsync): (webkitSoupRequestInputStreamReadFinish): 2015-06-21 Michael Catanzaro Fix format strings in NetworkCache.cpp and NetworkCacheStatistics.cpp and WebIDBServerConnection.cpp https://bugs.webkit.org/show_bug.cgi?id=146172 Reviewed by Darin Adler. Use the correct %"PRIu64" and %"PRIi64" for uint64_t and int64_t, instead of %llu and %lli. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::retrieve): * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::Statistics::initialize): (WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest): (WebKit::NetworkCache::Statistics::recordRetrievalFailure): (WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry): (WebKit::NetworkCache::Statistics::recordRevalidationSuccess): * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: (WebKit::WebIDBServerConnection::deleteDatabase): (WebKit::WebIDBServerConnection::didDeleteDatabase): (WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata): (WebKit::WebIDBServerConnection::didGetOrEstablishIDBDatabaseMetadata): (WebKit::WebIDBServerConnection::openTransaction): (WebKit::WebIDBServerConnection::didOpenTransaction): (WebKit::WebIDBServerConnection::beginTransaction): (WebKit::WebIDBServerConnection::didBeginTransaction): (WebKit::WebIDBServerConnection::commitTransaction): (WebKit::WebIDBServerConnection::didCommitTransaction): (WebKit::WebIDBServerConnection::resetTransaction): (WebKit::WebIDBServerConnection::didResetTransaction): (WebKit::WebIDBServerConnection::rollbackTransaction): (WebKit::WebIDBServerConnection::didRollbackTransaction): (WebKit::WebIDBServerConnection::createObjectStore): (WebKit::WebIDBServerConnection::didCreateObjectStore): (WebKit::WebIDBServerConnection::createIndex): (WebKit::WebIDBServerConnection::didCreateIndex): (WebKit::WebIDBServerConnection::deleteIndex): (WebKit::WebIDBServerConnection::didDeleteIndex): (WebKit::WebIDBServerConnection::get): (WebKit::WebIDBServerConnection::put): (WebKit::WebIDBServerConnection::didPutRecord): (WebKit::WebIDBServerConnection::didGetRecord): (WebKit::WebIDBServerConnection::didOpenCursor): (WebKit::WebIDBServerConnection::didAdvanceCursor): (WebKit::WebIDBServerConnection::didIterateCursor): (WebKit::WebIDBServerConnection::count): (WebKit::WebIDBServerConnection::didCount): (WebKit::WebIDBServerConnection::deleteRange): (WebKit::WebIDBServerConnection::didDeleteRange): (WebKit::WebIDBServerConnection::clearObjectStore): (WebKit::WebIDBServerConnection::didClearObjectStore): (WebKit::WebIDBServerConnection::deleteObjectStore): (WebKit::WebIDBServerConnection::didDeleteObjectStore): (WebKit::WebIDBServerConnection::changeDatabaseVersion): (WebKit::WebIDBServerConnection::didChangeDatabaseVersion): (WebKit::WebIDBServerConnection::openCursor): (WebKit::WebIDBServerConnection::cursorAdvance): (WebKit::WebIDBServerConnection::cursorIterate): 2015-06-20 Tim Horton Deselection of text causes a noticeable jump on force touch machines https://bugs.webkit.org/show_bug.cgi?id=146173 Reviewed by Sam Weinig. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): Encode/decode wantsMargin. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performImmediateActionHitTestAtLocation): (WebKit::textIndicatorTransitionForImmediateAction): Deleted. Get rid of TextIndicatorPresentationTransition::Crossfade. 2015-06-20 Dan Bernstein [Cocoa] Actually use Objective-C lightweight generics when the compiler supports them https://bugs.webkit.org/show_bug.cgi?id=146183 Reviewed by Sam Weinig. * Shared/API/Cocoa/WKFoundation.h: When the compiler supports Objective-C generics, define WK_ARRAY and WK_SET to use them. Also added a definition of WK_DICTIONARY. * UIProcess/API/Cocoa/WKWebViewPrivate.h: Use WK_DICTIONARY for the options dictionary of -_loadRequest:withOptions:. * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): Made the completion halder type match the declaration, now that NSArray and WK_ARRAY(WKWebsiteDataRecord *) are not the same. * mac/postprocess-framework-headers.sh: Also rewrite WK_DICTIONARY. 2015-06-20 Chris Dumez [WK2][iOS] Avoid synchronous IPC on view state change when the content is not visible https://bugs.webkit.org/show_bug.cgi?id=146179 Reviewed by Tim Horton. After r170787, viewStateChange() would cause a synchronous IPC between the UIProcess and the WebProcess when the view becomes visible. This was to avoid painting empty / black tiles when unsuspending the WebProcess on tab switch, in the event volatile IOSurfaces were purged. However, this sync IPC can have performance implications and is not needed when the content is not actually visible yet (e.g. hideContentUntilNextUpdate() was called, or the tab was killed). This patch avoids the synchronous IPC when the content is hidden and exposes a private API on WKWebView so that clients can ask for the content to be hidden until the next update. This would allow for clients to avoid the synchronous IPC if they don't need the content to be displayed synchronously (e.g. the view is obscured). * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _hideContentUntilNextUpdate]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/DrawingAreaProxy.h: (WebKit::DrawingAreaProxy::hasVisibleContent): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::dispatchViewStateChange): * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h: * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::isContentHidden): 2015-06-20 Michael Catanzaro Check for SHA1 certificates ignores subresources https://bugs.webkit.org/show_bug.cgi?id=146159 Reviewed by Dan Bernstein. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didCommitLoadForFrame): Call PageLoadState::didDisplayOrRunInsecureContent if a certificate chain contains a non-root SHA1 certificate when the frame is not the main frame. 2015-06-20 Dan Bernstein Added availability information to a recently-added delegate method. Suggested by Alexey Proskuryakov and Anders Carlsson. * UIProcess/API/Cocoa/WKUIDelegate.h: Annotated -webViewDidClose:. 2015-06-20 Ryuan Choi [EFL] Do not consider test directories when DEVELOPER_MODE is OFF https://bugs.webkit.org/show_bug.cgi?id=146171 Reviewed by Gyuyoung Kim. * PlatformEfl.cmake: Do not define SOURCE_DIR when DEVELOPER_MODE is OFF for seccomp filter not to allow jhbuild directory. * Shared/efl/ProcessExecutablePathEfl.cpp: (WebKit::findProcessPath): Guard test code to ENABLE(DEVELOPER_MODE). 2015-06-18 Myles C. Maxfield REGRESSION(r185475): [Mac] ASSERT() when clicking on text using web fonts with force touch trackpad https://bugs.webkit.org/show_bug.cgi?id=145890 Reviewed by Darin Adler and Tim Horton. The best place to stop the serialization of unserializable fonts is inside WebKit2's IPC code. We want this logic to occur when encoding an NSAttributedString, rather than when encoding an NSDictionary, because changing the shape of an NSAttributedString is less likely to result in problems rather than changing the shape of an NSDictionary. * Shared/mac/ArgumentCodersMac.mm: (IPC::fontIsSerializable): (IPC::filterUnserializableValues): (IPC::encode): 2015-06-19 Michael Catanzaro [SOUP] Fix return-type-c-linkage warning after r185553 https://bugs.webkit.org/show_bug.cgi?id=146014 Reviewed by Martin Robinson. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: (WebKit::CustomProtocolManagerImpl::start): webkitSoupRequestGenericGetRequest now returns a pointer rather than a reference. 2015-06-19 Brady Eidson Rename WKSecurityOrigin.h/cpp to WKSecurityOriginRef.h/cpp. https://bugs.webkit.org/show_bug.cgi?id=146152 Reviewed by Dan Bernstein. * CMakeLists.txt: * Shared/API/c/WKSecurityOriginRef.cpp: Renamed from Source/WebKit2/Shared/API/c/WKSecurityOrigin.cpp. * Shared/API/c/WKSecurityOriginRef.h: Renamed from Source/WebKit2/Shared/API/c/WKSecurityOrigin.h. * UIProcess/API/efl/ewk_security_origin.cpp: * UIProcess/API/efl/ewk_storage_manager.cpp: * WebKit2.xcodeproj/project.pbxproj: 2015-06-18 Brent Fulgham [iOS] scrollIntoViewIfNeeded is not working with scroll-snap points https://bugs.webkit.org/show_bug.cgi?id=145318 Reviewed by Simon Fraser. * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder::encode): Handle scroll snap point offset indices. (ArgumentCoder::decode): Ditto. * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp: (WebKit::RemoteScrollingCoordinatorProxy::currentSnapPointIndicesDidChange): Added. Send message to WebProcess when scroll snap indices have changed. * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h: * UIProcess/Scrolling/RemoteScrollingTree.cpp: (WebKit::RemoteScrollingTree::currentSnapPointIndicesDidChange): Added. Notify the RemoteScrollingCoordinatorProxy when scroll snap indices have changed. * UIProcess/Scrolling/RemoteScrollingTree.h: * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h: * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: (-[WKOverflowScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Revised. Identify changes in the current scroll snap point offset index (in either the horizontal or vertical directions), and send a notification when this happens. (WebKit::ScrollingTreeOverflowScrollingNodeIOS::currentSnapPointIndicesDidChange): Added. Notify the Scrolling Tree when indices changed. * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: (WebKit::RemoteScrollingCoordinatorProxy::adjustTargetContentOffsetForSnapping): Revised. Always compute the new scroll snap offset index (even when we will rubber band). * WebProcess/Scrolling/RemoteScrollingCoordinator.h: * WebProcess/Scrolling/RemoteScrollingCoordinator.messages.in: Add a new message to relay changes in scroll snap index. * WebProcess/Scrolling/RemoteScrollingCoordinator.mm: (WebKit::RemoteScrollingCoordinator::currentSnapPointIndicesChangedForNode): Added. 2015-06-19 Jeremy Jones Revert switch to _synchronizedDrawingFence. https://bugs.webkit.org/show_bug.cgi?id=146136 Reviewed by Simon Fraser. Revert _synchronizedDrawingFence code path that leaks a port. * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): 2015-06-19 Anders Carlsson Address review feedback from Darin. * Shared/mac/HangDetectionDisablerMac.mm: (WebKit::clientsMayIgnoreEvents): 2015-06-19 Anders Carlsson Disable SpinTracer detection while loading sync XHR https://bugs.webkit.org/show_bug.cgi?id=146150 rdar://problem/21462023 Reviewed by Dan Bernstein. * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::loadResourceSynchronously): 2015-06-19 Anders Carlsson Spintracer treats the web process as hung when it's showing JavaScript dialogs in the UI process https://bugs.webkit.org/show_bug.cgi?id=146124 rdar://problem/21449395 Reviewed by Geoffrey Garen. Add a HangDetectionDisabler RAII object and use it for JavaScript panels. * Shared/HangDetectionDisabler.h: Added. (WebKit::HangDetectionDisabler::HangDetectionDisabler): (WebKit::HangDetectionDisabler::~HangDetectionDisabler): * Shared/mac/HangDetectionDisablerMac.mm: Added. (WebKit::clientsMayIgnoreEvents): (WebKit::setClientsMayIgnoreEvents): (WebKit::HangDetectionDisabler::HangDetectionDisabler): (WebKit::HangDetectionDisabler::~HangDetectionDisabler): * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::runBeforeUnloadConfirmPanel): (WebKit::WebChromeClient::runJavaScriptAlert): (WebKit::WebChromeClient::runJavaScriptConfirm): (WebKit::WebChromeClient::runJavaScriptPrompt): 2015-06-19 Dan Bernstein Fixed the build for platforms that don’t have SafariServices. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView previewViewControllerForPosition:inSourceView:]): (-[WKContentView commitPreviewViewController:]): (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): 2015-06-19 Csaba Osztrogonác Remove unnecessary svn:executable flags https://bugs.webkit.org/show_bug.cgi?id=146107 Reviewed by Alexey Proskuryakov. * UIProcess/API/efl/EwkView.cpp: Removed property svn:executable. 2015-06-19 Csaba Osztrogonác [WK2] Fix unused-private-field warning in WebProcess/Plugins/PluginView. https://bugs.webkit.org/show_bug.cgi?id=145252 Reviewed by Tim Horton. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::PluginView): Added the necessary ifdef guard. * WebProcess/Plugins/PluginView.h: Added the necessary ifdef guard. * WebProcess/WebPage/WebPage.h: Moved the definition of ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC to WTF. 2015-06-18 Carlos Garcia Campos Do not store configuration parameters twice in WebProcessPool https://bugs.webkit.org/show_bug.cgi?id=146102 Reviewed by Sam Weinig. Since we are copying the given WebProcessPoolConfiguration and keeping it as a member, we don't need to keep an additional copy of its contents as extra members. This also prevents inconsistencies between the values in the configuration and the members when any of them are modified by WebProcessPool API. * UIProcess/API/APIProcessPoolConfiguration.h: Return a const reference instead of a temporary in methods returning a String. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::updateProcessSuppressionState): (WebKit::WebProcessPool::platformInitializeWebProcess): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setProcessModel): (WebKit::WebProcessPool::setMaximumNumberOfProcesses): (WebKit::WebProcessPool::networkingProcessConnection): (WebKit::WebProcessPool::languageChanged): (WebKit::WebProcessPool::setUsesNetworkProcess): (WebKit::WebProcessPool::usesNetworkProcess): (WebKit::WebProcessPool::ensureNetworkProcess): (WebKit::WebProcessPool::ensureDatabaseProcess): (WebKit::WebProcessPool::ensureSharedWebProcess): (WebKit::WebProcessPool::createNewWebProcess): (WebKit::WebProcessPool::warmInitialProcess): (WebKit::WebProcessPool::disconnectProcess): (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit): (WebKit::WebProcessPool::createWebPage): (WebKit::WebProcessPool::postMessageToInjectedBundle): (WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation): (WebKit::WebProcessPool::setCacheModel): (WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost): (WebKit::WebProcessPool::requestWebContentStatistics): (WebKit::WebProcessPool::requestNetworkingStatistics): * UIProcess/WebProcessPool.h: (WebKit::WebProcessPool::sendToNetworkingProcess): (WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary): (WebKit::WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary): (WebKit::WebProcessPool::sendToOneProcess): * UIProcess/gtk/WebProcessPoolGtk.cpp: (WebKit::WebProcessPool::platformInitializeWebProcess): 2015-06-18 Jon Lee Update AVKit usage of pip https://bugs.webkit.org/show_bug.cgi?id=146095 Reviewed by Eric Carlson. - Rename preference key - Rename shouldAllowAlternateFullscreen to shouldAllowPictureInPictureMediaPlayback * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: Remove unused preference calls. (WKPreferencesSetAllowsAlternateFullscreen): Deleted. (WKPreferencesGetAllowsAlternateFullscreen): Deleted. * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _isShowingVideoPictureInPicture]): Renamed. (-[WKWebView _isShowingVideoOptimized]): Deleted. (-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): Renamed. (-[WKWebView _mayAutomaticallyShowVideoOptimized]): Deleted. (shouldAllowPictureInPictureMediaPlayback): Renamed. (shouldAllowAlternateFullscreen): Deleted. * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/ios/PageClientImplIOS.mm: * UIProcess/ios/WebVideoFullscreenManagerProxy.h: Rename local variables. * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture): Renamed. (WebKit::WebVideoFullscreenManagerProxy::mayAutomaticallyShowVideoOptimized): Deleted. * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: * WebProcess/WebPage/WebPage.cpp: * WebProcess/ios/WebVideoFullscreenManager.mm: 2015-06-18 Jeremy Jones Fix crash when entering fullscreen during exit fullscreen animation. https://bugs.webkit.org/show_bug.cgi?id=146117 Reviewed by Simon Fraser. A partial teardown left the LayerHostingContext in a bad state when attempting to reuse the model and interface objects. Instead, complete the teardown and don't reuse the objects. * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::didEnterFullscreen): WebThreadRun is a no-op in WK2. Use dispatch_async. (WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Do complete teardown before entering fullscreen again. 2015-06-18 Anders Carlsson Remove shouldInterruptJavaScript https://bugs.webkit.org/show_bug.cgi?id=146118 Reviewed by Antti Koivisto. * UIProcess/API/APIUIClient.h: (API::UIClient::shouldInterruptJavaScript): Deleted. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): Deleted. * UIProcess/API/C/WKPageUIClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::shouldInterruptJavaScript): Deleted. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::shouldInterruptJavaScript): Deleted. * WebProcess/WebCoreSupport/WebChromeClient.h: 2015-06-18 Tim Horton Use SFSafariViewController for previews https://bugs.webkit.org/show_bug.cgi?id=146092 Reviewed by Darin Adler. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView previewViewControllerForPosition:inSourceView:]): (-[WKContentView commitPreviewViewController:]): * WebKit2.xcodeproj/project.pbxproj: * Source/WebKit2/Platform/spi/ios/SafariServicesSPI.h: 2015-06-18 Antti Koivisto ~4% Membuster regression after WebKit r185452 https://bugs.webkit.org/show_bug.cgi?id=146112 rdar://problem/21406677 Reviewed by Chris Dumez. Clear the cache write queue on critical memory pressure. There can be substantial amount of memory there and we don't know how long writing it out will take. System is often under I/O pressure too in low memory situations. This also makes sense for process suspension where we send simulated critical memory event. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::lowMemoryHandler): * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::handleMemoryPressureNotification): * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::clearWriteQueue): * NetworkProcess/cache/NetworkCacheStorage.h: 2015-06-18 Csaba Osztrogonác Fix missing braces and deprecated declarations warnings in WebKitNotificationProvider.cpp https://bugs.webkit.org/show_bug.cgi?id=145921 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitNotificationProvider.cpp: (WebKitNotificationProvider::WebKitNotificationProvider): 2015-06-18 Gyuyoung Kim [EFL] test_ewk2_context has been failed since r185529 https://bugs.webkit.org/show_bug.cgi?id=146046 Reviewed by Csaba Osztrogonác. ewk_context_network_process_model test has been failed since r185529. This patch modifies the test which is similar to ewk_context_network_process_model based on multiple process model to fix the failure. Besides ewk_context_network_process_model seems to be fixed indirectly. So we enable it again. * UIProcess/API/efl/tests/test_ewk2_context.cpp: (TEST_F): 2015-06-17 Yongjun Zhang Also turn off long press on link preview. https://bugs.webkit.org/show_bug.cgi?id=146084 Also turn off long presss gesture when previewing. Turn that back on when preview is completed. Reviewed by Tim Horton. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): (-[WKContentView didDismissPreviewViewController:committing:]): 2015-06-17 Brent Fulgham Overflow regions with scroll snap points are not reliably rubber banding https://bugs.webkit.org/show_bug.cgi?id=142522 Reviewed by Darin Adler. Make sure we don't block rubberbanding behavior when a scroll gesture should take us past the end of the scroll container. * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: (-[WKOverflowScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Don't adjust target point if we were going to scroll past the edges of the scroll container. 2015-06-17 Anders Carlsson Would like a way, in the API, to get notified about a web process crash https://bugs.webkit.org/show_bug.cgi?id=146085 rdar://problem/17358828 Reviewed by Darin Adler. * UIProcess/API/Cocoa/WKNavigationDelegate.h: * UIProcess/Cocoa/NavigationState.h: * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::setNavigationDelegate): (WebKit::NavigationState::NavigationClient::processDidCrash): 2015-06-17 Tim Horton Swipe gesture can get stuck, preventing scrolling and other gestures https://bugs.webkit.org/show_bug.cgi?id=146088 Reviewed by Darin Adler. * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::trackSwipeGesture): Ignore mouse events that come in while we're doing a swipe. This prevents potentially problematic mouse events (especially context menus) won't be processed during a swipe, avoiding situations that can cause the swipe gesture to get stuck. 2015-06-17 Sungmann Cho Remove willSendEventToPlugin() from PluginController.h. https://bugs.webkit.org/show_bug.cgi?id=146054 Reviewed by Darin Adler. PluginController::willSendEventToPlugin() was introduced by http://webkit.org/b/59124. This method had been used only for WebKit2 on Windows, and no one uses it now. So we can remove it. No new tests, no behavior change. * PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::willSendEventToPlugin): Deleted. * PluginProcess/PluginControllerProxy.h: * WebProcess/Plugins/PluginController.h: * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::willSendEventToPlugin): Deleted. * WebProcess/Plugins/PluginView.h: 2015-06-17 Tim Horton Repro crash when swiping back from a NY Times article @ WebPageProxy::navigationGestureDidEnd https://bugs.webkit.org/show_bug.cgi?id=146083 Reviewed by Darin Adler. * UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): (WebKit::ViewGestureController::activeLoadMonitoringTimerFired): It is possible to get didSameDocumentNavigationForMainFrame *before* endSwipeGesture, while the user is still interactively swiping. We cannot remove the snapshot in this case, nor should we start the active load monitoring timer; all of these things should happen only after the swipe is completed and we've performed the navigation. This was particularly bad (a crash instead of just a disappearing snapshot) because removing the snapshot also causes m_webPageProxyForBackForwardListForCurrentSwipe to be nulled out, but then it is dereferenced during endSwipeGesture. Make sure that we never call removeSwipeSnapshotIfReady unless we were actually waiting to remove the swipe snapshot (because the gesture had completed). Most callers already did ensure this, but these two did not. 2015-06-17 Joseph Pecoraro Web Inspector: Improve Full Screen support for Web Inspector windows https://bugs.webkit.org/show_bug.cgi?id=146036 Reviewed by Timothy Hatcher. * UIProcess/WebInspectorProxy.h: * UIProcess/mac/WebInspectorProxyMac.mm: (-[WKWebInspectorProxyObjCAdapter windowDidEnterFullScreen:]): (-[WKWebInspectorProxyObjCAdapter windowDidExitFullScreen:]): (WebKit::WebInspectorProxy::platformCanAttach): (WebKit::WebInspectorProxy::windowFullScreenDidChange): When entering / leaving full screen update attach availability to potentially show / hide the frontend's docking buttons. (WebKit::WebInspectorProxy::createInspectorWindow): Allow a Web Inspector window to be a full screen auxillary window, so that if the application with a WebView opens a detached inspector window it can be shown on the same desktop as the full screen app. Also, reduce the minimum window size requirements for full screen tiling. 2015-06-17 Tim Horton Safari tabs still have shrunken content after coming out of fullscreen https://bugs.webkit.org/show_bug.cgi?id=146037 Reviewed by Simon Fraser and Darin Adler. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::useFixedLayoutDidChange): (WebKit::WebPageProxy::fixedLayoutSizeDidChange): * UIProcess/WebPageProxy.messages.in: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setUseFixedLayout): (WebKit::WebPage::setFixedLayoutSize): Keep the UI process up-to-date when fixed layout is enabled or the size changes. This is important because these things can change from the Web process side too, and the UI process uses its (potentially stale) version to do some short-circuiting. This was causing us to fail to turn off fixed layout when it was turned on from the Web process side (by TiledCoreAnimationDrawingArea). * UIProcess/mac/WKViewLayoutStrategy.mm: (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy willChangeLayoutStrategy]): Reset the view scale, which WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy makes heavy use of, just like the others. 2015-06-17 Dan Bernstein [Cocoa] Expose UIDelegate::UIClient::close via WKUIDelegate https://bugs.webkit.org/show_bug.cgi?id=145957 Reviewed by Darin Adler. * UIProcess/API/Cocoa/WKUIDelegate.h: Added -webViewDidClose: to the protocol. * UIProcess/Cocoa/UIDelegate.h: Added a webViewDidClose boolean to the delegate methods struct. * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): Initialize the webViewDidClose boolean. (WebKit::UIDelegate::UIClient::close): Changed to call the new delegate method. Left behind code that calls the old private method if it’s implemented. 2015-06-17 Carlos Garcia Campos [GTK] WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER doesn't disable memory cache when set before the web process is launched https://bugs.webkit.org/show_bug.cgi?id=146053 Reviewed by Martin Robinson. The cache is disabled in WebProcess::platformSetCacheModel() when the cache model is CacheModelDocumentViewer, but it's enabled again by WebProcess::setMemoryCacheDisabled() when memoryCacheDisabled creation parameter is processed. We need to make sure the cache model and memoryCacheDisabled parameters are consistent. * UIProcess/gtk/WebProcessPoolGtk.cpp: (WebKit::WebProcessPool::platformInitializeWebProcess): Initialize memoryCacheDisabled parameter to true if memory cache was explicitly disabled or cache model is CacheModelDocumentViewer. 2015-06-17 Zan Dobersek [WK2] valueForKey() shouldn't copy the defaults map https://bugs.webkit.org/show_bug.cgi?id=146050 Reviewed by Sam Weinig. * Shared/WebPreferencesStore.cpp: (WebKit::valueForKey): Avoid copying the defaults HashMap by binding the return value to a reference. 2015-06-16 Carlos Garcia Campos [GTK] Inhibit screen saver when playing full screen video https://bugs.webkit.org/show_bug.cgi?id=145795 Reviewed by Gustavo Noronha Silva. Use Freedesktop.org DBus API to inhibit/unhinibit the screen saver when entering/leaving fullscreen. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (screenSaverInhibitedCallback): (webkitWebViewBaseSendInhibitMessageToScreenSaver): (screenSaverProxyCreatedCallback): (webkitWebViewBaseInhibitScreenSaver): (webkitWebViewBaseUninhibitScreenSaver): (webkitWebViewBaseEnterFullScreen): (webkitWebViewBaseExitFullScreen): 2015-06-16 Gyuyoung Kim Purge PassRefPtr with Ref or RefPtr https://bugs.webkit.org/show_bug.cgi?id=146001 Reviewed by Darin Adler. As step to remove PassRefPtr, this patch reduces use of PassRefPtr in WebKit2. If function can't return nullptr, PassRefPtr is changed with Ref. If not, the function returns RefPtr. * DatabaseProcess/DatabaseToWebProcessConnection.cpp: (WebKit::DatabaseToWebProcessConnection::create): * DatabaseProcess/DatabaseToWebProcessConnection.h: * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h: (WebKit::DatabaseProcessIDBConnection::create): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: (WebKit::UniqueIDBDatabase::create): * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h: * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::create): * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/RemoteNetworkingContext.h: * PluginProcess/WebProcessConnection.cpp: (WebKit::WebProcessConnection::create): * PluginProcess/WebProcessConnection.h: * Shared/API/APINumber.h: (API::Number::create): * Shared/API/APISecurityOrigin.h: (API::SecurityOrigin::createFromString): (API::SecurityOrigin::create): * Shared/API/APISerializedScriptValue.h: (API::SerializedScriptValue::create): (API::SerializedScriptValue::adopt): * Shared/APIWebArchive.h: * Shared/APIWebArchive.mm: (API::WebArchive::create): * Shared/APIWebArchiveResource.h: * Shared/APIWebArchiveResource.mm: (API::WebArchiveResource::create): * Shared/AsyncRequest.h: * UIProcess/API/efl/ewk_url_request_private.h: (EwkUrlRequest::create): * UIProcess/API/efl/ewk_url_response_private.h: (EwkUrlResponse::create): * UIProcess/API/efl/ewk_url_scheme_request_private.h: (EwkUrlSchemeRequest::create): * UIProcess/API/efl/ewk_window_features_private.h: (EwkWindowFeatures::create): * UIProcess/API/efl/tests/test_ewk2_object.cpp: (TestEwkObject1::create): (TestEwkObject2::create): * UIProcess/API/gtk/WebKitBatteryProvider.cpp: (WebKitBatteryProvider::create): * UIProcess/API/gtk/WebKitBatteryProvider.h: * UIProcess/API/gtk/WebKitColorChooser.cpp: (WebKit::WebKitColorChooser::create): * UIProcess/API/gtk/WebKitGeolocationProvider.cpp: (WebKitGeolocationProvider::create): * UIProcess/API/gtk/WebKitNotificationProvider.cpp: (WebKitNotificationProvider::create): * UIProcess/API/gtk/WebKitNotificationProvider.h: * UIProcess/GeolocationPermissionRequestProxy.h: (WebKit::GeolocationPermissionRequestProxy::create): * UIProcess/InspectorServer/HTTPRequest.h: (WebKit::HTTPRequest::create): * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp: (WebKit::WebSoupCustomProtocolRequestManager::create): * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::create): * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/Notifications/NotificationPermissionRequest.cpp: (WebKit::NotificationPermissionRequest::create): * UIProcess/Notifications/NotificationPermissionRequest.h: * UIProcess/Notifications/WebNotification.h: (WebKit::WebNotification::create): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::scriptValueCallback): * UIProcess/WebVibrationProxy.cpp: (WebKit::WebVibrationProxy::create): * UIProcess/WebVibrationProxy.h: * UIProcess/WebViewportAttributes.h: (WebKit::WebViewportAttributes::create): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::createNonPersistent): (WebKit::WebsiteDataStore::create): * UIProcess/WebsiteData/WebsiteDataStore.h: * UIProcess/gtk/WebColorPickerGtk.cpp: (WebKit::WebColorPickerGtk::create): * UIProcess/gtk/WebColorPickerGtk.h: * UIProcess/gtk/WebContextMenuProxyGtk.h: (WebKit::WebContextMenuProxyGtk::create): * UIProcess/gtk/WebPopupMenuProxyGtk.h: (WebKit::WebPopupMenuProxyGtk::create): * UIProcess/mac/ViewSnapshotStore.h: * UIProcess/mac/ViewSnapshotStore.mm: (WebKit::ViewSnapshot::create): * UIProcess/mac/WebColorPickerMac.h: * UIProcess/mac/WebColorPickerMac.mm: (WebKit::WebColorPickerMac::create): * UIProcess/mac/WebContextMenuProxyMac.h: (WebKit::WebContextMenuProxyMac::create): * UIProcess/mac/WebPopupMenuProxyMac.h: (WebKit::WebPopupMenuProxyMac::create): * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h: * WebProcess/Databases/WebToDatabaseProcessConnection.h: (WebKit::WebToDatabaseProcessConnection::create): * WebProcess/FullScreen/WebFullScreenManager.cpp: (WebKit::WebFullScreenManager::create): * WebProcess/FullScreen/WebFullScreenManager.h: * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: (WebKit::InjectedBundleRangeHandle::create): * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h: * WebProcess/InjectedBundle/InjectedBundleBackForwardList.h: (WebKit::InjectedBundleBackForwardList::create): 2015-06-16 Carlos Alberto Lopez Perez Unreviewed build fix after r185615. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_clear_cache): Comment the call to the code removed and write down the bugzilla link for reimplementation. 2015-06-16 Anders Carlsson Get rid of performAPICallbackWithSecurityOriginDataVector https://bugs.webkit.org/show_bug.cgi?id=146039 Reviewed by Andreas Kling. Get rid of performAPICallbackWithSecurityOriginDataVector since it's now no longer used and add a bunch of includes to make up for SecurityOriginData.h no longer including GenericCallback.h. * DatabaseProcess/DatabaseProcess.cpp: * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: * Shared/SecurityOriginData.cpp: (WebKit::performAPICallbackWithSecurityOriginDataVector): Deleted. * Shared/SecurityOriginData.h: * Shared/WebsiteData/WebsiteData.cpp: * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: 2015-06-16 Ryuan Choi Unreviewed build fix attempt on CMake based port after r185623. * CMakeLists.txt: 2015-06-16 Anders Carlsson Move LocalStorageDetails into the local storage database tracker https://bugs.webkit.org/show_bug.cgi?id=146034 Reviewed by Andreas Kling. * UIProcess/API/C/WKKeyValueStorageManager.cpp: (WKKeyValueStorageManagerGetStorageDetailsByOrigin): (WKKeyValueStorageManagerDeleteAllEntries): * UIProcess/LocalStorageDetails.h: Removed. * UIProcess/Storage/LocalStorageDatabaseTracker.cpp: (WebKit::LocalStorageDatabaseTracker::originDetails): (WebKit::LocalStorageDatabaseTracker::details): Deleted. * UIProcess/Storage/LocalStorageDatabaseTracker.h: * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::getLocalStorageOriginDetails): (WebKit::StorageManager::getLocalStorageDetailsByOrigin): Deleted. (WebKit::StorageManager::deleteAllLocalStorageEntries): Deleted. * UIProcess/Storage/StorageManager.h: * WebKit2.xcodeproj/project.pbxproj: 2015-06-16 Dan Bernstein Removed the WebKit2SandboxProfiles target. Rubber-stamped by Anders Carlsson. WebKit2SandboxProfiles was just an alias for the Sandbox Profiles target, and it’s not needed anymore. * WebKit2.xcodeproj/project.pbxproj: 2015-06-16 Anders Carlsson Fold WebKeyValueStorageManager into WKKeyValueStorageManager https://bugs.webkit.org/show_bug.cgi?id=146030 Reviewed by Andreas Kling. * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKContext.cpp: (WKContextGetKeyValueStorageManager): * UIProcess/API/C/WKKeyValueStorageManager.cpp: (WKKeyValueStorageManagerGetTypeID): (WKKeyValueStorageManagerGetOriginKey): (WKKeyValueStorageManagerGetCreationTimeKey): (WKKeyValueStorageManagerGetModificationTimeKey): (WKKeyValueStorageManagerGetKeyValueStorageOrigins): (WKKeyValueStorageManagerGetStorageDetailsByOrigin): (WKKeyValueStorageManagerDeleteEntriesForOrigin): (WKKeyValueStorageManagerDeleteAllEntries): * UIProcess/WebKeyValueStorageManager.cpp: Removed. (WebKit::WebKeyValueStorageManager::supplementName): Deleted. (WebKit::WebKeyValueStorageManager::originKey): Deleted. (WebKit::WebKeyValueStorageManager::creationTimeKey): Deleted. (WebKit::WebKeyValueStorageManager::modificationTimeKey): Deleted. (WebKit::WebKeyValueStorageManager::create): Deleted. (WebKit::WebKeyValueStorageManager::WebKeyValueStorageManager): Deleted. (WebKit::WebKeyValueStorageManager::~WebKeyValueStorageManager): Deleted. (WebKit::WebKeyValueStorageManager::refWebContextSupplement): Deleted. (WebKit::WebKeyValueStorageManager::derefWebContextSupplement): Deleted. (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins): Deleted. (WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin): Deleted. (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin): Deleted. (WebKit::WebKeyValueStorageManager::deleteAllEntries): Deleted. * UIProcess/WebKeyValueStorageManager.h: Removed. * UIProcess/WebProcessPool.cpp: * WebKit2.xcodeproj/project.pbxproj: 2015-06-16 Alex Christensen CMake build fix after r185615. * CMakeLists.txt: Remove WebResourceCacheManager from CMake build system. 2015-06-16 Alex Christensen [Content Extensions] Implement branch compaction for DFA bytecode. https://bugs.webkit.org/show_bug.cgi?id=145619 Reviewed by Benjamin Poulain. * UIProcess/API/APIUserContentExtensionStore.h: Increment version number to reflect changes to bytecode. 2015-06-16 Anders Carlsson WebResourceCacheManager is unused, get rid of it https://bugs.webkit.org/show_bug.cgi?id=146027 Reviewed by Sam Weinig. * DerivedSources.make: * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKContext.cpp: * UIProcess/WebProcessPool.cpp: * UIProcess/WebResourceCacheManagerProxy.cpp: Removed. (WebKit::WebResourceCacheManagerProxy::supplementName): Deleted. (WebKit::WebResourceCacheManagerProxy::create): Deleted. (WebKit::WebResourceCacheManagerProxy::WebResourceCacheManagerProxy): Deleted. (WebKit::WebResourceCacheManagerProxy::~WebResourceCacheManagerProxy): Deleted. (WebKit::WebResourceCacheManagerProxy::processPoolDestroyed): Deleted. (WebKit::WebResourceCacheManagerProxy::processDidClose): Deleted. (WebKit::WebResourceCacheManagerProxy::shouldTerminate): Deleted. (WebKit::WebResourceCacheManagerProxy::refWebContextSupplement): Deleted. (WebKit::WebResourceCacheManagerProxy::derefWebContextSupplement): Deleted. (WebKit::WebResourceCacheManagerProxy::getCacheOrigins): Deleted. (WebKit::WebResourceCacheManagerProxy::didGetCacheOrigins): Deleted. (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin): Deleted. (WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins): Deleted. * UIProcess/WebResourceCacheManagerProxy.h: Removed. * UIProcess/WebResourceCacheManagerProxy.messages.in: Removed. * WebKit2.xcodeproj/project.pbxproj: * WebProcess/ResourceCache/WebResourceCacheManager.cpp: Removed. (WebKit::WebResourceCacheManager::supplementName): Deleted. (WebKit::WebResourceCacheManager::WebResourceCacheManager): Deleted. (WebKit::WebResourceCacheManager::getCacheOrigins): Deleted. (WebKit::WebResourceCacheManager::returnCacheOrigins): Deleted. (WebKit::WebResourceCacheManager::clearCacheForOrigin): Deleted. (WebKit::WebResourceCacheManager::clearCacheForAllOrigins): Deleted. * WebProcess/ResourceCache/WebResourceCacheManager.h: Removed. * WebProcess/ResourceCache/WebResourceCacheManager.messages.in: Removed. * WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.mm: Removed. (WebKit::partitionName): Deleted. (WebKit::WebResourceCacheManager::cfURLCacheHostNamesWithCallback): Deleted. (WebKit::WebResourceCacheManager::clearCFURLCacheForHostNames): Deleted. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): Deleted. 2015-06-16 Alex Christensen CMake build fix after r185601. * CMakeLists.txt: Remove application cache manager classes. 2015-06-16 Anders Carlsson Stop calling into WebResourceCacheManager https://bugs.webkit.org/show_bug.cgi?id=146026 Reviewed by Andreas Kling. Copy the cache clearing code into NetworkProcessCocoa in preparation of getting rid of the WebResourceCacheManager code. * NetworkProcess/NetworkProcess.cpp: (WebKit::fetchDiskCacheEntries): (WebKit::clearDiskCacheEntries): (WebKit::cfURLCacheOrigins): Deleted. * NetworkProcess/NetworkProcess.h: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::partitionName): (WebKit::NetworkProcess::cfURLCacheOrigins): (WebKit::NetworkProcess::clearCFURLCacheForOrigins): 2015-06-16 Anders Carlsson Get rid of the application cache manager classes, they are no longer used https://bugs.webkit.org/show_bug.cgi?id=146024 Reviewed by Sam Weinig. * DerivedSources.make: * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKContext.cpp: * UIProcess/WebApplicationCacheManagerProxy.cpp: Removed. (WebKit::WebApplicationCacheManagerProxy::supplementName): Deleted. (WebKit::WebApplicationCacheManagerProxy::create): Deleted. (WebKit::WebApplicationCacheManagerProxy::WebApplicationCacheManagerProxy): Deleted. (WebKit::WebApplicationCacheManagerProxy::~WebApplicationCacheManagerProxy): Deleted. (WebKit::WebApplicationCacheManagerProxy::processPoolDestroyed): Deleted. (WebKit::WebApplicationCacheManagerProxy::processDidClose): Deleted. (WebKit::WebApplicationCacheManagerProxy::shouldTerminate): Deleted. (WebKit::WebApplicationCacheManagerProxy::refWebContextSupplement): Deleted. (WebKit::WebApplicationCacheManagerProxy::derefWebContextSupplement): Deleted. (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins): Deleted. (WebKit::WebApplicationCacheManagerProxy::didGetApplicationCacheOrigins): Deleted. (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin): Deleted. (WebKit::WebApplicationCacheManagerProxy::deleteAllEntries): Deleted. * UIProcess/WebApplicationCacheManagerProxy.h: Removed. * UIProcess/WebApplicationCacheManagerProxy.messages.in: Removed. * UIProcess/WebProcessPool.cpp: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp: Removed. (WebKit::WebApplicationCacheManager::supplementName): Deleted. (WebKit::WebApplicationCacheManager::WebApplicationCacheManager): Deleted. (WebKit::WebApplicationCacheManager::getApplicationCacheOrigins): Deleted. (WebKit::WebApplicationCacheManager::deleteEntriesForOrigin): Deleted. (WebKit::WebApplicationCacheManager::deleteAllEntries): Deleted. (WebKit::WebApplicationCacheManager::setAppCacheMaximumSize): Deleted. * WebProcess/ApplicationCache/WebApplicationCacheManager.h: Removed. * WebProcess/ApplicationCache/WebApplicationCacheManager.messages.in: Removed. * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::clearApplicationCache): (WebKit::InjectedBundle::setAppCacheMaximumSize): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): Deleted. 2015-06-16 Brady Eidson IDB: Records table migration doesn't work with all versions of SQLite. https://bugs.webkit.org/show_bug.cgi?id=145993 Reviewed by Darin Adler, provisionally reviewed by Jon Lee. * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: (WebKit::v1RecordsTableSchema): (WebKit::v1RecordsTableSchemaAlternate): (WebKit::v2RecordsTableSchema): (WebKit::v2RecordsTableSchemaAlternate): (WebKit::createOrMigrateRecordsTableIfNecessary): Check both v1 and v1 Alternate whenever we check for the v1 schema. Ditto for the v2 schema. Crash all builds if the current schema is none of these. 2015-06-16 Dan Bernstein Build fix. * mac/postprocess-framework-headers.sh: 2015-06-16 Commit Queue Unreviewed, rolling out r185552. https://bugs.webkit.org/show_bug.cgi?id=146015 It broke some WK2 API tests on EFL bots (Requested by gyuyoung on #webkit). Reverted changeset: "[EFL] Make send/receive messages to communicate the Web and UI Processes using Injected Bundle." https://bugs.webkit.org/show_bug.cgi?id=145685 http://trac.webkit.org/changeset/185552 2015-06-16 Ryuan Choi [EFL] Add API tests for ewk_page https://bugs.webkit.org/show_bug.cgi?id=146004 Reviewed by Gyuyoung Kim. Add unit test for load_started/load_finished callbacks of ewk_page. * PlatformEfl.cmake: * UIProcess/API/efl/tests/extensions/extension_sample.cpp: * UIProcess/API/efl/tests/test_ewk2_page.cpp: Added. (EWK2PageTest::messageReceivedCallback): (EWK2PageTest::EWK2PageTest): (TEST_F): 2015-06-15 Simon Fraser [iOS WK2] position:fixed elements sometimes truncated on scroll view bouncing https://bugs.webkit.org/show_bug.cgi?id=146000 rdar://problem/19448439 Reviewed by Benjamin Poulain. When in the middle of a rubber-band (UIScrollView bounce), we could send a bad fixed position rect down to WebCore, causing 100% height elements to get laid out at the wrong height, possible too short. This occurred when -_updateVisibleContentRects said we were in a stable state, but the rubber-band offset caused WebPageProxy::computeCustomFixedPositionRect() to compute a bad rect via constrainedUnobscuredRect.intersect(documentRect). Fix by not claiming to be in a stable state during rubber-banding. Added _scrollViewIsRubberBanding to compute that, taking care with floating point comparisons for 3x devices. * UIProcess/API/Cocoa/WKWebView.mm: (isGreaterInDevicePixels): (-[WKWebView _scrollViewIsRubberBanding]): (-[WKWebView _updateVisibleContentRects]): 2015-06-15 Ryuan Choi Fix build break when ENABLE_SECCOMP_FILTERS is ON https://bugs.webkit.org/show_bug.cgi?id=145967 Reviewed by Carlos Garcia Campos. Since r183189, ArgumentEncoder::addAttachment requires rvalue reference. * Shared/linux/SeccompFilters/OpenSyscall.cpp: (WebKit::OpenSyscallResult::encode): Use WTF::move(). 2015-06-15 Chris Dumez [WK2] BrowsingContextController.loadData API is leaking Navigation objects https://bugs.webkit.org/show_bug.cgi?id=145977 Reviewed by Darin Adler. BrowsingContextController.loadData API was leaking Navigation objects. The issue was due to WebPageProxy::loadData() creating a Navigation object but not passing along the navigationID to the WebProcess when sending the Messages::WebPage::LoadData IPC. As a result, the WebProcess would use 0 as navigationID and we would end up creating a new Navigation object later on for the same navigation. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadData): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::loadData): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-06-15 Dan Bernstein REGRESSION (r185298): Databases service has Web Content service’s entitlements https://bugs.webkit.org/show_bug.cgi?id=145980 Reviewed by Darin Adler. * Configurations/DatabaseService.xcconfig: Set WK_XPC_SERVICE_IOS_ENTITLEMENTS_BASE to Databases-iOS. 2015-06-11 Jon Lee [WK2] Add allowsPictureInPictureMediaPlayback https://bugs.webkit.org/show_bug.cgi?id=145901 rdar://problem/21349851 Reviewed by Anders Carlsson. Replace _allowsAlternateFullscreen with allowsPictureInPictureMediaPlayback. * UIProcess/API/Cocoa/WKWebViewConfiguration.h: Add allowsPictureInPictureMediaPlayback. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): Remove _allowsAlternateFullscreen. (-[WKWebViewConfiguration copyWithZone:]): Replace the variable. (-[WKWebViewConfiguration _allowsAlternateFullscreen]): Deleted. (-[WKWebViewConfiguration _setAllowsAlternateFullscreen:]): Deleted. * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Remove the SPI. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): Update to use the new API. 2015-06-12 Alexey Proskuryakov -[WKWebView evaluateJavaScript] provides a misleading error when the return cannot be serialized https://bugs.webkit.org/show_bug.cgi?id=145900 Reviewed by Sam Weinig. We used to conflate to cases: (1) when there was a JavaScript exception, and (2) when the result could not be serialized for IPC. Turns out that it was quite misleading! * UIProcess/API/C/WKPage.cpp: (WKPageRunJavaScriptInMainFrame): * UIProcess/API/Cocoa/WKError.h: * UIProcess/API/Cocoa/WKError.mm: (localizedDescriptionForErrorCode): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView evaluateJavaScript:completionHandler:]): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runJavaScriptInMainFrame): (WebKit::WebPageProxy::scriptValueCallback): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::runJavaScriptInMainFrame): * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_run_javascript): (resourcesStreamReadCallback): 2015-06-15 Carlos Garcia Campos [SOUP] Custom URI schemes don't work for requests containing a fragment identifier https://bugs.webkit.org/show_bug.cgi?id=145969 Reviewed by Sergio Villar Senin. Use the WebKitSoupRequestGeneric request instead of creating a new one from the SoupRequest URI, since that is the network one and doesn't contain the fragment identifier part. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: (WebKit::CustomProtocolManagerImpl::start): 2015-06-15 Hyungwook Lee [EFL] Make send/receive messages to communicate the Web and UI Processes using Injected Bundle. https://bugs.webkit.org/show_bug.cgi?id=145685 Reviewed by Gyuyoung Kim. To have extensible port specific API facility using Injected Bundle, we need to load libewebkit_extension_manager.so in default that is same as what gtk port does. * UIProcess/API/efl/ewk_context.cpp: (EwkContext::EwkContext): (EwkContext::~EwkContext): (EwkContext::findOrCreateWrapper): (bundlePathForExtension): (EwkContext::create): Deleted. * UIProcess/API/efl/ewk_context_private.h: * WebProcess/efl/ExtensionManagerEfl.cpp: (WebKit::ExtensionManagerEfl::initialize): 2015-06-15 Carlos Garcia Campos [SOUP] Move WebKitSoupRequestGeneric to platform layer https://bugs.webkit.org/show_bug.cgi?id=145968 Reviewed by Sergio Villar Senin. * PlatformEfl.cmake: Remove WebKitSoupRequestGeneric. * PlatformGTK.cmake: Ditto. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h: 2015-06-15 Csaba Osztrogonác Fix unused private field warning in PageBanner.h https://bugs.webkit.org/show_bug.cgi?id=145925 Reviewed by Darin Adler. * WebProcess/WebPage/PageBanner.cpp: (WebKit::PageBanner::~PageBanner): * WebProcess/WebPage/PageBanner.h: Initialize m_type, m_webPage, m_mouseDownInBanner, and m_isHidden here instead of in the constructor. * WebProcess/WebPage/mac/PageBannerMac.mm: Use PLATFORM(MAC) instead of !PLATFORM(IOS), they are same in objc files. 2015-06-15 Carlos Garcia Campos [SOUP] Make WebKitSoupRequestGeneric independent from CustomProtocolManagerImpl https://bugs.webkit.org/show_bug.cgi?id=145966 Reviewed by Sergio Villar Senin. Add WebKitSoupRequestGenericClient with start and finish methods, that are implemented by WebKitSoupRequestGeneric. This allows us to move WebKitSoupRequestGeneric to platform layer. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: (WebKit::CustomProtocolManagerImpl::registerScheme): (WebKit::CustomProtocolManagerImpl::start): * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h: * WebProcess/soup/WebKitSoupRequestGeneric.cpp: (webkitSoupRequestGenericSendAsync): (webkitSoupRequestGenericSendFinish): * WebProcess/soup/WebKitSoupRequestGeneric.h: * WebProcess/soup/WebKitSoupRequestGenericClient.h: Added. 2015-06-14 Dan Bernstein Fixed the build. * mac/postprocess-framework-headers.sh: 2015-06-14 Michael Catanzaro Format string misuse in DatabaseProcessIDBConnection.cpp and UniqueIDBDatabaseBackingStoreSQLite.cpp https://bugs.webkit.org/show_bug.cgi?id=145960 Reviewed by Darin Adler. Use PRIu64 and PRIi64 to print uint64_t and int64_t, respectively. These things are different types on x86_64 Linux (unsigned long) and on Mac (unsigned long long). * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp: (WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata): (WebKit::DatabaseProcessIDBConnection::deleteDatabase): (WebKit::DatabaseProcessIDBConnection::openTransaction): (WebKit::DatabaseProcessIDBConnection::beginTransaction): (WebKit::DatabaseProcessIDBConnection::commitTransaction): (WebKit::DatabaseProcessIDBConnection::resetTransaction): (WebKit::DatabaseProcessIDBConnection::rollbackTransaction): (WebKit::DatabaseProcessIDBConnection::changeDatabaseVersion): (WebKit::DatabaseProcessIDBConnection::createObjectStore): (WebKit::DatabaseProcessIDBConnection::deleteObjectStore): (WebKit::DatabaseProcessIDBConnection::clearObjectStore): (WebKit::DatabaseProcessIDBConnection::createIndex): (WebKit::DatabaseProcessIDBConnection::deleteIndex): (WebKit::DatabaseProcessIDBConnection::putRecord): (WebKit::DatabaseProcessIDBConnection::getRecord): (WebKit::DatabaseProcessIDBConnection::count): (WebKit::DatabaseProcessIDBConnection::deleteRange): (WebKit::DatabaseProcessIDBConnection::openCursor): (WebKit::DatabaseProcessIDBConnection::cursorAdvance): (WebKit::DatabaseProcessIDBConnection::cursorIterate): * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: (WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::clearObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteIndex): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::generateKeyNumber): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::keyExistsInObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::putRecord): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::uncheckedPutIndexRecord): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteRecord): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRecordFromObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRangeRecordFromObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::advanceCursor): 2015-06-14 Dan Bernstein [Cocoa] Clean up postprocess-framework-headers.sh https://bugs.webkit.org/show_bug.cgi?id=145962 Reviewed by Darin Adler. * mac/postprocess-framework-headers.sh: Gather all the sed options in a variable, and then run sed only once on each header. Also, correctly exit with the sed return value if it fails. 2015-06-13 Chris Dumez [WK2] API::Navigation objects are leaked on history navigation to HistoryItems in PageCache https://bugs.webkit.org/show_bug.cgi?id=145948 Reviewed by Darin Adler. API::Navigation objects were leaked on history navigation to HistoryItems in PageCache. In such case, we would create 2 Navigation objects instead of 1 and the first one would be leaked. The reason we create the second one is because we fail to pass along the navigationID from the UIProcess to the WebProcess and then back to the UIProcess. On the IPC back to the UIProcess, the navigationID ends up being 0 so the UIProcess creates a new Navigation object, thinking that the load was triggered by the WebContent process. We now pass along the navigationID, even if the HistoryItem is in the PageCache and we end up reusing the cached DocumentLoader, instead of creating a new one. A new updateCachedDocumentLoader() delegate is added to the FrameLoaderClient, similarly to the pre-existing createDocumentLoader() but for the case where the DocumentLoader gets reused. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::updateCachedDocumentLoader): * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::goForward): (WebKit::WebPage::goBack): (WebKit::WebPage::goToBackForwardItem): (WebKit::WebPage::updateCachedDocumentLoader): * WebProcess/WebPage/WebPage.h: 2015-06-12 Gavin Barraclough Add private API to force page to always run at foreground priority https://bugs.webkit.org/show_bug.cgi?id=145946 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): - copy _alwaysRunsAtForegroundPriority to WebPageConfiguration. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration _alwaysRunsAtForegroundPriority]): (-[WKWebViewConfiguration _setAlwaysRunsAtForegroundPriority:]): - added _alwaysRunsAtForegroundPriority. * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: - added _alwaysRunsAtForegroundPriority. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): - initialize m_alwaysRunsAtForegroundPriority. (WebKit::WebPageProxy::updateActivityToken): - if m_alwaysRunsAtForegroundPriority is set always take the foreground activity token. * UIProcess/WebPageProxy.h: - added m_alwaysRunsAtForegroundPriority, alwaysRunsAtForegroundPriority. 2015-06-12 Anders Carlsson Reimplement WKResourceCacheManagerRef on top of WKWebsiteDataStoreRef https://bugs.webkit.org/show_bug.cgi?id=145951 Reviewed by Darin Adler. * UIProcess/API/C/WKContext.cpp: (WKContextGetResourceCacheManager): * UIProcess/API/C/WKResourceCacheManager.cpp: (WKResourceCacheManagerGetTypeID): (toWebsiteDataTypes): (WKResourceCacheManagerGetCacheOrigins): (WKResourceCacheManagerClearCacheForOrigin): (WKResourceCacheManagerClearCacheForAllOrigins): 2015-06-12 Anders Carlsson Reimplement WKApplicationCacheManagerRef as WKWebsiteDataStoreRef https://bugs.webkit.org/show_bug.cgi?id=145950 Reviewed by Dan Bernstein. * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKApplicationCacheManager.cpp: (WKApplicationCacheManagerGetTypeID): (WKApplicationCacheManagerGetApplicationCacheOrigins): (WKApplicationCacheManagerDeleteEntriesForOrigin): (WKApplicationCacheManagerDeleteAllEntries): * UIProcess/API/C/WKContext.cpp: (WKContextGetApplicationCacheManager): (WKContextGetPluginSiteDataManager): 2015-06-12 Anders Carlsson Clean up IndexedDB website data retrieval and removal https://bugs.webkit.org/show_bug.cgi?id=145941 Reviewed by Andreas Kling. - Use SecurityOrigin instead of SecurityOriginData; It's not possible to pass SecurityOriginData safely between threads. - Use std::chrono instead of double for modification times. - Get rid of endTime since it's not used. - Change deleteIndexedDatabaseEntriesForOrigin to deleteIndexedDatabaseEntriesForOrigins and make it take a vector of origins instead of a single one. - Get rid of deleteAllIndexedDatabaseEntries. - Change SecurityOriginData::securityOrigin to call isolatedCopy on the origin components, since it's common to pass origins to other threads and we want that to be safe. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::fetchWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteDataForOrigins): (WebKit::DatabaseProcess::indexedDatabaseOrigins): (WebKit::removeAllDatabasesForOriginPath): (WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigins): (WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedSince): (WebKit::DatabaseProcess::getIndexedDatabaseOrigins): Deleted. (WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigin): Deleted. (WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedBetweenDates): Deleted. (WebKit::DatabaseProcess::deleteAllIndexedDatabaseEntries): Deleted. * DatabaseProcess/DatabaseProcess.h: * Shared/SecurityOriginData.cpp: (WebKit::SecurityOriginData::securityOrigin): 2015-06-12 Antti Koivisto Network Cache: Use SHA1 for header checksum https://bugs.webkit.org/show_bug.cgi?id=145928 Reviewed by Chris Dumez. Use SHA1 everywhere for consistency and robustness. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::bodyPathForKey): (WebKit::NetworkCache::RecordMetaData::RecordMetaData): (WebKit::NetworkCache::decodeRecordMetaData): (WebKit::NetworkCache::decodeRecordHeader): (WebKit::NetworkCache::encodeRecordMetaData): (WebKit::NetworkCache::Storage::encodeRecord): (WebKit::NetworkCache::hashData): Deleted. This was the last user of 32 bit hashes in cache code. * NetworkProcess/cache/NetworkCacheStorage.h: Also bump the cache version number as recent changes have changed the format. Old caches would transition fine but this makes it easier to identify which version user has. 2015-06-12 Simon Fraser [iOS WK2] Video with reflection crashes WebKit and Safari https://bugs.webkit.org/show_bug.cgi?id=145905 rdar://problem/18364939 Reviewed by Anders Carlsson. On iOS, AVPlayerLayers are contained inside a WebVideoContainerLayer, but the layer type is still LayerTypeAVPlayerLayer. Avoid throwing exceptions when cloning such layers by checking the layer class. * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm: (WebKit::PlatformCALayerRemoteCustom::clone): 2015-06-12 Csaba Osztrogonác [EFL] Fix unused private field warning in WebContextMenuProxyEfl.cpp https://bugs.webkit.org/show_bug.cgi?id=145911 Reviewed by Darin Adler. * UIProcess/efl/WebContextMenuProxyEfl.cpp: (WebKit::WebContextMenuProxyEfl::WebContextMenuProxyEfl): Deleted. * UIProcess/efl/WebContextMenuProxyEfl.h: 2015-06-12 Zan Dobersek Unreviewed build fix after r185502. * NetworkProcess/cache/NetworkCacheFileSystem.cpp: GRefPtr.h header has been moved to a different place. 2015-06-12 Zan Dobersek [GLib] Move files under Source/WTF/wtf/gobject to Source/WTF/wtf/glib https://bugs.webkit.org/show_bug.cgi?id=145799 Reviewed by Carlos Garcia Campos. Update header inclusions for headers that have been moved to Source/WTF/wtf/glib/. * NetworkProcess/cache/NetworkCacheFileSystemPosix.h: * NetworkProcess/cache/NetworkCacheIOChannel.h: * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: * NetworkProcess/soup/NetworkProcessSoup.cpp: * PlatformEfl.cmake: * PlatformGTK.cmake: * Shared/Downloads/soup/DownloadSoup.cpp: * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h: * Shared/PrintInfo.h: * Shared/gtk/ArgumentCodersGtk.cpp: * Shared/gtk/ArgumentCodersGtk.h: * Shared/gtk/KeyedDecoder.h: * Shared/gtk/KeyedEncoder.h: * Shared/gtk/ProcessExecutablePathGtk.cpp: * UIProcess/API/gtk/WebKitBackForwardList.cpp: * UIProcess/API/gtk/WebKitBackForwardListItem.cpp: * UIProcess/API/gtk/WebKitColorChooser.h: * UIProcess/API/gtk/WebKitContextMenu.cpp: * UIProcess/API/gtk/WebKitContextMenuItem.cpp: * UIProcess/API/gtk/WebKitCookieManager.cpp: * UIProcess/API/gtk/WebKitDownload.cpp: * UIProcess/API/gtk/WebKitDownloadClient.cpp: * UIProcess/API/gtk/WebKitFaviconDatabase.cpp: * UIProcess/API/gtk/WebKitFileChooserRequest.cpp: * UIProcess/API/gtk/WebKitFindController.cpp: * UIProcess/API/gtk/WebKitFormClient.cpp: * UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp: * UIProcess/API/gtk/WebKitInjectedBundleClient.cpp: * UIProcess/API/gtk/WebKitJavascriptResult.cpp: * UIProcess/API/gtk/WebKitLoaderClient.cpp: * UIProcess/API/gtk/WebKitMimeInfo.cpp: * UIProcess/API/gtk/WebKitNavigationAction.cpp: * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp: * UIProcess/API/gtk/WebKitPolicyClient.cpp: * UIProcess/API/gtk/WebKitPrintOperation.cpp: * UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp: * UIProcess/API/gtk/WebKitUIClient.cpp: * UIProcess/API/gtk/WebKitURISchemeRequest.cpp: * UIProcess/API/gtk/WebKitUserContentManager.cpp: * UIProcess/API/gtk/WebKitWebContext.cpp: * UIProcess/API/gtk/WebKitWebInspector.cpp: * UIProcess/API/gtk/WebKitWebResource.cpp: * UIProcess/API/gtk/WebKitWebView.cpp: * UIProcess/API/gtk/WebKitWebViewBase.cpp: * UIProcess/InspectorServer/WebSocketServer.h: * UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp: * UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp: * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: * UIProcess/Plugins/gtk/PluginInfoCache.h: * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: * UIProcess/gtk/DragAndDropHandler.cpp: * UIProcess/gtk/GestureController.h: * UIProcess/gtk/InputMethodFilter.cpp: * UIProcess/gtk/InputMethodFilter.h: * UIProcess/gtk/WebInspectorProxyGtk.cpp: * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: * UIProcess/gtk/WebPopupMenuProxyGtk.h: * UIProcess/gtk/WebProcessPoolGtk.cpp: * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp: * WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp: * WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp: * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/gtk/LayerTreeHostGtk.h: * WebProcess/WebPage/gtk/PrinterListGtk.h: * WebProcess/WebPage/gtk/WebPageGtk.cpp: * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: * WebProcess/WebPage/gtk/WebPrintOperationGtk.h: * WebProcess/gtk/WebGtkExtensionManager.h: * WebProcess/soup/WebKitSoupRequestInputStream.cpp: * WebProcess/soup/WebProcessSoup.cpp: * WebProcess/soup/WebSoupRequestManager.h: 2015-06-12 Antti Koivisto Network Cache: Use SHA1 for key hash https://bugs.webkit.org/show_bug.cgi?id=143829 Reviewed by Anders Carlsson. For consistency with blobs, use SHA1 instead of MD5. * NetworkProcess/cache/NetworkCacheCoders.cpp: (WebKit::NetworkCache::Coder::encode): Deleted. (WebKit::NetworkCache::Coder::decode): Deleted. No longer needed. * NetworkProcess/cache/NetworkCacheCoders.h: * NetworkProcess/cache/NetworkCacheKey.cpp: (WebKit::NetworkCache::hashString): (WebKit::NetworkCache::Key::computeHash): * NetworkProcess/cache/NetworkCacheKey.h: 2015-06-12 Csaba Osztrogonác Fix mismatched-tags warning in Source/WebKit2/UIProcess/gtk/InputMethodFilter.h https://bugs.webkit.org/show_bug.cgi?id=145923 Reviewed by Carlos Garcia Campos. * UIProcess/gtk/InputMethodFilter.h: 2015-06-12 Antti Koivisto Use SHA1 for cache coder checksums https://bugs.webkit.org/show_bug.cgi?id=145880 Reviewed by Anders Carlsson. Make cache data error detection more robust by using SHA1 for checksums. * NetworkProcess/cache/NetworkCacheDecoder.cpp: (WebKit::NetworkCache::Decoder::Decoder): (WebKit::NetworkCache::Decoder::decodeFixedLengthData): (WebKit::NetworkCache::Decoder::decodeNumber): (WebKit::NetworkCache::Decoder::verifyChecksum): * NetworkProcess/cache/NetworkCacheDecoder.h: * NetworkProcess/cache/NetworkCacheEncoder.cpp: (WebKit::NetworkCache::Encoder::Encoder): (WebKit::NetworkCache::Encoder::grow): (WebKit::NetworkCache::Encoder::updateChecksumForData): (WebKit::NetworkCache::Encoder::encodeFixedLengthData): (WebKit::NetworkCache::Encoder::encodeNumber): (WebKit::NetworkCache::Encoder::encodeChecksum): * NetworkProcess/cache/NetworkCacheEncoder.h: (WebKit::NetworkCache::Encoder::buffer): (WebKit::NetworkCache::Encoder::bufferSize): (WebKit::NetworkCache::Encoder::updateChecksumForNumber): 2015-06-12 Csaba Osztrogonác [EFL] Fix deprecated declarations warnings related to WK2 versioned structs https://bugs.webkit.org/show_bug.cgi?id=145913 Reviewed by Gyuyoung Kim. * UIProcess/API/efl/ewk_favicon_database.cpp: (EwkFaviconDatabase::EwkFaviconDatabase): * UIProcess/efl/ContextHistoryClientEfl.cpp: (WebKit::ContextHistoryClientEfl::ContextHistoryClientEfl): * UIProcess/efl/ContextMenuClientEfl.cpp: (ContextMenuClientEfl::ContextMenuClientEfl): * UIProcess/efl/DownloadManagerEfl.cpp: (WebKit::DownloadManagerEfl::DownloadManagerEfl): * UIProcess/efl/FindClientEfl.cpp: (WebKit::FindClientEfl::FindClientEfl): * UIProcess/efl/FormClientEfl.cpp: (WebKit::FormClientEfl::FormClientEfl): * UIProcess/efl/PageUIClientEfl.cpp: (WebKit::PageUIClientEfl::PageUIClientEfl): 2015-06-11 Mark Lam WebCore::reportException() needs to be able to accept a raw thrown value in addition to Exception objects. https://bugs.webkit.org/show_bug.cgi?id=145872 Reviewed by Michael Saboff. * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::reportException): - Don't assume we have an Exception object. Let WebCore::reportException() take care of it. 2015-06-11 Carlos Alberto Lopez Perez [CMake] Unreviewed build fix after r185479. * CMakeLists.txt: Unlist the files that r185479 deleted. 2015-06-11 Anders Carlsson Get rid of WebOriginDataManager https://bugs.webkit.org/show_bug.cgi?id=145896 Reviewed by Andreas Kling. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::DatabaseProcess): Deleted. (WebKit::DatabaseProcess::getOrigins): Deleted. (WebKit::DatabaseProcess::deleteEntriesForOrigin): Deleted. (WebKit::DatabaseProcess::deleteEntriesModifiedBetweenDates): Deleted. (WebKit::DatabaseProcess::deleteAllEntries): Deleted. * DatabaseProcess/DatabaseProcess.h: * DerivedSources.make: * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKContext.cpp: * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::didReceiveMessage): Deleted. * UIProcess/WebOriginDataManagerProxy.cpp: Removed. (WebKit::WebOriginDataManagerProxy::supplementName): Deleted. (WebKit::WebOriginDataManagerProxy::create): Deleted. (WebKit::WebOriginDataManagerProxy::WebOriginDataManagerProxy): Deleted. (WebKit::WebOriginDataManagerProxy::~WebOriginDataManagerProxy): Deleted. (WebKit::WebOriginDataManagerProxy::processPoolDestroyed): Deleted. (WebKit::WebOriginDataManagerProxy::processDidClose): Deleted. (WebKit::WebOriginDataManagerProxy::shouldTerminate): Deleted. (WebKit::WebOriginDataManagerProxy::refWebContextSupplement): Deleted. (WebKit::WebOriginDataManagerProxy::derefWebContextSupplement): Deleted. (WebKit::CallbackSynchronizer::create): Deleted. (WebKit::CallbackSynchronizer::~CallbackSynchronizer): Deleted. (WebKit::CallbackSynchronizer::taskStarted): Deleted. (WebKit::CallbackSynchronizer::taskCompleted): Deleted. (WebKit::CallbackSynchronizer::CallbackSynchronizer): Deleted. (WebKit::createSynchronizedCallback): Deleted. (WebKit::sendMessageToAllProcessesInProcessPool): Deleted. (WebKit::WebOriginDataManagerProxy::getOrigins): Deleted. (WebKit::WebOriginDataManagerProxy::didGetOrigins): Deleted. (WebKit::WebOriginDataManagerProxy::deleteEntriesForOrigin): Deleted. (WebKit::WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates): Deleted. (WebKit::WebOriginDataManagerProxy::didDeleteEntries): Deleted. (WebKit::WebOriginDataManagerProxy::deleteAllEntries): Deleted. (WebKit::WebOriginDataManagerProxy::didDeleteAllEntries): Deleted. * UIProcess/WebOriginDataManagerProxy.h: Removed. * UIProcess/WebOriginDataManagerProxy.messages.in: Removed. * UIProcess/WebProcessPool.cpp: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/OriginData/WebOriginDataManager.cpp: Removed. (WebKit::WebOriginDataManager::WebOriginDataManager): Deleted. (WebKit::WebOriginDataManager::getOrigins): Deleted. (WebKit::WebOriginDataManager::deleteEntriesForOrigin): Deleted. (WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates): Deleted. (WebKit::WebOriginDataManager::deleteAllEntries): Deleted. * WebProcess/OriginData/WebOriginDataManager.h: Removed. * WebProcess/OriginData/WebOriginDataManager.messages.in: Removed. * WebProcess/OriginData/WebOriginDataManagerSupplement.h: Removed. (WebKit::WebOriginDataManagerSupplement::WebOriginDataManagerSupplement): Deleted. (WebKit::WebOriginDataManagerSupplement::~WebOriginDataManagerSupplement): Deleted. * WebProcess/WebCoreSupport/WebChromeClient.cpp: * WebProcess/WebPage/WebPage.cpp: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::~WebProcess): (WebKit::WebProcess::WebProcess): Deleted. (WebKit::WebProcess::getOrigins): Deleted. (WebKit::WebProcess::deleteEntriesForOrigin): Deleted. (WebKit::WebProcess::deleteEntriesModifiedBetweenDates): Deleted. (WebKit::WebProcess::deleteAllEntries): Deleted. * WebProcess/WebProcess.h: * WebProcess/cocoa/WebProcessCocoa.mm: 2015-06-11 Matt Rajca Media Session: Add plumbing for media control event delivery. https://bugs.webkit.org/show_bug.cgi?id=145859 Reviewed by Anders Carlsson. * UIProcess/API/C/WKPage.cpp: (WKPageHandleMediaEvent): * UIProcess/API/C/WKPagePrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleMediaEvent): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::handleMediaEvent): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-06-11 Myles C. Maxfield [OS X] Decoding fonts may return nil when using force click https://bugs.webkit.org/show_bug.cgi?id=145890 Reviewed by Beth Dakin. [NSFontDescriptor fontDescriptorWithFontAttributes] might return nil, which causes the encoding of an NSFont to erroneously return true. * Shared/mac/ArgumentCodersMac.mm: (IPC::decode): 2015-06-11 Anders Carlsson Reimplement WKOriginDataManager in terms of API::WebsiteDataStore https://bugs.webkit.org/show_bug.cgi?id=145889 Reviewed by Dan Bernstein. * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKContext.cpp: (WKContextGetOriginDataManager): * UIProcess/API/C/WKOriginDataManager.cpp: (WKOriginDataManagerGetTypeID): (WKOriginDataManagerGetOrigins): (WKOriginDataManagerDeleteEntriesForOrigin): (WKOriginDataManagerDeleteEntriesModifiedBetweenDates): (WKOriginDataManagerDeleteAllEntries): 2015-06-11 Brent Fulgham Full screen video space can be resized to 1pt wide https://bugs.webkit.org/show_bug.cgi?id=145895 Reviewed by Simon Fraser. Prior to the upcoming OS X, full screen mode was not resizable. Now that it is, we need to set a minimum window width that is large enough to hold the media controls. This makes our full-screen video behave the same as the QuickTimeX player. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Active that new kWKLayoutModeDynamicSizeWithMinimumViewSize style, and set the minimum view size to be the width of our media controls, with 20 pixels of padding on either side. (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Set the layout mode back to the default style. 2015-06-11 Jon Lee Update media controls JS and CSS to use picture-in-picture https://bugs.webkit.org/show_bug.cgi?id=145827 Reviewed by Dean Jackson. * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface): Deleted GetMediaUIImageData. 2015-06-11 Alex Christensen Speculative build fix for GTK after r185463. * CMakeLists.txt: Remove WebPluginSiteDataManager.cpp from CMake build. 2015-06-11 Anders Carlsson Remove WebPluginSiteDataManager https://bugs.webkit.org/show_bug.cgi?id=145884 Reviewed by Andreas Kling. * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::clearSiteData): Deleted. * PluginProcess/PluginProcess.h: * PluginProcess/PluginProcess.messages.in: * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKContext.cpp: * UIProcess/API/C/WKPluginSiteDataManager.cpp: * UIProcess/Plugins/PluginProcessManager.cpp: (WebKit::PluginProcessManager::clearSiteData): Deleted. * UIProcess/Plugins/PluginProcessManager.h: * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::clearSiteData): Deleted. (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): Deleted. (WebKit::PluginProcessProxy::didFinishLaunching): Deleted. (WebKit::PluginProcessProxy::didClearSiteData): Deleted. * UIProcess/Plugins/PluginProcessProxy.h: * UIProcess/Plugins/PluginProcessProxy.messages.in: * UIProcess/Plugins/WebPluginSiteDataManager.cpp: Removed. (WebKit::WebPluginSiteDataManager::GetSitesWithDataState::GetSitesWithDataState): Deleted. (WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin): Deleted. (WebKit::WebPluginSiteDataManager::GetSitesWithDataState::didGetSitesWithDataForSinglePlugin): Deleted. (WebKit::WebPluginSiteDataManager::ClearSiteDataState::ClearSiteDataState): Deleted. (WebKit::WebPluginSiteDataManager::ClearSiteDataState::clearSiteDataForNextPlugin): Deleted. (WebKit::WebPluginSiteDataManager::ClearSiteDataState::didClearSiteDataForSinglePlugin): Deleted. (WebKit::WebPluginSiteDataManager::create): Deleted. (WebKit::WebPluginSiteDataManager::WebPluginSiteDataManager): Deleted. (WebKit::WebPluginSiteDataManager::~WebPluginSiteDataManager): Deleted. (WebKit::WebPluginSiteDataManager::invalidate): Deleted. (WebKit::WebPluginSiteDataManager::getSitesWithData): Deleted. (WebKit::WebPluginSiteDataManager::didGetSitesWithData): Deleted. (WebKit::WebPluginSiteDataManager::clearSiteData): Deleted. (WebKit::WebPluginSiteDataManager::didClearSiteData): Deleted. (WebKit::WebPluginSiteDataManager::didGetSitesWithDataForSinglePlugin): Deleted. (WebKit::WebPluginSiteDataManager::didGetSitesWithDataForAllPlugins): Deleted. (WebKit::WebPluginSiteDataManager::didClearSiteDataForSinglePlugin): Deleted. (WebKit::WebPluginSiteDataManager::didClearSiteDataForAllPlugins): Deleted. * UIProcess/Plugins/WebPluginSiteDataManager.h: Removed. (WebKit::WebPluginSiteDataManager::processPool): Deleted. (WebKit::WebPluginSiteDataManager::clearProcessPool): Deleted. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::~WebProcessPool): Deleted. * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.cpp: * WebKit2.xcodeproj/project.pbxproj: 2015-06-11 Anders Carlsson Make WKWebsiteDataStoreRef backed by an API::WebsiteDataStore https://bugs.webkit.org/show_bug.cgi?id=145882 Reviewed by Dan Bernstein. * UIProcess/API/C/WKAPICast.h: * UIProcess/API/C/WKContext.cpp: (WKContextGetPluginSiteDataManager): * UIProcess/API/C/WKPluginSiteDataManager.cpp: (WKPluginSiteDataManagerGetTypeID): (WKPluginSiteDataManagerGetSitesWithData): (WKPluginSiteDataManagerClearSiteData): (WKPluginSiteDataManagerClearAllSiteData): 2015-06-11 Antti Koivisto Network process crashes decoding invalid cache entry on 32bit system https://bugs.webkit.org/show_bug.cgi?id=145842 rdar://problem/21228334 Reviewed by Anders Carlsson. After cache scheme changes we may end up decoding invalid cache entries. This is by design, we should just fail decoding and delete these entries. However Decoder::bufferIsLargeEnoughToContain test in some cases would allow corrupted large sizes due to overflow in 32bit pointer math and we would crash when allocating a string. * NetworkProcess/cache/NetworkCacheCoders.cpp: (WebKit::NetworkCache::Coder::decode): (WebKit::NetworkCache::decodeStringText): (WebKit::NetworkCache::Coder::decode): (WebKit::NetworkCache::Coder::encode): * NetworkProcess/cache/NetworkCacheCoders.h: * NetworkProcess/cache/NetworkCacheDecoder.cpp: (WebKit::NetworkCache::Decoder::Decoder): (WebKit::NetworkCache::Decoder::bufferIsLargeEnoughToContain): Reshuffle to avoid sum. (WebKit::NetworkCache::Decoder::decodeFixedLengthData): * NetworkProcess/cache/NetworkCacheDecoder.h: (WebKit::NetworkCache::Decoder::bufferSize): (WebKit::NetworkCache::Decoder::currentOffset): (WebKit::NetworkCache::Decoder::length): Deleted. (WebKit::NetworkCache::Decoder::isInvalid): Deleted. (WebKit::NetworkCache::Decoder::markInvalid): Deleted. Remove these, they are not really used or needed. 2015-06-10 Anders Carlsson Rewrite WKPluginSiteDataManager using WebsiteDataStore functions https://bugs.webkit.org/show_bug.cgi?id=145868 Reviewed by Antti Koivisto. * UIProcess/API/C/WKPluginSiteDataManager.cpp: (WKPluginSiteDataManagerGetSitesWithData): (WKPluginSiteDataManagerClearSiteData): (WKPluginSiteDataManagerClearAllSiteData): (toNPClearSiteDataFlags): Deleted. * UIProcess/Plugins/WebPluginSiteDataManager.h: (WebKit::WebPluginSiteDataManager::processPool): 2015-06-11 Antti Koivisto 3% cold PLT regression from network cache on iOS https://bugs.webkit.org/show_bug.cgi?id=145694 rdar://problem/21158245 Reviewed by Chris Dumez. Cache does not help in cold page loads but it shouldn't' be hurting either. Write I/O needs to be toned down a bit. * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: (WebKit::NetworkCache::IOChannel::IOChannel): (WebKit::NetworkCache::IOChannel::open): Dispatch channels inherit their I/O priority from the target queue. Use background queue for write I/O. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::dispatchPendingReadOperations): (WebKit::NetworkCache::Storage::dispatchPendingWriteOperations): Only write one file at a time instead of maximum of three. (WebKit::NetworkCache::Storage::retrieve): For consistency with store prepend new entries here too. (WebKit::NetworkCache::Storage::store): Delay start of the first write operation by 1s. Prepend instead of append to the pending write deque so retrieveFromMemory lookup finds newest entries first in case of duplicates (WebKit::NetworkCache::Storage::traverse): * NetworkProcess/cache/NetworkCacheStorage.h: 2015-06-10 Yongjun Zhang Don't send touch events on link preview. https://bugs.webkit.org/show_bug.cgi?id=145863 Disable web touch event recognizer on link preview. We do the same when finding nodes in inspector or when long press gesture is recognized (by _cancelAllTouches). Reviewed by Beth Dakin. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): Remove touch event gesture recognizer on preview start. (-[WKContentView didDismissPreviewViewController:committing:]): Add the gesture recognizer back on dismiss. 2015-06-10 Anders Carlsson WKWebsiteDataStore should handle removing plug-in data for individual records https://bugs.webkit.org/show_bug.cgi?id=145864 Reviewed by Beth Dakin. * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::deleteWebsiteDataForHostNames): * PluginProcess/PluginProcess.h: * PluginProcess/PluginProcess.messages.in: * UIProcess/Plugins/PluginProcessManager.cpp: (WebKit::PluginProcessManager::deleteWebsiteDataForHostNames): * UIProcess/Plugins/PluginProcessManager.h: * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames): (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): (WebKit::PluginProcessProxy::didFinishLaunching): (WebKit::PluginProcessProxy::didDeleteWebsiteDataForHostNames): * UIProcess/Plugins/PluginProcessProxy.h: * UIProcess/Plugins/PluginProcessProxy.messages.in: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::removeData): 2015-06-10 Anders Carlsson WKWebsiteDataStore should handle removing plug-in data https://bugs.webkit.org/show_bug.cgi?id=145862 Reviewed by Sam Weinig. * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::deleteWebsiteData): * PluginProcess/PluginProcess.h: * PluginProcess/PluginProcess.messages.in: * UIProcess/Plugins/PluginProcessManager.cpp: (WebKit::PluginProcessManager::deleteWebsiteData): * UIProcess/Plugins/PluginProcessManager.h: * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::~PluginProcessProxy): (WebKit::PluginProcessProxy::deleteWebsiteData): (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): (WebKit::PluginProcessProxy::didFinishLaunching): (WebKit::PluginProcessProxy::didDeleteWebsiteData): * UIProcess/Plugins/PluginProcessProxy.h: * UIProcess/Plugins/PluginProcessProxy.messages.in: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::removeData): 2015-06-10 Brent Fulgham [WK2] Do not indicate Media Keys are present when they are not https://bugs.webkit.org/show_bug.cgi?id=145713 Reviewed by Dean Jackson. Correct the reporting of Media Key presence by checking for the actual media key file, not just the directory. Sometimes the directory will exist with no media key files (e.g., if a user navigates to the directory using the Finder). * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::computeMediaKeyFile): Moved earlier in file so it could be used by the 'mediaKeyOrigins' method. (WebKit::WebsiteDataStore::mediaKeyOrigins): Only indicate we have a media key origin if the folder actually contains the media key file. (WebKit::WebsiteDataStore::removeMediaKeys): Use the existing 'computeMediaKeyFile', rather than manually building the file from strings. 2015-06-09 Anders Carlsson Support fetching website data https://bugs.webkit.org/show_bug.cgi?id=145828 Reviewed by Darin Adler. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::plugins): * UIProcess/WebsiteData/WebsiteDataStore.h: 2015-06-10 Zan Dobersek Unreviewed. Fixing the build for the GTK port with Clang. * UIProcess/gtk/InputMethodFilter.h: Add the header inclusion to avoid compilation errors due to missing std::function<>. 2015-06-10 Carlos Garcia Campos [GTK] Move KeyBindingTranslator from platform to WebKit2 layer https://bugs.webkit.org/show_bug.cgi?id=145840 Reviewed by Martin Robinson. It's currently used only by WebKit2 in the UI process and it's another file built twice because of the GTK2 plugin process. * PlatformGTK.cmake: * UIProcess/API/gtk/WebKitWebViewBase.cpp: * UIProcess/gtk/KeyBindingTranslator.cpp: Renamed from Source/WebCore/platform/gtk/KeyBindingTranslator.cpp. (WebKit::backspaceCallback): (WebKit::selectAllCallback): (WebKit::cutClipboardCallback): (WebKit::copyClipboardCallback): (WebKit::pasteClipboardCallback): (WebKit::toggleOverwriteCallback): (WebKit::popupMenuCallback): (WebKit::showHelpCallback): (WebKit::deleteFromCursorCallback): (WebKit::moveCursorCallback): (WebKit::KeyBindingTranslator::KeyBindingTranslator): (WebKit::KeyBindingTranslator::commandsForKeyEvent): * UIProcess/gtk/KeyBindingTranslator.h: Renamed from Source/WebCore/platform/gtk/KeyBindingTranslator.h. (WebKit::KeyBindingTranslator::addPendingEditorCommand): 2015-06-10 Carlos Garcia Campos [GTK] Get rid of GetEditorCommandsForKeyEvent sync message https://bugs.webkit.org/show_bug.cgi?id=145598 Reviewed by Žan Doberšek. We are sending GetEditorCommandsForKeyEvent sync message from web process to the UI process for every key pressed. And if the keydown event doesn't handle the key, the message is sent again for the keypress event, so in many cases it happens twice per keypress. We can get the list of commands when the key press event happens in the web view, and send it to the web process as part of the keyboard event like mac port does. In the web process, commands not inserting text will be handled by keydown and the rest in keypress without having to use any other IPC message for that. * Shared/NativeWebKeyboardEvent.h: Add command list parameter to the constructor. * Shared/WebEvent.h: Add GTK specific constructor that receives a list of commands and whether the event was handled by input methods. (WebKit::WebKeyboardEvent::commands): Returns the list of commands. * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent): Also copy the commands and handledByInputMethod member. * Shared/WebKeyboardEvent.cpp: (WebKit::WebKeyboardEvent::WebKeyboardEvent): Implement GTK specific constructor that receives a list of commands and whether the event was handled by input methods. (WebKit::WebKeyboardEvent::encode): Encode commands and handledByInputMethod. (WebKit::WebKeyboardEvent::decode): Decode commands and handledByInputMethod. * Shared/gtk/NativeWebKeyboardEventGtk.cpp: (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Add command list parameter to the constructor. * Shared/gtk/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebKeyboardEvent): Use the new WebKeyboardEvent constructor and simplify the code. We don't need to explicitly set VK_PROCESSKEY as windows virtual key code when the event was handled by input methods. The WebCore event handler already does that. * Shared/gtk/WebEventFactory.h: * UIProcess/API/gtk/PageClientImpl.cpp: (WebKit::PageClientImpl::getEditorCommandsForKeyEvent): Deleted. * UIProcess/API/gtk/PageClientImpl.h: * UIProcess/API/gtk/WebKitWebViewBase.cpp: Add a KeyBindingTranslator member. (webkitWebViewBaseKeyPressEvent): Use the new InputMethodFilter::filterKeyEvent() API and get the list of commands for the key when events was not handled by input methods. (webkitWebViewBaseKeyReleaseEvent): Use the new InputMethodFilter::filterKeyEvent() API. * UIProcess/PageClient.h: * UIProcess/WebPageProxy.messages.in: Remove GetEditorCommandsForKeyEvent message. * UIProcess/gtk/InputMethodFilter.cpp: (WebKit::InputMethodFilter::handleKeyboardEvent): Call the completation handler. (WebKit::InputMethodFilter::handleKeyboardEventWithCompositionResults): Ditto. (WebKit::InputMethodFilter::filterKeyEvent): Use a completion handler for the task, so that the caller (the web view) can handle the keyboard event. * UIProcess/gtk/InputMethodFilter.h: * UIProcess/gtk/WebPageProxyGtk.cpp: (WebKit::WebPageProxy::getEditorCommandsForKeyEvent): Deleted. * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: (WebKit::WebEditorClient::handleKeyboardEvent): Return earlier if the event was handled by input methods. And get the list of commands from the PlatformKeyboardEvent instead of sending a sync message to the UI process. (WebKit::WebEditorClient::handleInputMethodKeydown): If the event was handled by inpout methods, set the event as default handled so that the WebCore event handler sets VK_PROCESSKEY as windows virtual key code. (WebKit::WebEditorClient::getEditorCommandsForKeyEvent): Deleted. 2015-06-10 Carlos Garcia Campos Unreviewed. Fix GTK build after r185412. Add missing include. * NetworkProcess/cache/NetworkCacheFileSystem.cpp: 2015-06-10 Antti Koivisto NetworkCache: Delete old cache versions https://bugs.webkit.org/show_bug.cgi?id=145800 Reviewed by Darin Adler. * CMakeLists.txt: * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: (WebKit::NetworkCache::BlobStorage::synchronize): * NetworkProcess/cache/NetworkCacheFileSystem.cpp: Added. (WebKit::NetworkCache::directoryEntryType): (WebKit::NetworkCache::traverseDirectory): Pass entry type as callback argument. (WebKit::NetworkCache::deleteDirectoryRecursively): Add helper. (WebKit::NetworkCache::fileTimes): (WebKit::NetworkCache::updateFileModificationTimeIfNeeded): * NetworkProcess/cache/NetworkCacheFileSystem.h: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheFileSystemPosix.h. Move code to cpp. (WebKit::NetworkCache::traverseDirectory): Deleted. (WebKit::NetworkCache::traverseCacheFiles): Deleted. (WebKit::NetworkCache::fileTimes): Deleted. (WebKit::NetworkCache::updateFileModificationTimeIfNeeded): Deleted. * NetworkProcess/cache/NetworkCacheFileSystemPosix.h: Removed. * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache): * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::makeBlobDirectoryPath): (WebKit::NetworkCache::traverseRecordsFiles): Move cache hierarchy aware traversal code here from NetworkCacheFileSystem (for better layering). Rename for clarity. (WebKit::NetworkCache::deleteEmptyRecordsDirectories): Factor to a function. (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::synchronize): (WebKit::NetworkCache::Storage::traverse): (WebKit::NetworkCache::Storage::clear): Use traverseRecordsFiles for traversal. (WebKit::NetworkCache::Storage::shrink): (WebKit::NetworkCache::Storage::deleteOldVersions): Delete version subdirectories with version number less than the current version. Remove code for clearing unversioned V1 caches. No one should have them. * NetworkProcess/cache/NetworkCacheStorage.h: * UIProcess/API/APIUserContentExtensionStore.cpp: * WebKit2.xcodeproj/project.pbxproj: 2015-06-10 Zan Dobersek [GTK] Web Inspector is broken https://bugs.webkit.org/show_bug.cgi?id=145836 Reviewed by Carlos Garcia Campos. * PlatformGTK.cmake: Thread the InspectorBackendCommands.js file as a separate dependency of InspectorGResourceBundle.xml. It can't be listed under the InspectorFiles variable and then searched via the CMake glob command because it probably won't exist at the time the command is run (since it's copied into the specified path), so it won't be listed among the dependencies at all. 2015-06-09 Anders Carlsson Fix build. * UIProcess/Plugins/WebPluginSiteDataManager.cpp: (WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin): 2015-06-09 Anders Carlsson Change the PluginProcessManager data fetching function to take a completion handler https://bugs.webkit.org/show_bug.cgi?id=145821 Reviewed by Sam Weinig. * UIProcess/Plugins/PluginProcessManager.cpp: (WebKit::PluginProcessManager::fetchWebsiteData): (WebKit::PluginProcessManager::getSitesWithData): Deleted. * UIProcess/Plugins/PluginProcessManager.h: * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::generateCallbackID): (WebKit::PluginProcessProxy::~PluginProcessProxy): (WebKit::PluginProcessProxy::fetchWebsiteData): (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): (WebKit::PluginProcessProxy::didFinishLaunching): (WebKit::PluginProcessProxy::didGetSitesWithData): (WebKit::PluginProcessProxy::getSitesWithData): Deleted. * UIProcess/Plugins/PluginProcessProxy.h: * UIProcess/Plugins/WebPluginSiteDataManager.cpp: (WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin): 2015-06-09 Anders Carlsson Add code to keep track of plug-in data host names in website data records https://bugs.webkit.org/show_bug.cgi?id=145818 Reviewed by Andreas Kling. * Shared/WebsiteData/WebsiteData.cpp: (WebKit::WebsiteData::encode): (WebKit::WebsiteData::decode): * Shared/WebsiteData/WebsiteData.h: * UIProcess/WebsiteData/WebsiteDataRecord.cpp: (WebKit::WebsiteDataRecord::displayNameForPluginDataHostName): (WebKit::WebsiteDataRecord::addPluginDataHostName): (WebKit::WebsiteDataRecord::displayNameForCookieHostName): Deleted. * UIProcess/WebsiteData/WebsiteDataRecord.h: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): 2015-06-09 Anders Carlsson Add Plug-in type declarations to WKWebsiteDataRecord and friends https://bugs.webkit.org/show_bug.cgi?id=145816 Reviewed by Andreas Kling. * Shared/WebsiteData/WebsiteDataTypes.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (dataTypesToString): * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: 2015-06-09 Antti Koivisto REGRESSION(r185262): NetworkCache is in wrong location on OS X https://bugs.webkit.org/show_bug.cgi?id=145812 Reviewed by Anders Carlsson. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): (WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): (WebKit::WebProcessPool::isNetworkCacheEnabled): Make sure static functions that use NSUserDefaults call registerUserDefaultsIfNeeded() first. 2015-06-09 Yusuke Suzuki Crash when passing Symbol to NPAPI plugin objects https://bugs.webkit.org/show_bug.cgi?id=145798 Reviewed by Darin Adler. When the symbol is passed, `propertyName.publicName()` becomes nullptr. So dereferencing it causes null dereference errors. At first, this bug appears in the https://bugs.webkit.org/show_bug.cgi?id=145556, plugin[@@toStringTag] ("string" + plugin) causes SEGV in plugins/embed-inside-object.html test. This patch avoids it by early returning when the symbols are passed. Methods for symbols are not implemented in the NPObject side, so it works correctly. * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::npIdentifierFromIdentifier): (WebKit::JSNPObject::callMethod): (WebKit::JSNPObject::getOwnPropertySlot): (WebKit::JSNPObject::put): (WebKit::JSNPObject::deleteProperty): (WebKit::JSNPObject::propertyGetter): (WebKit::JSNPObject::methodGetter): 2015-06-09 Carlos Garcia Campos [SOUP] Network Cache: Give more priority to reads over writes in IO WorkQueue https://bugs.webkit.org/show_bug.cgi?id=145791 Reviewed by Sergio Villar Senin. Keep using G_PRIORITY_DEFAULT for reads, but use G_PRIORITY_DEFAULT_IDLE for writes now. * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::outputStreamWriteReadyCallback): Use G_PRIORITY_DEFAULT_IDLE for write async operations. (WebKit::NetworkCache::IOChannel::write): Pass G_PRIORITY_DEFAULT_IDLE to runTaskInQueue(). 2015-06-09 Carlos Garcia Campos [SOUP] Network Cache: run the IO completion handler in the given queue instead of the whole operation https://bugs.webkit.org/show_bug.cgi?id=145797 Reviewed by Žan Doberšek. I misunderstood what the WorkQueue parameter meant in the IO channel operations. It's the queue where the completion handler should be run, not the whole operation. Since our operations are already non-blocking, we can just run the read/writes in the main thread, and schedule the completion handler in the given work queue when the operation finishes. * NetworkProcess/cache/NetworkCacheIOChannel.h: * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::inputStreamReadReadyCallback): (WebKit::NetworkCache::IOChannel::read): (WebKit::NetworkCache::IOChannel::readSync): (WebKit::NetworkCache::outputStreamWriteReadyCallback): (WebKit::NetworkCache::IOChannel::write): 2015-06-09 David Kilzer REGRESSION (r185357): Fix build for iOS 8.x * UIProcess/ios/forms/WKFileUploadPanel.mm: (fallbackIconForFile): Add cast prior to iOS 9. 2015-06-09 Gyuyoung Kim [EFL] Fix a crash on MiniBrowser when running on debug mode https://bugs.webkit.org/show_bug.cgi?id=145793 Reviewed by Carlos Garcia Campos. r185314 missed to initialize parameters.diskCacheDirectory with configuration's one. * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::platformInitializeWebProcess): 2015-06-09 Csaba Osztrogonác [cmake] Fix the style issues in cmake project files https://bugs.webkit.org/show_bug.cgi?id=145755 Reviewed by Darin Adler. * CMakeLists.txt: * PlatformGTK.cmake: * PlatformMac.cmake: 2015-06-02 Jon Honeycutt [iOS] UI process memory spike, hang when uploading a very large JPEG When uploading an image, we generate a thumbnail to use for an icon that sits next to the control. To do this, we load the image and draw it into a thumbnail-sized canvas. This can be very expensive for large images. To fix this, we'll use CGImageSource API, which will allow us to get any existing thumbnail that exists in the source file. Reviewed by Darin Adler. * UIProcess/ios/forms/WKFileUploadPanel.mm: (squareCropRectForSize): Use std::round, based on Darin's review feedback that a) rintf is incorrect in 64-bit systems where CGFloat is a double, b) rintf uses a variable rounding mode, which is undesirable. (squareImage): Changed to take a CGImageRef. Use RetainPtr and +[UIImage imageWithCGImage:] to match other code in this file. (thumbnailSizedImageForImage): Changed to take a CGImageRef and to use iconSideLength. (iconForImageFile): Create an image source for the file, then use CGImageSource API to generate a thumbnail. (-[_WKImageFileUploadItem initWithFileURL:originalImage:]): Deleted. (-[_WKImageFileUploadItem displayImage]): Use iconForImageFile() rather than trying to generate an icon from the UIImage. (-[WKFileUploadPanel _uploadItemForImageData:imageName:successBlock:failureBlock:]): Removed originalImage parameter; _WKImageFileUploadItem no longer uses it. (-[WKFileUploadPanel _uploadItemForJPEGRepresentationOfImage:successBlock:failureBlock:]): (-[WKFileUploadPanel _uploadItemForImage:withAssetURL:successBlock:failureBlock:]): 2015-06-08 Dan Bernstein [Cocoa] Use generics in framework headers https://bugs.webkit.org/show_bug.cgi?id=145781 Reviewed by Sam Weinig. * mac/postprocess-framework-headers.sh: Use the parameter to WK_ARRAY and WK_SET. 2015-06-08 Chris Dumez Access GCController instance via GCController::singleton() instead of a free function https://bugs.webkit.org/show_bug.cgi?id=145776 Reviewed by Darin Adler. Access GCController instance via GCController::singleton() instead of a free function as per coding style and for consistency with other singleton classes in the codebase. * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::garbageCollectJavaScriptObjects): (WebKit::InjectedBundle::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::terminate): (WebKit::WebProcess::didClose): (WebKit::WebProcess::garbageCollectJavaScriptObjects): (WebKit::WebProcess::setJavaScriptGarbageCollectorTimerEnabled): 2015-06-08 Anders Carlsson Include IndexedDB databases in -[WKWebsiteDataStore allWebsiteDataTypes] https://bugs.webkit.org/show_bug.cgi?id=145775 Reviewed by Simon Fraser. * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (+[WKWebsiteDataStore allWebsiteDataTypes]): 2015-06-08 Anders Carlsson Move the snapshot layer contents SPI to the web view https://bugs.webkit.org/show_bug.cgi?id=145771 Reviewed by Geoffrey Garen. We need to potentially ask the web page to take a snapshot of the current item, so move the SPI to WKWebView and name it appropriately. * UIProcess/API/Cocoa/WKBackForwardListItem.mm: (-[WKBackForwardListItem _snapshotLayerContents]): Deleted. * UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h: Removed. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _snapshotLayerContentsForBackForwardListItem:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * WebKit2.xcodeproj/project.pbxproj: 2015-06-08 Brady Eidson Completely remove all IDB properties/constructors when it is disabled at runtime. rdar://problem/18429374 and https://bugs.webkit.org/show_bug.cgi?id=137034 Reviewed by Geoffrey Garen. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): Enable IDB at runtime if it's enabled at compile time. 2015-06-08 Michael Catanzaro [SOUP] Performs DNS prefetch when a proxy is configured (information leak) https://bugs.webkit.org/show_bug.cgi?id=145542 Reviewed by Alexey Proskuryakov. Add documentation to webkit_web_context_prefetch_dns to indicate that the function does nothing if the system configuration indicates we should use a proxy to resolve the host. * UIProcess/API/gtk/WebKitWebContext.cpp: 2015-06-08 Carlos Garcia Campos REGRESSION(r185251): [GTK] webkit_web_context_set_disk_cache_directory() doesn't work when using shared secondary process model after r185251 https://bugs.webkit.org/show_bug.cgi?id=145751 Reviewed by Darin Adler. In r185251 the CFNetwork cache was disabled in the web process, but it also removed the disk cache directory web process initialization parameter. While we support networking in the web process when shared secondary process model is used, the network cache should still work. We can remove this if we eventually switch to use the network process unconditionally. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): Encode disk cache directory. (WebKit::WebProcessCreationParameters::decode): Decode disk cache directory. * Shared/WebProcessCreationParameters.h: Bring back disk cache directory only for soup. * UIProcess/gtk/WebProcessPoolGtk.cpp: (WebKit::WebProcessPool::platformInitializeWebProcess): Initialize disk cache directory parameter. * WebProcess/soup/WebProcessSoup.cpp: (WebKit::WebProcess::platformInitializeWebProcess): Use the disck cache directory parameter again. 2015-06-08 Csaba Osztrogonác [GTK] Remove the unused scroll function from WebPageGtk.cpp https://bugs.webkit.org/show_bug.cgi?id=145756 Reviewed by Carlos Garcia Campos. * WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::scroll): Deleted. 2015-06-08 Gyuyoung Kim REGRESSION(r185262): [EFL] Modify legacyPlatformDefaultNetworkCacheDirectory() according to network cache https://bugs.webkit.org/show_bug.cgi?id=145752 Reviewed by Carlos Garcia Campos. EFL port needs to add different prefix for network cache directory since r185262. Modify it basedon GTK port fix. * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): 2015-06-07 Carlos Garcia Campos REGRESSION(r185262): [GTK] webkit_web_context_set_disk_cache_directory() doesn't work after r185262 https://bugs.webkit.org/show_bug.cgi?id=145735 Reviewed by Darin Adler. * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::platformInitializeNetworkProcess): Use the directory name to clear the old cache, since the disk cache subdirectory is now added in the UI process. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_set_disk_cache_directory): Update the WebProcessPool configuration to override the disk cache directory. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::ensureNetworkProcess): Use the configuration to get the disk cache directory. (WebKit::WebProcessPool::WebProcessPool): Remove m_diskCacheDirectory member initialization. * UIProcess/WebProcessPool.h: Remove m_diskCacheDirectory member. * UIProcess/gtk/WebProcessPoolGtk.cpp: (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Append the disk cache subdirectory. 2015-06-07 Gyuyoung Kim [EFL][GTK] Fix build break since r185262 https://bugs.webkit.org/show_bug.cgi?id=145724 Unreviewed, fix build break for EFL and GTK ports. * UIProcess/API/APIWebsiteDataStore.cpp: (API::WebsiteDataStore::defaultLocalStorageDirectory): (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): (API::WebsiteDataStore::defaultNetworkCacheDirectory): (API::WebsiteDataStore::defaultApplicationCacheDirectory): (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): (WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted. * WebProcess/soup/WebProcessSoup.cpp: (WebKit::WebProcess::platformInitializeWebProcess): 2015-06-06 Dan Bernstein Don’t enable manual sandboxing in the iOS Simulator. This should fix all the tests timing out. * Configurations/DebugRelease.xcconfig: 2015-06-06 Dan Bernstein [iOS] Can’t debug with Development XPC services due to automatic sandboxing https://bugs.webkit.org/show_bug.cgi?id=145731 Rubber-stamped by Darin Adler. In iOS, the XPC services are automatically sandboxed based on their entitlements. The sandbox doesn’t allow them to re-exec, which is necessary for linking against engineering builds of the WebKit frameworks placed in a non-system location. The solution is to opt Engineering builds into manual sandboxing. * Configurations/BaseTarget.xcconfig: - Add ENABLE_MANUAL_SANDBOXING to GCC_PREPROCESSOR_DEFINITIONS when WK_MANUAL_SANDBOXING_ENABLED is YES. - Set WK_MANUAL_SANDBOXING_ENABLED to YES for OS X, because we always use manual sandboxing on that platform. * Configurations/DebugRelease.xcconfig: Removed unused definition of DEBUG_OR_RELEASE. Set WK_MANUAL_SANDBOXING_ENABLED to YES for all engineering builds. * Configurations/BaseXPCService.xcconfig: Define CODE_SIGN_ENTITLEMENTS for iOS to be empty if the service is not installed; to use the base entitlements file from Configurations if manual sandboxing is not enabled; and to use a derived entitlements file, which doesn’t specify a sandbox profile, if manual sandboxing is enabled. * Configurations/DatabaseService.Development.xcconfig: Define WK_XPC_SERVICE_IOS_ENTITLEMENTS_BASE and let BaseXPCService.xcconfig define CODE_SIGN_ENTITLEMENTS for iOS. * Configurations/DatabaseService.xcconfig: Ditto. * Configurations/NetworkService.Development.xcconfig: Ditto. * Configurations/NetworkService.xcconfig: Ditto. * Configurations/WebContentService.Development.xcconfig: Ditto. * Configurations/WebContentService.xcconfig: Ditto. * WebKit2.xcodeproj/project.pbxproj: - In the Derived Sources target, added a Derive Entitlements for Manual Sandboxing script build phase. When building for iOS with manual sandboxing enabled, it creates copies of the iOS entitlements files with a -no-sandbox suffix and the seatbelt-profiles key removed. - In the WebKit target, added a Copy iOS Sandbox Profiles for Manual Sandboxing script build phase. When building for iOS with manual sandboxing enabled, it copies the iOS sandbox profiles into the framework, so that the services can apply them to themselves at runtime. * Shared/ios/ChildProcessIOS.mm: (WebKit::ChildProcess::initializeSandbox): Use ENABLE(MANUAL_SANDBOXING) and don’t define it here. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::initializeSandbox): Use ENABLE(MANUAL_SANDBOXING) instead of defining and using ENABLE_MANUAL_WEBPROCESS_SANDBOXING here. 2015-06-06 Anders Carlsson Remove support from getting plug-in information from Carbon resources https://bugs.webkit.org/show_bug.cgi?id=145730 Reviewed by Dan Bernstein. No current plug-in versions use this feature, and both Chrome and Mozilla for Mac stopped looking at Carbon resources years ago. * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::NetscapePluginModule::getPluginInfo): (WebKit::ResourceMap::ResourceMap): Deleted. (WebKit::ResourceMap::~ResourceMap): Deleted. (WebKit::ResourceMap::isValid): Deleted. (WebKit::getStringListResource): Deleted. (WebKit::getPluginInfoFromCarbonResources): Deleted. 2015-06-05 Anders Carlsson Only allow plug-ins to create custom MIME property lists on older versions of OS X https://bugs.webkit.org/show_bug.cgi?id=145716 Reviewed by Dan Bernstein. * PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm: * Shared/Plugins/Netscape/NetscapePluginModule.h: * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::getMIMETypesFromPluginBundle): * UIProcess/Plugins/PluginProcessProxy.h: * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: 2015-06-05 Chris Dumez [WK2][iOS] Limit the number of vnodes used by the WebContent processes https://bugs.webkit.org/show_bug.cgi?id=145672 Reviewed by Antti Koivisto. Have the WebContent process register a vnode pressure handler on iOS, which calls the memory pressure handler. On non-critical pressure, it will prune dead resources from the memory cache, which should free up some vnodes. On critical pressure, the handler will clear the PageCache and do a JS GC, which should free even more vnodes. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-06-05 Anders Carlsson Fix refacto, don't put IndexedDB databases in the cache directory https://bugs.webkit.org/show_bug.cgi?id=145714 Reviewed by Antti Koivisto. * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): 2015-06-05 Anders Carlsson Make the network cache directory part of WKContextConfigurationRef https://bugs.webkit.org/show_bug.cgi?id=145711 Reviewed by Antti Koivisto. Also, make the UI process be in control of where we place the new network cache. When using the Modern WebKit API, put the cache in ~/Library/Caches//WebKit/NetworkCache, and put the cache in ~/Library/Caches//WebKitCache otherwise (this is just for Safari). * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::open): * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::createWithLegacyOptions): (API::ProcessPoolConfiguration::ProcessPoolConfiguration): (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/C/WKContext.cpp: (WKContextSetDiskCacheDirectory): Deleted. * UIProcess/API/C/WKContextConfigurationRef.cpp: (WKContextConfigurationCopyDiskCacheDirectory): (WKContextConfigurationSetDiskCacheDirectory): * UIProcess/API/C/WKContextConfigurationRef.h: * UIProcess/API/C/WKContextPrivate.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess): (WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): (WebKit::WebProcessPool::isNetworkCacheEnabled): (WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted. * UIProcess/WebProcessPool.cpp: (WebKit::legacyWebsiteDataStoreConfiguration): (WebKit::WebProcessPool::WebProcessPool): (WebKit::WebProcessPool::ensureNetworkProcess): (WebKit::WebProcessPool::diskCacheDirectory): Deleted. * UIProcess/WebProcessPool.h: 2015-06-05 Anders Carlsson Make the application cache directory part of WKContextConfigurationRef https://bugs.webkit.org/show_bug.cgi?id=145704 Reviewed by Geoffrey Garen. * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::createWithLegacyOptions): (API::ProcessPoolConfiguration::ProcessPoolConfiguration): (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/C/WKContext.cpp: (WKContextSetApplicationCacheDirectory): Deleted. * UIProcess/API/C/WKContextConfigurationRef.cpp: (WKContextConfigurationCopyApplicationCacheDirectory): (WKContextConfigurationSetApplicationCacheDirectory): * UIProcess/API/C/WKContextConfigurationRef.h: * UIProcess/API/C/WKContextPrivate.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): (WebKit::WebProcessPool::createNewWebProcess): (WebKit::WebProcessPool::applicationCacheDirectory): Deleted. * UIProcess/WebProcessPool.h: 2015-06-05 Mark Lam finally blocks should not set the exception stack trace when re-throwing the exception. https://bugs.webkit.org/show_bug.cgi?id=145525 Reviewed by Geoffrey Garen. * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::reportException): - Changed to use the new Exception object. 2015-06-05 Anders Carlsson Disable the CFNetwork cache in the web process https://bugs.webkit.org/show_bug.cgi?id=145700 rdar://problem/20243343 Reviewed by Geoffrey Garen. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::open): * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Deleted. (WebKit::WebProcessCreationParameters::encode): Deleted. (WebKit::WebProcessCreationParameters::decode): Deleted. * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): Deleted. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createNewWebProcess): Deleted. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): Deleted. (WebKit::WebProcess::initializeWebProcess): Deleted. * WebProcess/WebProcess.h: * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformClearResourceCaches): (WebKit::WebProcess::platformInitializeWebProcess): (WebKit::WebProcess::platformSetCacheModel): Deleted. (WebKit::WebProcess::platformTerminate): Deleted. 2015-06-05 Anders Carlsson Consolidate default website data directory computations https://bugs.webkit.org/show_bug.cgi?id=145698 Reviewed by Andreas Kling. * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::ProcessPoolConfiguration): * UIProcess/API/APIWebsiteDataStore.h: * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: (API::WebsiteDataStore::defaultApplicationCacheDirectory): (API::WebsiteDataStore::defaultNetworkCacheDirectory): (API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): (API::WebsiteDataStore::defaultLocalStorageDirectory): (API::WebsiteDataStore::defaultMediaKeysStorageDirectory): (API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): (API::WebsiteDataStore::defaultDataStoreConfiguration): (API::applicationCacheDirectory): Deleted. 2015-06-01 Jon Honeycutt [iOS] Uploading an animated GIF from the photo library uploads a JPEG REGRESSION(r185091): Crash happens on indexdb tests https://bugs.webkit.org/show_bug.cgi?id=145549 Reviewed by Darin Adler. * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: Remove leakRef() use. (WebKit::WebIDBServerConnection::didCreateObjectStore): (WebKit::WebIDBServerConnection::didCreateIndex): (WebKit::WebIDBServerConnection::didDeleteIndex): (WebKit::WebIDBServerConnection::didPutRecord): (WebKit::WebIDBServerConnection::didGetRecord): (WebKit::WebIDBServerConnection::didOpenCursor): (WebKit::WebIDBServerConnection::didAdvanceCursor): (WebKit::WebIDBServerConnection::didIterateCursor): (WebKit::WebIDBServerConnection::didCount): (WebKit::WebIDBServerConnection::didDeleteRange): (WebKit::WebIDBServerConnection::didClearObjectStore): (WebKit::WebIDBServerConnection::didDeleteObjectStore): (WebKit::WebIDBServerConnection::didChangeDatabaseVersion): 2015-06-04 Joseph Pecoraro Web Inspector: REGRESSION: dragged node in the DOM Tree isn't positioned correctly https://bugs.webkit.org/show_bug.cgi?id=143912 Reviewed by Simon Fraser. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setDragImage): When using the WKWebView, convert the position from the WKView's coordinate system to the WKWebView's. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView draggingUpdated:]): * UIProcess/API/mac/WKView.mm: (-[WKView _dragImageForView:withImage:at:linkDrag:]): Whitespace cleanup in original drag code. 2015-06-04 Dan Bernstein Fixed the build. * UIProcess/API/Cocoa/WKErrorPrivate.h: 2015-06-04 Dan Bernstein Renamed the WebKit2SandboxProfiles target to Sandbox Profiles. Rubber-stamped by Anders Carlsson. * WebKit2.xcodeproj/project.pbxproj: Renamed the target. For now, added an aggregate target with the old name that depends on the renamed target. We can remove it once the build system doesn’t reference to old name. 2015-06-03 Dan Bernstein [Cocoa] Expose interruptedForPolicyChangeError https://bugs.webkit.org/show_bug.cgi?id=145627 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKErrorPrivate.h: Added WKErrorCodeFrameLoadInterruptedByPolicyChange with the same value as kWKErrorCodeFrameLoadInterruptedByPolicyChange. 2015-06-04 Chris Dumez [WK2] Prune more resources from the MemoryCache before process suspension https://bugs.webkit.org/show_bug.cgi?id=145633 Reviewed by Andreas Kling. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::lowMemoryHandler): (WebKit::NetworkProcess::initializeNetworkProcess): (WebKit::NetworkProcess::processWillSuspendImminently): (WebKit::NetworkProcess::prepareToSuspend): * NetworkProcess/NetworkProcess.h: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformLowMemoryHandler): * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::initializeProcess): Update low memory handler prototype to match WebCore changes. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::actualPrepareToSuspend): Pass Synchronous::Yes argument to MemoryPressureHandler::releaseMemory() to request that the memory is free up synchronously (e.g. synchronous JS garbage collection) as the process is about to be suspended. Previously, the memory pressure handler was trying to detect this case by checking if the system was really under memory pressure but this was a bit hackish and it wouldn't work if the process happened to get suspended while the system was under memory pressure. 2015-06-03 Carlos Alberto Lopez Perez [GTK] [Wayland] Build is broken on trunk https://bugs.webkit.org/show_bug.cgi?id=142879 Reviewed by Carlos Garcia Campos. * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::makeContextCurrent): When Wayland target is enabled GLNativeWindowType is not an u_int64 type. Cast contextID to avoid a build failure. 2015-06-03 Dan Bernstein Made WKBackForwardListItemPrivate.h a private header after it was added as internal in r185183. * WebKit2.xcodeproj/project.pbxproj: 2015-06-03 Hyungwook Lee [EFL] Implement window_object_cleared callback in EwkPageClient. https://bugs.webkit.org/show_bug.cgi?id=145603 Reviewed by Gyuyoung Kim. We need to provide right timing for custom JS API that may need to work at the beginning of the page. * UIProcess/API/efl/tests/extensions/extension_sample.cpp: * WebProcess/InjectedBundle/API/efl/ewk_page.cpp: (EwkPage::EwkPage): (EwkPage::didStartProvisionalLoadForFrame): (EwkPage::didClearWindowObjectForFrame): (EwkPage::didFinishDocumentLoadForFrame): * WebProcess/InjectedBundle/API/efl/ewk_page.h: * WebProcess/InjectedBundle/API/efl/ewk_page_private.h: 2015-06-03 Anders Carlsson Add SPI that returns the snapshot layer contents for a given back/forward list item https://bugs.webkit.org/show_bug.cgi?id=145621 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKBackForwardListItem.mm: (-[WKBackForwardListItem _snapshotLayerContents]): * UIProcess/API/Cocoa/WKBackForwardListItemInternal.h: * UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListItemInternal.h. * WebKit2.xcodeproj/project.pbxproj: 2015-06-02 Hyungwook Lee [EFL] Implement load_started callback in EwkPageClient. https://bugs.webkit.org/show_bug.cgi?id=145545 Reviewed by Gyuyoung Kim. We need to provide load_started callback to web extension module. * UIProcess/API/efl/tests/extensions/extension_sample.cpp: * WebProcess/InjectedBundle/API/efl/ewk_page.cpp: (EwkPage::EwkPage): (EwkPage::remove): (EwkPage::didStartProvisionalLoadForFrame): (EwkPage::didFinishDocumentLoadForFrame): * WebProcess/InjectedBundle/API/efl/ewk_page.h: * WebProcess/InjectedBundle/API/efl/ewk_page_private.h: 2015-06-02 Gavin Barraclough PDFs always think they're visible on iOS. https://bugs.webkit.org/show_bug.cgi?id=145493 Reviewed by Andreas Kling & Sam Weinig. The problem here is that WKContentView is currently responsible for notifying the WebPageProxy that the visibility may have changed, but when a PDF isn't showing the WKContentView isn't in the view hierarchy and doesn't receive the didMoveToWindow notifications – and the WKPDFView (which is in the view hierarchy) does not listen for these events. Visibility of the page should really just track the visibility of the WKWebView (and when actually assessing the visibility it largely does - the page client checks the web view's visibility, bar a FIXME, and the foreground/background check, which needs to change). So notifications should really just come from the WKWebView. The WKWebView already listens for the didMoveToWindow notification, it just was only updating the IsInWindow flag. Instead just update all flags, and the call to viewStateDidChange from WKContentView can just be removed. There is one problem with this in that it would reverse the order of the calls to viewStateDidChange & _updateForScreen:, which would mean the the view would become visible before updating the screen pixel density. To fix this, moving the call to _updateForScreen: to willMoveToWindow:, to ensure it occurs before the page becomes visible. This will also change behavior on Mac for WKWebView clients, in coalescing all view state changes within the didMoveToWindow call. This is the direction we intended to go in anyway (the plan is to remove the mayHaveChanged argument from viewStateDidChange - we're currently adding unnecessary IPC traffic). * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView didMoveToWindow]): - should update all view state flags. * UIProcess/API/ios/WKViewIOS.mm: (-[WKView didMoveToWindow]): - added to match WKWebView.mm, for WebKitTestRunner. * UIProcess/ios/WKContentView.mm: (-[WKContentView willMoveToWindow:]): - should _updateForScreen: (-[WKContentView didMoveToWindow]): Deleted. - functionality moved to -[WKWebView didMoveToWindow], -[WKContentView didMoveToWindow]. 2015-06-02 Chris Dumez [iOS][WK2] Always mark layers as volatile for background pages https://bugs.webkit.org/show_bug.cgi?id=145547 Reviewed by Simon Fraser. We previously marked layers as volatile when the WebProcess was about to be suspended. Most of the time the WebProcess gets suspended when a page goes into the background. However, it is not always true (see radar), in which case the layers won't be marked as volatile and use memory even though they are not visible. We now mark layers as volatile as soon as the page goes into the background, instead of relying on the WebProcess suspension mechanism to do so. A new ApplicationDidEnterBackground IPC message from the UIProcess to the WebProcess is added (in addition to the pre-existing ApplicationWillEnterForeground one). When the WebProcess receives this message, it will freeze the layer tree state and mark the layers as volatile (with a timer to keep retrying if needed), similarly to what is already done in WebProcess::actualPrepareToSuspend(). When the ApplicationWillEnterForeground is received, we unfreeze the layer tree state. The layers' volatile state will be automatically updated when they are displayed (see setBufferVolatility() call in RemoteLayerBackingStore::display()). * UIProcess/WebPageProxy.h: * UIProcess/ios/WKContentView.mm: (-[WKContentView _applicationDidEnterBackground:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationDidEnterBackground): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::setLayerTreeStateIsFrozen): (WebKit::WebPage::markLayersVolatileImmediatelyIfPossible): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::volatilityTimerFired): (WebKit::WebPage::applicationDidEnterBackground): (WebKit::WebPage::applicationWillEnterForeground): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::markAllLayersVolatileIfPossible): (WebKit::WebProcess::setAllLayerTreeStatesFrozen): 2015-06-02 Brady Eidson WebKit policy delegate should suggest if a navigation should be allowed to open URLs externally. rdar://problem/21025301 and https://bugs.webkit.org/show_bug.cgi?id=145280 Reviewed by Alex Christensen. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::clickedLink): * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::performFrameLoadURLRequest): (WebKit::PluginView::loadURL): * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: (WebKit::WebContextMenuClient::searchWithGoogle): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchCreatePage): * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::openInNewTab): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::loadURLInFrame): (WebKit::WebPage::loadRequest): (WebKit::WebPage::loadDataImpl): (WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): 2015-06-02 Gyuyoung Kim REGRESSION(r185091): Crash happens on indexdb tests https://bugs.webkit.org/show_bug.cgi?id=145549 Reviewed by Csaba Osztrogonác. r185091 caused crash on some indexeddb tests. The crash happens because IDBDatabaseError::create() doesn't dereference count by using ptr(). It makes a crash when dereferencing on ~Ref() destructor. To fix this issue, this patch uses leakRef() instead of ptr(). * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: (WebKit::WebIDBServerConnection::didCreateObjectStore): (WebKit::WebIDBServerConnection::didCreateIndex): (WebKit::WebIDBServerConnection::didDeleteIndex): (WebKit::WebIDBServerConnection::didPutRecord): (WebKit::WebIDBServerConnection::didGetRecord): (WebKit::WebIDBServerConnection::didOpenCursor): (WebKit::WebIDBServerConnection::didAdvanceCursor): (WebKit::WebIDBServerConnection::didIterateCursor): (WebKit::WebIDBServerConnection::didCount): (WebKit::WebIDBServerConnection::didDeleteRange): (WebKit::WebIDBServerConnection::didClearObjectStore): (WebKit::WebIDBServerConnection::didDeleteObjectStore): (WebKit::WebIDBServerConnection::didChangeDatabaseVersion): 2015-06-01 Enrica Casucci [iOS] Hardware Keyboard: All combinations for arrow keys with Shift do not extend the selection. https://bugs.webkit.org/show_bug.cgi?id=145538 rdar://problem/18504199 Reviewed by Darin Adler. The extend parameter was ignored in all the functions below. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _moveUp:withHistory:]): (-[WKContentView _moveDown:withHistory:]): (-[WKContentView _moveLeft:withHistory:]): (-[WKContentView _moveRight:withHistory:]): (-[WKContentView _moveToStartOfWord:withHistory:]): (-[WKContentView _moveToStartOfParagraph:withHistory:]): (-[WKContentView _moveToStartOfLine:withHistory:]): (-[WKContentView _moveToStartOfDocument:withHistory:]): (-[WKContentView _moveToEndOfWord:withHistory:]): (-[WKContentView _moveToEndOfParagraph:withHistory:]): (-[WKContentView _moveToEndOfLine:withHistory:]): (-[WKContentView _moveToEndOfDocument:withHistory:]): 2015-06-01 Anders Carlsson Use xpc_connection_set_oneshot_instance where possible https://bugs.webkit.org/show_bug.cgi?id=145535 rdar://problem/21109994 Reviewed by Sam Weinig. Use xpc_connection_set_oneshot_instance where possible; this will make sure that the web process instances go away when the web process exits. * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::connectToService): (WebKit::connectToReExecService): 2015-06-01 Enrica Casucci [iOS] Hardware Keyboard: Command + left arrow does not work. https://bugs.webkit.org/show_bug.cgi?id=145531 rdar://problem/18576402 Reviewed by Anders Carlsson. We were calling a non existent command (moveToStartOfLine) instead of moveToBeginningOfLine. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _moveToStartOfLine:withHistory:]): 2015-06-01 Brady Eidson Add WKTR support for "should open external URLs". https://bugs.webkit.org/show_bug.cgi?id=145505 Reviewed by Darin Adler. Expose C-spi to allow WKTR to set this bit on new loads: * UIProcess/API/C/WKPage.cpp: (WKPageLoadURLWithShouldOpenExternalURLsPolicy): * UIProcess/API/C/WKPagePrivate.h: Expose the bit on NavigationAction for the policy delegate: * WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp: (WKBundleNavigationActionGetShouldOpenExternalURLs): * WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h: Copied from Tools/WebKitTestRunner/WorkQueueManager.h. * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp: (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction): * WebProcess/InjectedBundle/InjectedBundleNavigationAction.h: (WebKit::InjectedBundleNavigationAction::shouldOpenExternalURLs): * WebKit2.xcodeproj/project.pbxproj: 2015-06-01 Gavin Barraclough PDFs always think they're visible on iOS. https://bugs.webkit.org/show_bug.cgi?id=145493 Unreviewed roll-out. Temporarily reverting this change – will need a workaround for test harness craziness. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView didMoveToWindow]): (-[WKWebView setOpaque:]): * UIProcess/ios/WKContentView.mm: (-[WKContentView willMoveToWindow:]): (-[WKContentView didMoveToWindow]): (-[WKContentView browsingContextController]): 2015-06-01 Csaba Osztrogonác [EFL] Remove unused const variable from EwkView.cpp https://bugs.webkit.org/show_bug.cgi?id=145512 Reviewed by Gyuyoung Kim. * UIProcess/API/efl/EwkView.cpp: 2015-06-01 Csaba Osztrogonác [cmake] Suppress unused parameter warnings in WebKit2 and TestNetscapePlugIn https://bugs.webkit.org/show_bug.cgi?id=145264 Reviewed by Carlos Garcia Campos. * CMakeLists.txt: Use COMPILE_FLAGS instead of CMAKE__FLAGS to put -Wno-unused-parameter after -Wextra. 2015-05-31 Gavin Barraclough PDFs always think they're visible on iOS. https://bugs.webkit.org/show_bug.cgi?id=145493 Reviewed by Andreas Kling. The problem here is that WKContentView is currently responsible for notifying the WebPageProxy that the visibility may have changed, but when a PDF isn't showing the WKContentView isn't in the view hierarchy and doesn't receive the didMoveToWindow notifications – and the WKPDFView (which is in the view hierarchy) does not listen for these events. Visibility of the page should really just track the visibility of the WKWebView (and when actually assessing the visibility it largely does - the page client checks the web view's visibility, bar a FIXME, and the foreground/background check, which needs to change). So notifications should really just come from the WKWebView. The WKWebView already listens for the didMoveToWindow notification, it just was only updating the IsInWindow flag. Instead just update all flags, and the call to viewStateDidChange from WKContentView can just be removed. There is one problem with this in that it would reverse the order of the calls to viewStateDidChange & _updateForScreen:, which would mean the the view would become visible before updating the screen pixel density. To fix this, move the call to _updateForScreen: to willMoveToWindow:, to ensure it occurs before the page becomes visible. This will also change behavior on Mac for WKWebView clients, in coalescing all view state changes within the didMoveToWindow call. This is the direction we intended to go in anyway (the plan is to remove the mayHaveChanged argument from viewStateDidChange - we're currently adding unnecessary IPC traffic). * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView didMoveToWindow]): - should update all view state flags. * UIProcess/ios/WKContentView.mm: (-[WKContentView willMoveToWindow:]): - should _updateForScreen: (-[WKContentView didMoveToWindow]): Deleted. - functionality moved to -[WKWebView didMoveToWindow], -[WKContentView didMoveToWindow]. 2015-05-30 Brady Eidson Make FrameLoader methods that take PassRefPtr take raw pointers instead. https://bugs.webkit.org/show_bug.cgi?id=145495 Reviewed by Alexey Proskuryakov. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): 2015-05-29 Joseph Pecoraro Web Inspector: Crash closing a related tab with Web Inspector open while page is refreshing https://bugs.webkit.org/show_bug.cgi?id=145488 Reviewed by Alexey Proskuryakov. * WebProcess/WebPage/WebInspector.h: * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::~WebInspector): Ensure, no matter how we close, that we have invalidated the frontend connection of which we are the client. (WebKit::WebInspector::createInspectorPage): This member variable will never be null. 2015-05-29 Andreas Kling [iOS] When bouncing back from max pinch zoom scale, scaleChangeRate should be 0. Reviewed by Benjamin Poulain. Make sure we don't send WebCore some velocity data with non-zero scaleChangeRate when we bounce back from being pinch-zoomed past the maximum scale. This fixes an issue where the bounce-back animation would cause a burst of unnecessary tile generation. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::adjustVelocityDataForBoundedScale): (WebKit::WebPage::updateVisibleContentRects): 2015-05-29 Jon Lee Fix preferences for wireless playback https://bugs.webkit.org/show_bug.cgi?id=145477 rdar://problem/21166767 Reviewed by Anders Carlsson. * UIProcess/API/C/WKPreferences.cpp: Add missing preference calls in C API. * UIProcess/API/C/WKPreferencesRef.h: 2015-05-29 Enrica Casucci [iOS] Cursor hidden in text area once it scrolls. https://bugs.webkit.org/show_bug.cgi?id=145451 rdar://problem/20356413 Reviewed by Simon Fraser. This patch fixes both the touch scrolling inside the overflow area as well as the programmatic scroll that occurs when inserting a new line. The first issue is fixed by implementing the chrome client methods didLayout, didStartOverflowScroll and didEndOverflowScroll. The second required changing the implementation of notifyRevealedSelectionByScrollingFrame. We not only need to notify the client to redraw the selection, but we also need to recompute the editorState, because scrolling might have occurred. I've removed the NotifyRevealedSelection message that was not needed any longer, since EditorStateChanged will do exactly what we want. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::editorStateChanged): (WebKit::WebPageProxy::notifyRevealedSelection): Deleted. * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: (WebKit::WebChromeClient::notifyRevealedSelectionByScrollingFrame): (WebKit::WebChromeClient::didLayout): (WebKit::WebChromeClient::didStartOverflowScroll): (WebKit::WebChromeClient::didEndOverflowScroll): 2015-05-29 Chris Dumez [iOS] Update WebContent process sandbox profile for AWD logging https://bugs.webkit.org/show_bug.cgi?id=145473 Reviewed by Darin Adler. Update WebContent process sandbox profile for AWD logging. * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: 2015-05-29 Anders Carlsson WebKit.framework installs or references Mac-only headers on iOS https://bugs.webkit.org/show_bug.cgi?id=145471 rdar://problem/21161459 Reviewed by Dan Bernstein. * UIProcess/API/C/mac/WKInspectorPrivateMac.h: Add an #if !TARGET_OS_IPHONE guard around the entire header. 2015-05-29 Anders Carlsson WKScriptMessageInternal.h should be a project header, not a private header https://bugs.webkit.org/show_bug.cgi?id=145464 rdar://problem/21161639 Reviewed by Dan Bernstein. * WebKit2.xcodeproj/project.pbxproj: 2015-05-28 Alexey Proskuryakov Clean up VisitedLinkProvider teardown https://bugs.webkit.org/show_bug.cgi?id=145450 rdar://problem/20244726 Reviewed by Brady Eidson. * UIProcess/VisitedLinkProvider.cpp: (WebKit::VisitedLinkProvider::~VisitedLinkProvider): 2015-05-28 Brady Eidson Change method of signaling "should open external urls" to WebKit. https://bugs.webkit.org/show_bug.cgi?id=145454 Reviewed by Dan Bernstein. Making this a property on the request was never a good idea. Adding a new extensible load SPI seems much better. * Shared/API/Cocoa/_WKNSURLRequestExtras.h: Removed. * Shared/API/Cocoa/_WKNSURLRequestExtras.mm: Removed. * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController loadRequest:userData:]): Since this API is deprecated, it always gets the default restrictive behavior. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView loadRequest:]): (-[WKWebView loadRequest:withOptions:]): Take an options dictionary that, for now, only supports one option. * UIProcess/API/Cocoa/WKWebViewPrivate.h: * WebKit2.xcodeproj/project.pbxproj: 2015-05-28 Anders Carlsson Make sure that we create the private WebKit.framework symlinks last https://bugs.webkit.org/show_bug.cgi?id=145442 Reviewed by Dan Bernstein. Move the "Add Symlinks in /System/Library/PrivateFrameworks/WebKit.framework" build phase to the "All" aggregate target. Also update the script now that INSTALL_PATH is different. * WebKit2.xcodeproj/project.pbxproj: 2015-05-28 Said Abou-Hallawa Code clean up for extracting information from the mix of WritingMode and TextDirection https://bugs.webkit.org/show_bug.cgi?id=143399 Reviewed by Darin Adler. * Shared/WebPopupItem.h: * UIProcess/API/C/efl/WKAPICastEfl.h: * UIProcess/WebPopupMenuProxy.h: enum TextDirection is moved from TextFlags.h to WritingMode.h. So include WritingMode.h instead of including TextFlags.h. 2015-05-28 Antti Koivisto Disable network cache for old clients https://bugs.webkit.org/show_bug.cgi?id=145418 Reviewed by Andreas Kling. Follow-up: Don't do linked-on-or-after checks for iOS Safari. * UIProcess/Cocoa/VersionChecks.mm: (WebKit::linkTimeVersion): (WebKit::linkedOnOrAfter): 2015-05-28 Matt Rajca Add ENABLE_MEDIA_SESSION feature flag (which is off by default). https://bugs.webkit.org/show_bug.cgi?id=145415 Reviewed by Eric Carlson. * Configurations/FeatureDefines.xcconfig: 2015-05-28 Gyuyoung Kim Unreviewed, Fix build break since r184930. * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::createTransientLocalStorageMap): Pass a pointer of SecurityOrigin in isSameSchemeHostPort(). 2015-05-28 Zan Dobersek Unreviewed. Fixing the build after r184950. * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::createSessionStorageMap): getOrCreateStorageArea() now expects a Ref object. 2015-05-28 Zan Dobersek [WK2] Handle WebCore::SecurityOrigin objects through Ref<> where possible https://bugs.webkit.org/show_bug.cgi?id=145373 Reviewed by Andreas Kling. WebCore::SecurityOrigin creation functions in most cases return a Ref object. In the WebKit2 layer, those objects were still largely converted to RefPtr<>s. This patch switches to using Ref<> where possible. The remaining uses of RefPtr are present due to HashTables, to-be-copied Vectors, WebCore::DatabaseManager::origins() API and code where non-null WebCore::SecurityOrigin can't be guaranteed. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigin): * NetworkProcess/NetworkProcess.cpp: (WebKit::cfURLCacheOrigins): * UIProcess/Storage/LocalStorageDatabase.cpp: (WebKit::LocalStorageDatabase::create): (WebKit::LocalStorageDatabase::LocalStorageDatabase): (WebKit::LocalStorageDatabase::openDatabase): (WebKit::LocalStorageDatabase::close): * UIProcess/Storage/LocalStorageDatabase.h: * UIProcess/Storage/LocalStorageDatabaseTracker.cpp: (WebKit::LocalStorageDatabaseTracker::origins): * UIProcess/Storage/LocalStorageDatabaseTracker.h: * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::StorageArea::securityOrigin): (WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::TransientLocalStorageNamespace::origins): (WebKit::StorageManager::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin): (WebKit::StorageManager::StorageArea::create): (WebKit::StorageManager::StorageArea::StorageArea): (WebKit::StorageManager::StorageArea::openDatabaseAndImportItemsIfNeeded): (WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea): (WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea): (WebKit::StorageManager::SessionStorageNamespace::origins): (WebKit::StorageManager::SessionStorageNamespace::clearStorageAreasMatchingOrigin): (WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reachedApplicationCacheOriginQuota): * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp: (WebKit::WebApplicationCacheManager::getApplicationCacheOrigins): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::setApplicationCacheOriginQuota): (WebKit::InjectedBundle::resetApplicationCacheOriginQuota): * WebProcess/ResourceCache/WebResourceCacheManager.cpp: (WebKit::WebResourceCacheManager::returnCacheOrigins): (WebKit::WebResourceCacheManager::clearCacheForOrigin): * WebProcess/WebCoreSupport/WebDatabaseManager.cpp: (WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin): (WebKit::WebDatabaseManager::deleteDatabasesForOrigin): (WebKit::WebDatabaseManager::setQuotaForOrigin): 2015-05-19 Jon Honeycutt [iOS] When viewing an MJPEG stream as the main resource, only the first frame paints Reviewed by Darin Adler. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::willReplaceMultipartContent): Tell the WebPage that we will replace multipart content. (WebKit::WebFrameLoaderClient::didReplaceMultipartContent): Tell the WebPage that we did replace multipart content. * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * WebProcess/WebPage/DrawingArea.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::willReplaceMultipartContent): Save the exposed content rect. (WebKit::WebPage::didReplaceMultipartContent): Restore the exposed content rect that was saved before this load. This fixes the issue for WK2. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::exposedContentRect): 2015-05-22 Jon Lee Fix macros for wireless playback https://bugs.webkit.org/show_bug.cgi?id=145239 rdar://problem/21049541 Reviewed by Anders Carlsson. Encompass the logic within ENABLE(WIRELESS_TARGET_PLAYBACK). Update property name. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.h: Update names. Add a WKDeprecated category section. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): Update name of variables to reflect new property names. (-[WKWebViewConfiguration copyWithZone:]): Ditto. (-[WKWebViewConfiguration mediaPlaybackAllowsAirPlay]): Get and set off of the new variable. (-[WKWebViewConfiguration setMediaPlaybackAllowsAirPlay:]): Ditto. (-[WKWebViewConfiguration mediaPlaybackRequiresUserAction]): Ditto. (-[WKWebViewConfiguration setMediaPlaybackRequiresUserAction:]): Ditto. 2015-05-27 Brady Eidson Add a "should open urls externally" flag to DocumentLoader. rdar://problem/21025301 and https://bugs.webkit.org/show_bug.cgi?id=145417 Reviewed by Geoff Garen. Rename "user initiated" to "should open external URLs": * Shared/API/Cocoa/_WKNSURLRequestExtras.h: * Shared/API/Cocoa/_WKNSURLRequestExtras.mm: (-[NSURLRequest _web_shouldOpenExternalURLs]): (-[NSMutableURLRequest _web_setShouldOpenExternalURLs:]): (-[NSURLRequest _web_isUserInitiated]): Deleted. (-[NSMutableURLRequest _web_setIsUserInitiated:]): Deleted. Hold the new flag as a bool, and encode/decode it across IPC: * Shared/NavigationActionData.cpp: (WebKit::NavigationActionData::encode): (WebKit::NavigationActionData::decode): (WebKit::NavigationActionData::NavigationActionData): Deleted. * Shared/NavigationActionData.h: * UIProcess/API/APINavigationAction.h: Add accessor for the bool flag. * UIProcess/API/C/WKPage.cpp: (WKPageLoadURLWithUserData): Use "ShouldNotAllow" in the legacy C API for now. (WKPageLoadURLRequestWithUserData): Ditto. * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController loadRequest:userData:]): Set the value of the flag based on whether or not the initiating NSURLRequest was user initiated. * UIProcess/API/Cocoa/WKNavigationAction.mm: (-[WKNavigationAction _shouldOpenExternalURLs]): Add accessor for the bool flag. * UIProcess/API/Cocoa/WKNavigationActionPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView loadRequest:]): Set the value of the flag based on whether or not the initiating NSURLRequest was user initiated. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadRequest): Pass the value down to the WebProcess to load. (WebKit::WebPageProxy::loadFile): Ditto, but always with "ShouldNotAllow". * UIProcess/WebPageProxy.h: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Translate the NavigationAction flag to a bool in the NavigationActionData object. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::loadRequest): Set the value of the flag in the FrameLoadRequest that will be loaded. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-05-27 Anders Carlsson Can't load local files in WKWebView from containerized app https://bugs.webkit.org/show_bug.cgi?id=145424 rdar://problem/20831176 Reviewed by Dan Bernstein. Allow the network process to load local files from its bundle as long as it has the sandbox extensions to do so. This was originally added to only allow SSO to read the Info.plist inside its own application bundle, but being able to read the application bundle from within the network process should be OK. * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: 2015-05-27 Andreas Kling [WK2] Local storage areas should get torn down when they have no remaining references. Reviewed by Darin Adler. Let StorageNamespaceImpl own its StorageAreaMaps weakly instead of through RefPtr. Ownership is flipped so that StorageAreaMap refs the StorageNamespaceImpl instead. This allows the StorageAreaMaps to get destroyed once all of its clients are gone. Practically speaking, this means that the garbage collector now decides when local storage databases can be closed, instead of us keeping them open for the lifetime of the web process. For session storage, it works a bit differently. In the web process, they get torn down when their last client disappears, but they stay alive in the UI process. If/when the web process asks the UI process to open session storage for an origin, the UI process checks if one already exists, and if so, just updates the ID of the old storage with the new one provided by the web process. * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::StorageArea::isSessionStorage): (WebKit::StorageManager::createTransientLocalStorageMap): (WebKit::StorageManager::createSessionStorageMap): (WebKit::StorageManager::destroyStorageMap): * WebProcess/Storage/StorageAreaImpl.cpp: (WebKit::StorageAreaImpl::securityOrigin): * WebProcess/Storage/StorageAreaImpl.h: * WebProcess/Storage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::StorageAreaMap): (WebKit::StorageAreaMap::~StorageAreaMap): * WebProcess/Storage/StorageAreaMap.h: (WebKit::StorageAreaMap::securityOrigin): * WebProcess/Storage/StorageNamespaceImpl.cpp: (WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap): (WebKit::StorageNamespaceImpl::storageArea): * WebProcess/Storage/StorageNamespaceImpl.h: 2015-05-27 Antti Koivisto Disable network cache for old clients https://bugs.webkit.org/show_bug.cgi?id=145418 rdar://problem/21126587 Reviewed by Andy Estes. Old clients might use NSURLCache API to clear the cache. New cache requires use of new APIs. * UIProcess/Cocoa/VersionChecks.h: Added. * UIProcess/Cocoa/VersionChecks.mm: Added. Add linked-on-or-after check mechanism similar to WebKit1. (WebKit::linkTimeVersion): (WebKit::linkedOnOrAfter): * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess): Use it when deciding whether to enable the cache. * WebKit2.xcodeproj/project.pbxproj: 2015-05-27 Dean Jackson img.currentSrc problem in strict mode with old picturefill https://bugs.webkit.org/show_bug.cgi?id=144095 Reviewed by Simon Fraser. Add a PICTURE_SIZES flag. * Configurations/FeatureDefines.xcconfig: 2015-05-27 Chris Dumez Assertion hit in WebPage::didChangeSelection() https://bugs.webkit.org/show_bug.cgi?id=145413 Reviewed by Ryosuke Niwa. We sometimes hit the "ASSERT(layoutCount == view->layoutCount())" assertion in WebPage::didChangeSelection(). We manage to prevent synchronous layouts in most cases when calling editorState(). However, it seems it can still happen in some cases. Crashing in this case seems overkill and can be annoying to other developers, especially considering the implications are only on performance. This patch drops the assertion. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection): Deleted. 2015-05-27 Anders Carlsson Address a follow-up review comment from Darin. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::removeMediaKeys): 2015-05-26 Anders Carlsson WKWebsiteDataStore should handle media keys https://bugs.webkit.org/show_bug.cgi?id=145394 rdar://problem/20617794. Reviewed by Darin Adler. * Shared/WebsiteData/WebsiteDataTypes.h: Add WebsiteDataTypeMediaKeys enum. * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: (API::WebsiteDataStore::defaultDataStoreConfiguration): Set up mediaKeysStorageDirectory. * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (dataTypesToString): * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: Added. Add _WKWebsiteDataTypeMediaKeys. * UIProcess/WebProcessPool.cpp: (WebKit::legacyWebsiteDataStoreConfiguration): Set up mediaKeysStorageDirectory. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::WebsiteDataStore): Set m_mediaKeysStorageDirectory. (WebKit::WebsiteDataStore::fetchData): Make CallbackAggregator ThreadSafeRefCounted. Handle WebsiteDataTypeMediaKeys by calling mediaKeyOrigins on our background queue. (WebKit::WebsiteDataStore::removeData): Make CallbackAggregator ThreadSafeRefCounted. Handle WebsiteDataTypeMediaKeys by calling removeMediaKeys on our background queue. (WebKit::WebsiteDataStore::mediaKeyOrigins): Compute the origins. (WebKit::computeMediaKeyFile): Add helper function that returns the media key given a containing directory. (WebKit::WebsiteDataStore::removeMediaKeys): Remove media key files. * UIProcess/WebsiteData/WebsiteDataStore.h: Add new members. * WebKit2.xcodeproj/project.pbxproj: Add new files. 2015-05-27 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.2 release. * gtk/NEWS: Add release notes for 2.9.2. 2015-05-27 Carlos Garcia Campos [SOUP] Network Cache: Handle the case when we fail to create the IO stream https://bugs.webkit.org/show_bug.cgi?id=145406 Reviewed by Sergio Villar Senin. We were asserting in that case, but it can happen that we fail to create the stream. It happened to me after r184690, that changed the NetworkCache::Key hash. Since this was not expected to happen, the async operation never finished and the completion handler never called, leaving resources loading forever. We should make sure we call the completion handler with an error code, so that the load finishes and the entry is silently removed from the cache. * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::IOChannel::read): (WebKit::NetworkCache::IOChannel::readSync): (WebKit::NetworkCache::IOChannel::write): 2015-05-26 Carlos Garcia Campos Network Cache: Add cache capacity to the totals of JSON file https://bugs.webkit.org/show_bug.cgi?id=145246 Reviewed by Antti Koivisto. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::dumpContentsToFile): * NetworkProcess/cache/NetworkCacheStorage.h: (WebKit::NetworkCache::Storage::capacity): 2015-05-26 Anders Carlsson Add a symlink for every file inside /S/L/F/WebKit.framework to the PrivateFrameworks mirror. rdar://problem/21111232. Reviewed by Dan Bernstein. * WebKit2.xcodeproj/project.pbxproj: 2015-05-26 Hunseop Jeong [EFL] webview should be updated from (0,0) when using the evasGL. https://bugs.webkit.org/show_bug.cgi?id=137948 Reviewed by Gyuyoung Kim. Changed the point of the start position to update the evasObject correctly when using the evasGL for graphics backend. * UIProcess/API/efl/EwkView.cpp: (EwkView::displayTimerFired): 2015-05-26 Dan Bernstein Update build settings Reviewed by Anders Carlsson. * Configurations/DebugRelease.xcconfig: * Configurations/FeatureDefines.xcconfig: * Configurations/Version.xcconfig: * Configurations/WebContentService.Development.xcconfig: * Configurations/WebContentService.xcconfig: 2015-05-26 Milan Crha [GTK] Expand wildcards inside generate-inspector-gresource-manifest.py https://bugs.webkit.org/show_bug.cgi?id=138134 Reviewed by Žan Doberšek. * PlatformGTK.cmake: Command line with expanded resources exceeds 32KB, which is a limit on Windows. It's better to expand wildcards inside the python script. 2015-05-25 Dan Bernstein ASSERT_MAIN_THREAD and DOM_ASSERT_MAIN_THREAD are unnecessary no-ops https://bugs.webkit.org/show_bug.cgi?id=145372 Reviewed by Sam Weinig. * Configurations/Base.xcconfig: Removed DISABLE_THREAD_CHECK from DEBUG_DEFINES. 2015-05-25 Carlos Garcia Campos [GTK] Add construct property to WebKitWebContext to set the IndexedDB database directory https://bugs.webkit.org/show_bug.cgi?id=140882 Reviewed by Gustavo Noronha Silva. Add WebKitWebContext:indexed-db-database-directory construct only property. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkitWebContextGetProperty): (webkitWebContextSetProperty): (webkitWebContextConstructed): (webkit_web_context_class_init): 2015-05-24 Sam Weinig Crash when using a removed ScriptMessageHandler https://bugs.webkit.org/show_bug.cgi?id=145359 Reviewed by Dan Bernstein. * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserMessageHandlerDescriptorProxy::~WebUserMessageHandlerDescriptorProxy): Invalidate the descriptor when the message handler client (as implemented by WebUserMessageHandlerDescriptorProxy) goes away. This will happen if a script message handler is removed at the API level or the WebUserContentController is destroyed (which will happen if all the pages get destroyed). 2015-05-23 Dan Bernstein /S/L/PrivateFrameworks/WebKit.framework is missing Headers and PrivateHeaders symlinks https://bugs.webkit.org/show_bug.cgi?id=145354 Reviewed by David Kilzer. * WebKit2.xcodeproj/project.pbxproj: Create Headers and PrivateHeaders symlinks alongside the dylib symlink. 2015-05-23 Sungmann Cho Rename ShareableResource::create(Handle&) to map(Handle&) to match SharedMemory. https://bugs.webkit.org/show_bug.cgi?id=145288 Reviewed by Sam Weinig. * Shared/ShareableResource.cpp: (WebKit::ShareableResource::Handle::tryWrapInSharedBuffer): (WebKit::ShareableResource::map): (WebKit::ShareableResource::create): Deleted. * Shared/ShareableResource.h: 2015-05-22 Jon Lee Rename MediaPlaybackAllowsInline https://bugs.webkit.org/show_bug.cgi?id=145315 Reviewed by Eric Carlson. Our API uses allowsInlineMediaPlayback. Our symbols should reflect the same. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMediaPlaybackAllowsInline): Update the call to preferences. The C API will not change in a future patch. (WKPreferencesGetMediaPlaybackAllowsInline): Ditto. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): Update the name of the key. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Ditto. * UIProcess/API/gtk/WebKitSettings.cpp: Update the call. (webkit_settings_get_media_playback_allows_inline): (webkit_settings_set_media_playback_allows_inline): 2015-05-22 Jon Lee Rename MediaPlaybackAllowsAirPlay https://bugs.webkit.org/show_bug.cgi?id=145316 Reviewed by Eric Carlson. In preparation for an API rename, update internal symbols from mediaPlaybackAllowsAirPlay to allowsAirPlayForMediaPlayback. * Shared/WebPreferencesDefinitions.h: Update the name. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): Ditto. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Update the call to settings. 2015-05-22 Jon Lee Unreviewed GTK fix after r184802. * UIProcess/API/gtk/WebKitSettings.cpp: (webkit_settings_get_media_playback_requires_user_gesture): (webkit_settings_set_media_playback_requires_user_gesture): 2015-05-22 Jon Lee Rename MediaPlaybackRequiresUserGesture https://bugs.webkit.org/show_bug.cgi?id=145314 Reviewed by Anders Carlsson. In preparation for an API rename, update internal symbols from mediaPlaybackRequiresUserGesture to requiresUserGestureForMediaPlayback. No changes are being made to the API in this patch. * Shared/WebPreferencesDefinitions.h: Update the name of the macro and the setting. * UIProcess/API/C/WKPreferences.cpp: The C API will not change in a future patch. (WKPreferencesSetMediaPlaybackRequiresUserGesture): Update the call to preferences. (WKPreferencesGetMediaPlaybackRequiresUserGesture): Ditto. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): Update the name of the key. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Ditto. 2015-05-22 Commit Queue Unreviewed, rolling out r183647. https://bugs.webkit.org/show_bug.cgi?id=145326 broke some toolbar blurring behavior (Requested by thorton on #webkit). Reverted changeset: "Asynchronous (or timed-out synchronous) resize flashes white instead of page background color" https://bugs.webkit.org/show_bug.cgi?id=144468 http://trac.webkit.org/changeset/183647 2015-05-22 Yongjun Zhang Image link doesn't create a preview view controller. https://bugs.webkit.org/show_bug.cgi?id=145320 Also try to create the preview view controller if the hit-tested node is a image link. Reviewed by Beth Dakin. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizerShouldBegin:]): (-[WKContentView previewViewControllerForPosition:inSourceView:]): 2015-05-22 Tim Horton Avoid doing an extra layout in some cases while doing scale-to-fit https://bugs.webkit.org/show_bug.cgi?id=145321 Reviewed by Beth Dakin. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): If we make it to scaleViewToFitDocumentIfNeeded with valid layout, the view width is still less than the last-known minimum document size, and the document size hasn't changed, update the view scale without doing an extra layout, keeping the fixed layout size at the previously computed minimum document size. 2015-05-22 Beth Dakin Yellow highlight and DD popover don't go away when scrolling an iframe https://bugs.webkit.org/show_bug.cgi?id=145312 -and corresponding- rdar://problem/19692334 Reviewed by Tim Horton. Match what Lookup already does for their popover and dismiss our popovers on scroll. * UIProcess/API/mac/WKView.mm: (-[WKView scrollWheel:]): This should not be needed anymore. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::pageDidScroll): 2015-05-22 Tim Horton Remove action menu support https://bugs.webkit.org/show_bug.cgi?id=145305 Reviewed by Anders Carlsson. * Configurations/WebKit.xcconfig: * Shared/API/c/WKActionMenuItemTypes.h: * Shared/API/c/WKActionMenuTypes.h: * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/mac/WKView.mm: (-[WKView _didPerformImmediateActionHitTest:contentPreventsDefault:userData:]): (-[WKView dealloc]): Deleted. (-[WKView mouseDown:]): Deleted. (-[WKView initWithFrame:processPool:configuration:webView:]): Deleted. (-[WKView prepareForMenu:withEvent:]): Deleted. (-[WKView willOpenMenu:withEvent:]): Deleted. (-[WKView didCloseMenu:withEvent:]): Deleted. (-[WKView _didPerformActionMenuHitTest:forImmediateAction:contentPreventsDefault:userData:]): Deleted. (-[WKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:]): Deleted. (-[WKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:userData:]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::performImmediateActionHitTestAtLocation): (WebKit::WebPageProxy::didPerformImmediateActionHitTest): (WebKit::WebPageProxy::performActionMenuHitTestAtLocation): Deleted. (WebKit::WebPageProxy::selectLastActionMenuRange): Deleted. (WebKit::WebPageProxy::focusAndSelectLastActionMenuHitTestResult): Deleted. (WebKit::WebPageProxy::didPerformActionMenuHitTest): Deleted. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didPerformImmediateActionHitTest): (WebKit::PageClientImpl::didPerformActionMenuHitTest): Deleted. * UIProcess/mac/WKActionMenuController.h: Removed. * UIProcess/mac/WKActionMenuController.mm: Removed. * UIProcess/mac/WKImmediateActionController.h: * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController didPerformImmediateActionHitTest:contentPreventsDefault:userData:]): (-[WKImmediateActionController immediateActionRecognizerWillPrepare:]): (-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]): (-[WKImmediateActionController didPerformActionMenuHitTest:contentPreventsDefault:userData:]): Deleted. * WebKit2.xcodeproj/project.pbxproj: * WebProcess/InjectedBundle/API/APIInjectedBundlePageContextMenuClient.h: (API::InjectedBundle::PageContextMenuClient::prepareForImmediateAction): (API::InjectedBundle::PageContextMenuClient::prepareForActionMenu): Deleted. * WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h: * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h: * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp: (WebKit::InjectedBundlePageContextMenuClient::prepareForImmediateAction): (WebKit::InjectedBundlePageContextMenuClient::prepareForActionMenu): Deleted. * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/WebPageOverlay.cpp: (WebKit::WebPageOverlay::actionContextForResultAtPoint): * WebProcess/WebPage/WebPageOverlay.h: (WebKit::WebPageOverlay::Client::actionContextForResultAtPoint): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::textIndicatorTransitionForImmediateAction): (WebKit::WebPage::performImmediateActionHitTestAtLocation): (WebKit::textIndicatorTransitionForActionMenu): Deleted. (WebKit::WebPage::performActionMenuHitTestAtLocation): Deleted. (WebKit::WebPage::selectLastActionMenuRange): Deleted. (WebKit::WebPage::focusAndSelectLastActionMenuHitTestResult): Deleted. Remove everything, except some enums that clients still refer to. Also, leave SPI that used to be shared between immediate actions and action menus intact, even if it had "action menu" in the name. We can deprecate and rename in another patch... except for the very recently-added support from r184106, which we'll revert entirely, removing WKBundlePageOverlayV2, which was not adopted by any clients. 2015-05-22 Brady Eidson Rework how the ResourceRequest user initiated property key is used. Followup to https://bugs.webkit.org/show_bug.cgi?id=145281 Reviewed by Dan Bernstein. * Shared/API/Cocoa/_WKNSURLRequestExtras.mm: (-[NSURLRequest _web_isUserInitiated]): (-[NSMutableURLRequest _web_setIsUserInitiated:]): * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (WKResourceRequestIsUserInitiatedKey): Deleted. (InitWebCoreSystemInterface): Deleted. 2015-05-21 Gavin Barraclough Networking process sometimes suspended while WebContent runnable https://bugs.webkit.org/show_bug.cgi?id=145291 Reviewed by Andreas Kling. There is an asymmetry in how the Networking process suspension is managed. We drop the assertion (& suspend the process) whenever the WebProcess says it is ready to suspend, but we only take the assertion (& resume execution) when the WebContent process is actually resumed. This leaves a race – where the WebContent process was willing to be suspended, but the UI app changed its mind suspending it. Since the WebContent process never actually suspended (we only prepared it to), we never send a resume, and since we never resume, we never wake the Networking process. The fix is pretty clean. A web process should take a token on the networking process precisely whenever it holds an assertion on the web content process. This also enables a nice refinement, that when holding a BG assertion on the WebContent process we only need to hold a BG assertion on the networking process. * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::didSetAssertionState): - no-op * UIProcess/Network/NetworkProcessProxy.h: - added didSetAssertionState. * UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::updateAssertionNow): (WebKit::ProcessThrottler::updateAssertion): (WebKit::ProcessThrottler::didConnectToProcess): - whenever taking/updating the assertion, inform the client via didSetAssertionState. * UIProcess/ProcessThrottlerClient.h: - added didSetAssertionState. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching): removed initializeNetworkProcessActivityToken - this is taken via ProcessThrottler::didConnectToProcess. (WebKit::WebProcessProxy::sendProcessDidResume): - removed call to initializeNetworkProcessActivityToken - updated via didSetAssertionState. (WebKit::WebProcessProxy::processReadyToSuspend): - removed update of m_tokenForNetworkProcess - updated via didSetAssertionState. (WebKit::WebProcessProxy::didSetAssertionState): - update m_backgroundTokenForNetworkProcess/m_foregroundTokenForNetworkProcess. (WebKit::WebProcessProxy::initializeNetworkProcessActivityToken): Deleted. - updated via didSetAssertionState. * UIProcess/WebProcessProxy.h: - added didSetAssertionState, added separate FG/BG activity tokens for Networking process. 2015-05-22 Dan Bernstein Fixed the fix for Symlink the WebKit dylib instead of just the framework directory https://bugs.webkit.org/show_bug.cgi?id=145287 Reviewed by Anders Carlsson. * WebKit2.xcodeproj/project.pbxproj: Give the symlink the correct destination. 2015-05-21 Brady Eidson Add an "initiated by user gesture" flag to ResourceRequest. https://bugs.webkit.org/show_bug.cgi?id=145281 Reviewed by Alex Christensen. Expose a new category on NSURLRequest to allow SPI clients to easily set/get the flag: * Shared/API/Cocoa/_WKNSURLRequestExtras.h: Added. * Shared/API/Cocoa/_WKNSURLRequestExtras.mm: Added. (-[NSURLRequest _web_isUserInitiated]): (-[NSMutableURLRequest _web_setIsUserInitiated:]): * WebKit2.xcodeproj/project.pbxproj: Expose the new property key to WebCore: * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (WKResourceRequestIsUserInitiatedKey): (InitWebCoreSystemInterface): 2015-05-21 Daniel Bates Rollout (https://bugs.webkit.org/show_bug.cgi?id=144657) Revert since pausing the database thread prevents in-progress transactions from completing. We need to think about this change some more. * UIProcess/WebPageProxy.h: * UIProcess/ios/WKContentView.mm: (-[WKContentView _applicationDidEnterBackground:]): Deleted. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationDidEnterBackground): Deleted. * WebProcess/WebCoreSupport/WebDatabaseManager.cpp: (WebKit::WebDatabaseManager::setPauseAllDatabases): Deleted. * WebProcess/WebCoreSupport/WebDatabaseManager.h: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applicationWillEnterForeground): Deleted. (WebKit::WebPage::applicationDidEnterBackground): Deleted. 2015-05-21 Enrica Casucci [iOS] Crash when taking a snapshot of a large PDF. https://bugs.webkit.org/show_bug.cgi?id=145286 rdar://problem/20892362 Reviewed by Tim Horton. The code for the PDF case was incorrectly computing the snapshot rect. On top of that drawViewHierarchyInRect was ignoring the rect and always creating an image using the view bounds causing the crash. We are now always using the IOSurface if we are parented or an image context when we are not. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): 2015-05-21 Anders Carlsson Symlink the WebKit dylib instead of just the framework directory https://bugs.webkit.org/show_bug.cgi?id=145287 rdar://problem/20830673 Reviewed by Dan Bernstein. * WebKit2.xcodeproj/project.pbxproj: 2015-05-21 Anders Carlsson WKWebsiteDataStore doesn't track and remove iOS Safari's offline application cache entries https://bugs.webkit.org/show_bug.cgi?id=145279 rdar://problem/20657912 Reviewed by Dan Bernstein. Special-case iOS Safari and WebApp when computing the default application cache directory. * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: (API::applicationCacheDirectory): (API::WebsiteDataStore::defaultDataStoreConfiguration): 2015-05-21 Brian Weinstein Add a _WKWebKitContentExtensionStore initializer that takes a path. https://bugs.webkit.org/show_bug.cgi?id=145269 and work towards Reviewed by Anders Carlsson. * UIProcess/API/APIUserContentExtensionStore.cpp: (API::UserContentExtensionStore::storeWithPath): * UIProcess/API/APIUserContentExtensionStore.h: * UIProcess/API/Cocoa/_WKUserContentExtensionStore.h: * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm: (+[_WKUserContentExtensionStore storeWithURL:]): 2015-05-21 Alexey Proskuryakov Build fix. Silence some deprecation warnings. * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _presentPopoverWithContentViewController:animated:]): * UIProcess/ios/forms/WKFormInputControl.mm: (-[WKDateTimePopover initWithView:datePickerMode:]): * UIProcess/ios/forms/WKFormPopover.h: * UIProcess/ios/forms/WKFormPopover.mm: * UIProcess/ios/forms/WKFormSelectPopover.mm: (-[WKSelectPopover initWithView:hasGroups:]): 2015-05-21 Csaba Osztrogonác [EFL] Remove an unused private field from EwkPopupMenuItem class https://bugs.webkit.org/show_bug.cgi?id=145249 Reviewed by Gyuyoung Kim. * UIProcess/API/efl/ewk_popup_menu.cpp: (EwkPopupMenu::EwkPopupMenu): * UIProcess/API/efl/ewk_popup_menu_private.h: 2015-05-21 Csaba Osztrogonác [EFL] Fix mismatched-tags warnings in UIProcess/API/efl https://bugs.webkit.org/show_bug.cgi?id=145129 Reviewed by Gyuyoung Kim. * UIProcess/API/efl/EwkViewCallbacks.h: * UIProcess/API/efl/ewk_application_cache_manager.h: * UIProcess/API/efl/ewk_auth_request.h: * UIProcess/API/efl/ewk_back_forward_list.h: * UIProcess/API/efl/ewk_back_forward_list_item.h: * UIProcess/API/efl/ewk_color_picker.h: * UIProcess/API/efl/ewk_context.h: * UIProcess/API/efl/ewk_context_menu_item.h: * UIProcess/API/efl/ewk_cookie_manager.h: * UIProcess/API/efl/ewk_database_manager.h: * UIProcess/API/efl/ewk_download_job.h: * UIProcess/API/efl/ewk_error.h: * UIProcess/API/efl/ewk_favicon_database.h: * UIProcess/API/efl/ewk_file_chooser_request.h: * UIProcess/API/efl/ewk_form_submission_request.h: * UIProcess/API/efl/ewk_navigation_data.h: * UIProcess/API/efl/ewk_navigation_policy_decision.h: * UIProcess/API/efl/ewk_object.h: * UIProcess/API/efl/ewk_page_group.h: * UIProcess/API/efl/ewk_popup_menu.h: * UIProcess/API/efl/ewk_popup_menu_item.h: * UIProcess/API/efl/ewk_security_origin.h: * UIProcess/API/efl/ewk_settings.h: * UIProcess/API/efl/ewk_storage_manager.h: * UIProcess/API/efl/ewk_url_request.h: * UIProcess/API/efl/ewk_url_response.h: * UIProcess/API/efl/ewk_url_scheme_request.h: * UIProcess/API/efl/ewk_view.h: * UIProcess/API/efl/ewk_window_features.h: * WebProcess/InjectedBundle/API/efl/ewk_extension.h: * WebProcess/InjectedBundle/API/efl/ewk_page.h: 2015-05-21 Csaba Osztrogonác Fix mismatched-tags warnings related to CoordinatedGraphics https://bugs.webkit.org/show_bug.cgi?id=145130 Reviewed by Darin Adler. * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in: * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: 2015-05-20 Gyuyoung Kim Unreviewed GTK build fix since r184686. * UIProcess/gtk/WebProcessPoolGtk.cpp: (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Add *legacy* prefix. (WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory): Deleted. 2015-05-20 Gyuyoung Kim Unreviewed EFL build fix since r184686. * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Add *legacy* prefix. (WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory): Deleted. 2015-05-20 Chris Dumez [WK2][iOS] Update WebContent process sandbox profile for AWD logging https://bugs.webkit.org/show_bug.cgi?id=145229 Reviewed by Alexey Proskuryakov. * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: 2015-05-20 Gavin Barraclough dispatchViewStateChange should not wait for sync reply if the page isn't visible https://bugs.webkit.org/show_bug.cgi?id=145242 Reviewed by Ben Poulain. This is particularly problematic on iOS, since if the page isn't visible the process is likely suspended. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::dispatchViewStateChange): (WebKit::WebPageProxy::waitForDidUpdateViewState): 2015-05-20 Marcos Chavarría Teijeiro Enable disk cache for range requests https://bugs.webkit.org/show_bug.cgi?id=144682 Reviewed by Antti Koivisto. Add Range header value to the network cache key constructor so we take into account this value. The 206 response code is also marked to be cached. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::makeCacheKey): (WebKit::NetworkCache::isStatusCodeCacheableByDefault): * NetworkProcess/cache/NetworkCacheKey.cpp: (WebKit::NetworkCache::Key::Key): (WebKit::NetworkCache::Key::operator=): (WebKit::NetworkCache::Key::computeHash): (WebKit::NetworkCache::Key::operator==): (WebKit::NetworkCache::Key::encode): (WebKit::NetworkCache::Key::decode): (WebKit::NetworkCache::Key::stringToHash): Deleted. * NetworkProcess/cache/NetworkCacheKey.h: 2015-05-20 Anders Carlsson WKWebsiteDataStore API doesn't report webkit.org as using Databases or App Cache after visiting http://www.webkit.org/demos/sticky-notes/ https://bugs.webkit.org/show_bug.cgi?id=145238 rdar://problem/20581175 Reviewed by Tim Horton. Make sure to set the application cache and WebSQL directories when using the legacy data store. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): (WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory): Rename this and move it to the right place. * UIProcess/WebProcessPool.cpp: (WebKit::legacyWebsiteDataStoreConfiguration): Rename this and add the application cache and WebSQL directories. (WebKit::WebProcessPool::WebProcessPool): Call legacyWebsiteDataStoreConfiguration. (WebKit::WebProcessPool::applicationCacheDirectory): Call legacyPlatformDefaultApplicationCacheDirectory. * UIProcess/WebProcessPool.h: 2015-05-20 Enrica Casucci [iOS] Using CSS viewport units causes incorrect layout. https://bugs.webkit.org/show_bug.cgi?id=145225 rdar://problem/20924495 Reviewed by Benjamin Poulain. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateViewportSizeForCSSViewportUnits): 2015-05-20 Tim Horton Allow overriding the waitForDidUpdateViewState timeout https://bugs.webkit.org/show_bug.cgi?id=145230 Reviewed by Darin Adler. * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState): Use the value from NSUserDefaults, if it exists. We'll only check once, so changing the default requires a restart of the UI process. 2015-05-20 Anders Carlsson Make sure we always have a process pool to perform data store operations with https://bugs.webkit.org/show_bug.cgi?id=145231 rdar://problem/20618248 Reviewed by Tim Horton. Make sure that we always return a process pool. If we're a legacy C SPI per-context data store, find the process pool we're a part of and use that. Otherwise, create a new one. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::processPools): 2015-05-19 Jer Noble Touching HTMLMediaElement.h or MediaPlayer.h causes a world rebuild. https://bugs.webkit.org/show_bug.cgi?id=145193 Reviewed by Eric Carlson. Use HTMLMediaElementEnums instead of HTMLMediaElement. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _isShowingVideoOptimized]): HTMLMediaElement -> HTMLMediaElementEnums. * UIProcess/ios/WebVideoFullscreenManagerProxy.h: * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::hasMode): Ditto. (WebKit::WebVideoFullscreenModelContext::fullscreenModeChanged): Ditto. (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Ditto. (WebKit::WebVideoFullscreenManagerProxy::fullscreenModeChanged): Ditto. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::enterVideoFullscreenForVideoElement): Ditto. * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/ios/WebVideoFullscreenManager.h: (WebKit::WebVideoFullscreenInterfaceContext::fullscreenMode): Ditto. (WebKit::WebVideoFullscreenInterfaceContext::setFullscreenMode): Ditto. * WebProcess/ios/WebVideoFullscreenManager.messages.in: * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Ditto. (WebKit::WebVideoFullscreenManager::fullscreenModeChanged): Ditto. (WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Ditto. 2015-05-20 Anders Carlsson Refactor process pool enumeration code in WebsiteDataStore https://bugs.webkit.org/show_bug.cgi?id=145218 Reviewed by Tim Horton. Also make sure to keep the WebProcessPool objects alive for the duration of the various data store operations. This is the first step towards having the data store create a single process pool lazily if there are no web views associated with the data store. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::removeData): (WebKit::WebsiteDataStore::processPools): * UIProcess/WebsiteData/WebsiteDataStore.h: 2015-05-20 Alex Christensen [Content Extensions] Relax restrictions on triggers that match everything. https://bugs.webkit.org/show_bug.cgi?id=145069 Reviewed by Benjamin Poulain. * UIProcess/API/APIUserContentExtensionStore.h: Increment version number to reflect changes in DFABytecode. 2015-05-20 Sungmann Cho Minor cleanups to PluginProcessProxy. https://bugs.webkit.org/show_bug.cgi?id=145199 Reviewed by Anders Carlsson. 1. Remove unnecessary forward declaration. 2. Remove unnecessary #include. * UIProcess/Plugins/PluginProcessProxy.cpp: * UIProcess/Plugins/PluginProcessProxy.h: 2015-05-20 Marcos Chavarría Teijeiro [GTK] Add some documentation to WebKitWebExtension https://bugs.webkit.org/show_bug.cgi?id=142786 Reviewed by Carlos Garcia Campos. WebKitWebExtension API documentation lacks of some details and the information available is in some contributors blog posts. I add the section documentation with a small guide about how to use WebExtensions. The code examples were taken from Carlos García and Adrián Pérez blog posts. * WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp: 2015-05-20 Sungmann Cho Rename WebsiteDataStore::isNonPersistent() to WebsiteDataStore::isPersistent(). https://bugs.webkit.org/show_bug.cgi?id=145111 Reviewed by Darin Adler. This is a follow up to https://bugs.webkit.org/show_bug.cgi?id=144158. * UIProcess/API/APIWebsiteDataStore.cpp: (API::WebsiteDataStore::isPersistent): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::removeData): * UIProcess/WebsiteData/WebsiteDataStore.h: (WebKit::WebsiteDataStore::isPersistent): (WebKit::WebsiteDataStore::isNonPersistent): Deleted. 2015-05-20 Hyungwook Lee [EFL] Fix build failure, linker does not find libXext. https://bugs.webkit.org/show_bug.cgi?id=144100 Reviewed by Gyuyoung Kim. Move Xext library from WebProcess_LIBRARIES to WebKit2_LIBRARIES. * PlatformEfl.cmake: 2015-05-19 Carlos Garcia Campos [SOUP] Network Cache: Implement ShareableResource for Soup and enable it for GTK platform https://bugs.webkit.org/show_bug.cgi?id=144380 Reviewed by Antti Koivisto. It improves the network cache performance, by mmaping big resources and sending only the file descriptor to the web process instead of the actual file data. It needs some changes in cross-platform code, because we can't use the same approach as mac (it uses a platform specific implementation not available in other platforms). * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::store): Use Data::tryCreateSharedMemory() to create the shared memory used by the ShareableResource. Also add an ASSERT instead of checking the shareable resource created is not nullptr, because the ShareableResource::create() that receives a shared memory should never return nullptr. * NetworkProcess/cache/NetworkCacheData.h: * NetworkProcess/cache/NetworkCacheDataCocoa.mm: (WebKit::NetworkCache::Data::tryCreateSharedMemory): * NetworkProcess/cache/NetworkCacheDataSoup.cpp: (WebKit::NetworkCache::Data::tryCreateSharedMemory): Create a SharedMemory object to wrap the mapped file, but keeping the ownership. * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord): Use Data::tryCreateSharedMemory() to create the shared memory used bythe ShareableResource. Also add an ASSERT instead of checking the shareable resource created is not nullptr, because the ShareableResource::create() that receives a shared memory should never return nullptr. * Platform/SharedMemory.h: * Platform/unix/SharedMemoryUnix.cpp: (WebKit::SharedMemory::map): Use wrapMap() and initialize m_isWrappingMap to false. (WebKit::SharedMemory::wrapMap): Create a SharedMemory object for the given map, without taking its ownership. (WebKit::SharedMemory::~SharedMemory): Do not unmap and close the file descriptor if m_isWrappingMap is true. * Shared/ShareableResource.cpp: (WebKit::createShareableResourceDeallocator): (WebKit::ShareableResource::wrapInSharedBuffer): Create a SharedBuffer wrapping the ShareableResource data. (WebKit::ShareableResource::Handle::tryWrapInSharedBuffer): Create a ShareableResource for the handle and create a SharedBuffer wrapping it. * Shared/ShareableResource.h: * WebKit2Prefix.h: Enable ENABLE_SHAREABLE_RESOURCE for GTK. * WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::didReceiveResource): Get the CFData from the SharedBuffer for QuickLook instead of wrapping the handle again. 2015-05-19 Carlos Garcia Campos [SOUP] Network Cache: Disable network cache efficacy logging https://bugs.webkit.org/show_bug.cgi?id=145172 Reviewed by Martin Robinson. Disable network cache efficacy logging by default, since we are not currently using the collected data. * UIProcess/soup/WebProcessPoolSoup.cpp: (WebKit::WebProcessPool::platformInitializeNetworkProcess): 2015-05-19 Michael Saboff REGRESSION(183787): JIT is enabled for all builds https://bugs.webkit.org/show_bug.cgi?id=145179 Reviewed by Geoffrey Garen. Eliminated the setting of ENABLE_JIT, as wtf/Platform.h has appropriate logic to set it depending on OS and CPU type. * Configurations/FeatureDefines.xcconfig: 2015-05-19 Brady Eidson X-Frame-Options headers not respected when loading from application cache. and https://bugs.webkit.org/show_bug.cgi?id=131800 Reviewed by Alexey Proskuryakov. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::loadDataImpl): 2015-05-19 Sungmann Cho Add PLUGIN_ARCHITECTURE(MAC) around WKNVCALayerRenderServerPort in NetscapeBrowserFunc.h. https://bugs.webkit.org/show_bug.cgi?id=145173 Reviewed by Anders Carlsson. WKNVCALayerRenderServerPort in NetscapeBrowserFunc.h is meaningful only for Mac. So we need to add PLUGIN_ARCHITECTURE(MAC) around it. * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.h: 2015-05-19 Brent Fulgham REGRESSION(142590): Part 2: Scroll-snap points are improperly snapping to earlier index values (Scrolling Thread) https://bugs.webkit.org/show_bug.cgi?id=145175 Reviewed by Beth Dakin. Add a stub implementation of isScrollSnapInProgress to match ScrollingCoordinator signature. * WebProcess/Scrolling/RemoteScrollingCoordinator.h: * WebProcess/Scrolling/RemoteScrollingCoordinator.mm: (WebKit::RemoteScrollingCoordinator::isScrollSnapInProgress): Added stub. 2015-05-19 Jeremy Jones WebVideoFullscreenManagerProxy has incorrect OS_VERSION_MIN_REQUIRED conditionals. https://bugs.webkit.org/show_bug.cgi?id=145158 Reviewed by Eric Carlson. * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): 2015-05-19 Ting-Wei Lan [SOUP] Use st_birthtime to get creation time of files on systems support it https://bugs.webkit.org/show_bug.cgi?id=144989 Reviewed by Carlos Garcia Campos. FreeBSD and NetBSD have either st_birthtime field or compatiblity macro with the same name in stat. It is better to use it instead of manually setting xattr, which is unreliable because both operating systems and file systems support are required. * NetworkProcess/cache/NetworkCacheFileSystemPosix.h: (WebKit::NetworkCache::fileTimes): * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::IOChannel::IOChannel): 2015-05-19 Chris Dumez Mark static variables as const when possible https://bugs.webkit.org/show_bug.cgi?id=145161 Reviewed by Andreas Kling. * Platform/IPC/MessageEncoder.cpp: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::networkProcessLatencyQOS): (WebKit::networkProcessThroughputQOS): (WebKit::webProcessLatencyQOS): (WebKit::webProcessThroughputQOS): * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::pluginNeedsExecutableHeap): (WebKit::pluginProcessLatencyQOS): (WebKit::pluginProcessThroughputQOS): * WebProcess/WebPage/WebPage.cpp: 2015-05-18 Michael Catanzaro [CMake] Ignore warnings in system headers https://bugs.webkit.org/show_bug.cgi?id=144747 Reviewed by Darin Adler. Separate include directories into WebKit project includes and system includes. Suppress all warnings from headers in system include directories using the SYSTEM argument to the include_directories command. * CMakeLists.txt: * PlatformEfl.cmake: * PlatformGTK.cmake: 2015-05-18 Csaba Osztrogonác Fix return-type warnings in test_ewk2_color_picker.cpp https://bugs.webkit.org/show_bug.cgi?id=145122 Reviewed by Gyuyoung Kim. * UIProcess/API/efl/tests/test_ewk2_color_picker.cpp: (EWK2ColorPickerTest::hideColorPicker): (EWK2ColorPickerTest::hideColorPickerByRemovingElement): 2015-05-18 Skachkov Alexandr [ES6] Arrow function syntax. Feature flag for arrow function https://bugs.webkit.org/show_bug.cgi?id=145108 Reviewed by Ryosuke Niwa. Added feature flag ENABLE_ES6_ARROWFUNCTION_SYNTAX for arrow function * Configurations/FeatureDefines.xcconfig: 2015-05-18 Anders Carlsson WKWebsiteDataStore should fully support session storage https://bugs.webkit.org/show_bug.cgi?id=145145 rdar://problem/10690447 Reviewed by Sam Weinig. Add a session store data type and handle it when clearing and fetching data. * Shared/WebsiteData/WebsiteDataTypes.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (dataTypesToString): * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (+[WKWebsiteDataStore allWebsiteDataTypes]): * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::SessionStorageNamespace::origins): (WebKit::StorageManager::SessionStorageNamespace::clearStorageAreasMatchingOrigin): (WebKit::StorageManager::SessionStorageNamespace::clearAllStorageAreas): (WebKit::StorageManager::getSessionStorageOrigins): (WebKit::StorageManager::deleteSessionStorageOrigins): (WebKit::StorageManager::deleteSessionStorageEntriesForOrigins): * UIProcess/Storage/StorageManager.h: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::removeData): 2015-05-18 Brady Eidson Followup to: Networking process on iOS can be suspended and never exit https://bugs.webkit.org/show_bug.cgi?id=144971. Unreviewed. Fixing API tests that revealed the unintentional change in behavior. * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::shutDownProcess): The on WebProcessProxy code path that this was adopted from had an m_connection null check, and that null check needs to remain. 2015-05-18 Csaba Osztrogonác [GTK] URTBF after r184503. * PlatformGTK.cmake: 2015-05-18 Brady Eidson Networking process on iOS can be suspended and never exit. and https://bugs.webkit.org/show_bug.cgi?id=144971 Reviewed by Darin Adler. There's a few issues here. 1 - When the NetworkProcessProxy goes away, it takes its process assertion with it. This causes the Network process to suspend indefinitely, unable to ever respond to IPC::Connection callbacks. We already solved this with WebProcess with a watchdog timer keeping both the process assertion and xpc_connection alive while the process shuts down. This patch expands that to the network process, and it will be easy to expand that to database and plugin processes doing forward. 2 - All of our child processes either decide to self-terminate or listen for their connection to close at which point they terminate. This leads to various races. We should move to a model where the UI process explicitly tells them to shutdown, and this patch starts us down that path. * CMakeLists.txt: * DerivedSources.make: * WebKit2.xcodeproj/project.pbxproj: * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::didReceiveMessage): Send ChildProcess messages to ChildProcess. * Shared/ChildProcess.cpp: (WebKit::ChildProcess::shutDown): For now, just terminate the process. In the future have the process do cleanup work before it is terminated. * Shared/ChildProcess.h: * Shared/ChildProcess.messages.in: Added. * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::shutDownProcess): Set a watchdog and - if possible - explicitly message the process to ShutDown. (WebKit::ChildProcessProxy::abortProcessLaunchIfNeeded): Deleted. * Shared/ChildProcessProxy.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::~WebProcessPool): Explicitly tell the network process to shut down. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::removeWebPage): Move abortProcessLaunchIfNeeded() and the watchdog timer code to ChildProcessProxy::shutDownProcess. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didReceiveMessage): Send ChildProcess messages to ChildProcess::didReceiveMessage. 2015-05-17 Carlos Garcia Campos Network Cache: Make Data::adoptMap take the ownership of the file descriptor https://bugs.webkit.org/show_bug.cgi?id=144950 Reviewed by Antti Koivisto. It will be required to implement ShareableResource for soup network backend. Also move the common code of Data to a common file and add mapToFile(). The mapFile version that receives a file descriptor has been renamed to adoptAndMapFile(). * CMakeLists.txt: Add new file to compilation. * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: (WebKit::NetworkCache::BlobStorage::add): Use mapToFile(). * NetworkProcess/cache/NetworkCacheData.cpp: Added. (WebKit::NetworkCache::Data::mapToFile): Write the data to the given file and map it. (WebKit::NetworkCache::mapFile): (WebKit::NetworkCache::adoptAndMapFile): (WebKit::NetworkCache::computeSHA1): (WebKit::NetworkCache::bytesEqual): * NetworkProcess/cache/NetworkCacheData.h: * NetworkProcess/cache/NetworkCacheDataCocoa.mm: (WebKit::NetworkCache::Data::adoptMap): Close the file descriptor. * NetworkProcess/cache/NetworkCacheDataSoup.cpp: (WebKit::NetworkCache::Data::Data): Use a constructor that receives a file descriptor instead of the one receiving Backing. If the file descriptor is not -1 then the Data is a map. (WebKit::NetworkCache::MapWrapper::~MapWrapper): Also close the file descriptor. (WebKit::NetworkCache::Data::adoptMap): Pass the file descriptor to the MapWrapper and create the Data passing the file descriptor. * UIProcess/API/APIUserContentExtensionStore.cpp: (API::openAndMapContentExtension): Use mapFile that receives a file path. (API::compiledToFile): Use adoptAndMapFile() and don't close the descriptor. 2015-05-16 Andy Estes [iOS] WKPDFView should not follow javascript: links https://bugs.webkit.org/show_bug.cgi?id=145101 Reviewed by Dan Bernstein. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick): Returned early if url's protocol is javascript:. (WebKit::WebPageProxy::navigateToURLWithSimulatedClick): Renamed to navigateToPDFLinkWithSimulatedClick to reflect that this function is exclusively for following PDF links. * UIProcess/WebPageProxy.h: * UIProcess/ios/WKPDFView.mm: (-[WKPDFView annotation:wasTouchedAtPoint:controller:]): (-[WKPDFView actionSheetAssistant:openElementAtLocation:]): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): Renamed from navigateToURLWithSimulatedClick. (WebKit::WebPage::navigateToURLWithSimulatedClick): Renamed to navigateToPDFLinkWithSimulatedClick. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-05-16 Brent Fulgham [iOS] Remote scrolling tree needs to coordinate scroll snap state during resize/rotations https://bugs.webkit.org/show_bug.cgi?id=145059 Reviewed by Simon Fraser. The web view needs to update its scroll snap point offsets to take into account any adjustments to the view size caused by content insets. We also need to update the offstes after device rotation. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Retrieve the proper computed content inset for the view and incorporate into any scroll snap point adjustments. (-[WKWebView _updateVisibleContentRects]): If we have active scroll snap points, * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h: * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: (WebKit::RemoteScrollingCoordinatorProxy::adjustTargetContentOffsetForSnapping): Update to account for content inset. (WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling): Also validate that the active index is valid. (WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling): Update to track current active snap offset index. (WebKit::RemoteScrollingCoordinatorProxy::hasActiveSnapPoint): Added. (WebKit::RemoteScrollingCoordinatorProxy::nearestActiveSnapPoint): Added. It calculates the proper scroll position incorporating any snap point and content insets. 2015-05-15 Yongjun Zhang Don't reset the preview recognizer in [WKContentViewInteraction cleanupInteraction] https://bugs.webkit.org/show_bug.cgi?id=145081 We shouldn't reset the recognizer in [WKContentViewInteraction cleanupInteraction] since we don't re-add it back to WKContentView when the process relaunched. Since we already add/remove it when the view is move into/ removed from the window, we don't need reset it in cleanupInteraction. Reviewed by Dan Bernstein. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView cleanupInteraction]): 2015-05-15 James Savage REGRESSION (r181910): WKWebView incorrectly scales snapshot https://bugs.webkit.org/show_bug.cgi?id=145076 Reviewed by Tim Horton. We added a fast path to snapshotting using IOSurfaces with http://trac.webkit.org/changeset/181910 which incorrectly determined scale and transform and resulted in bad snapshots in some situations. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): When snapshotting an IOSurface we need to compute our scale based off of the rect in the WKWebView coordinates, we also failed to account for non-zero origins in the snapshot rect. Remove an unused varible while we're here. 2015-05-15 Alex Christensen [Content Extensions] Fail to load old content extension files https://bugs.webkit.org/show_bug.cgi?id=145027 Reviewed by Eric Carlson. * UIProcess/API/APIUserContentExtensionStore.cpp: (API::openAndMapContentExtension): * UIProcess/API/APIUserContentExtensionStore.h: 2015-05-15 Jeremy Jones Limit alternate fullscreen with linked on or after. https://bugs.webkit.org/show_bug.cgi?id=144894 Reviewed by Dean Jackson. * UIProcess/API/Cocoa/WKWebView.mm: (shouldAllowAlternateFullscreen): Added. (-[WKWebView initWithFrame:configuration:]): 2015-05-15 Chris Dumez [WK2][Cocoa] Back swipe tab snapshot takes a long time to be removed on bing.com https://bugs.webkit.org/show_bug.cgi?id=145061 Reviewed by Tim Horton. When swiping back from a video search result to the list of video search results on bing.com, the back swipe gesture tab snapshot takes ~3 seconds to be removed, even though the page gets loaded almost instantly from PageCache. The tab snapshot should be removed as soon as the load is done. The issue is that we only cleared the back swipe gesture tab snapshot after PageClient::didFinishLoadForMainFrame() has been called. However, PageClient::didFinishLoadForMainFrame() was only being called by WebPageProxy if the main frame loaded *without* error. In case the main frame loaded with an error, only WebPageProxy::didFailLoadForFrame() is called, not WebPageProxy::didFinishLoadForFrame() and we would fail to remove the gesture snapshot until the 3 seconds timeout. This patch calls PageClient::didFinishLoadForMainFrame() from WebPageProxy::didFailLoadForFrame() so we remove the snapshot in the error case as well. The reason didFailLoadForFrame() is being called on bing.com video search results is because a "ping" load is aborted when the page is entering PageCache. Aborting any kind of resource load sets a "cancellation" error on the main document. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFailLoadForFrame): 2015-05-14 Carlos Garcia Campos REGRESSION(r183861): [SOUP] Downloads are broken when using the Network Process https://bugs.webkit.org/show_bug.cgi?id=144738 Reviewed by Alexey Proskuryakov. When converting the main resource handle to a download, the NetworkResourceLoader is aborted, and the ResourceHandle is cleaned up aborting the download operation. We need to use a different ResourceHandle for the download operation. * Shared/Downloads/soup/DownloadSoup.cpp: (WebKit::Download::startWithHandle): Use ResourceHandle::releaseForDownload() instead of reusing the given handle. 2015-05-14 Brady Eidson Rename connectionDidClose and related methods to be more clear. https://bugs.webkit.org/show_bug.cgi?id=145030 Reviewed by Darin Adler. These methods were easy to confuse with "Connection::Client::didClose()", yet they were about something much more explicit: A child process being shut down by the UI Process. Let's call them as such. * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::shutDownProcess): (WebKit::ChildProcessProxy::clearConnection): Deleted. (WebKit::ChildProcessProxy::connectionDidClose): Deleted. * Shared/ChildProcessProxy.h: * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::DatabaseProcessProxy::processWillShutDown): * UIProcess/Databases/DatabaseProcessProxy.h: * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::processWillShutDown): * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::processWillShutDown): * UIProcess/Plugins/PluginProcessProxy.h: * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::webProcessWillShutDown): (WebKit::WebFrameProxy::disconnect): Deleted. * UIProcess/WebFrameProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::webProcessWillShutDown): (WebKit::WebPageProxy::connectionDidClose): Deleted. * UIProcess/WebPageProxy.h: * UIProcess/WebProcessLifetimeTracker.cpp: (WebKit::WebProcessLifetimeTracker::webProcessWillShutDown): (WebKit::WebProcessLifetimeTracker::connectionDidClose): Deleted. * UIProcess/WebProcessLifetimeTracker.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::processWillShutDown): (WebKit::WebProcessProxy::shutDown): (WebKit::WebProcessProxy::removeWebPage): (WebKit::WebProcessProxy::didClose): (WebKit::WebProcessProxy::disconnectFramesFromPage): (WebKit::WebProcessProxy::shouldTerminate): (WebKit::WebProcessProxy::requestTermination): (WebKit::WebProcessProxy::connectionDidClose): Deleted. (WebKit::WebProcessProxy::disconnect): Deleted. * UIProcess/WebProcessProxy.h: 2015-05-14 Zhuo Li Some CFNetwork SPI to reset HSTS hosts added since a date should not be used on Yosemite. https://bugs.webkit.org/show_bug.cgi?id=145025. and rdar://problem/20646308. Reviewed by Alexey Proskuryakov. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate): 2015-05-14 Timothy Horton Add a layout mode that scales down the view to try to fit the document https://bugs.webkit.org/show_bug.cgi?id=145022 Reviewed by Dean Jackson. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): (WebKit::WebPageCreationParameters::decode): * Shared/WebPageCreationParameters.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::setShouldScaleViewToFitDocument): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/DrawingArea.h: (WebKit::DrawingArea::setShouldScaleViewToFitDocument): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::setShouldScaleViewToFitDocument): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Plumb shouldScaleViewToFitDocument through to the DrawingArea. * UIProcess/mac/WKViewLayoutStrategy.mm: (+[WKViewLayoutStrategy layoutStrategyWithPage:view:mode:]): (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:mode:]): (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy updateLayout]): (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy willChangeLayoutStrategy]): * UIProcess/API/C/WKLayoutMode.h: * UIProcess/API/Cocoa/_WKLayoutMode.h: Add a new layout mode, which just turns on shouldScaleViewToFitDocument, and otherwise behaves as normal. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::setShouldScaleViewToFitDocument): (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): (WebKit::TiledCoreAnimationDrawingArea::flushLayers): On every flush where either the document size or view size has changed, or layout is outstanding, do a layout with fixed layout off to determine whether the document fits inside the view. If it doesn't, scale it down to fit. This will require an extra layout for every resize while in the scaled-down state, but there is potential for future optimization. 2015-05-14 Anders Carlsson Local storage origins should include origins with transient local storage https://bugs.webkit.org/show_bug.cgi?id=145017 rdar://problem/10690447 Reviewed by Sam Weinig. The transient local storage namespaces are used for third party data blocking and will stay around until the UI process exits so we need to be able to include website data from transient storage in the website data store APIs. * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::TransientLocalStorageNamespace::origins): (WebKit::StorageManager::getLocalStorageOrigins): * UIProcess/Storage/StorageManager.h: * UIProcess/WebKeyValueStorageManager.cpp: (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): 2015-05-14 Beth Dakin Change range of possible forces for mouseforcechanged DOM event https://bugs.webkit.org/show_bug.cgi?id=144987 -and corresponding- rdar://problem/20472802 Reviewed by Tim Horton. Change to a 0-3 range. * Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebMouseEvent): 2015-05-14 Zan Dobersek [GTK] Add missing ENABLE(NETSCAPE_PLUGIN_API) build guards https://bugs.webkit.org/show_bug.cgi?id=144994 Reviewed by Carlos Garcia Campos. This fixes the build when configured with Netscape plugin API support disabled. * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_set_additional_plugins_directory): (webkitWebContextGetPluginThread): * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: (WebKit::ProcessLauncher::launchProcess): 2015-05-13 Carlos Garcia Campos [SOUP] Network Cache: NetworkProcess segfault when file system doesn't support xattrs https://bugs.webkit.org/show_bug.cgi?id=144953 Reviewed by Martin Robinson. Return early if we fail to get the birthtime xattr. * NetworkProcess/cache/NetworkCacheFileSystemPosix.h: (WebKit::NetworkCache::fileTimes): 2015-05-13 Daniel Bates Rename ProcessThrottlerClient::{send, cancel}ProcessWillSuspend() to {send, cancel}PrepareToSuspend() https://bugs.webkit.org/show_bug.cgi?id=144619 Reviewed by Andy Estes. The names of the functions ProcessThrottlerClient::{send, cancel}ProcessWillSuspend() are misnomers. These functions are called when the ProcessThrottler wants to prepare the process that it manages for suspension and changes its mind, respectively. That is, these functions do not actually correspond to the OS decision to suspend a process or cancel the suspension of a process, respectively. So, rename these functions and associated {Network, Web}ProcessProxy message names to better describe their purpose. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::prepareToSuspend): (WebKit::NetworkProcess::cancelPrepareToSuspend): (WebKit::NetworkProcess::processWillSuspend): Deleted. (WebKit::NetworkProcess::cancelProcessWillSuspend): Deleted. * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::sendPrepareToSuspend): (WebKit::NetworkProcessProxy::sendCancelPrepareToSuspend): (WebKit::NetworkProcessProxy::sendProcessWillSuspend): Deleted. (WebKit::NetworkProcessProxy::sendCancelProcessWillSuspend): Deleted. * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::updateAssertion): * UIProcess/ProcessThrottlerClient.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcess::actualPrepareToSuspend): Formerly named prepareToSuspend. (WebKit::WebProcessProxy::sendPrepareToSuspend): (WebKit::WebProcessProxy::sendCancelPrepareToSuspend): (WebKit::WebProcessProxy::sendProcessWillSuspend): Deleted. (WebKit::WebProcessProxy::sendCancelProcessWillSuspend): Deleted. * UIProcess/WebProcessProxy.h: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::prepareToSuspend): (WebKit::WebProcess::cancelPrepareToSuspend): (WebKit::WebProcess::processWillSuspend): Deleted. (WebKit::WebProcess::cancelProcessWillSuspend): Deleted. * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: 2015-05-13 Anders Carlsson Don't create a per-pool data store when using the modern API https://bugs.webkit.org/show_bug.cgi?id=144963 rdar://problem/20331756 Reviewed by Tim Horton. * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::createWithLegacyOptions): (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: Keep track of whether the process pool should have a data store. * UIProcess/API/C/WKContext.cpp: (WKContextGetWebsiteDataStore): * UIProcess/WebKeyValueStorageManager.cpp: (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins): (WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin): (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin): (WebKit::WebKeyValueStorageManager::deleteAllEntries): Update now that WebProcessPool::dataStore() no longer returns a reference. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): Only create a data store if the configuration states that we should. * UIProcess/WebProcessPool.h: Change dataStore() to return a pointer instead of a reference. 2015-05-13 Alexey Proskuryakov [Mac] Sandbox violation reading SubmitDiagInfo.domains https://bugs.webkit.org/show_bug.cgi?id=144962 rdar://problem/20719330 Reviewed by Darin Adler. * WebProcess/com.apple.WebProcess.sb.in: 2015-05-13 Beth Dakin Speculative build fix. * UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h: 2015-05-13 Michael Catanzaro [GTK][CMake] Extra include directory when libnotify is present but disabled https://bugs.webkit.org/show_bug.cgi?id=144941 Reviewed by Martin Robinson. Add LIBNOTIFY_INCLUDE_DIRS to WebKit2_INCLUDE_DIRECTORIES only if USE_LIBNOTIFY is true, rather than checking LIBNOTIFY_FOUND. * PlatformGTK.cmake: 2015-05-13 Beth Dakin Need SPI to set the overlay scroll bar style https://bugs.webkit.org/show_bug.cgi?id=144928 -and corresponding- rdar://problem/20143614 Reviewed by Anders Carlsson. Make scrollbarOverlayStyle a part of the creation parameters. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): (WebKit::WebPageCreationParameters::decode): * Shared/WebPageCreationParameters.h: New SPI. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h: Added. * UIProcess/API/mac/WKView.mm: (-[WKView _setOverlayScrollbarStyle:]): (-[WKView _overlayScrollbarStyle]): Store m_scrollbarOverlayStyle on WebPageProxy, and set it to the WebProcess. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::setOverlayScrollbarStyle): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::overlayScrollbarStyle): * WebKit2.xcodeproj/project.pbxproj: Return WebPage’s scrollbarOverlayStyle(). * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::preferredScrollbarOverlayStyle): * WebProcess/WebCoreSupport/WebChromeClient.h: Cache the scrollbarOverlayStyle() here for the WebProcess. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::setScrollbarOverlayStyle): * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::scrollbarOverlayStyle): * WebProcess/WebPage/WebPage.messages.in: 2015-05-13 Anders Carlsson Rename some StorageManager functions to indicate that they work on local storage entries https://bugs.webkit.org/show_bug.cgi?id=144958 First part of rdar://problem/10690447. Reviewed by Beth Dakin. * UIProcess/Storage/StorageManager.cpp: (WebKit::StorageManager::getLocalStorageOrigins): (WebKit::StorageManager::getLocalStorageDetailsByOrigin): (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin): (WebKit::StorageManager::deleteAllLocalStorageEntries): (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins): (WebKit::StorageManager::getOrigins): Deleted. (WebKit::StorageManager::getStorageDetailsByOrigin): Deleted. (WebKit::StorageManager::deleteEntriesForOrigin): Deleted. (WebKit::StorageManager::deleteAllEntries): Deleted. (WebKit::StorageManager::deleteEntriesForOrigins): Deleted. * UIProcess/Storage/StorageManager.h: * UIProcess/WebKeyValueStorageManager.cpp: (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins): (WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin): (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin): (WebKit::WebKeyValueStorageManager::deleteAllEntries): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::removeData): 2015-05-13 Joseph Pecoraro Crash under WebKit::WebInspectorProxy::attachAvailabilityChanged sometimes opening new page https://bugs.webkit.org/show_bug.cgi?id=144957 Reviewed by Simon Fraser. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::attachAvailabilityChanged): 2015-05-13 Joseph Pecoraro Pass String as reference in more places https://bugs.webkit.org/show_bug.cgi?id=144769 Reviewed by Daniel Bates. * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::showMainResourceForFrame): * WebProcess/WebPage/WebInspectorUI.h: 2015-05-13 Timothy Horton View scale changes are temporarily lost after restoring a page from the page cache https://bugs.webkit.org/show_bug.cgi?id=144934 Reviewed by Brady Eidson. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::scalePage): (WebKit::WebPage::scalePageInViewCoordinates): (WebKit::WebPage::pageScaleFactor): (WebKit::WebPage::viewScaleFactor): (WebKit::WebPage::scaleView): * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::viewScaleFactor): Deleted. Get rid of m_viewScaleFactor, instead using Page::viewScaleFactor. 2015-05-13 Sungmann Cho Minor cleanups to PluginProxy.cpp. https://bugs.webkit.org/show_bug.cgi?id=144948 Reviewed by Gyuyoung Kim. 1. Remove unnecessary #include. 2. Remove unnecessary return statement from PluginProxy::paint(). No new tests, no behavior change. * WebProcess/Plugins/PluginProxy.cpp: (WebKit::PluginProxy::paint): 2015-05-13 Daegyu Lee REGRESSION(r176631): [EFL] Fullscreen feature doesn't work correctly on MiniBrowser https://bugs.webkit.org/show_bug.cgi?id=144906 Reviewed by Gyuyoung Kim. * UIProcess/CoordinatedGraphics/PageViewportController.cpp: (WebKit::PageViewportController::updateMinimumScaleToFit): Recover the r176631 condition to call applyScaleAfterRenderingContents function to apply correct scale. 2015-05-12 Dan Bernstein In Safari, Debug > Get Bytecode Profile crashes the Web Content process https://bugs.webkit.org/show_bug.cgi?id=144944 Reviewed by Darin Adler. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::getBytecodeProfile): Don’t assert that m_perBytecodeProfiler isn’t null, because it is when the profiler is disabled, which is the default. In that case, return after sending back the empty string, rather than continuing to dereference a null pointer. 2015-05-12 Jon Honeycutt Crash when using Reviewed by Andy Estes. * UIProcess/ios/forms/WKFileUploadPanel.mm: Use a RefPtr to hold the WebOpenPanelResultListenerProxy, because the WKFileUploadPanel can outlive it. 2015-05-12 Simon Fraser Turn antialiased font dilation off by default https://bugs.webkit.org/show_bug.cgi?id=144940 rdar://problem/20923031 Reviewed by Sam Weinig. Turn antialised font dilation off by default. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferencesRefPrivate.h: 2015-05-12 Daniel Bates Make {Network, Web}ProcessProxy inherit from ProcessThrottleClient privately https://bugs.webkit.org/show_bug.cgi?id=144886 Reviewed by Darin Adler. {Network, Web}ProcessProxy are implemented in terms of ProcessThrottleClient, an interface that defines the callbacks that ProcessThrottler makes to a client. We do not want to allow arbitrary callers to make use of the interface ProcessThrottleClient. So, we should use private inheritance to represent the relationship between {Network, Web}ProcessProxy and ProcessThrottleClient instead of public inheritance. Additionally make ProcessThrottler a instance variable of {Network, Web}ProcessProxy instead of holding a smart pointer to a ProcessThrottler instance because we always want to have a ProcessThrottler for each instance of {Network, Web}ProcessProxy. * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::NetworkProcessProxy): Update code to work now that m_throttler is an instance of ProcessThrottler instead of a smart pointer to a ProcessThrottler instance. (WebKit::NetworkProcessProxy::didFinishLaunching): Update code to access functions of m_throttler by reference instead of by pointer. (WebKit::NetworkProcessProxy::didCancelProcessSuspension): Ditto. (WebKit::NetworkProcessProxy::processReadyToSuspend): Ditto. (WebKit::NetworkProcessProxy::setIsHoldingLockedFiles): Ditto. * UIProcess/Network/NetworkProcessProxy.h: Inherit from ProcessThrottleClient privately. (WebKit::NetworkProcessProxy::throttler): Update code to work now that m_throttler is an instance of ProcessThrottler instead of a smart pointer to a ProcessThrottler instance. * UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::ProcessThrottler): Update code to work now that m_process is a lvalue reference instead of a pointer. (WebKit::ProcessThrottler::updateAssertion): Ditto. (WebKit::ProcessThrottler::assertionWillExpireImminently): Ditto. * UIProcess/ProcessThrottler.h: Ditto. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::WebProcessProxy): Update code to work now that m_throttler is an instance of ProcessThrottler instead of a smart pointer to a ProcessThrottler instance. (WebKit::WebProcessProxy::didFinishLaunching): Update code to access functions of m_throttler by reference instead of by pointer. (WebKit::WebProcessProxy::processReadyToSuspend): Ditto. (WebKit::WebProcessProxy::didCancelProcessSuspension): Ditto. (WebKit::WebProcessProxy::setIsHoldingLockedFiles): Ditto. * UIProcess/WebProcessProxy.h: Inherit from ProcessThrottleClient privately. (WebKit::WebProcessProxy::throttler): Update code to work now that m_throttler is an instance of ProcessThrottler instead of a smart pointer to a ProcessThrottler instance. 2015-05-12 Anders Carlsson Production builds should link against the shims directly https://bugs.webkit.org/show_bug.cgi?id=144922 rdar://problem/19708579 Reviewed by Dan Bernstein. * Configurations/NetworkService.xcconfig: Point to an Info.plist that has DYLD_INSERT_LIBRARIES set on 10.10 and earlier. Link directly against SecItemShim.dylib where possible. * Configurations/PluginProcessShim.xcconfig: Set the install name and install path. * Configurations/PluginService.32.xcconfig: Point to an Info.plist that has DYLD_INSERT_LIBRARIES set on 10.10 and earlier. Link directly against PluginProcessShim.dylib where possible. * Configurations/PluginService.64.xcconfig: Point to an Info.plist that has DYLD_INSERT_LIBRARIES set on 10.10 and earlier. Link directly against PluginProcessShim.dylib where possible. * Configurations/SecItemShim.xcconfig: Set the install name and install path. * Configurations/WebContentService.xcconfig: Point to an Info.plist that has DYLD_INSERT_LIBRARIES set on 10.10 and earlier. Link directly against WebProcessShim.dylib where possible. * Configurations/WebProcessShim.xcconfig: Set the install name and install path. * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist: Copied from Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist. * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist: Add an Info.plist for 10.9 and 10.10 and remove DYLD_INSERT_LIBRARIES from the non-legacy plist. * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist: Copied from Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist. * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist: Add an Info.plist for 10.9 and 10.10 and remove DYLD_INSERT_LIBRARIES from the non-legacy plist. * WebKit2.xcodeproj/project.pbxproj: Add new files. * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: Copied from Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist. * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist: Add an Info.plist for 10.9 and 10.10 and remove DYLD_INSERT_LIBRARIES from the non-legacy plist. 2015-05-12 Alexey Proskuryakov Undo a mistaken part of r184211. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::cookieStorageDirectory): * UIProcess/WebProcessPool.h: cookieStorageDirectory() is used on iOS, so bring it back. 2015-05-08 Alexey Proskuryakov [Mac] Share cookie storage between UI process and secondary processes https://bugs.webkit.org/show_bug.cgi?id=144820 rdar://problem/20572830 Reviewed by Darin Adler. Pass a cookie storage descriptor that includes file path as well as other data that CFNetwork needs to use the same cookies storage as in another process (session cookies are still separate). While at it, started to clean up code that passes cookie storage path. It was mostly dead and unimplemented, only used in child processes when USE(SECCOMP_FILTERS) was enabled. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): * Shared/Network/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode): (WebKit::NetworkProcessCreationParameters::decode): * Shared/Network/NetworkProcessCreationParameters.h: * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::platformInitializeNetworkProcess): (WebKit::WebProcessPool::platformDefaultCookieStorageDirectory): Deleted. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::ensureNetworkProcess): (WebKit::WebProcessPool::createNewWebProcess): (WebKit::WebProcessPool::cookieStorageDirectory): * UIProcess/WebProcessPool.h: * UIProcess/efl/WebProcessPoolEfl.cpp: (WebKit::WebProcessPool::platformDefaultCookieStorageDirectory): Deleted. * UIProcess/gtk/WebProcessPoolGtk.cpp: (WebKit::WebProcessPool::platformDefaultCookieStorageDirectory): Deleted. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-05-12 Chris Dumez [WK2] Log using diagnostic logging how far back in history we navigate https://bugs.webkit.org/show_bug.cgi?id=144919 Reviewed by Gavin Barraclough. Log using diagnostic logging how far back in history we navigate. When a back navigation or a backward indexed navigation occurs, we log the delta: (HistoryListSize - 1) - NewHistoryItemIndex. * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::goToItem): 2015-05-11 Sam Weinig ChildProcess should take an os_activity https://bugs.webkit.org/show_bug.cgi?id=141781 Reviewed by Ryosuke Niwa. * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm: (DatabaseServiceInitializer): * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm: (NetworkServiceInitializer): * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm: (PluginServiceInitializer): * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm: (WebContentServiceInitializer): Start an os_activity in the initializer for each XPC service. * config.h: Add HAVE_OS_ACTIVITY where available. 2015-05-12 Carlos Garcia Campos Unreviewed. Fix GTK+ debug build after r184197. * UIProcess/gtk/RedirectedXCompositeWindow.cpp: Add missing include. 2015-05-08 Carlos Garcia Campos [X11] Add XUniquePtr and XUniqueResource to automatically free X resources https://bugs.webkit.org/show_bug.cgi?id=144521 Reviewed by Darin Adler. Use XUniquePtr and XUniqueResource to free X resources. * PlatformEfl.cmake: Add Source/WebCore/platform/graphics/x11 dir to the include dir list. * PlatformGTK.cmake: Ditto. * UIProcess/cairo/BackingStoreCairo.cpp: (WebKit::BackingStore::createBackend): Do not pass the display to the BackingStoreBackendCairoX11 constructor. * UIProcess/gtk/RedirectedXCompositeWindow.cpp: (WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): (WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow): (WebKit::RedirectedXCompositeWindow::resize): (WebKit::RedirectedXCompositeWindow::cleanupPixmapAndPixmapSurface): (WebKit::RedirectedXCompositeWindow::surface): * UIProcess/gtk/RedirectedXCompositeWindow.h: (WebKit::RedirectedXCompositeWindow::windowID): * WebProcess/Plugins/Netscape/NetscapePlugin.h: * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: (WebKit::NetscapePlugin::platformPostInitializeWindowless): (WebKit::NetscapePlugin::platformDestroy): (WebKit::NetscapePlugin::platformGeometryDidChange): (WebKit::NetscapePlugin::platformPaint): 2015-05-11 Dan Bernstein WebKit2 part of Trying to navigate to an invalid URL loads about:blank, but -[WKWebView URL] returns the invalid URL Reviewed by Alexey Proskuryakov. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didChangeProvisionalURLForFrame): Added. Update internal state the same way we update it for server redirects, but don’t make client callbacks. Clients observing the URL property will see it change. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: Added DidChangeProvisionalURLForFrame. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidChangeProvisionalURL): Override this new FrameLoaderClient function to send a DidChangeProvisionalURLForFrame message to the UI process. * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: 2015-05-11 Dan Bernstein [iOS] Find on page feels like it zooms in too much https://bugs.webkit.org/show_bug.cgi?id=144891 Reviewed by Darin Adler. Sometimes, Find on Page’s constant 1.6 scale factor is too much. Smart magnification is designed to choose a scale factor that is just right. * UIProcess/ios/SmartMagnificationController.h: * UIProcess/ios/SmartMagnificationController.messages.in: Added Magnify message. * UIProcess/ios/SmartMagnificationController.mm: (WebKit::SmartMagnificationController::magnify): Added. Handle the new message using -[WKContentView _soomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]. * WebProcess/WebPage/ios/FindControllerIOS.mm: (WebKit::FindController::updateFindIndicator): Instead of zooming to the selection rect, get the surrounding render rect (the area we would target for a double-tap at the beginning of the selection), and tell the magnification controller to target it. Use the center of the start of the selection as the origin. 2015-05-11 Brent Fulgham Scroll snap logic should be triggered when resizing the WebView https://bugs.webkit.org/show_bug.cgi?id=142590 Reviewed by Simon Fraser. * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm: (RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling): Modify use of 'closestSnapOffset' to satisfy the additional argument I added. This is currently not used for anything on iOS. * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: Ditto. 2015-05-11 Andreas Kling Force a rebuild of JSNPObject.cpp on bots. * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::callMethod): 2015-05-11 Anders Carlsson Simplify shim path computation https://bugs.webkit.org/show_bug.cgi?id=144884 Part of rdar://problem/19708579. Reviewed by Sam Weinig. Factor the code that computes the shim path out into a separate function. Also make this mac only since we don't have any shims on iOS. * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::computeProcessShimPath): (WebKit::addDYLDEnvironmentAdditions): 2015-05-11 Myles C. Maxfield Unreviewed build fix Unreviewed. * UIProcess/API/APIUserContentExtensionStore.cpp: (API::compiledToFile): 2015-05-11 Alex Christensen [Content Extensions] Support domain-specific rules and exceptions. https://bugs.webkit.org/show_bug.cgi?id=144833 Reviewed by Darin Adler. * Shared/WebCompiledContentExtension.cpp: (WebKit::WebCompiledContentExtension::filtersWithoutDomainsBytecode): (WebKit::WebCompiledContentExtension::filtersWithoutDomainsBytecodeLength): (WebKit::WebCompiledContentExtension::filtersWithDomainsBytecode): (WebKit::WebCompiledContentExtension::filtersWithDomainsBytecodeLength): (WebKit::WebCompiledContentExtension::domainFiltersBytecode): (WebKit::WebCompiledContentExtension::domainFiltersBytecodeLength): (WebKit::WebCompiledContentExtension::bytecode): Deleted. (WebKit::WebCompiledContentExtension::bytecodeLength): Deleted. * Shared/WebCompiledContentExtension.h: * Shared/WebCompiledContentExtensionData.cpp: (WebKit::WebCompiledContentExtensionData::encode): (WebKit::WebCompiledContentExtensionData::decode): * Shared/WebCompiledContentExtensionData.h: (WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData): * UIProcess/API/APIUserContentExtensionStore.cpp: (API::ContentExtensionMetaData::fileSize): (API::encodeContentExtensionMetaData): (API::decodeContentExtensionMetaData): (API::compiledToFile): (API::createExtension): Keep track of 3 different types of bytecode to be able to handle domain-specific rules. 2015-05-11 Tim Horton Page overlay action context override should indicate the source of the request https://bugs.webkit.org/show_bug.cgi?id=144832 Reviewed by Darin Adler. * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h: * WebProcess/WebPage/WebPageOverlay.cpp: (WebKit::WebPageOverlay::actionContextForResultAtPoint): * WebProcess/WebPage/WebPageOverlay.h: (WebKit::WebPageOverlay::Client::actionContextForResultAtPoint): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): Add a parameter to WKBundlePageOverlayActionContextForResultAtPoint so that clients can tell whether the requested action context should be targetted at an action menu or immediate action. 2015-05-11 Daniel Bates [iOS] Close all open databases in expiration handler of process assertion https://bugs.webkit.org/show_bug.cgi?id=144661 Reviewed by Darin Adler. For WebKit2, close all open databases when the process assertion expiration handler is called. When the process assertion expiration handler is called we dispatch a synchronous message called ProcessWillSuspendImminently to the {Web, Network} processes to inform them that they will be suspended imminently. The {Web, Network} process will always service this message regardless if they were waiting for another message. In the WebProcess, we will close all open databases among other tasks upon receiving this message. In the NetworkProcess, we will purge some data from memory. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::didReceiveSyncMessage): Modified to call NetworkProcess::didReceiveSyncNetworkProcessMessage() to process the synchronous ProcessWillSuspendImminently message. (WebKit::NetworkProcess::processWillSuspendImminently): Added; free some memory. * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: Added synchronous message ProcessWillSuspendImminently. * Shared/ChildProcessProxy.h: (WebKit::ChildProcessProxy::sendSync): Added parameter sendSyncFlags so that we can send a sync message with flag IPC::InterruptWaitingIfSyncMessageArrives to cause the {Web, Network}Process to process the message regardless of whether it is waiting for another message. * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::sendProcessWillSuspendImminently): Added. Sends the message ProcessWillSuspendImminently to the NetworkProcess. * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/ProcessAssertion.cpp: (WebKit::ProcessAndUIAssertion::setClient): Added. * UIProcess/ProcessAssertion.h: Added abstract class ProcessAssertionClient. (WebKit::ProcessAssertionClient::~ProcessAssertionClient): Added. (WebKit::ProcessAssertion::setClient): Added. (WebKit::ProcessAssertion::client): Added. * UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::didConnectToProcess): (WebKit::ProcessThrottler::assertionWillExpireImminently): Added; implements the ProcessAssertionClient interface. Notify the process throttler clients that the assertion is near expiration. * UIProcess/ProcessThrottler.h: * UIProcess/ProcessThrottlerClient.h: Added * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::sendProcessWillSuspendImminently): Added. Sends the message ProcessWillSuspendImminently to the WebProcess. * UIProcess/WebProcessProxy.h: * UIProcess/ios/ProcessAssertionIOS.mm: (-[WKProcessAssertionBackgroundTaskManager addClient:]): Added. (-[WKProcessAssertionBackgroundTaskManager removeClient:]): Added. (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): Modified expiration handler to notify ProcessAssertionClient clients that the assertion is near expiration. (WebKit::ProcessAssertion::~ProcessAssertion): Remove the client on destruction. (WebKit::ProcessAndUIAssertion::setClient): Added. * WebProcess/WebCoreSupport/WebDatabaseManager.cpp: (WebKit::WebDatabaseManager::closeAllDatabases): Added; turns around and calls DatabaseManager::closeAllDatabases(). * WebProcess/WebCoreSupport/WebDatabaseManager.h: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didReceiveSyncMessage): Call WebProcess::didReceiveSyncWebProcessMessage() to process the synchronous ProcessWillSuspendImminently message. Removed logging for an unhandled synchronous message since WebProcess::didReceiveSyncWebProcessMessage() will ASSERT_NOT_REACHED() for such a message. (WebKit::WebProcess::prepareToSuspend): Extracted code from WebProcess::processWillSuspend() so that it can be used from both WebProcess::processWillSuspend() and WebProcess::processWillSuspendImminently(). And modified it to conditionally dispatch a ProcessReadyToSuspend message to the WebProcessProxy. We only want to dispatch such a message as part of a coordinated suspension by the ProcessThrottler. That is, we do not want to dispatch the ProcessReadyToSuspend message when the background assertion is near expiration (i.e. WebProcess::processWillSuspendImminently() is called). (WebKit::WebProcess::processWillSuspendImminently): Added. Suspend all open databases among other tasks. (WebKit::WebProcess::processWillSuspend): Implemented in terms of WebProcess::prepareToSuspend(). (WebKit::WebProcess::processSuspensionCleanupTimerFired): Modified to conditionally dispatch a ProcessReadyToSuspend message to the WebProcessProxy. (WebKit::WebProcess::processDidResume): Stop the suspension cleanup timer, which may be active if the WebProcess did not mark all its graphics layers as volatile before process suspension. * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: Added synchronous message ProcessWillSuspendImminently. 2015-05-10 Gyuyoung Kim Use Ref instead of PassRefPtr in WebCore/page https://bugs.webkit.org/show_bug.cgi?id=144841 Reviewed by Darin Adler. To kill PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr in WebCore/page. (WebKit::WebUserContentController::WebUserContentController): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setTextIndicator): * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didPerformDictionaryLookup): * WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::WebUserContentController): 2015-05-10 Philip Chimento [GTK][SOUP] Web and Network processes don't know how to get memory size on OSX https://bugs.webkit.org/show_bug.cgi?id=144554 Reviewed by Darin Adler. * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::platformSetCacheModel): Use WTF::ramSize() instead of local function. Also use WTF::MB instead of dividing by 1024 * 1024. (WebKit::getMemorySize): Deleted. * WebProcess/soup/WebProcessSoup.cpp: (WebKit::WebProcess::platformSetCacheModel): Ditto. (WebKit::getMemorySize): Deleted. 2015-05-10 Yongjun Zhang Use preview view controller from WebKitSystemInterface. https://bugs.webkit.org/show_bug.cgi?id=144836 Add a property _allowsLinkPreview to WKWebView so that we can turn on/off preview at runtime. Also, for client that doesn't provide preview view controller, use the default view controller prepared by WebKitSystemInterface. Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView _allowsLinkPreview]): (-[WKWebView _setAllowsLinkPreview:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: Add _allowsLinkPreview property * UIProcess/ios/WKContentView.mm: (-[WKContentView willMoveToWindow:]): * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _registerPreviewInWindow:]): (-[WKContentView _unregisterPreviewInWindow:]): (-[WKContentView previewViewControllerForPosition:inSourceView:]): : For client that doesn't provide preview delegate, use preview view controller in WebKitSystemInterface. (-[WKContentView commitPreviewViewController:]): 2015-05-10 Darin Adler Fix internal Apple builds on Mavericks. * UIProcess/API/mac/WKView.mm: (-[WKView _dismissContentRelativeChildWindows]): Added missing conditionals around some code that is for OS X 10.10 or newer only. There were similar conditionals around other nearby code in this file, and around other uses of the same method in other files, so matched the style. 2015-05-10 Dan Bernstein iOS internal build fix. * Platform/mac/MenuUtilities.mm: 2015-05-10 Sungmann Cho Remove unnecessary semicolons. https://bugs.webkit.org/show_bug.cgi?id=144844 Reviewed by Darin Adler. No new tests, no behavior change. * Shared/Downloads/mac/DownloadMac.mm: (-[WKDownloadAsDelegate download:shouldDecodeSourceDataOfMIMEType:]): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::transformHandlesToObjects): * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation): * WebProcess/WebPage/WebBackForwardListProxy.cpp: (WebKit::idToHistoryItemMap): 2015-05-10 Darin Adler Fix build. * Platform/mac/MenuUtilities.mm: Added includes that were somehow omitted in what I committed before. 2015-05-10 Darin Adler [Cocoa] Don't soft link DataDetectorsCore https://bugs.webkit.org/show_bug.cgi?id=144837 Reviewed by Dan Bernstein. * Platform/mac/MenuUtilities.mm: Use DataDetectorsSPI.h instead of doing it here. * WebProcess/WebPage/mac/WebPageMac.mm: Removed unneeded include of unused header, DataDetectorsSPI.h. 2015-05-09 Dan Bernstein Deployment-target __NSi_ and __NSd_ definitions in WKFoundation.h are redundant https://bugs.webkit.org/show_bug.cgi?id=144831 Reviewed by Sam Weinig. Reverted r182846 and r182904. * Shared/API/Cocoa/WKFoundation.h: * WebKit2.xcodeproj/project.pbxproj: 2015-05-09 Yoav Weiss Remove the PICTURE_SIZES build flag https://bugs.webkit.org/show_bug.cgi?id=144679 Reviewed by Benjamin Poulain. Removed the PICTURE_SIZES build time flag. * Configurations/FeatureDefines.xcconfig: 2015-05-08 Beth Dakin Shuffle touch-related code to keep the internal builds working https://bugs.webkit.org/show_bug.cgi?id=144812 Reviewed by Benjamin Poulain. * Shared/NativeWebTouchEvent.h: * Shared/WebEvent.h: * Shared/WebEventConversion.cpp: * Shared/ios/NativeWebTouchEventIOS.mm: (WebKit::NativeWebTouchEvent::extractWebTouchPoint): (WebKit::extractWebTouchPoint): Deleted. * Shared/ios/WebPlatformTouchPointIOS.cpp: 2015-05-08 Dan Bernstein NSInternalInconsistencyException raised in -[NSString encodeWithCoder:] beneath createEncodedObject when using WKRemoteObjectEncoder for Safari AutoFill https://bugs.webkit.org/show_bug.cgi?id=144818 Reviewed by Anders Carlsson. Allow NSString instances that contain unpaired surrogates to be encoded by WKRemoteObjectCoder by encoding them directly rather than using -[NSString encodeWithCoder:]. * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (encodeString): Added. Sets an API::String as the object to encode. (encodeObject): Changed to use encodeString for NSString instances. (decodeString): Added. Gets an API::String from the dictionary and returns it as an NSString. (decodeObject): Changed to use decodeString for NSString instances. 2015-05-08 Timothy Horton Fix the build. * Platform/mac/LayerHostingContext.mm: (WebKit::LayerHostingContext::createFencePort): 2015-05-08 Timothy Horton Periodically repaint during resize while using the DynamicSizeWithMinimumViewSize layout strategy https://bugs.webkit.org/show_bug.cgi?id=144816 Reviewed by Simon Fraser. * UIProcess/mac/WKViewLayoutStrategy.mm: (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy initWithPage:view:mode:]): (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy _updateTransientScale:]): (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]): Factor out _updateTransientScale from updateLayout. Keep track of the last viewScaleFactor that we know is being displayed (_lastCommittedViewScale) and use that for computing the transient scale, so that we can recompute the transient scale while the UI process's notion of the actual view scale might have moved ahead of what the Web process has painted. 2015-05-08 Timothy Horton Fix the build. * UIProcess/WebPageProxy.cpp: 2015-05-08 Timothy Horton Fix the build. * Platform/mac/LayerHostingContext.mm: (WebKit::LayerHostingContext::createFencePort): 2015-05-08 Timothy Horton Fix the build. * Platform/mac/LayerHostingContext.mm: (WebKit::LayerHostingContext::createFencePort): 2015-05-08 Timothy Horton Flip the direction of the fence in scaleViewAndUpdateGeometryFenced https://bugs.webkit.org/show_bug.cgi?id=144810 Reviewed by Simon Fraser. Send the fence from the Web process to the UI process, instead of vice versa. This means that we won't keep the UI process CAContext blocked for the whole time that the Web process is doing layout/painting/etc. Instead, we'll start blocking the Web process CAContext immediately after flushing and before committing, and send the fence to the UI process to be applied immediately. This minimizes the amount of time in both processes spent blocked on the fence. * Platform/mac/LayerHostingContext.h: * Platform/mac/LayerHostingContext.mm: (WebKit::LayerHostingContext::createFencePort): Add createFencePort, which creates a MachSendRight wrapping a CA fence port. Note that you must setFencePort() with this port if you want the LayerHostingContext's CAContext to block on it! * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::scaleViewAndUpdateGeometryFenced): (WebKit::WebPageProxy::machSendRightCallback): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: Create a callback and send it to the Web process along with scaleViewAndUpdateGeometryFenced. * UIProcess/mac/WKViewLayoutStrategy.mm: (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]): When called back, install the fence port in our CAContext; when the commit goes through, remove the transient scale as we did previously. * WebProcess/WebPage/DrawingArea.h: (WebKit::DrawingArea::replyWithFenceAfterNextFlush): (WebKit::DrawingArea::updateGeometry): Deleted. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scaleViewAndUpdateGeometryFenced): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Instead of installing a fence created in the UI process, tell the DrawingArea to create one and reply to the UI process with it after the next flush. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::flushLayers): (WebKit::TiledCoreAnimationDrawingArea::replyWithFenceAfterNextFlush): After flushing, before committing, create a fence and reply to any callbacks that requested fences, and install it in our context. 2015-05-08 Michael Catanzaro , Martin Robinson [GTK] Checks for DEVELOPMENT_BUILD are all wrong https://bugs.webkit.org/show_bug.cgi?id=144746 Reviewed by Carlos Garcia Campos. Use ENABLE(DEVELOPER_MODE) rather than DEVELOPMENT_BUILD. * Shared/gtk/ProcessExecutablePathGtk.cpp: (WebKit::findWebKitProcess): * UIProcess/API/gtk/WebKitWebContext.cpp: (injectedBundleDirectory): * UIProcess/gtk/TextCheckerGtk.cpp: (WebKit::enchantTextChecker): 2015-05-08 Anders Carlsson Fix ProcessLauncher port leak https://bugs.webkit.org/show_bug.cgi?id=144807 rdar://problem/20593291 Reviewed by Sam Weinig. * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::connectToService): xpc_dictionary_set_mach_send increments the send right count so make sure to balance it with a call to mach_port_deallocate. 2015-05-08 Beth Dakin Fix performance tests after r183954 https://bugs.webkit.org/show_bug.cgi?id=144805 Reviewed by Alexey Proskuryakov. Web* is traditionally a WK1 prefix, so use the WK2 prefix instead in WK2 so that we don’t have two classes with the same name in the two projects. * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _defaultAnimationController]): 2015-05-08 Carlos Garcia Campos [GTK] Expose allowFileAccessFromFileURLs setting to WebKit2 GTK+ API https://bugs.webkit.org/show_bug.cgi?id=144748 Reviewed by Sergio Villar Senin. This is needed by local applications loaded as a file URI that do XMLHttpRequests. * UIProcess/API/gtk/WebKitSettings.cpp: (webKitSettingsSetProperty): (webKitSettingsGetProperty): (webkit_settings_class_init): (webkit_settings_get_allow_file_access_from_file_urls): (webkit_settings_set_allow_file_access_from_file_urls): * UIProcess/API/gtk/WebKitSettings.h: * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: 2015-05-08 Andreas Kling Optimize serialization of quoted JSON strings. Reviewed by Darin Adler. * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::asJSON): Use the new StringBuilder API. 2015-05-08 Commit Queue Unreviewed, rolling out r183945. https://bugs.webkit.org/show_bug.cgi?id=144789 "It broke all the GTK+ tests" (Requested by KaL on #webkit). Reverted changeset: "[GTK] Checks for DEVELOPMENT_BUILD are all wrong" https://bugs.webkit.org/show_bug.cgi?id=144746 http://trac.webkit.org/changeset/183945 2015-05-07 Conrad Shultz Don't register for Lookup notifications until needed https://bugs.webkit.org/show_bug.cgi?id=144783 Reviewed by Tim Horton. * UIProcess/API/mac/WKView.mm: Add a WKViewData ivar to track whether we've already registered for popover notifications. (-[WKView _prepareForDictionaryLookup]): Added; moved notification registration from -[WKView initWithFrame:processPool:configuration:webView:. (-[WKView initWithFrame:processPool:configuration:webView:]): Move notification registration to -_prepareForDictionaryLookup. * UIProcess/API/mac/WKViewInternal.h: Expose -_prepareForDictionaryLookup. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didPerformDictionaryLookup): Send -[WKView _prepareForDictionaryLookup]. * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _animationControllerForText]): Ditto. 2015-05-07 Commit Queue Unreviewed, rolling out r183961. https://bugs.webkit.org/show_bug.cgi?id=144784 Broke js/dom/JSON-stringify.html (Requested by kling on #webkit). Reverted changeset: "Optimize serialization of quoted JSON strings." https://bugs.webkit.org/show_bug.cgi?id=144754 http://trac.webkit.org/changeset/183961 2015-05-07 Anders Carlsson Build fixes. * UIProcess/API/mac/WKView.mm: (-[WKView initWithFrame:processPool:configuration:webView:]): Use the regular init method. * UIProcess/mac/WKSharingServicePickerDelegate.mm: (-[WKSharingServicePickerDelegate sharingService:didShareItems:]): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::handleSelectionServiceClick): Pass empty dictionaries instead of nil. 2015-05-07 Chris Dumez ASSERTION when pasting text into the WebInspector console https://bugs.webkit.org/show_bug.cgi?id=144774 Reviewed by Ryosuke Niwa. Fix assertion in didChangeSelection() meant to check that calling editorState() does not cause a synchronous layout. The assertion was not correct as it was relying on FrameView::needsLayout() and we would hit it if calling editorState() would schedule a layout. Instead, the new assertion relies on FrameView::layoutCount(), which is more accurate. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection): 2015-05-07 Andreas Kling Optimize serialization of quoted JSON strings. Reviewed by Darin Adler. * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::asJSON): Use the new StringBuilder API. 2015-05-07 Martin Robinson Followup fixes to r183936 I neglected to include a few review comments when I landed the patch. * UIProcess/gtk/TextCheckerGtk.cpp: (WebKit::checkerState): Remove double semicolons. (WebKit::updateStateForAllProcessPools): Use range-based-for loop here and give the function a better name. (WebKit::TextChecker::setContinuousSpellCheckingEnabled): Use new function name (WebKit::TextChecker::setGrammarCheckingEnabled):Use new function name (WebKit::TextChecker::ignoreWord): Fix unused parameter warning. (WebKit::updateStateForAllContexts): Deleted. 2015-05-07 Michael Catanzaro [GTK] Checks for DEVELOPMENT_BUILD are all wrong https://bugs.webkit.org/show_bug.cgi?id=144746 Reviewed by Martin Robinson. Use DEVELOPER_MODE rather than DEVELOPMENT_BUILD. * Shared/gtk/ProcessExecutablePathGtk.cpp: (WebKit::findWebKitProcess): * UIProcess/API/gtk/WebKitWebContext.cpp: (injectedBundleDirectory): * UIProcess/gtk/TextCheckerGtk.cpp: (WebKit::enchantTextChecker): 2015-05-06 Dean Jackson Handle backdrop views that have to tile https://bugs.webkit.org/show_bug.cgi?id=142317 Reviewed by Simon Fraser. Take 2 - this was rolled out because Mavericks was crashing. Add some better logging for custom appearance. * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTextStream::operator<<): 2015-05-07 Sungmann Cho Add PLUGIN_ARCHITECTURE(X11) around m_frameRectInWindowCoordinates in NetscapePlugin. https://bugs.webkit.org/show_bug.cgi?id=144490 Reviewed by Darin Adler. m_frameRectInWindowCoordinates in NetscapePlugin is currently being used only for the windowed plugins, and the windowed plugins are only supported on X11. So we can guard it with PLUGIN_ARCHITECTURE(X11). No new tests, no behavior change. * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: (WebKit::NetscapePlugin::geometryDidChange): * WebProcess/Plugins/Netscape/NetscapePlugin.h: 2015-05-05 Myles C. Maxfield Revert "Introducing the Platform Abstraction Layer (PAL)" https://bugs.webkit.org/show_bug.cgi?id=144751 Unreviewed. PAL should be a new target inside WebCore, rather than a top-level folder. * Configurations/FeatureDefines.xcconfig: Updated 2015-05-07 Jer Noble [WK2][Fullscreen] Fullscreen video does not enter low-power mode. https://bugs.webkit.org/show_bug.cgi?id=144744 Reviewed by Darin Adler. One of the requirements of entering low-power compositing mode is that no masking layers are present in any of the ancestors of the fullscreen video layer. So once our fullscreen transition animation completes, remove the mask layer entirely from our clipping layer. This means it needs to be re-created and added when entering fullscreen, rather than just at initialization time. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController initWithWindow:webView:]): (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): 2015-05-07 Martin Robinson [GTK] All spell checking layout tests fail https://bugs.webkit.org/show_bug.cgi?id=144648 Reviewed by Carlos Garcia Campos. Simplify and complete the GTK+ spell-checking implementation. Instead of using the EFL/GTK+ only WKTextChecker interface, directly implement Enchant spell-checking in TextCheckerGtk. The per-context spell checking API is an illusion, since all WKTextChecker implementations will adjust the same singleton. This can be a first step toward removing it entirely. Also complete the implementation of the TextChecker interface by duplicating the EFL code, which reuses other methods in the same class. Eventually this duplication will collapse, once GTK+ and EFL can share an Enchant implementation. * PlatformGTK.cmake: * UIProcess/API/gtk/WebKitPrivate.h: * UIProcess/API/gtk/WebKitTextChecker.cpp: Removed. * UIProcess/API/gtk/WebKitTextChecker.h: Removed. * UIProcess/API/gtk/WebKitWebContext.cpp: Remove WebTextChecker usage and replace it with calls directly to the TextChecker singleton via static methods. * UIProcess/TextChecker.h: * UIProcess/gtk/TextCheckerGtk.cpp: Move the WebTextChecker enchant implementation here and reuse the EFL version of WebKit::TextChecker::requestCheckingOfString. Also initialize languages properly when building for developer builds. This allows WebKitTestRunner to work even when it doesn't explicitly set the languages. 2015-05-07 Ada Chan Fix a couple of cases where the backForwardListState's currentIndex is not set correctly in WebBackForwardList::backForwardListState(). https://bugs.webkit.org/show_bug.cgi?id=144666 Reviewed by Darin Adler. * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::backForwardListState): If the first item is filtered out and the currentIndex is 0, don't decrement currentIndex. If all the items are filtered out, set currentIndex to the uninitialized value. 2015-05-07 Csaba Osztrogonác [WK2] Remove Windows cruft https://bugs.webkit.org/show_bug.cgi?id=144745 Reviewed by Darin Adler. * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::getMemorySize): * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp: (IPC::ArgumentCoder::encode): (IPC::ArgumentCoder::decode): * WebProcess/soup/WebProcessSoup.cpp: (WebKit::getMemorySize): 2015-05-07 Carlos Garcia Campos REGRESSION(r182032): [GTK] Production build is broken after r182032 https://bugs.webkit.org/show_bug.cgi?id=144736 Reviewed by Martin Robinson. The problem is that r182032 moved the NetworkProcess sources from WebKit2 sources to NetworkProcess sources. That's not a problem for developer builds where all internal symbols are exported, but doesn't work for production builds because all those internal symbols are private. * CMakeLists.txt: Use a different name for common network process sources variable. * PlatformMac.cmake: Append common network process sources to the network process source list for Mac. 2015-05-07 Dan Bernstein [Xcode] Remove usage of AspenFamily.xcconfig in Source/ https://bugs.webkit.org/show_bug.cgi?id=144727 Reviewed by Darin Adler. * Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator. * Configurations/WebKit2.xcconfig: Define INSTALL_PATH_ACTUAL and let INSTALL_PATH be derived from it and INSTALL_PATH_PREFIX. Don’t override DYLIB_INSTALL_NAME_BASE for iOS, because we define LD_DYLIB_INSTALL_NAME directly where needed. 2015-05-07 Carlos Garcia Campos Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.1 release. * gtk/NEWS: Add release notes for 2.9.1. 2015-05-07 Carlos Garcia Campos [GTK] Remove dock button from Web Inspector window https://bugs.webkit.org/show_bug.cgi?id=144728 Reviewed by Sergio Villar Senin. We added the dock buttons to the headerbar, because they were removed from the inspector toolbar, but with the new tabbed design, the dock buttons are back in the toolbar and look redundant. * UIProcess/WebInspectorProxy.h: * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::createInspectorWindow): (WebKit::WebInspectorProxy::platformAttachAvailabilityChanged): (WebKit::WebInspectorProxy::dockButtonClicked): Deleted. 2015-05-06 Jer Noble [WK2][Fullscreen] Elements whose children extend beyond their bounds are clipped in fullscreen mode. https://bugs.webkit.org/show_bug.cgi?id=144716 Reviewed by Darin Adler. We create a mask animation for the transition between windowed and fullscreen modes, on the assumption that the element being taken into fullscreen mode does not have visible children who extend beyond that elements bounds. This assumption breaks down in the case where div with absolutely positioned children is taken fullscreen. While we can't necessarily make the transition look correct in this case, we can remove the mask after the transition completes. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: (WebKit::removeAllMediaKeyStorageForOriginPath): 2015-05-06 Jinwoo Jeong Fix a build break on EFL debug build https://bugs.webkit.org/show_bug.cgi?id=144654 Reviewed by Gyuyoung Kim. No new tests, just build fix. * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): (WebKit::CoordinatedGraphicsScene::paintToGraphicsContext): 2015-05-06 Daniel Bates [iOS][WK2] Pause/resume database thread when UIProcess enters/leaves the background https://bugs.webkit.org/show_bug.cgi?id=144657 Reviewed by Andy Estes. Pause and resume the database thread when the UIProcess enters and leaves the background, respectively, so that we avoid WebProcess termination due to holding a locked SQLite database file when the WebProcess is suspended. This behavior matches the analagous behavior in Legacy WebKit. * UIProcess/WebPageProxy.h: * UIProcess/ios/WKContentView.mm: (-[WKContentView _applicationDidEnterBackground:]): Call WebPageProxy::applicationDidEnterBackground() when the UIProcess enters the background. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationDidEnterBackground): Added; notify the WebProcess to pause the database thread. We temporarily take out background assertion on the WebProcess before sending this notification to ensure that the WebProcess is running to receive it. We'll release this assertion when the WebProcess replies that it received the notification. * WebProcess/WebCoreSupport/WebDatabaseManager.cpp: (WebKit::WebDatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseManager::setPauseAllDatabases(). * WebProcess/WebCoreSupport/WebDatabaseManager.h: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Add message ApplicationDidEnterBackground(). Also, add empty lines to help demarcate this message and the other UIKit application lifecycle-related messages from the rest of the list of messages. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applicationWillEnterForeground): Resume the database thread. (WebKit::WebPage::applicationDidEnterBackground): Pause the database thread. 2015-05-06 Ryuan Choi [EFL] ewk_view_page_contents_get() API test is flaky https://bugs.webkit.org/show_bug.cgi?id=144683 Reviewed by Gyuyoung Kim. Callback of WKPageGetContentsAsMHTMLData contains WKData which does not contain null terminated character. * UIProcess/API/efl/ewk_view.cpp: Pass the data of string instead of WKData directly. (ewkViewPageContentsAsMHTMLCallback): 2015-05-06 Joseph Pecoraro Web Inspector: Docking Toolbar Buttons do not respect Docking Availability https://bugs.webkit.org/show_bug.cgi?id=144714 Reviewed by Timothy Hatcher. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::createInspectorPage): (WebKit::WebInspectorProxy::attachAvailabilityChanged): * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::setDockingUnavailable): * WebProcess/WebPage/WebInspectorUI.h: * WebProcess/WebPage/WebInspectorUI.messages.in: When docking availability changes, inform the inspector page so it can respond by updating its UI. 2015-05-06 Joonghun Park [WK2] Simplify AsyncRequestImpl::ArgumentType parameters https://bugs.webkit.org/show_bug.cgi?id=144689 Reviewed by Darin Adler. Remove duplicated typename and ::type from AsyncRequestImpl related function parameters. * Shared/AsyncRequest.h: 2015-05-06 Commit Queue Unreviewed, rolling out r183894. https://bugs.webkit.org/show_bug.cgi?id=144719 crashes on mavericks (Requested by dino on #webkit). Reverted changeset: "Handle backdrop views that have to tile" https://bugs.webkit.org/show_bug.cgi?id=142317 http://trac.webkit.org/changeset/183894 2015-05-06 Brady Eidson Addition review followup for: Crash executing null AsyncRequest in IDB code. and https://bugs.webkit.org/show_bug.cgi?id=144715 Reviewed by Darin Adler. This patch adds a layer on top of the UniqueIDBDatabase request map to catch this coding mistake in the future. * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::didCompleteBoolRequest): Get rid of the ASSERT and the temporary variable, make it a single line which reads better. (WebKit::UniqueIDBDatabase::didPutRecordInBackingStore): Ditto. (WebKit::UniqueIDBDatabase::didGetRecordFromBackingStore): Ditto. (WebKit::UniqueIDBDatabase::didOpenCursorInBackingStore): Ditto. (WebKit::UniqueIDBDatabase::didAdvanceCursorInBackingStore): Ditto. (WebKit::UniqueIDBDatabase::didIterateCursorInBackingStore): Ditto. (WebKit::UniqueIDBDatabase::didCountInBackingStore): Ditto. (WebKit::UniqueIDBDatabase::didDeleteRangeInBackingStore): Ditto. * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: Ditto. Add the class AsyncRequestMap which shadows a HashMap but does aggressive runtime checks in ::take() to make sure the same request was not dispatched twice in a row, and makes sure we never try to execute a null AsyncRequest by way of a RELEASE_ASSERT. * Shared/AsyncRequest.h: (WebKit::AsyncRequestMap::AsyncRequestMap): (WebKit::AsyncRequestMap::take): (WebKit::AsyncRequestMap::add): (WebKit::AsyncRequestMap::clear): (WebKit::AsyncRequestMap::values): 2015-05-06 Brady Eidson Crash executing null AsyncRequest in IDB code. and https://bugs.webkit.org/show_bug.cgi?id=144715 Reviewed by Darin Adler. When UniqueIDBDatabase fails to execute an operation on the database work queue it usually dispatches an AsyncRequest ID back to the main thread with an error callback. For two of its operations it would then also dispatch the success callback. In those cases the main thread would first take the AsyncRequest for the error callback out of a map and then execute it. It would then try to take the same AsyncRequest out of the map again, fail to do so, then execute a null AsyncRequest. This patch fixes the two functions to not dispatch both an error and success callback. * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::countInBackingStore): Return after dispatching the error callback. (WebKit::UniqueIDBDatabase::deleteRangeInBackingStore): Ditto. 2015-05-06 Dean Jackson Handle backdrop views that have to tile https://bugs.webkit.org/show_bug.cgi?id=142317 Reviewed by Simon Fraser. Add some better logging for custom appearance. * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTextStream::operator<<): 2015-05-06 Chris Dumez Disable network cache efficacy logging https://bugs.webkit.org/show_bug.cgi?id=144703 Reviewed by Andreas Kling. Disable network cache efficacy logging by default as we have sufficient data for now. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::registerUserDefaultsIfNeeded): 2015-05-06 Timothy Horton Fix the build. * UIProcess/mac/WKViewLayoutStrategy.mm: (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]): 2015-05-06 Dan Bernstein No way to get a WKWebProcessPlugInFrame’s parent frame https://bugs.webkit.org/show_bug.cgi?id=144705 Reviewed by Sam Weinig. * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm: (-[WKWebProcessPlugInFrame _parentFrame]): Added this getter. * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h: Declared new _parentFrame property. 2015-05-06 Timothy Horton Fix the build. * UIProcess/mac/WKViewLayoutStrategy.mm: (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]): 2015-04-02 Myles C. Maxfield Introducing the Platform Abstraction Layer (PAL) https://bugs.webkit.org/show_bug.cgi?id=143358 Reviewed by Simon Fraser. * Configurations/FeatureDefines.xcconfig: Updated 2015-05-05 Carlos Garcia Campos [GTK][WK2] The WebKit network disk cache is not enabled https://bugs.webkit.org/show_bug.cgi?id=142821 Reviewed by Martin Robinson. Enable NetworkCache for the GTK+ port. * config.h: 2015-05-06 Ryuan Choi [EFL] Remove redudant condition in ViewClientEfl::didChangeViewportAttributes https://bugs.webkit.org/show_bug.cgi?id=144672 Reviewed by Gyuyoung Kim. ViewClientEfl::didChangeViewportAttributes is always called when fixed layout is disabled. * UIProcess/efl/ViewClientEfl.cpp: (WebKit::ViewClientEfl::didChangeViewportAttributes): Removes condition that checks whether fixed layout is enabled. 2015-05-05 Alexey Proskuryakov NetworkResourceLoader::cleanup() should clear ResourceHandle client pointer. https://bugs.webkit.org/show_bug.cgi?id=144641 rdar://problem/20250960 Reviewed by David Kilzer. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::cleanup): Clear the client pointer. * Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::useCredentialForChallenge): (WebKit::AuthenticationManager::continueWithoutCredentialForChallenge): (WebKit::AuthenticationManager::cancelChallenge): (WebKit::AuthenticationManager::performDefaultHandling): (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue): Updated comments, which were not accurate, at least on Mac. 2015-05-05 Tim Horton Views get stuck with viewScale < 1 after switching from DynamicSizeWithMinimumViewSize to ViewSize https://bugs.webkit.org/show_bug.cgi?id=144656 Reviewed by Dan Bernstein. * UIProcess/mac/WKViewLayoutStrategy.mm: (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willChangeLayoutStrategy]): Reset the viewScale when we leave the DynamicSizeWithMinimumViewSize strategy. 2015-05-05 Tim Horton Fix the build. * Platform/mac/LayerHostingContext.mm: (WebKit::LayerHostingContext::setFencePort): 2015-05-05 Tim Horton Fix the build. * UIProcess/mac/WKViewLayoutStrategy.mm: (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]): 2015-05-05 Timothy Horton Add a layout mode for computing fixed layout size from a minimum size https://bugs.webkit.org/show_bug.cgi?id=144610 Reviewed by Simon Fraser. Add a layout mode where WebKit determines the layout size with a set of (still in flux) heuristics, trying hard to keep the page usable below a particular client-defined threshold view size. This can mean that WebKit will start scaling down the page inside the view to make the whole page fit, using the viewScale mechanism. * UIProcess/API/C/WKLayoutMode.h: * UIProcess/API/Cocoa/_WKLayoutMode.h: Add the new layout mode, and documentation for the two complicated ones. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _layoutMode]): (-[WKWebView _setLayoutMode:]): (-[WKWebView _setViewScale:]): (-[WKWebView _setMinimumViewSize:]): (-[WKWebView _minimumViewSize]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: Forward the layoutMode and viewScale parameters to WKView if we have one. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/mac/WKView.mm: (-[WKView dealloc]): (-[WKView viewWillStartLiveResize]): (-[WKView viewDidEndLiveResize]): (-[WKView setFrameSize:]): (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView disableFrameSizeUpdates]): (-[WKView enableFrameSizeUpdates]): (-[WKView frameSizeUpdatesDisabled]): (-[WKView _layoutMode]): (-[WKView _setLayoutMode:]): (-[WKView _setViewScale:]): (-[WKView _setMinimumViewSize:]): (-[WKView _minimumViewSize]): Store the minimum view size, and update the fixed layout size if needed. (-[WKView _updateAutomaticallyComputedFixedLayoutSize]): Deleted. (-[WKView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]): Deleted. (-[WKView _automaticallyComputesFixedLayoutSizeFromViewScale]): Deleted. Store the WKLayoutMode on the WKViewLayoutStrategy instead of having a bunch of things like _automaticallyComputesFixedLayoutSizeFromViewScale. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/mac/WKViewLayoutStrategy.h: Added. * UIProcess/mac/WKViewLayoutStrategy.mm: Added. (+[WKViewLayoutStrategy layoutStrategyWithPage:view:mode:]): (-[WKViewLayoutStrategy initWithPage:view:mode:]): (-[WKViewLayoutStrategy willDestroyView:]): (-[WKViewLayoutStrategy layoutMode]): (-[WKViewLayoutStrategy updateLayout]): (-[WKViewLayoutStrategy disableFrameSizeUpdates]): (-[WKViewLayoutStrategy enableFrameSizeUpdates]): (-[WKViewLayoutStrategy frameSizeUpdatesDisabled]): (-[WKViewLayoutStrategy didChangeViewScale]): (-[WKViewLayoutStrategy didChangeMinimumViewSize]): (-[WKViewLayoutStrategy willStartLiveResize]): (-[WKViewLayoutStrategy didEndLiveResize]): (-[WKViewLayoutStrategy didChangeFrameSize]): (-[WKViewLayoutStrategy willChangeLayoutStrategy]): (-[WKViewViewSizeLayoutStrategy initWithPage:view:mode:]): (-[WKViewViewSizeLayoutStrategy updateLayout]): (-[WKViewFixedSizeLayoutStrategy initWithPage:view:mode:]): (-[WKViewFixedSizeLayoutStrategy updateLayout]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:mode:]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy updateLayout]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy didChangeViewScale]): (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy didChangeFrameSize]): Move the existing layout strategies from WKView into WKViewLayoutStrategy subclasses. (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy initWithPage:view:mode:]): (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]): (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didChangeMinimumViewSize]): (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willStartLiveResize]): (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didEndLiveResize]): While in live resize with the new layout mode, disable frame size updates. The new layout mode will do a live scale during part of the resize, and we don't always want to send the new view size to the Web process. (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didChangeFrameSize]): (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willChangeLayoutStrategy]): While in the new layout mode, maintain the viewScale as the minimum of the scale required to fit the current view frame size inside the minimumViewSize. If no scaling is required, carry on as usual, pushing the new view frame size to the DrawingArea and on to the Web process. If scaling is required, apply a transform to the view in the UI process, until the live resize completes, in which case we send a fenced viewScale adjustment to the Web process (so that the tiles paint at the new viewScale synchronized with the removal of the transform in the UI process). * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::scaleViewFenced): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/DrawingArea.h: (WebKit::DrawingArea::addFence): (WebKit::DrawingArea::acceleratedAnimationDidEnd): Deleted. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scaleViewAndUpdateGeometryFenced): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::addFence): Add scaleViewAndUpdateGeometryFenced and the ability to install CoreAnimation fences on TiledCoreAnimationDrawingArea's CAContext. Add the ability to send updateGeometry out-of-band, so that we can send it synchronously inside the message along with the CA fence. We have to both change the viewScale and updateGeometry simultaneously in the same CA commit that we install the fence into, in order to ensure that there is no flash. 2015-05-05 Alex Christensen [Content Extensions] Release input NSString when finished copying it. https://bugs.webkit.org/show_bug.cgi?id=144642 Reviewed by Brian Weinstein. * UIProcess/API/Cocoa/_WKUserContentExtensionStore.h: * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm: (-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): 2015-05-05 Alex Christensen [Content Extensions] Use less memory to store the json input. https://bugs.webkit.org/show_bug.cgi?id=144604 Reviewed by Benjamin Poulain. * UIProcess/API/APIUserContentExtensionStore.cpp: (API::compiledToFile): (API::UserContentExtensionStore::compileContentExtension): * UIProcess/API/APIUserContentExtensionStore.h: Don't copy strings as much or keep them alive after done using them. 2015-05-04 Alex Christensen [Content Extensions] Use less memory when writing byte code to file https://bugs.webkit.org/show_bug.cgi?id=144602 Reviewed by Darin Adler. * UIProcess/API/APIUserContentExtensionStore.cpp: (API::decodeContentExtensionMetaData): (API::writeDataToFile): (API::compiledToFile): (API::createExtension): Compile and write each DFA to file, then come back and write the header when finalizing. Also don't copy the DFA bytecode. This way, we don't need to keep more than one DFA's bytecode in memory at a time. 2015-05-05 Sungmann Cho Make all FrameLoadState data members private. https://bugs.webkit.org/show_bug.cgi?id=144562 Reviewed by Darin Adler. Previously, all of the data members in FrameLoadState were public and accessed directly from outside the class. But these should all be private as noted in FrameLoadState.h for better encapsulation. No new tests, no behavior change. * UIProcess/API/C/WKFrame.cpp: (WKFrameGetFrameLoadState): * UIProcess/FrameLoadState.h: (WebKit::FrameLoadState::state): (WebKit::FrameLoadState::url): (WebKit::FrameLoadState::provisionalURL): (WebKit::FrameLoadState::unreachableURL): * UIProcess/WebFrameProxy.h: (WebKit::WebFrameProxy::url): (WebKit::WebFrameProxy::provisionalURL): (WebKit::WebFrameProxy::unreachableURL): 2015-05-05 Alexey Proskuryakov Crashes in SandboxExtension::consumePermanently when uploading https://bugs.webkit.org/show_bug.cgi?id=144611 rdar://problem/10156710 Reviewed by Darin Adler. This only fixes the crashes, uploading still won't work. Added null checks and some logging that may help us get to the root cause eventually. * Shared/SandboxExtension.h: (WebKit::SandboxExtension::createHandle): (WebKit::SandboxExtension::createHandleForReadWriteDirectory): * Shared/mac/SandboxExtensionMac.mm: (WebKit::SandboxExtension::createHandle): (WebKit::SandboxExtension::createHandleForReadWriteDirectory): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didChooseFilesForOpenPanel): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::extendSandboxForFileFromOpenPanel): 2015-05-05 Csaba Osztrogonác Remove TextureMapperImageBuffer https://bugs.webkit.org/show_bug.cgi?id=143561 Reviewed by Žan Doberšek. * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: (WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing): 2015-05-05 Carlos Garcia Campos [SOUP] Network Cache: IOChannel operations are not sent to the right thread https://bugs.webkit.org/show_bug.cgi?id=144542 Reviewed by Darin Adler. We are ignoring the given WorkQueue and running the async operations in the current thread. Check the given WorkQueue instead and schedule the operation to the given queue. If the given queue is nullptr, which means the operation should be run in the main context, the operation is run directly if the current context is the main one or sent to the main context using a GMainLoopSource. Fixes crashes due to asserts when running disk-cache layout tests in a Debug build. * NetworkProcess/cache/NetworkCacheIOChannel.h: * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::runTaskInQueue): (WebKit::NetworkCache::IOChannel::read): (WebKit::NetworkCache::IOChannel::readSync): (WebKit::NetworkCache::IOChannel::write): 2015-05-04 Dan Bernstein WebKit always goes through LaunchServices for main frame navigation actions https://bugs.webkit.org/show_bug.cgi?id=144608 Reviewed by Tim Horton. * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Defined _WKNavigationActionPolicyAllowWithoutTryingAppLink. * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): If the policy is _WKNavigationActionPolicyAllowWithoutTryingAppLink, don’t go through tryAppLink. 2015-05-04 Enrica Casucci [iOS WK2] editorState should include information about selection clipping rectangle. https://bugs.webkit.org/show_bug.cgi?id=144603 rdar://problem/20521252 Reviewed by Chris Dumez. Adding selectionClipRect to the post-layout portion of EditorState. This way we can compute the selection clipping rectangle based on up-to-date information instead of using the rectangle provided when then element was first focused. * Shared/EditorState.cpp: (WebKit::EditorState::PostLayoutData::encode): (WebKit::EditorState::PostLayoutData::decode): * Shared/EditorState.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _selectionClipRect]): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformEditorState): 2015-05-04 Antti Koivisto Network Cache: Support time based cache clearing https://bugs.webkit.org/show_bug.cgi?id=144568 Reviewed by Andreas Kling. Support clearing cache entries newer than given time only. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::deleteDumpFile): (WebKit::NetworkCache::Storage::traverse): Also fix thread safety of traverse handler function. (WebKit::NetworkCache::Cache::clear): Also add completion handler to support the API properly. * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::clear): * NetworkProcess/cache/NetworkCacheStorage.h: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::clearNSURLCache): Factor to a function. (WebKit::NetworkProcess::clearDiskCache): 2015-05-04 Zan Dobersek [WTF] Remove Functional.h inclusions https://bugs.webkit.org/show_bug.cgi?id=144400 Reviewed by Darin Adler. Remove unnecessary inclusions of the header in WebKit2. * Platform/IPC/unix/ConnectionUnix.cpp: * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Import the header that was previously indirectly included through the Functional.h header. * WebProcess/WebPage/DrawingArea.cpp: 2015-05-04 Csaba Osztrogonác [ARM] Don't compare unsigned chars to EOF (-1) https://bugs.webkit.org/show_bug.cgi?id=144439 Reviewed by Geoffrey Garen. * Shared/linux/WebMemorySamplerLinux.cpp: (WebKit::nextToken): Don't cast return value of fgetc() to char. 2015-05-04 Antti Koivisto Remove NetworkResourceLoadScheduler https://bugs.webkit.org/show_bug.cgi?id=144550 Reviewed by Sam Weinig. It doesn't really do anything. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::getNetworkProcessStatistics): * NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::networkResourceLoadScheduler): Deleted. * NetworkProcess/NetworkResourceLoadScheduler.cpp: Removed. * NetworkProcess/NetworkResourceLoadScheduler.h: Removed. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::cleanup): * NetworkProcess/NetworkResourceLoader.h: (WebKit::NetworkResourceLoader::create): * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::initializeNetworkSettings): Moved from NetworkResourceLoadSchedulerMac.mm. (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): * NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm: Removed. * NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp: Removed. * WebKit2.xcodeproj/project.pbxproj: 2015-05-03 Alexey Proskuryakov Crash in SandboxExtension::consume when uploading iWork -tef documents to iCloud https://bugs.webkit.org/show_bug.cgi?id=144509 rdar://problem/18731910 Reviewed by Daniel Bates. No test, because testRunner.beginDragWithFiles doesn't work in WKTR, and making it work is hard. * Shared/BlobDataFileReferenceWithSandboxExtension.cpp: (WebKit::BlobDataFileReferenceWithSandboxExtension::prepareForFileAccess): (WebKit::BlobDataFileReferenceWithSandboxExtension::revokeFileAccess): 2015-05-03 Carlos Garcia Campos [GTK][EFL] Unify platform display handling https://bugs.webkit.org/show_bug.cgi?id=144517 Reviewed by Martin Robinson. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseRealize): Use PlatformDisplay::sharedDisplay() to checkt the display type. (webkitWebViewBaseCreateWebPage): Ditto. * UIProcess/cairo/BackingStoreCairo.cpp: (WebKit::BackingStore::createBackend): Pass the native X11 shared display to BackingStoreBackendCairoX11. * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: (WebKit::NetscapePlugin::x11HostDisplay): Return the native X11 shared display. 2015-05-03 Carlos Garcia Campos Unreviewed. Fix Debug build with NETWORK_CACHE enabled and CACHE_PARTITIONING disabled. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::store): 2015-05-01 Dan Bernstein WebKit2 part of Back/forward navigation to an error page in Safari breaks the back-forward list https://bugs.webkit.org/show_bug.cgi?id=144501 Reviewed by Darin Adler. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadAlternateHTMLString): If this is called during didFailProvisionalLoadForFrame, send back the provisional URL captured at the time of failure. (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): Get the provisioinal URL and keep it in new member variable m_failingProvisionalLoadURL for the duration of the client’s handling of this message. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: Added provisionalURL parameter to DidFailProvisionalLoadForFrame. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): Send the URL for this error to the UI process. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::loadAlternateHTMLString): Temporarily restore the loader’s state to reflect the provisional load error being handled. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Added provisionalLoadErrorURL parameter to LoadAlternateHTMLString. 2015-05-01 Martin Robinson USE(...) macro should expect unprefixed variables https://bugs.webkit.org/show_bug.cgi?id=144454 Reviewed by Daniel Bates. * Shared/API/c/WKBase.h: Replace all occurrences WTF_USE with USE. * WebKit2.xcodeproj/project.pbxproj: Ditto. 2015-05-01 Brady Eidson Add API to disable meta refreshes. and https://bugs.webkit.org/show_bug.cgi?id=144269 Reviewed by Alexey Proskuryakov. Add a preference to enable/disable meta refreshes, enabled by default. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMetaRefreshEnabled): (WKPreferencesGetMetaRefreshEnabled): (WKPreferencesGetIgnoreViewportScalingConstraints): Deleted. * UIProcess/API/C/WKPreferencesRefPrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-05-01 Antti Koivisto Remove network process load serialization code https://bugs.webkit.org/show_bug.cgi?id=144448 Reviewed by Alexey Proskuryakov. TestRunner.setSerializeHTTPLoads is used by a few tests but it is unnecessary with network process. We don't reorder loads anyway so test results are consistent. There or no other clients for this code. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): (WebKit::NetworkConnectionToWebProcess::setSerialLoadingEnabled): Deleted. * NetworkProcess/NetworkConnectionToWebProcess.h: (WebKit::NetworkConnectionToWebProcess::isSerialLoadingEnabled): Deleted. * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::getNetworkProcessStatistics): * NetworkProcess/NetworkResourceLoadScheduler.cpp: (WebKit::NetworkResourceLoadScheduler::scheduleLoader): (WebKit::NetworkResourceLoadScheduler::removeLoader): (WebKit::NetworkResourceLoadScheduler::loadsPendingCount): Deleted. * NetworkProcess/NetworkResourceLoadScheduler.h: * WebProcess/InjectedBundle/API/c/WKBundle.cpp: (WKBundleSetTabKeyCyclesThroughElements): (WKBundleSetSerialLoadingEnabled): Deleted. (WKBundleDispatchPendingLoadRequests): Deleted. * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::setSerialLoadingEnabled): Deleted. (WebKit::InjectedBundle::dispatchPendingLoadRequests): Deleted. Remove also this as it does nothing. * WebProcess/Network/WebResourceLoadScheduler.cpp: (WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler): (WebKit::WebResourceLoadScheduler::suspendPendingRequests): (WebKit::WebResourceLoadScheduler::resumePendingRequests): Remove implementation, it does nothing. (WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled): * WebProcess/Network/WebResourceLoadScheduler.h: 2015-04-30 Timothy Horton Remove long-deprecated unused WKView minimumLayoutWidth properties https://bugs.webkit.org/show_bug.cgi?id=144480 Reviewed by Alexey Proskuryakov. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/mac/WKView.mm: (-[WKView minimumLayoutWidth]): Deleted. (-[WKView setMinimumLayoutWidth:]): Deleted. (-[WKView minimumWidthForAutoLayout]): Deleted. (-[WKView setMinimumWidthForAutoLayout:]): Deleted. These were replaced with minimumSizeForAutoLayout long ago. 2015-04-30 Simon Fraser Fixed elements end up in the middle of the view with pageScale < 1 https://bugs.webkit.org/show_bug.cgi?id=144428 rdar://problem/20404982 Reviewed by Tim Horton. Encode/decode fixedElementsLayoutRelativeToFrame. * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder::encode): (ArgumentCoder::decode): 2015-04-30 Tim Horton Asynchronous (or timed-out synchronous) resize flashes white instead of page background color https://bugs.webkit.org/show_bug.cgi?id=144468 Reviewed by Simon Fraser and Dan Bernstein. * UIProcess/API/mac/WKView.mm: (-[WKView _viewBackgroundColor]): (-[WKView updateLayer]): Use the pageExtendedBackgroundColor for the background color of the WKView, if we have one (and aren't using a transparent background). This means during asynchronous resize or other cases where the Web process isn't keeping up with the UI process during a resize, we'll see background color instead of white. 2015-04-30 Beth Dakin Should choose UIScrollView indicatorStyle based on the document background color https://bugs.webkit.org/show_bug.cgi?id=144473 -and corresponding- rdar://problem/19897699 Reviewed by Simon Fraser. Update the indicator style whenever the background color changes. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _updateScrollViewBackground]): 2015-04-30 Enrica Casucci [iOS] tapping in the middle of a word in editable content should not select the word. https://bugs.webkit.org/show_bug.cgi?id=144421 rdar://problem/20710948 Reviewed by Tim Horton. Reverting to the original behavior. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::selectWithGesture): 2015-04-29 Hunseop Jeong Fix the EFL build after r183595 https://bugs.webkit.org/show_bug.cgi?id=144427 Reviewed by Gyuyoung Kim. updateWheelEventTestTriggersIfNeeded() is guarded by #if ENABLE(CSS_SCROLL_SNAP) || ENABLE(RUBBER_BANDING). * WebProcess/WebPage/EventDispatcher.cpp: (WebKit::updateWheelEventTestTriggersIfNeeded): 2015-04-29 Brent Fulgham Expand test infrastructure to support scrolling tests https://bugs.webkit.org/show_bug.cgi?id=143684 Reviewed by Simon Fraser. Update test programs to activate (and deactivate) the new WheelEventTestTrigger logic. * UIProcess/API/C/WKPage.cpp: (WKPageClearWheelEventTestTriggers): Added. * UIProcess/API/C/WKPage.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::clearWheelEventTestTrigger): Added. * UIProcess/WebPageProxy.h: * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageStartMonitoringScrollOperations): Interact with WheelEventTestTrigger through the Page, rather than MainFrame. (WKBundlePageRegisterScrollOperationCompletionCallback): Ditto. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::createScrollbar): Make sure scroll animator knows about any active test triggers. * WebPage/EventDispatcher.mm: (WebKit::EventDispatcher::wheelEvent): If the wheel event was passed to the scrolling thread, defer tests until a Scrolling Thread Sync has occurred. * WebPage/WebPage.cpp: (WebKit::WebPage::clearWheelEventTestTrigger): Added. * WebPage/WebPage.h: * WebPage/WebPage.message.in: Added ClearWheelEventTestTrigger message. 2015-04-29 Enrica Casucci Adding the ability to move selection by granularity on iOS. https://bugs.webkit.org/show_bug.cgi?id=144410 rdar://problem/19213337 Reviewed by Benjamin Poulain. This patch also correctly sets _usingGestureForSelection for all the functions that change the selection with a gesture. This way we make sure that the selection drawing is not delayed until the next time we paint. * UIProcess/WebPageProxy.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView moveSelectionAtBoundary:inDirection:completionHandler:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::moveSelectionAtBoundaryWithDirection): 2015-04-29 Tim Horton UI process sometimes crashes under _takeViewSnapshot when the window is off-screen https://bugs.webkit.org/show_bug.cgi?id=144418 Reviewed by Alexey Proskuryakov. * UIProcess/API/mac/WKView.mm: (-[WKView _takeViewSnapshot]): Null-check the array before checking if it has any items. If the window is off-screen, we can't snapshot it. 2015-04-29 Simon Fraser Allow testing of plug-ins that handle wheel events. https://bugs.webkit.org/show_bug.cgi?id=144413 Reviewed by Tim Horton. Allow the Test Netscape Plug-in to pretend to handle wheel events, so layout tests can use it. * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm: (WebKit::NetscapePluginModule::determineQuirks): 2015-04-29 Filip Pizlo JSTypeInfo should have an inline type flag to indicate if getCallData() has been overridden https://bugs.webkit.org/show_bug.cgi?id=144397 Reviewed by Andreas Kling. If you override getCallData() and you want to be called a "function", then you need to use the new TypeOfShouldCallGetCallData flag. * WebProcess/Plugins/Netscape/JSNPObject.h: 2015-04-29 Antti Koivisto ResourceLoadPriority should be enum class https://bugs.webkit.org/show_bug.cgi?id=144326 Reviewed by Darin Adler. * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::servePendingRequests): Deleted. Remove this unused message. * NetworkProcess/NetworkConnectionToWebProcess.h: * NetworkProcess/NetworkConnectionToWebProcess.messages.in: * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::makeStoreDecision): (WebKit::NetworkCache::Cache::retrieve): * NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm: (WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings): * WebProcess/Network/WebResourceLoadScheduler.cpp: (WebKit::WebResourceLoadScheduler::servePendingRequests): * WebProcess/Network/WebResourceLoadScheduler.h: 2015-04-29 Myles C. Maxfield [OS X] Use CTFontCreateForCSS instead of doing font search ourselves https://bugs.webkit.org/show_bug.cgi?id=132159 Reviewed by Darin Adler. Add SPI to set the font whitelist. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/API/C/WKContext.cpp: (WKContextSetFontWhitelist): * UIProcess/API/C/WKContextPrivate.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setFontWhitelist): * UIProcess/WebProcessPool.h: * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-04-29 Martin Robinson [CMake] [GTK] Organize and clean up unused CMake variables https://bugs.webkit.org/show_bug.cgi?id=144364 Reviewed by Gyuyoung Kim. * PlatformGTK.cmake: Add variables specific to this project. * webkit2gtk-web-extension.pc.in: Hardcode the GTK+ API version. It rarely changes. * webkit2gtk.pc.in: Ditto. 2015-04-29 Carlos Garcia Campos REGRESSION(r182573): [GTK] The default context menu contains an empty item since r182573 https://bugs.webkit.org/show_bug.cgi?id=144388 Reviewed by Brady Eidson. Move the WebContextMenuClient::shareMenuItem() implementation to platform files, since platforms not supporting share menu item should return a null ContextMenuIem instead. * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: (WebKit::WebContextMenuClient::shareMenuItem): Deleted. * WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp: (WebKit::WebContextMenuClient::shareMenuItem): * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp: (WebKit::WebContextMenuClient::shareMenuItem): * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: (WebKit::WebContextMenuClient::shareMenuItem): 2015-04-29 Carlos Garcia Campos REGRESSION(r183467): [SOUP] isMainResource is no longer passed as resource load parameters to the network process https://bugs.webkit.org/show_bug.cgi?id=144381 Reviewed by Darin Adler. A requester enum value is passed now as part of the ResourceRequest, but it's not encoded/decoded for soup. * Shared/soup/WebCoreArgumentCodersSoup.cpp: (IPC::ArgumentCoder::encodePlatformData): Encode requester. (IPC::ArgumentCoder::decodePlatformData): Decode requester. 2015-04-28 Carlos Garcia Campos [SOUP] Use xattrs to get/set the creation time of disk cache files https://bugs.webkit.org/show_bug.cgi?id=144251 Reviewed by Martin Robinson. The network process disk cache uses the creation time to compute a worth value used to determine the order in which cached resources are deleted when the cache is shrunk. In some operating systems like Linux there's no st_birthtime in struct stat, but since cache files are always created and deleted by us, we could use a custom xattr to store and retrieve the creation time of cached resources. * NetworkProcess/cache/NetworkCacheFileSystemPosix.h: (WebKit::NetworkCache::fileTimes): * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: (WebKit::NetworkCache::IOChannel::IOChannel): 2015-04-28 Carlos Garcia Campos Network Cache: Do not create a SharedBuffer for mapped resources unless explicitly requested https://bugs.webkit.org/show_bug.cgi?id=144337 Reviewed by Antti Koivisto. We send a buffer or a memory mapped handler to the web process depending on whether the resource body is mapped or not, but we are always creating a shared buffer even for mapped resources. Split initializeBufferFromStorageRecord() moving the mapped memory handler initialization to its own method. * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord): Initialize the mapped memory handler if the body data is mapped. (WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord): Initialize the buffer by wrapping the mapped memory if the body data is mapped, or using the body data directly otherwise. (WebKit::NetworkCache::Entry::shareableResourceHandle): Call initializeShareableResourceHandleFromStorageRecord() if the handler is null. * NetworkProcess/cache/NetworkCacheEntry.h: 2015-04-28 Simon Fraser Make a non-static version of FrameView::yPositionForRootContentLayer() https://bugs.webkit.org/show_bug.cgi?id=144375 Reviewed by Andy Estes. There were two calls to the static FrameView::yPositionForRootContentLayer() which passed in all the arguments for the same FrameView. Make a member function for convenience. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::shadowLayerPositionForFrame): 2015-04-28 Ryuan Choi [CoordinatedGraphics] Merge TILED_BACKING_STORE guard with COORDINATED_GRAPHICS https://bugs.webkit.org/show_bug.cgi?id=143001 Reviewed by Gyuyoung Kim. * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp: (WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState): * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::dispatchViewportPropertiesDidChange): * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidLayout): (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setSize): (WebKit::WebPage::setUseFixedLayout): (WebKit::WebPage::canHandleUserEvents): * WebProcess/WebPage/WebPage.h: 2015-04-28 Timothy Horton [TextIndicator] Yellow highlight takes too long to fade out on scroll https://bugs.webkit.org/show_bug.cgi?id=144358 Reviewed by Beth Dakin. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/mac/WKView.mm: (-[WKView renewGState]): (-[WKView viewDidMoveToWindow]): (-[WKView _dictionaryLookupPopoverWillClose:]): (-[WKView _setTextIndicator:]): (-[WKView _setTextIndicator:withLifetime:]): (-[WKView _clearTextIndicatorWithAnimation:]): (-[WKView magnifyWithEvent:]): (-[WKView smartMagnifyWithEvent:]): (-[WKView setMagnification:centeredAtPoint:]): (-[WKView setMagnification:]): (-[WKView _dismissContentRelativeChildWindows]): (-[WKView _dismissContentRelativeChildWindowsWithAnimation:]): (-[WKView _setTextIndicator:fadeOut:]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::pageDidScroll): (WebKit::WebPageProxy::setTextIndicator): (WebKit::WebPageProxy::clearTextIndicator): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): (WebKit::PageClientImpl::didPerformDictionaryLookup): (WebKit::PageClientImpl::dismissContentRelativeChildWindows): * UIProcess/mac/WKActionMenuController.mm: (-[WKActionMenuController _defaultMenuItemsForDataDetectedText]): * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _defaultAnimationController]): (-[WKImmediateActionController _animationControllerForDataDetectedText]): (-[WKImmediateActionController _animationControllerForDataDetectedLink]): (-[WKImmediateActionController _animationControllerForText]): * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindIndicator): Make _setTextIndicator take a reference. Add a variant of _setTextIndicator that takes a Lifetime. Make _clearTextIndicatorWithAnimation take a DismissalAnimation. Make dismissContentRelativeChildWindows take a parameter indicating whether the dismissal should include animation or not (currently only applies to TextIndicator). Don't animate when dismissal occurs because of scrolling, zooming, or other things in which the content will have changed significantly underneath the indicator and shouldn't have a slowly-fading-out yellow highlight. 2015-04-28 Michael Catanzaro Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT https://bugs.webkit.org/show_bug.cgi?id=144304 Reviewed by Geoffrey Garen. Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default. * Configurations/FeatureDefines.xcconfig: 2015-04-28 Commit Queue Unreviewed, rolling out r183514. https://bugs.webkit.org/show_bug.cgi?id=144359 It broke cloop test bots (Requested by mcatanzaro on #webkit). Reverted changeset: "Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT" https://bugs.webkit.org/show_bug.cgi?id=144304 http://trac.webkit.org/changeset/183514 2015-04-28 Michael Catanzaro Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT https://bugs.webkit.org/show_bug.cgi?id=144304 Reviewed by Geoffrey Garen. Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default. * Configurations/FeatureDefines.xcconfig: 2015-04-28 Enrica Casucci Add support for lookup on iOS. https://bugs.webkit.org/show_bug.cgi?id=144342 rdar://problem/19994090 Reviewed by Tim Horton. * UIProcess/WebPageProxy.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _lookup:]): (-[WKContentView canPerformAction:withSender:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::getLookupContextAtPoint): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getLookupContextAtPoint): 2015-04-28 Brady Eidson Consolidate most "frame load" arguments into FrameLoadRequest. https://bugs.webkit.org/show_bug.cgi?id=144276 Reviewed by Alexey Proskuryakov. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::loadURL): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchCreatePage): * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::openInNewTab): 2015-04-28 Chris Dumez [WK2][Mac] Update WebContent process' sandbox profile for AWD https://bugs.webkit.org/show_bug.cgi?id=144315 Reviewed by Alexey Proskuryakov. Update sandbox profile for AWD similarly to what was done for iOS in r182278. * WebProcess/com.apple.WebProcess.sb.in: 2015-04-28 Antti Koivisto Network Cache: Disk cache getting filled by YouTube video data https://bugs.webkit.org/show_bug.cgi?id=144259 Reviewed by Darin Adler. MSE media is loaded via XHR and tends to eventually fill the cache. YouTube serves the media chunks cacheable, however they are rarely (if ever) reused. We can reduce disk writes and keep more useful resources around by not caching them * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveResponseAsync): (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::makeStoreDecision): Don't store if the requester is XHR and response has video or audio content type. * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::storeDecisionToDiagnosticKey): * Shared/Network/NetworkResourceLoadParameters.cpp: (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters): (WebKit::NetworkResourceLoadParameters::encode): (WebKit::NetworkResourceLoadParameters::decode): * Shared/Network/NetworkResourceLoadParameters.h: The requester type is now part of the ResourceRequest, no need for separate parameter. * Shared/mac/WebCoreArgumentCodersMac.mm: (IPC::ArgumentCoder::encodePlatformData): (IPC::ArgumentCoder::decodePlatformData): * WebProcess/Network/WebResourceLoadScheduler.cpp: (WebKit::WebResourceLoadScheduler::scheduleLoad): 2015-04-28 Zan Dobersek [WK2] API::UserContentURLPattern creation functions should return Ref<> https://bugs.webkit.org/show_bug.cgi?id=144225 Reviewed by Darin Adler. Have API::UserContentURLPattern creation functions return Ref<>. Call-sites are also updated, using and operating on the returned Ref<> object where possible. * Shared/API/APIUserContentURLPattern.h: (API::UserContentURLPattern::create): * Shared/API/c/WKUserContentURLPattern.cpp: (WKUserContentURLPatternCreate): 2015-04-28 Zan Dobersek [WK2] API::URLRequest, API::URLResponse creation functions should return Ref<> https://bugs.webkit.org/show_bug.cgi?id=144224 Reviewed by Darin Adler. Have API::URLRequest and API::URLResponse creation functions return Ref<>. The call-sites are also updated, using and operating on the returned Ref<> object where possible. * Shared/API/APIURLRequest.h: (API::URLRequest::create): * Shared/API/APIURLResponse.h: (API::URLResponse::create): * Shared/API/c/WKURLRequest.cpp: (WKURLRequestCreateWithWKURL): * Shared/API/c/mac/WKURLRequestNS.mm: (WKURLRequestCreateWithNSURLRequest): * Shared/API/c/mac/WKURLResponseNS.mm: (WKURLResponseCreateWithNSURLResponse): * UIProcess/API/C/WKContext.cpp: (WKContextSetDownloadClient): * UIProcess/API/C/WKDownload.cpp: (WKDownloadCopyRequest): * UIProcess/API/C/WKNavigationDataRef.cpp: (WKNavigationDataCopyOriginalRequest): * UIProcess/API/C/WKPage.cpp: (WKPageSetPagePolicyClient): (WKPageSetPageUIClient): * UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp: (WebKit::WebSoupCustomProtocolRequestManagerClient::startLoading): * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: (willSendRequestForFrame): * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp: (WebKit::InjectedBundlePagePolicyClient::decidePolicyForNavigationAction): (WebKit::InjectedBundlePagePolicyClient::decidePolicyForNewWindowAction): (WebKit::InjectedBundlePagePolicyClient::decidePolicyForResponse): 2015-04-27 Zan Dobersek [WK2] API::Point, API::Size, API::Rect creation functions should return Ref<> https://bugs.webkit.org/show_bug.cgi?id=144223 Reviewed by Darin Adler. Have API::Point, API::Size and API::Rect creation functions return Ref<>. Call-sites are also updated, using and operating on the returned Ref<> object where possible. * Shared/API/APIGeometry.h: (API::Size::create): (API::Point::create): (API::Rect::create): * Shared/API/c/WKGeometry.cpp: (WKPointCreate): (WKSizeCreate): (WKRectCreate): 2015-04-27 Zan Dobersek [WK2] API::Error creation functions should return Ref<> https://bugs.webkit.org/show_bug.cgi?id=144222 Reviewed by Darin Adler. Have API::Error creation functions return Ref<>. The call-sites are also updated, using and operating on the returned Ref<> object where possible. * Shared/API/APIError.h: (API::Error::create): * Shared/API/c/cf/WKErrorCF.cpp: (WKErrorCreateWithCFError): * UIProcess/API/C/WKOriginDataManager.cpp: (WKOriginDataManagerDeleteEntriesForOrigin): (WKOriginDataManagerDeleteEntriesModifiedBetweenDates): (WKOriginDataManagerDeleteAllEntries): * UIProcess/API/C/WKPage.cpp: (toGenericCallbackFunction): (WKPageForceRepaint): (WKPageValidateCommand): (WKPageComputePagesForPrinting): * UIProcess/API/C/WKPluginSiteDataManager.cpp: (WKPluginSiteDataManagerClearSiteData): (WKPluginSiteDataManagerClearAllSiteData): * UIProcess/GenericCallback.h: (WebKit::toGenericCallbackFunction): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::printFinishedCallback): 2015-04-27 Sungmann Cho [GTK] Remove unnecessary semicolon from WebKitNotificationProvider.h. https://bugs.webkit.org/show_bug.cgi?id=144312 Reviewed by Martin Robinson. No new tests, no behavior change. * UIProcess/API/gtk/WebKitNotificationProvider.h: 2015-04-27 Brent Fulgham PDF action menu fixes https://bugs.webkit.org/show_bug.cgi?id=144299 Reviewed by Tim Horton. Make two corrections to how PDFs are handled: 1. When calculating the view rect for the user's selection, make sure that we get coordinates for the correct PDF page. The existing code assumed that the current PDFLayerControler's current page was correct, but this will not be true if you zoom the PDF out so that several pages are displayed at once. Each selection keeps track of the page it is referenced against. 2. Revise the offsets calculated for the TextIndicator to take into account the font descender (as well as the ascender), and to adjust by the scaled amount of margin around the selected text. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::viewRectForSelection): Use correct page for calculating the coordinates. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::dictionaryPopupInfoForSelectionInPDFPlugin): Include font 'descendant' and (scaled) margin when adjusting the hit target for the TextIndicator to draw. 2015-04-27 Michael Catanzaro Rename WTF_USE_3D_GRAPHICS to ENABLE_GRAPHICS_CONTEXT_3D https://bugs.webkit.org/show_bug.cgi?id=144193 Reviewed by Darin Adler. * CMakeLists.txt: 2015-04-24 Jon Honeycutt Context menus are not reshown after an orientation change Reviewed by Darin Adler. * UIProcess/ios/WKActionSheet.mm: (-[WKActionSheet updateSheetPosition]): Return early if we're still in a rotation, not if the rotation is complete. 2015-04-27 Zan Dobersek [WK2] API::Dictionary creation functions should return Ref<> https://bugs.webkit.org/show_bug.cgi?id=144221 Reviewed by Darin Adler. Have API::Dictionary creation functions return Ref<>. The call-sites are also updated, using and operating on the returned Ref<> object where possible. * Shared/API/APIDictionary.cpp: (API::Dictionary::create): * Shared/API/APIDictionary.h: * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (createEncodedObject): * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: (-[_WKRemoteObjectRegistry _sendInvocation:interface:]): * Shared/API/c/WKDictionary.cpp: (WKDictionaryCreate): * Shared/API/c/WKMutableDictionary.cpp: (WKMutableDictionaryCreate): * Shared/Plugins/Netscape/PluginInformation.cpp: (WebKit::createPluginInformationDictionary): * Shared/Plugins/Netscape/PluginInformation.h: * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): * UIProcess/API/gtk/WebKitWebContext.cpp: (webkit_web_context_prefetch_dns): * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_get_snapshot): * UIProcess/Plugins/PlugInAutoStartProvider.cpp: (WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy): * UIProcess/Plugins/PlugInAutoStartProvider.h: * UIProcess/StatisticsRequest.cpp: (WebKit::createDictionaryFromHashMap): (WebKit::StatisticsRequest::completedRequest): * UIProcess/WebFormClient.cpp: (WebKit::WebFormClient::willSubmitForm): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFailToInitializePlugin): * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp: (didInitiateLoadForResource): (willSendRequestForFrame): (didReceiveResponseForResource): (didReceiveContentLengthForResource): (didFinishLoadForResource): (didFailLoadForResource): (webkitWebPageDidReceiveMessage): * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp: (WebKit::InjectedBundlePageFormClient::willSendSubmitEvent): (WebKit::InjectedBundlePageFormClient::willSubmitForm): 2015-04-27 Zan Dobersek [WK2] API::Data creation functions should return Ref<> https://bugs.webkit.org/show_bug.cgi?id=144220 Reviewed by Darin Adler. Have API::Data creation functions return Ref<>. The call-sites are also updated, using and operating on the returned Ref<> object where possible. * Shared/API/APIData.h: (API::Data::createWithoutCopying): (API::Data::create): * Shared/API/c/WKData.cpp: (WKDataCreate): * Shared/API/c/mac/WKWebArchive.cpp: (WKWebArchiveCopyData): * Shared/API/c/mac/WKWebArchiveResource.cpp: (WKWebArchiveResourceCopyData): * Shared/APIWebArchive.h: * Shared/APIWebArchive.mm: (API::WebArchive::data): * Shared/APIWebArchiveResource.h: * Shared/APIWebArchiveResource.mm: (API::WebArchiveResource::data): * Shared/Cocoa/APIDataCocoa.mm: (API::Data::createWithoutCopying): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]): * UIProcess/API/gtk/WebKitURISchemeRequest.cpp: (webkitURISchemeRequestReadCallback): * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_load_bytes): * UIProcess/Downloads/DownloadProxy.cpp: (WebKit::createData): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::dataCallback): (WebKit::WebPageProxy::savePDFToFileInDownloadsFolder): 2015-04-27 Zan Dobersek [WK2] API::URL creation functions should return Ref<> https://bugs.webkit.org/show_bug.cgi?id=144219 Reviewed by Darin Adler. Have API::URL creation functions return Ref<>. The call-sites are also updated, using and operating in the returned Ref<> object, where possible. * Shared/API/APIURL.h: (API::URL::create): * Shared/API/c/WKSharedAPICast.h: (WebKit::toCopiedURLAPI): * Shared/API/c/WKURL.cpp: (WKURLCreateWithUTF8CString): (WKURLCreateWithBaseURL): * UIProcess/API/gtk/WebKitWebResource.cpp: (webkit_web_resource_get_data): * UIProcess/WebIconDatabase.cpp: (WebKit::WebIconDatabase::didChangeIconForPageURL): (WebKit::WebIconDatabase::notifyIconDataReadyForPageURL): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::userAgent): 2015-04-27 Zan Dobersek [WK2] API::String creation functions should return Ref<> https://bugs.webkit.org/show_bug.cgi?id=144218 Reviewed by Darin Adler. Have API::String creation functions return Ref<>. The call-sites are also updated, using and operating on the returned Ref<> object, where possible. * Shared/API/APIString.h: * Shared/API/c/WKPluginInformation.cpp: (WKPluginInformationBundleIdentifierKey): (WKPluginInformationBundleVersionKey): (WKPluginInformationBundleShortVersionKey): (WKPluginInformationPathKey): (WKPluginInformationDisplayNameKey): (WKPluginInformationDefaultLoadPolicyKey): (WKPluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey): (WKPluginInformationHasSandboxProfileKey): (WKPluginInformationFrameURLKey): (WKPluginInformationMIMETypeKey): (WKPluginInformationPageURLKey): (WKPluginInformationPluginspageAttributeURLKey): (WKPluginInformationPluginURLKey): (WKPlugInInformationReplacementObscuredKey): * Shared/API/c/WKSharedAPICast.h: (WebKit::ProxyingRefPtr::ProxyingRefPtr): (WebKit::toCopiedAPI): * Shared/API/c/WKString.cpp: (WKStringCreateWithUTF8CString): (WKStringCreateWithJSString): * UIProcess/API/C/WKDatabaseManager.cpp: (WKDatabaseManagerGetOriginKey): (WKDatabaseManagerGetOriginQuotaKey): (WKDatabaseManagerGetOriginUsageKey): (WKDatabaseManagerGetDatabaseDetailsKey): (WKDatabaseManagerGetDatabaseDetailsNameKey): (WKDatabaseManagerGetDatabaseDetailsDisplayNameKey): (WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey): (WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey): (WKDatabaseManagerGetDatabaseDetailsCreationTimeKey): (WKDatabaseManagerGetDatabaseDetailsModificationTimeKey): * UIProcess/API/C/WKKeyValueStorageManager.cpp: (WKKeyValueStorageManagerGetOriginKey): (WKKeyValueStorageManagerGetCreationTimeKey): (WKKeyValueStorageManagerGetModificationTimeKey): * UIProcess/API/C/WKPage.cpp: (WKPageGetSessionHistoryURLValueType): (WKPageGetSessionBackForwardListItemValueType): (toGenericCallbackFunction): (WKPageValidateCommand): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::didReceiveInvalidMessage): 2015-04-27 Brady Eidson Make 'enum NavigationType' be an enum class https://bugs.webkit.org/show_bug.cgi?id=144270 Reviewed by Alex Christensen. * Shared/API/c/WKSharedAPICast.h: (WebKit::toAPI): * Shared/NavigationActionData.cpp: (WebKit::NavigationActionData::NavigationActionData): * UIProcess/API/Cocoa/WKNavigationAction.mm: (toWKNavigationType): * UIProcess/API/gtk/WebKitPrivate.cpp: (toWebKitNavigationType): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): * WebProcess/WebPage/WebInspector.cpp: (WebKit::WebInspector::openInNewTab): 2015-04-27 Brent Fulgham REGRESSION(r182879): Images and video can no longer be downloaded https://bugs.webkit.org/show_bug.cgi?id=144267 Reviewed by Simon Fraser. * UIProcess/mac/WKActionMenuController.mm: (-[WKActionMenuController _createActionMenuItemForTag:]): Check for "!WebCore::protocolIs(..., "file")" for image and media downloads. 2015-04-27 Csaba Osztrogonác [EFL] TestWebKitAPI's forwarding header generator should depend on WebKit2's generator https://bugs.webkit.org/show_bug.cgi?id=143874 Reviewed by Gyuyoung Kim. * PlatformEfl.cmake: Rename the generator to have consistent name with other generators. * Scripts/generate-forwarding-headers.pl: Removed the unnecessary multiple include-path support. 2015-04-17 Carlos Garcia Campos [SOUP] Add initial implementation of NetworkProcess disk cache https://bugs.webkit.org/show_bug.cgi?id=143872 Reviewed by Martin Robinson. Implement the platform specific parts of the disk cache implementation for Soup. It's mainly NetworkCache::Data and NetworkCache::IOChannel. * CMakeLists.txt: * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::dumpFileChanged): (WebKit::NetworkCache::Cache::initialize): * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: * NetworkProcess/cache/NetworkCacheData.h: (WebKit::NetworkCache::Data::soupBuffer): * NetworkProcess/cache/NetworkCacheDataSoup.cpp: Added. (WebKit::NetworkCache::Data::Data): (WebKit::NetworkCache::Data::empty): (WebKit::NetworkCache::Data::data): (WebKit::NetworkCache::Data::isNull): (WebKit::NetworkCache::Data::apply): (WebKit::NetworkCache::Data::subrange): (WebKit::NetworkCache::concatenate): (WebKit::NetworkCache::MapWrapper::~MapWrapper): (WebKit::NetworkCache::deleteMapWrapper): (WebKit::NetworkCache::mapFile): (WebKit::NetworkCache::Data::adoptMap): (WebKit::NetworkCache::computeSHA1): (WebKit::NetworkCache::bytesEqual): * NetworkProcess/cache/NetworkCacheIOChannel.h: * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: Added. (WebKit::NetworkCache::IOChannel::IOChannel): (WebKit::NetworkCache::IOChannel::open): (WebKit::NetworkCache::fillDataFromReadBuffer): (WebKit::NetworkCache::inputStreamReadReadyCallback): (WebKit::NetworkCache::IOChannel::read): (WebKit::NetworkCache::IOChannel::readSync): (WebKit::NetworkCache::outputStreamWriteReadyCallback): (WebKit::NetworkCache::IOChannel::write): * NetworkProcess/cache/NetworkCacheStorageSoup.cpp: Removed. * NetworkProcess/gtk/NetworkProcessMainGtk.cpp: * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::platformInitializeNetworkProcess): (WebKit::NetworkProcess::platformSetCacheModel): (WebKit::NetworkProcess::clearDiskCache): * PlatformGTK.cmake: 2015-04-26 Yusuke Suzuki [ES6] Implement ES6 template literals https://bugs.webkit.org/show_bug.cgi?id=142691 Reviewed by Darin Adler. Add ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX compile time flag. * Configurations/FeatureDefines.xcconfig: 2015-04-26 Sungmann Cho Remove PluginView::renderer(). https://bugs.webkit.org/show_bug.cgi?id=144216 Reviewed by Darin Adler. Nobody should have to know about the plug-in view's renderer except the plug-in view itself. No new tests, no behavior change. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::convertFromScrollbarToContainingView): (WebKit::PDFPlugin::convertFromContainingViewToScrollbar): * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::renderer): Deleted. * WebProcess/Plugins/PluginView.h: 2015-04-26 Doug Russell AX: richer text change notifications (142719) https://bugs.webkit.org/show_bug.cgi?id=142719 Reviewed by Darin Adler. Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes. Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields. * UIProcess/WebEditCommandProxy.cpp: (WebKit::WebEditCommandProxy::nameForEditAction): 2015-04-26 Dan Bernstein REGRESSION (r182952): Plug-in service fails to load because it links against WebKit2.framework https://bugs.webkit.org/show_bug.cgi?id=144233 Reviewed by Simon Fraser. Have the plug-in service link against WebKit.framework rather than WebKit2.framework. * Configurations/PluginService.32.xcconfig: Removed linker flags for linking against WebKit2 and Foundation from the definition of OTHER_LDFLAGS. Since linking is no longer conditional, we can just do it in the target’s Link Binary With Libraries build phase. * Configurations/PluginService.64.xcconfig: Ditto. * WebKit2.xcodeproj/project.pbxproj: Have Foundation and WebKit listed in the services’ Link Binariy With Libraries build phases (one service already had WebKit). 2015-04-26 Dan Bernstein Fixed the build. * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _showDocumentPickerMenu]): Suppressed deprecation warnings around use of -[UIDocumentMenuViewController _setIgnoreApplicationEntitlementForImport:]. 2015-04-25 Tim Horton Further update gesture swipe shadow style https://bugs.webkit.org/show_bug.cgi?id=144215 Reviewed by Dan Bernstein. * Resources/mac/SwipeShadow.png: Removed. * Resources/mac/SwipeShadow@2x.png: Removed. * UIProcess/mac/ViewGestureController.h: * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): * WebKit2.xcodeproj/project.pbxproj: Use a CAGradientLayer instead of PNGs for the swipe shadow. 2015-04-25 Dan Bernstein WebKit2 part of Avoid using TBD as an argument to NS_AVAILABLE https://bugs.webkit.org/show_bug.cgi?id=144201 Reviewed by Darin Adler. Instead of TBD, we use the high version number to which it corresponds in CFAvailability.h, 9876.5. * mac/MigrateHeadersFromWebKitLegacy.make: To detect not-yet-available declarations in headers, look for "9876_5" rather than "TBA". 2015-04-24 Timothy Hatcher Web Inspector: Remove native window dock controls https://bugs.webkit.org/show_bug.cgi?id=144184 Reviewed by Joseph Pecoraro. * Resources/DockBottom.pdf: Removed. * Resources/DockBottomLegacy.pdf: Removed. * Resources/DockRight.pdf: Removed. * Resources/DockRightLegacy.pdf: Removed. * UIProcess/WebInspectorProxy.h: * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::createInspectorWindow): (WebKit::WebInspectorProxy::platformAttachAvailabilityChanged): * WebKit2.xcodeproj/project.pbxproj: 2015-04-25 Martin Robinson Rename ENABLE_3D_RENDERING to ENABLE_3D_TRANSFORMS https://bugs.webkit.org/show_bug.cgi?id=144182 Reviewed by Simon Fraser. * Configurations/FeatureDefines.xcconfig: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS. 2015-04-24 Simon Fraser Have the web inspector report accurate memory use for layers with detached backing store https://bugs.webkit.org/show_bug.cgi?id=144179 Reviewed by Dean Jackson. Remote layers can make their backing store volatile, so the backing only contributes to reported memory use when attached. * WebProcess/WebPage/mac/PlatformCALayerRemote.h: 2015-04-24 Andreas Kling theverge.com burning 100% CPU on iPad (due to window.screenX/Y) Reviewed by Anders Carlsson. Return an empty window rect on iOS WK2 builds. This avoids sending a synchronous IPC request to the UI process that would give the same result, but spend way more time and CPU cycles to do so. With this change, theverge.com CPU usage goes from 100% to ~20% when idle. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::windowRect): 2015-04-24 Brent Fulgham TextIndicator for embedded PDFs is slightly offset https://bugs.webkit.org/show_bug.cgi?id=144172 Reviewed by Tim Horton. When I converted the existing DOM Range logic to work with PDFSelections, I omitted the step where the font ascent was used to adjust the origin used for the TextIndicator. This patch determines the correct ascent for the range of characters in the selection, and adjusts the offset by the difference between the ascent and the height of the selection rect. Also, since the PDFSelection only supplies the bounding rect for the selection, I calculate an equivalent text bounding box by insetting the rect by half the size of the ascent. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::scaleFactor): Add accessor for PDF scale factor. * WebProcess/Plugins/PDF/PDFPlugin.h: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::dictionaryPopupInfoForPDFSelectionInPluginView): Adjusted to take the font ascent and scale factor into account. 2015-04-24 David Kilzer REGRESSION (r183293): Fix iOS EWS build by adding SPI declaration for +[UIPeripheralHost visiblePeripheralFrame] Fixes the following build failures: WebKit2/UIProcess/ios/WKPDFView.mm:740:45: error: class method '+visiblePeripheralFrame' not found (return type defaults to 'id') [-Werror,-Wobjc-method-access] CGRect keyboardRect = [UIPeripheralHost visiblePeripheralFrame]; ^~~~~~~~~~~~~~~~~~~~~~ WebKit2/UIProcess/ios/WKPDFView.mm:740:12: error: no viable conversion from 'id' to 'CGRect' CGRect keyboardRect = [UIPeripheralHost visiblePeripheralFrame]; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Platform/spi/ios/UIKitSPI.h: (+[UIPeripheralHost visiblePeripheralFrame]): Add declaration. 2015-04-24 Anders Carlsson Change _WKWebsiteDataStore to hold on to an internal WKWebsiteDataStore https://bugs.webkit.org/show_bug.cgi?id=144171 Reviewed by Tim Horton. * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration _websiteDataStore]): (-[WKWebViewConfiguration _setWebsiteDataStore:]): * UIProcess/API/Cocoa/_WKWebsiteDataStore.h: * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: (-[_WKWebsiteDataStore initWithDataStore:]): (+[_WKWebsiteDataStore defaultDataStore]): (+[_WKWebsiteDataStore nonPersistentDataStore]): (-[_WKWebsiteDataStore isNonPersistent]): (-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): (-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): (-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): * UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStore.h. * WebKit2.xcodeproj/project.pbxproj: 2015-04-24 Tim Horton WKPDFView does not support password-protected PDFs https://bugs.webkit.org/show_bug.cgi?id=144162 Reviewed by Andy Estes. * Platform/spi/ios/UIKitSPI.h: Add some SPI. * UIProcess/ios/WKPDFView.h: * UIProcess/ios/WKPDFView.mm: (-[WKPDFView _didLoadPDFDocument]): (-[WKPDFView web_setContentProviderData:suggestedFilename:]): Move creation of the UIPDFDocument (only possible if the CGPDFDocument is unlocked) and initial setup of the page views out into _didLoadPDFDocument. If the CGPDFDocument is locked, we'll show some UI to unlock it; otherwise we'll continue on to _didLoadPDFDocument as previously. (-[WKPDFView web_setMinimumSize:]): Resize the password UI instead of the PDF pages if we have it. (-[WKPDFView _computePageAndDocumentFrames]): Don't bother doing any work revalidating PDF pages if the document is locked. (-[WKPDFView _updatePasswordEntryField]): Make sure that the UIDocumentPassword view is always the size of the scrollview. This takes care of rotation. (-[WKPDFView _keyboardDidShow:]): Make sure that we scroll the password field around, if necessary, to keep it on screen when editing begins. (-[WKPDFView _showPasswordEntryField]): (-[WKPDFView _hidePasswordEntryField]): Adjust the background color (to match the UIDocumentPasswordView) and disable zooming while it's up. The UIDocumentPassword view is installed into the scroll view to match UIWebView behavior. (-[WKPDFView userDidEnterPassword:forPasswordView:]): (-[WKPDFView didBeginEditingPassword:inView:]): (-[WKPDFView didEndEditingPassword:inView:]): (-[WKPDFView _didFailToUnlock]): Pop up a dialog informing the user that they entered the wrong password. (-[WKPDFView _tryToUnlockWithPassword:]): Try to unlock the document. If it succeeds, hide the unlock UI and go back to _didLoadPDFDocument. 2015-04-24 Commit Queue Unreviewed, rolling out r183266. https://bugs.webkit.org/show_bug.cgi?id=144164 Broke 32-bit build and a test. (Requested by ap on #webkit). Reverted changeset: "AX: richer text change notifications (142719)" https://bugs.webkit.org/show_bug.cgi?id=142719 http://trac.webkit.org/changeset/183266 2015-04-24 Brent Fulgham REGRESSION: WebKit2.ActionMenusTest API test fails https://bugs.webkit.org/show_bug.cgi?id=144149 Reviewed by Tim Horton. Tested by TestWebKitAPI The 'lookupTextAtLocation' method was not converting the NSEvent coordinates it was receiving from root view to the plugin view. Consequently, full page PDFs did hit testing correctly, but an PDF would not. Since 'existingSelectionContainsPoint' is exposed as API, I also modified it to expect 'root view' coordinates and perform the requisite conversions, rather than expecting 'plugin view' coordinates. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::existingSelectionContainsPoint): Expect 'root view' coordinates for the input. (WebKit::PDFPlugin::lookupTextAtLocation): Properly convert the passed 'root view' coordinates to the PDF's view coordinate space. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): Pass hit point using view coordinates, not content coordinates. 2015-04-24 Anders Carlsson Address a review comment from Joe Pecoraro. * UIProcess/API/Cocoa/WKWebsiteDataStore.h: 2015-04-24 Anders Carlsson Rename -[WKWebsiteDataStore isNonPersistent] to -[WKWebsiteDataStore isPersistent] https://bugs.webkit.org/show_bug.cgi?id=144158 Reviewed by Beth Dakin. * UIProcess/API/APIWebsiteDataStore.cpp: (API::WebsiteDataStore::isPersistent): (API::WebsiteDataStore::isNonPersistent): Deleted. * UIProcess/API/APIWebsiteDataStore.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore isPersistent]): (-[WKWebsiteDataStore isNonPersistent]): Deleted. * UIProcess/API/Cocoa/_WKWebsiteDataStore.h: * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: (-[_WKWebsiteDataStore isNonPersistent]): * UIProcess/WebsiteData/WebsiteDataStore.h: 2015-04-24 Brent Fulgham Immediate action not functional for embedded PDFs https://bugs.webkit.org/show_bug.cgi?id=143952 Reviewed by Tim Horton. Add a new method to retrieve appropriate dictionary lookup content and update the hit test result with relevant dictionary content and the bounding rect of the selection. * WebProcess/Plugins/Netscape/NetscapePlugin.h: Add stub. * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: Initialize plugin type. * WebProcess/Plugins/PDF/PDFPlugin.h: * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::rectInWindowSpaceForRectInLayoutSpace): New helper function to convert PDF 'in page' units to the equivalent view units. (WebKit::PDFPlugin::PDFPlugin): Initialize plugin type. (WebKit::PDFPlugin::viewRectForSelection): Query a provided PDFSelection for its bounding rect and return the result in view units. * WebProcess/Plugins/Plugin.h: * WebProcess/Plugins/PluginProxy.cpp: Initialize plugin type. * WebProcess/Plugins/PluginProxy.h: Add stub. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::viewRectForSelection): Added. * WebProcess/Plugins/PluginView.h: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::dictionaryPopupInfoForPDFSelectionInPluginView): Added. (WebKit::textIndicatorTransitionForActionMenu): Added helper function. (WebKit::WebPage::performActionMenuHitTestAtLocation): Update the hit test information with relevant dictionary lookup content, and mark the result as a text node (if appropriate). 2015-04-24 Jer Noble [WK2] Only issue a isPlayingAudioDidChange() notification if the audio playing state actually changed. https://bugs.webkit.org/show_bug.cgi?id=144153 Reviewed by Alexey Proskuryakov. Check the old state vs. the new state and only issue the change notification if the IsPlayingAudio state changed. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::isPlayingMediaDidChange): 2015-04-24 Antti Koivisto CrashTracer: [USER] com.apple.WebKit.Networking at com.apple.WebKit: WebKit::NetworkResourceLoader::~NetworkResourceLoader + 14 https://bugs.webkit.org/show_bug.cgi?id=144147 Reviewed by Chris Dumez. Storage::storeBodyAsBlob copies the std::function callback for handling mapped bodies in a thread. This is thread safe only if the function copy is thread safe. It is currently not as we are capturing RefPtr and NetworkResourceLoader doesn't use thread safe refcounting. Fix by avoiding copying of the callback. Use same apporach for WriteOperation as we already use for ReadOperation: count the active operations in progress and delete WriteOperation when everything is finished. This way we don't need to copy the function out from WriteOperation. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::ReadOperation::ReadOperation): (WebKit::NetworkCache::Storage::WriteOperation::WriteOperation): Move definition here from the header. (WebKit::NetworkCache::Storage::~Storage): (WebKit::NetworkCache::Storage::storeBodyAsBlob): Increment the operation count when storing a blob, call finishWriteOperation when done. (WebKit::NetworkCache::Storage::dispatchReadOperation): (WebKit::NetworkCache::Storage::finishReadOperation): Count active operations instead of finished operations. This makes the code clearer. (WebKit::NetworkCache::Storage::dispatchWriteOperation): (WebKit::NetworkCache::Storage::finishWriteOperation): Mirror the way ReadOperations work. * NetworkProcess/cache/NetworkCacheStorage.h: (WebKit::NetworkCache::Storage::ReadOperation::ReadOperation): Deleted. 2015-04-24 Timothy Hatcher REGRESSION: Web Inspector: Start Timeline Recording in Develop menu broken https://bugs.webkit.org/show_bug.cgi?id=144150 Reviewed by Brian Burg. * WebProcess/WebPage/WebInspectorUI.cpp: (WebKit::WebInspectorUI::evaluateCommandOnLoad): Properly treat bools as literals instead of strings by not using the string version of evaluateCommandOnLoad. 2015-04-23 Anders Carlsson Add headerdocs for WKWebsiteDataRecord and WKWebsiteDataStore https://bugs.webkit.org/show_bug.cgi?id=144138 Reviewed by Darin Adler. * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): (-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): (-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): 2015-04-24 Doug Russell AX: richer text change notifications (142719) https://bugs.webkit.org/show_bug.cgi?id=142719 Reviewed by Darin Adler. Richer accessibility value change notifications. Introduce AXTextEditType, postTextStateChangeNotification and postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content. Also implement a mechanism to post value changes in password form fields in coalesced ticks to thwart analyzing the cadence of changes. Richer accessibility selection change notifications. Introduce AXTextStateChangeIntent, and an overload of postTextReplacementNotification to give assistive tech apps more reliable context for responding to changes in web content selection. Also block posting selection changes on password fields. * UIProcess/WebEditCommandProxy.cpp: (WebKit::WebEditCommandProxy::nameForEditAction): 2015-04-24 Darin Adler Convert OwnPtr and PassOwnPtr uses to std::unique_ptr https://bugs.webkit.org/show_bug.cgi?id=128007 Reviewed by Anders Carlsson. * NetworkProcess/cache/NetworkCacheEncoder.h: Added an include now needed that was inherited from OwnPtr.h before. 2015-04-24 Antti Koivisto Network Cache: Make path functions members https://bugs.webkit.org/show_bug.cgi?id=144146 Reviewed by Carlos Garcia Campos. This simplifies the code. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::partitionPathForKey): (WebKit::NetworkCache::Storage::recordPathForKey): (WebKit::NetworkCache::Storage::bodyPathForKey): (WebKit::NetworkCache::Storage::storeBodyAsBlob): (WebKit::NetworkCache::Storage::remove): (WebKit::NetworkCache::Storage::dispatchReadOperation): (WebKit::NetworkCache::Storage::finishReadOperation): (WebKit::NetworkCache::Storage::dispatchWriteOperation): (WebKit::NetworkCache::partitionPathForKey): Deleted. (WebKit::NetworkCache::recordPathForKey): Deleted. (WebKit::NetworkCache::bodyPathForKey): Deleted. * NetworkProcess/cache/NetworkCacheStorage.h: 2015-04-24 Carlos Garcia Campos Unreviewed. Remove incorrect assert after r183189. In this case the assert was already there, but it's incorrect because we are handling uninitialized attachments below in the same function, and also when sending messages. So, if it's ok to send uninitialized attachments, it's ok to receive them. This didn't fail before r183189, because we were only invaliding the attachments by setting the file descriptor to -1, and they were handled as null attachments. After r183189, the move operator resets the moved attachment leaving it uninitialized again. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::processMessage): 2015-04-24 Carlos Garcia Campos [SOUP] Use a webkit subdirectory for the disk cache https://bugs.webkit.org/show_bug.cgi?id=144048 Reviewed by Martin Robinson. Recent versions of libsoup remove any file in cache dir not referenced by the index when the cache is loaded to workaround leaked resources when load/dump is unbalanced for whatever reason, like a crash. We currently use $XDG_CACHE_HOME/app-name as default disk cache directory, but that directory could be used by apps to cache other things, and the soup cache might end up deleting other stuff. The soup cache assumes the given directory is only for the disk cache, so we should ensure that. * NetworkProcess/soup/NetworkProcessSoup.cpp: (WebKit::NetworkProcess::platformInitializeNetworkProcess): Append webkit to the given disk cache and clear the previous soup cache if it exists. * WebProcess/soup/WebProcessSoup.cpp: (WebKit::WebProcess::platformInitializeWebProcess): Ditto. 2015-04-24 Carlos Garcia Campos Unreviewed. Remove incorrect ASSERT added in r183176. We allow to encode null attachments. * Platform/unix/SharedMemoryUnix.cpp: (WebKit::SharedMemory::Handle::releaseAttachment): 2015-04-23 Dan Bernstein Framework header postprocessing isn’t removing WK_DEPRECATED macros when it should. Reviewed by Andy Estes. * mac/postprocess-framework-headers.sh: 2015-04-23 Simon Fraser Make it possible to detach GraphicsLayerCA backing store https://bugs.webkit.org/show_bug.cgi?id=144140 Reviewed by Tim Horton. This changes makes it possible to denote a GraphicsLayerCA's backing store as "attached" or not. When not attached, the backing store is made volatile and can be purged. This will be used in a future patch. * Shared/mac/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore): Whitespace. (WebKit::RemoteLayerBackingStore::display): If backingStoreWillBeDisplayed() returns true, this indicates that the backing store was brought out of the "unreachable" list, so return true even if the backing store doesn't require painting. * Shared/mac/RemoteLayerBackingStoreCollection.h: C++11 initializer, and comments. * Shared/mac/RemoteLayerBackingStoreCollection.mm: (WebKit::RemoteLayerBackingStoreCollection::RemoteLayerBackingStoreCollection): (WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDisplayed): Return true if the caller will need to submit the backing store in the current transaction. (WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable): This explicit dirtying is no longer necessary given the backingStoreWillBeDisplayed() change. * Shared/mac/RemoteLayerTreePropertyApplier.mm: (WebKit::applyPropertiesToLayer): Only set the layer's backing if we both have backing store, and it's attached. * Shared/mac/RemoteLayerTreeTransaction.h: New bit, and data member. * Shared/mac/RemoteLayerTreeTransaction.mm: (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties): (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode): (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode): (WebKit::dumpChangedLayers): * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp: (WebKit::PlatformCALayerRemote::recursiveBuildTransaction): Only call display() on the backing store if it's attached. (WebKit::PlatformCALayerRemote::setBackingStoreAttached): (WebKit::PlatformCALayerRemote::backingStoreAttached): * WebProcess/WebPage/mac/PlatformCALayerRemote.h: * WebProcess/WebPage/mac/RemoteLayerTreeContext.h: * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm: (WebKit::RemoteLayerTreeContext::backingStoreWillBeDisplayed): 2015-04-23 Tim Horton Quick Look preview popover is not dismissed on scroll in Mail https://bugs.webkit.org/show_bug.cgi?id=144119 Reviewed by Anders Carlsson. * UIProcess/API/mac/WKView.mm: (-[WKView renewGState]): If we have a TextIndicator, dismiss all content relative child windows on renewGState, not just the TextIndicator itself. This will fix cases like Mail, where WebKit isn't driving the scrolling, and we have no way (except renewGState) to know that scrolling is happening. 2015-04-23 Simon Fraser Changing TiledBacking velocity should schedule a tile revalidation https://bugs.webkit.org/show_bug.cgi?id=144123 Reviewed by Tim Horton. Drive-by fix: use the FrameView& that we have already. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateVisibleContentRects): 2015-04-23 Jer Noble [Mac] Disable QTKit by default on future OS X. https://bugs.webkit.org/show_bug.cgi?id=144082 Reviewed by Darin Adler. QTKitEnabled defaults to false. * Shared/WebPreferencesDefinitions.h: 2015-04-23 Jer Noble [WK2][Mac] Tweak the timing curve of the WebKit Fullscreen animation https://bugs.webkit.org/show_bug.cgi?id=144120 Reviewed by Eric Carlson. Tweak the curve to ease-in faster when the fullscreen animation duration is short. * UIProcess/mac/WKFullScreenWindowController.mm: (timingFunctionForDuration): (zoomAnimation): (maskAnimation): (fadeAnimation): 2015-04-23 Enrica Casucci iOS build fix after r183208. Unreviewed. * UIProcess/ios/WKContentViewInteraction.mm: 2015-04-22 Alexey Proskuryakov [iOS] WebKit services should inherit environment variables for home https://bugs.webkit.org/show_bug.cgi?id=144078 rdar://problem/20571678 Reviewed by Dan Bernstein. Pass current environment variables as XPC bootstrap. Also while at it, made _CFBundleSetupXPCBootstrap not soft linked. * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm: (main): * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::connectToService): 2015-04-23 Enrica Casucci Support share button. https://bugs.webkit.org/show_bug.cgi?id=144077 rdar://problem/19772892 Reviewed by Darin Adler. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _share:]): (-[WKContentView canPerformAction:withSender:]): (-[WKContentView _define:]): (-[WKContentView accessibilityRetrieveSpeakSelectionContent]): (-[WKContentView moveByOffset:]): (-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]): (-[WKContentView applyAutocorrection:toString:withCompletionHandler:]): (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]): (-[WKContentView accessoryTab:]): (-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): (-[WKContentView executeEditCommandWithCallback:]): 2015-04-23 Carlos Garcia Campos [UNIX] Do not allow copies of IPC::Attachment https://bugs.webkit.org/show_bug.cgi?id=144096 Reviewed by Darin Adler. It ensures that the file descriptor ownership is always correctly transferred. This way we can remove the dispose() method to explicitly close the file descriptor and always close it in the Attachment destructor (unless explicitly transferred to IPC::Connection or SharedMemory). It simplifies the code and ensure we don't leak file descriptors. * Platform/IPC/ArgumentDecoder.cpp: (IPC::ArgumentDecoder::~ArgumentDecoder): Remove the code to explicitly dispose attachments. (IPC::ArgumentDecoder::removeAttachment): Use WTF::move(). * Platform/IPC/ArgumentEncoder.cpp: (IPC::ArgumentEncoder::~ArgumentEncoder): Remove the code to explicitly dispose attachments. (IPC::ArgumentEncoder::addAttachment): Use WTF::move(). (IPC::ArgumentEncoder::releaseAttachments): Simplify by using WTF::move(). * Platform/IPC/ArgumentEncoder.h: * Platform/IPC/Attachment.cpp: (IPC::Attachment::encode): Move a copy of the attachment, and reset the file descriptor, since the ownership is passed to the encoder. * Platform/IPC/Attachment.h: Make copy constructor and assignment private to not allow public copies. The only copy allowed is done by Attachment::encode(). Make m_fileDescriptor mutable so that we can reset it in Attachment::encode() after passing the ownership to the encoder. * Platform/IPC/unix/AttachmentUnix.cpp: (IPC::Attachment::~Attachment): Close the file descriptor if it hasn't been released explicitly. (IPC::Attachment::dispose): Deleted. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::processMessage): Do not use AttachmentResourceGuard. (IPC::Connection::sendOutgoingMessage): Ditto. (IPC::AttachmentResourceGuard::AttachmentResourceGuard): Deleted. (IPC::AttachmentResourceGuard::~AttachmentResourceGuard): Deleted. * Platform/unix/SharedMemoryUnix.cpp: (WebKit::SharedMemory::Handle::~Handle): Do not call clear(). (WebKit::SharedMemory::Handle::clear): Reset the attachment. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::createInspectorPage): Use WTF::move(). * WebProcess/Plugins/PluginProcessConnectionManager.cpp: (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): Call releaseFileDescriptor() instead of fileDescritpro() since the ownership is passed to the connection. 2015-04-23 Alexey Proskuryakov Build fix. * WebProcess/cocoa/WebProcessCocoa.mm: Correct the case of an include file name. 2015-04-23 Carlos Garcia Campos Unreviewed. Fix debug build after r183176. * Platform/unix/SharedMemoryUnix.cpp: (WebKit::SharedMemory::Handle::decode): (WebKit::SharedMemory::createHandle): 2015-04-23 Andreas Kling There should only be one way to get the system memory size. Reviewed by Antti Koivisto. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformSetCacheModel): (WebKit::memorySize): Deleted. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformSetCacheModel): (WebKit::memorySize): Deleted. 2015-04-23 Chris Dumez [WK2] WebDiagnosticLoggingClient is leaking https://bugs.webkit.org/show_bug.cgi?id=144089 Reviewed by Darin Adler. WebDiagnosticLoggingClient is leaking. It is constructed inside WebPage constructor but there is no code destroying it. This patch adds a new xxxDestroyed() virtual function to DiagnosticLoggingClient and that is overriden in WebDiagnosticLoggingClient to call "delete this". This is the same pattern as for other WK2 clients (e.g. WebFrameLoaderClient, WebProgressTrackerClient). * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp: (WebKit::WebDiagnosticLoggingClient::mainFrameDestroyed): * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h: 2015-04-23 Carlos Garcia Campos [UNIX] Simplify the file descriptor handling in SharedMemory https://bugs.webkit.org/show_bug.cgi?id=144046 Reviewed by Darin Adler. Simplify the file descriptor handling and clarify its ownership by using IPC::Attachment in SharedMemory::Handle instead of fd and size members. SharedMemory::Handle::adoptFromAttachment() has been renamed as SharedMemory::Handle::adoptAttachment() and receives an IPC::Attachment. And SharedMemory::Handle::releaseToAttachment() has been renamed as SharedMemory::Handle::releaseAttachment(). * Platform/IPC/Attachment.h: Add move constructor and move assigned operator. * Platform/IPC/Connection.h: (IPC::Connection::identifierIsNull): A file descriptor is null when it's -1 no 0. * Platform/IPC/unix/AttachmentUnix.cpp: (IPC::Attachment::Attachment): (IPC::Attachment::operator=): (IPC::Attachment::dispose): Reset the file descriptor after closing it. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::processMessage): Use SharedMemory::Handle::adoptAttachment() that receives an IPC::Attachment now. (IPC::Connection::sendOutgoingMessage): Use SharedMemory::Handle::releaseAttachment(). * Platform/SharedMemory.h: * Platform/unix/SharedMemoryUnix.cpp: (WebKit::SharedMemory::Handle::Handle): Remove initializers for file descriptor and size members. (WebKit::SharedMemory::Handle::clear): Dispose the attachment. (WebKit::SharedMemory::Handle::isNull): Handle is null if the attachment file descriptor is -1. (WebKit::SharedMemory::Handle::encode): Use releaseAttachment(). (WebKit::SharedMemory::Handle::decode): Use adoptAttachment(). (WebKit::SharedMemory::Handle::releaseAttachment): Implement it using move. (WebKit::SharedMemory::Handle::adoptAttachment): Ditto. (WebKit::SharedMemory::map): Use IPC::Attachment::releaseFileDescriptor() instead of manually changing the member. (WebKit::SharedMemory::createHandle): Initialize the handle attachment with the duplicated file descriptor and size. 2015-04-22 Darin Adler Remove OwnPtr and PassOwnPtr use from WebKit/cf, WebKit/mac, and WebKit2 https://bugs.webkit.org/show_bug.cgi?id=143943 Reviewed by Anders Carlsson. * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: Removed unneeded include. 2015-04-22 Brent Fulgham VisibleSelection should only accept Range by reference https://bugs.webkit.org/show_bug.cgi?id=144047 Reviewed by Tim Horton. Update all uses of VisibleSelection to pass a Range reference instead of a Range pointer. * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: (WebKit::InjectedBundleRangeHandle::renderedImage): * WebProcess/WebPage/FindController.cpp: (WebKit::FindController::getImageForFindMatch): (WebKit::FindController::selectFindMatch): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::insertTextAsync): (WebKit::WebPage::setCompositionAsync): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::insertDictatedTextAsync): 2015-04-22 Anders Carlsson Add WK_ARRAY and WK_SET annotations https://bugs.webkit.org/show_bug.cgi?id=144075 rdar://problem/19417770 Reviewed by Dan Bernstein. * Shared/API/Cocoa/WKFoundation.h: * UIProcess/API/Cocoa/WKBackForwardList.h: * UIProcess/API/Cocoa/WKUserContentController.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * mac/postprocess-framework-headers.sh: 2015-04-22 Brent Fulgham Unreviewed build fix after r183136. * WebProcess/WebPage/mac/WebPageMac.mm: Correct capitalization of 'HTMLPluginImageElement.h' -> 'HTMLPlugInImageElement.h' 2015-04-21 Brent Fulgham Extend action menus to support PDF https://bugs.webkit.org/show_bug.cgi?id=143895 Reviewed by Tim Horton. If the mouse pointer is over a PDF, try to provide a relevant action menu for whatever content is under the mouse. For now, we only support copying text and handling URLs. If no text is selected, use the dictionary lookup service to find a semantically appropriate selection underneath the mouse. This is consistent with how normal text is treated in pure HTML views. If some text is already selected, and the mouse is over the existing selection, continue using the selected text. Otherwise, discard the old selection and select the most appropriate region under the mouse pointer. * Shared/API/c/WKActionMenuTypes.h: Add PDF menu option. * Shared/WebMouseEvent.cpp: Recognize mouse force events as valid mouse events. * UIProcess/mac/WKActionMenuController.mm: (-[WKActionMenuController _defaultMenuItemsForPDF]): Add simply copy text option. (-[WKActionMenuController _defaultMenuItems]): Recognize PDFs and add relevant action menu entries. * WebProcess/Plugins/Netscape/NetscapePlugin.h: Provide stub for new method. * WebProcess/Plugins/PDF/PDFLayerControllerDetails.h: Expose 'rectsForSelectionInLayerSpace', 'rectsForAnnotationInLayoutSpace', 'layout', and 'currentPage'. * WebProcess/Plugins/PDF/PDFPlugin.h: * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::getSelectionForWordAtPoint): Added. (WebKit::PDFPlugin::existingSelectionContainsPoint): Added. (WebKit::PDFPlugin::lookupTextAtLocation): Added. * WebProcess/Plugins/Plugin.h: Add declaration for new 'getSelectionForWordAtPoint' method. * WebProcess/Plugins/PluginProxy.h: Provide stub for new method. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::getSelectionForWordAtPoint): Added. (WebKit::PluginView::existingSelectionContainsPoint): Added. (WebKit::PluginView::lookupTextAtLocation): Added. * WebProcess/Plugins/PluginView.h: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): Update to support PDF documents and retrieve relevant content to support later action menu handling. 2015-04-22 Eric Carlson Update AirPlay sandbox rules https://bugs.webkit.org/show_bug.cgi?id=144062 Reviewed by Alexey Proskuryakov. * WebProcess/com.apple.WebProcess.sb.in: Remove obsolete rules. 2015-04-22 Alexey Proskuryakov [Mac] In nightlies and local builds, WebKit services can get terminated under memory pressure https://bugs.webkit.org/show_bug.cgi?id=144052 rdar://problem/19754404 Reviewed by Darin Adler. * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm: (main): Make XPC transaction tracking work again after a re-exec. 2015-04-22 Zan Dobersek [WK2] Have API::Array creation methods return Ref<> https://bugs.webkit.org/show_bug.cgi?id=143933 Reviewed by Darin Adler. API::Array::create() and API::Array::createStringArray() should return Ref<> objects as the return values are never null. It's up to the caller to implicitly convert the returned objects to RefPtr<> if so required. All the call-sites have been updated to reflect that. * Shared/API/APIArray.cpp: (API::Array::create): (API::Array::createStringArray): (API::Array::copy): * Shared/API/APIArray.h: * Shared/API/APIDictionary.cpp: (API::Dictionary::keys): * Shared/API/APIDictionary.h: * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (ensureObjectStream): * Shared/API/c/WKArray.cpp: (WKArrayCreate): (WKArrayCreateAdoptingValues): * Shared/API/c/WKContextMenuItem.cpp: (WKContextMenuCopySubmenuItems): * Shared/API/c/WKDictionary.cpp: (WKDictionaryCopyKeys): * Shared/API/c/WKMutableArray.cpp: (WKMutableArrayCreate): * Shared/Cocoa/WKNSDictionary.mm: (-[WKNSDictionary keyEnumerator]): * Shared/SecurityOriginData.cpp: (WebKit::performAPICallbackWithSecurityOriginDataVector): * Shared/WebContextMenuItem.cpp: (WebKit::WebContextMenuItem::submenuItemsAsAPIArray): * Shared/WebContextMenuItem.h: * Shared/WebOpenPanelParameters.cpp: (WebKit::WebOpenPanelParameters::acceptMIMETypes): (WebKit::WebOpenPanelParameters::selectedFileNames): * Shared/WebOpenPanelParameters.h: * UIProcess/API/C/WKBackForwardListRef.cpp: (WKBackForwardListCopyBackListWithLimit): (WKBackForwardListCopyForwardListWithLimit): * UIProcess/API/C/WKGrammarDetail.cpp: (WKGrammarDetailCopyGuesses): * UIProcess/API/C/WKOpenPanelParameters.cpp: (WKOpenPanelParametersCopyAcceptedMIMETypes): (WKOpenPanelParametersCopySelectedFileNames): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageContextMenuClient): (WKPageCopyRelatedPages): * UIProcess/API/Cocoa/WKBackForwardList.mm: (-[WKBackForwardList backList]): (-[WKBackForwardList forwardList]): * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm: (createWKArray): * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): * UIProcess/API/gtk/WebKitBackForwardList.cpp: (webkit_back_forward_list_get_back_list_with_limit): (webkit_back_forward_list_get_forward_list_with_limit): * UIProcess/API/gtk/WebKitFileChooserRequest.cpp: (webkit_file_chooser_request_get_mime_types): (webkit_file_chooser_request_get_mime_types_filter): (webkit_file_chooser_request_select_files): * UIProcess/API/gtk/WebKitNotificationProvider.cpp: (WebKitNotificationProvider::notificationCloseCallback): * UIProcess/Notifications/WebNotificationManagerProxy.cpp: (WebKit::WebNotificationManagerProxy::populateCopyOfNotificationPermissions): * UIProcess/Notifications/WebNotificationProvider.cpp: (WebKit::WebNotificationProvider::clearNotifications): * UIProcess/Plugins/WebPluginSiteDataManager.cpp: (WebKit::WebPluginSiteDataManager::didGetSitesWithData): * UIProcess/StatisticsRequest.cpp: (WebKit::StatisticsRequest::completedRequest): * UIProcess/UserContent/WebUserContentControllerProxy.cpp: (WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy): * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::backList): (WebKit::WebBackForwardList::forwardList): (WebKit::WebBackForwardList::backListAsAPIArrayWithLimit): (WebKit::WebBackForwardList::forwardListAsAPIArrayWithLimit): * UIProcess/WebBackForwardList.h: * UIProcess/WebCookieManagerProxy.cpp: (WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies): * UIProcess/WebDatabaseManagerProxy.cpp: (WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin): (WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins): * UIProcess/WebGrammarDetail.cpp: (WebKit::WebGrammarDetail::guesses): * UIProcess/WebGrammarDetail.h: * UIProcess/WebKeyValueStorageManager.cpp: (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins): (WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin): * UIProcess/WebMediaCacheManagerProxy.cpp: (WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache): * UIProcess/WebOriginDataManagerProxy.cpp: (WebKit::WebOriginDataManagerProxy::didGetOrigins): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFindStringMatches): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::pluginInfoStoreDidLoadPlugins): * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]): (-[WKFileUploadPanel presentWithParameters:resultListener:]): * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm: (-[WKWebProcessPlugInFrame childFrames]): * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp: (WKBundleBackForwardListItemCopyChildren): * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: (WKBundleFrameCopyChildFrames): * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageCopyTrackedRepaintRects): * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp: (WebKit::InjectedBundleBackForwardListItem::children): * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h: * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp: (WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems): * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp: (WebKit::InjectedBundlePageFormClient::didAssociateFormControls): * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: (WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage): * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::findLargestFrameInFrameSet): * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::childFrames): * WebProcess/WebPage/WebFrame.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::trackedRepaintRects): * WebProcess/WebPage/WebPage.h: 2015-04-21 Eric Carlson [Mac] Use one playback target for all web processes https://bugs.webkit.org/show_bug.cgi?id=144009 Reviewed by Tim Horton. Every WebPageProxy uses the WebMediaSessionManager singleton to talk to the playback target picker. * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): (WebKit::WebPageProxy::resetState): (WebKit::WebPageProxy::isPlayingMediaDidChange): (WebKit::WebPageProxy::addPlaybackTargetPickerClient): (WebKit::WebPageProxy::removePlaybackTargetPickerClient): (WebKit::WebPageProxy::showPlaybackTargetPicker): (WebKit::WebPageProxy::playbackTargetPickerClientStateDidChange): (WebKit::WebPageProxy::setPlaybackTarget): (WebKit::WebPageProxy::externalOutputDeviceAvailableDidChange): (WebKit::WebPageProxy::setShouldPlayToPlaybackTarget): (WebKit::WebPageProxy::devicePickerProxy): Deleted. (WebKit::WebPageProxy::startingMonitoringPlaybackTargets): Deleted. (WebKit::WebPageProxy::stopMonitoringPlaybackTargets): Deleted. (WebKit::WebPageProxy::didChoosePlaybackTarget): Deleted. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::isPlayingAudio): * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::mediaSessionManager): (WebKit::PageClientImpl::createPlaybackTargetPicker): Deleted. * UIProcess/mac/WebMediaSessionManagerMac.cpp: Added. (WebKit::WebMediaSessionManagerMac::singleton): (WebKit::WebMediaSessionManagerMac::WebMediaSessionManagerMac): (WebKit::WebMediaSessionManagerMac::~WebMediaSessionManagerMac): (WebKit::WebMediaSessionManagerMac::targetPicker): * UIProcess/mac/WebMediaSessionManagerMac.h: Added. * WebProcess/Plugins/PluginView.h: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::isPlayingMediaDidChange): (WebKit::WebChromeClient::addPlaybackTargetPickerClient): (WebKit::WebChromeClient::removePlaybackTargetPickerClient): (WebKit::WebChromeClient::showPlaybackTargetPicker): (WebKit::WebChromeClient::playbackTargetPickerClientStateDidChange): (WebKit::WebChromeClient::startingMonitoringPlaybackTargets): Deleted. (WebKit::WebChromeClient::stopMonitoringPlaybackTargets): Deleted. * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::playbackTargetSelected): (WebKit::WebPage::playbackTargetAvailabilityDidChange): (WebKit::WebPage::setShouldPlayToPlaybackTarget): 2015-04-21 Anders Carlsson WKWebsiteDataStore doesn't track and remove IndexedDB databases https://bugs.webkit.org/show_bug.cgi?id=144032 rdar://problem/20242856 Reviewed by Tim Horton. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::fetchWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteData): (WebKit::DatabaseProcess::deleteWebsiteDataForOrigins): * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/DatabaseProcess.messages.in: * Shared/WebsiteData/WebsiteDataTypes.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (dataTypesToString): * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): * UIProcess/Databases/DatabaseProcessProxy.cpp: (WebKit::generateCallbackID): (WebKit::DatabaseProcessProxy::~DatabaseProcessProxy): (WebKit::DatabaseProcessProxy::fetchWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteData): (WebKit::DatabaseProcessProxy::deleteWebsiteDataForOrigins): (WebKit::DatabaseProcessProxy::didClose): (WebKit::DatabaseProcessProxy::didFetchWebsiteData): (WebKit::DatabaseProcessProxy::didDeleteWebsiteData): (WebKit::DatabaseProcessProxy::didDeleteWebsiteDataForOrigins): * UIProcess/Databases/DatabaseProcessProxy.h: * UIProcess/Databases/DatabaseProcessProxy.messages.in: * UIProcess/WebProcessPool.h: * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): (WebKit::WebsiteDataStore::removeData): 2015-04-21 Anders Carlsson Add module maps for WebKit https://bugs.webkit.org/show_bug.cgi?id=144026 rdar://problem/19665428 Reviewed by Dan Bernstein. * Configurations/WebKit.xcconfig: * Modules/OSX.modulemap: Added. * Modules/iOS.modulemap: Added. 2015-04-21 Tim Horton Long pause under _takeViewSnapshot when screen updates are disabled https://bugs.webkit.org/show_bug.cgi?id=144017 Reviewed by Simon Fraser. * UIProcess/API/mac/WKView.mm: (-[WKView _takeViewSnapshot]): Use CGSHWCaptureWindowList, for snapshotting that doesn't block on the next commit, and can succeed while screen updates are disabled without blocking. 2015-04-21 Chris Dumez [WK2][NetworkCache] Better account of resource revalidations in efficacy logging https://bugs.webkit.org/show_bug.cgi?id=144014 Reviewed by Antti Koivisto. Better account of resource revalidations in efficacy logging. Prevously, resources that were in the cache but needed revalidation were counted as retrieval successes, which is not entirely accurate. We now distinguish "is in the cache and is directly usable" from "is in the cache but needs revalidation". We also log how many of these revalidations are successful. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveResponseAsync): * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::update): * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry): (WebKit::NetworkCache::Statistics::recordRevalidationSuccess): * NetworkProcess/cache/NetworkCacheStatistics.h: 2015-04-21 Dan Bernstein [Cocoa] Framework header postprocessing should respect additional definitions https://bugs.webkit.org/show_bug.cgi?id=144018 Reviewed by Anders Carlsson. * mac/postprocess-framework-headers.sh: Read definitons from /usr/local/include/WebKitAdditions/Scripts/postprocess-framework-headers-definitions, and have them take precedence over OSX_VERSION and IOS_VERSION and supply additional options to sed. 2015-04-21 Anders Carlsson Fix block signatures https://bugs.webkit.org/show_bug.cgi?id=144002 Reviewed by Andreas Kling. * UIProcess/API/Cocoa/WKUIDelegate.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): (-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): * UIProcess/API/Cocoa/_WKWebsiteDataStore.h: * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: (-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): (-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): * UIProcess/ios/WKPDFView.mm: (-[WKPDFView _highlightLinkAnnotation:forDuration:completionHandler:]): * UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _processMediaInfoDictionaries:successBlock:failureBlock:]): (-[WKFileUploadPanel _processMediaInfoDictionaries:atIndex:processedResults:processedImageCount:processedVideoCount:successBlock:failureBlock:]): (-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]): 2015-04-21 Timothy Horton PDFs still don't snapshot properly in iOS Safari https://bugs.webkit.org/show_bug.cgi?id=143976 Reviewed by Anders Carlsson. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didLayoutForCustomContentProvider): * UIProcess/WebPageProxy.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:data:]): Inform the client that we've passed all reasonable layout milestones as soon as the custom content provider has been handed its data. WKPDFView, the only custom content provider, synchronously lays out its subviews upon initial receipt of data, so this works fine for it. This ensures that clients that normally depend on layout milestones firing won't break when a custom content view is installed. (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Fall back to renderInContext: if the custom content view is not parented when a snapshot is requested. 2015-04-21 Dan Bernstein Merged WKBackForwardListItem’s Internal category into the class extension in WKBackForwardListItemInternal.h. Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKBackForwardListItem.mm: (-[WKBackForwardListItem _item]): (-[WKBackForwardListItem _apiObject]): * UIProcess/API/Cocoa/WKBackForwardListItemInternal.h: 2015-04-21 Chris Dumez Make Vector(const Vector&) constructor explicit https://bugs.webkit.org/show_bug.cgi?id=143970 Reviewed by Darin Adler. Make Vector(const Vector&) constructor explicit as it copies the vector and it is easy to call it by mistake. * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: (WebKit::WebIDBServerConnection::setIndexKeys): * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h: 2015-04-20 Dan Bernstein Expose more bundle form client functions as WKWebProcessPlugInFormDelegatePrivate methods https://bugs.webkit.org/show_bug.cgi?id=143973 Reviewed by Anders Carlsson. * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Declared new delegate methods. * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h: Declared new frame property. * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: (-[WKWebProcessPlugInNodeHandle frame]): Added. Returns the node’s document’s frame. This is useful to delegates getting an array of nodes via the new method. * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Added overrides of shouldNotifyOnFormChanges and didAssociateFormControls, which call the new delegate methods. 2015-04-20 Joseph Pecoraro Cleanup some StringBuilder use https://bugs.webkit.org/show_bug.cgi?id=143550 Reviewed by Darin Adler. * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp: (WebKit::buildObjectStoreStatement): * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: (WebKit::v2RecordsTableSchema): * Shared/Databases/IndexedDB/IDBUtilities.cpp: (WebKit::uniqueDatabaseIdentifier): * UIProcess/API/APIUserScript.cpp: (API::UserScript::generateUniqueURL): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::didReceiveInvalidMessage): * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp: (WebKit::combinedSecurityOriginIdentifier): 2015-04-20 Anders Carlsson Modify the WKWebsiteDataStore API to take a NSSet of types instead of a bitmask https://bugs.webkit.org/show_bug.cgi?id=143966 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: (dataTypesToString): (-[WKWebsiteDataRecord dataTypes]): * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): * UIProcess/API/Cocoa/WKWebsiteDataStore.h: * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (+[WKWebsiteDataStore allWebsiteDataTypes]): (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): (-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): (-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): * UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/_WKWebsiteDataStore.h: * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: (toWKWebsiteDataTypes): (-[_WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): (-[_WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): (-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): 2015-04-20 Beth Dakin Should remove mouseForceClick and mouseForceCancelled from DOM force events https://bugs.webkit.org/show_bug.cgi?id=143904 -and corresponding- rdar://problem/20578842 Reviewed by Dan Bernstein. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::immediateActionDidCancel): 2015-04-20 Tim Horton Implement immediate action support for tel: and mailto: URLs https://bugs.webkit.org/show_bug.cgi?id=143916 Reviewed by Darin Adler. * Shared/API/c/WKImmediateActionTypes.h: * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _defaultAnimationController]): (-[WKImmediateActionController _animationControllerForDataDetectedText]): (-[WKImmediateActionController _animationControllerForDataDetectedLink]): (-[WKImmediateActionController _menuItemForDataDetectedText]): Deleted. Add _animationControllerForDataDetectedLink and use it when building immediate actions for tel: and mailto: links. 2015-04-20 Alex Christensen Properly report errors from _WKUserContentExtensionStore. https://bugs.webkit.org/show_bug.cgi?id=143808 Reviewed by Darin Adler. * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm: (-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): (-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]): (-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]): 2015-04-18 Simon Fraser REGRESSION (r181656): Animated tiled layers are missing content https://bugs.webkit.org/show_bug.cgi?id=143911 rdar://problem/20596328 Reviewed by Darin Adler. After r181656, all requestAnimationFrame was falling back to timers, and not using the platform's DisplayRefreshMonitor, because of a Nullopt vs nullptr fumble. Replace this confusing Optional<> code with simpler code that just forces the clients to make a DisplayRefreshMonitor if they can, first asking ChromeClient, and then falling back to createDefaultDisplayRefreshMonitor(). Make lots of things into references, and use C++11 initialization in some places. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createDisplayRefreshMonitor): * WebProcess/WebCoreSupport/WebChromeClient.h: 2015-04-18 Dan Bernstein SwipeShadow images are installed on iOS https://bugs.webkit.org/show_bug.cgi?id=143915 Reviewed by Tim Horton. * Configurations/WebKit.xcconfig: Added Resources/Mac/* to EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*]. We could move more resources there and remove individual patterns. * Resources/SwipeShadow.png: Moved to mac. * Resources/SwipeShadow@2x.png: Moved to mac. * Resources/mac: Added. * Resources/mac/SwipeShadow.png: Moved from Source/WebKit2/Resources/SwipeShadow.png. * Resources/mac/SwipeShadow@2x.png: Moved from Source/WebKit2/Resources/SwipeShadow@2x.png. * WebKit2.xcodeproj/project.pbxproj: Created mac group in the Resources group and moved SwipeShadow*.png into it. Updated for file moves. 2015-04-18 Chris Dumez Fix NetworkCache Statistics database bootstrapping after r182803 https://bugs.webkit.org/show_bug.cgi?id=143890 Reviewed by Darin Adler. Update the NetworkCache Statistics database bootstrapping code to use the records path instead of the version path. Also check that the filenames in the folder are valid hashes to discard the *-body files. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::recordsPath): (WebKit::NetworkCache::Cache::storagePath): Deleted. * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::Statistics::initialize): (WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache): (WebKit::NetworkCache::Statistics::shrinkIfNeeded): 2015-04-17 Tim Horton Clients sometimes block for 500ms in waitForPossibleGeometryUpdates https://bugs.webkit.org/show_bug.cgi?id=143901 Reviewed by Anders Carlsson. * Platform/IPC/Connection.cpp: (IPC::Connection::waitForMessage): InterruptWaitingIfSyncMessageArrives already cancels waitForMessage if a sync message arrives while waiting, but it should also avoid waiting if there's a sync message already in the queue when the waiting starts, as that will have the same nasty effect. * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: (WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate): If a synchronous message comes in from the Web process while we're waiting, cancel our synchronous wait for DidUpdateGeometry. This will cause the size change to not synchronize with the Web process' painting, but that is better than pointlessly blocking for 500ms. 2015-04-17 Chris Dumez Possible null pointer dereference in WebDiagnosticLoggingClient::logDiagnosticMessageWithValue() https://bugs.webkit.org/show_bug.cgi?id=143899 Reviewed by Anders Carlsson. WebDiagnosticLoggingClient::logDiagnosticMessage*() methods failed to check that m_page.corePage() was non-null before dereferencing, thus causing crashes when it is null. * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp: (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage): (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult): (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue): 2015-04-17 Yongjun Zhang WebKit client should be able to add view controller for link preview. https://bugs.webkit.org/show_bug.cgi?id=143686 Add delegate methods to WKUIDelegatePrivate so that a WebKit client can prepare a view controller for link preview and react to the dismissal of this view controller. Also connect WKContentView to preview gesture recognizer and forwards the delegate callbacks to corresponding delegate methods in WKUIDelegatePrivate. Reviewed by Beth Dakin. * Platform/spi/ios/UIKitSPI.h: * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/ios/WKContentView.mm: (-[WKContentView willMoveToWindow:]): * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView cleanupInteraction]): (-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]): (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): (-[WKContentView gestureRecognizerShouldBegin:]): (-[WKContentView previewViewControllerForPosition:inSourceView:]): (-[WKContentView commitPreviewViewController:]): (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): (-[WKContentView didDismissPreviewViewController:committing:]): 2015-04-17 Beth Dakin Force mouse events should go through normal mouse event handling code paths https://bugs.webkit.org/show_bug.cgi?id=143749 -and corresponding- rdar://problem/20472895 Reviewed by Dean Jackson. This patch makes pressureChangeWithEvent create NativeWebMouseEvents with the NSEventTypePressures that is gets and sends those down to the web process. Re-name pressureEvent to lastPressureEvent. Now that event can sometimes be an NSEventTypePressure, the new name makes it clear how the second parameter differs from the first. * Shared/NativeWebMouseEvent.h: New event types for the new types of events. * Shared/WebEvent.h: * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent): * Shared/mac/NativeWebMouseEventMac.mm: (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): * Shared/mac/WebEventFactory.h: All of the square-peg, round-hole problems of massaging the NSEventTypePressures events into WebMouseEvents is taken care of here. * Shared/mac/WebEventFactory.mm: (WebKit::mouseButtonForEvent): (WebKit::globalPointForEvent): (WebKit::pointForEvent): (WebKit::WebEventFactory::createWebMouseEvent): Instead of calling the old inputDeviceForceDidChange, create a NativeWebMouseEvent and handle it. * UIProcess/API/mac/WKView.mm: (-[WKView pressureChangeWithEvent:]): Handle the new types. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didReceiveEvent): Can delete inputDeviceForceDidChange since it’s no longer used. (WebKit::WebPageProxy::inputDeviceForceDidChange): Deleted. * UIProcess/WebPageProxy.h: Handle the new types of mouse events properly. * WebProcess/WebPage/WebPage.cpp: (WebKit::handleMouseEvent): Delete inputDeviceForceDidChange() and m_lastForceStage. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::inputDeviceForceDidChange): Deleted. Handle new WebEvent types. * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: 2015-04-17 Commit Queue Unreviewed, rolling out r182912 and r182920. https://bugs.webkit.org/show_bug.cgi?id=143881 Build breakage in some configurations (Requested by ap on #webkit). Reverted changesets: "Force mouse events should go through normal mouse event handling code paths" https://bugs.webkit.org/show_bug.cgi?id=143749 http://trac.webkit.org/changeset/182912 http://trac.webkit.org/changeset/182920 2015-04-17 Antti Koivisto Network Cache: Read resource record and body in parallel https://bugs.webkit.org/show_bug.cgi?id=143879 Reviewed by Chris Dumez. We currently first fetch the record file and then fetch the body blob if needed. We can do both operations in parallel to reduce latency. * NetworkProcess/cache/NetworkCacheFileSystemPosix.h: (WebKit::NetworkCache::traverseCacheFiles): Do all validation in the client. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::synchronize): Maintain a bloom filter that contains the body blobs to avoid unnecessary IO attempts. Delete any unknown file in cache directory. (WebKit::NetworkCache::Storage::addToRecordFilter): More informative name for record filter. (WebKit::NetworkCache::Storage::mayContain): (WebKit::NetworkCache::Storage::readRecord): (WebKit::NetworkCache::Storage::storeBodyAsBlob): (WebKit::NetworkCache::Storage::dispatchReadOperation): Start record read IO and body blob read IO in parallel. (WebKit::NetworkCache::Storage::finishReadOperation): The read is finished when we have both the record and the blob. (WebKit::NetworkCache::Storage::dispatchWriteOperation): (WebKit::NetworkCache::Storage::retrieve): (WebKit::NetworkCache::Storage::store): (WebKit::NetworkCache::Storage::traverse): (WebKit::NetworkCache::Storage::clear): (WebKit::NetworkCache::Storage::shrink): (WebKit::NetworkCache::Storage::addToContentsFilter): Deleted. (WebKit::NetworkCache::Storage::decodeRecord): Deleted. * NetworkProcess/cache/NetworkCacheStorage.h: (WebKit::NetworkCache::Storage::ReadOperation::ReadOperation): ReadOperation is now mutable and gathers the read result. 2015-04-16 Anders Carlsson Stop installing WebKit2.framework https://bugs.webkit.org/show_bug.cgi?id=143860 rdar://problem/18298491 Reviewed by Dan Bernstein. * Configurations/WebKit2.xcconfig: Set SKIP_INSTALL=YES for all SDKs except 10.9 where we still need it. 2015-04-17 Carlos Garcia Campos Unreviewed. Fix the build with ENABLE(NETWORK_CACHE) and !ENABLE(SHAREABLE_RESOURCE). * NetworkProcess/cache/NetworkCacheEntry.cpp: * NetworkProcess/cache/NetworkCacheFileSystemPosix.h: (WebKit::NetworkCache::fileTimes): There's no st_birthtime in Linux. 2015-04-17 Carlos Garcia Campos [SOUP] ResourceRequest cache policy is not encoded/decoded in IPC messages https://bugs.webkit.org/show_bug.cgi?id=143867 Reviewed by Sergio Villar Senin. Encode/Decode the ResourceRequest cache policy. * Shared/soup/WebCoreArgumentCodersSoup.cpp: (IPC::ArgumentCoder::encodePlatformData): (IPC::ArgumentCoder::decodePlatformData): 2015-04-16 Sungmann Cho Use UNUSED_PARAM instead of the void casting to suppress unused parameter warnings. https://bugs.webkit.org/show_bug.cgi?id=143750 Reviewed by Darin Adler. No new tests, no behavior change. * WebProcess/Notifications/NotificationPermissionRequestManager.cpp: (WebKit::NotificationPermissionRequestManager::NotificationPermissionRequestManager): 2015-04-16 Brady Eidson Compiling a content extension fails when user's home directory is on a different volume from /var/tmp. https://bugs.webkit.org/show_bug.cgi?id=143834 Reviewed by Anders Carlsson. * UIProcess/API/APIUserContentExtensionStore.cpp: (API::compiledToFile): Use moveFile() instead of renameFile() 2015-04-16 Anders Carlsson Deprecate _WKWebsiteDataStore in favor of WKWebsiteDataStore https://bugs.webkit.org/show_bug.cgi?id=143844 Reviewed by Dan Bernstein. * Shared/API/Cocoa/WKFoundation.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration _validate]): * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: * UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/_WKWebsiteDataStore.h: * mac/postprocess-framework-headers.sh: 2015-04-16 Alex Christensen Removed unused WKUserContentFilterRef. https://bugs.webkit.org/show_bug.cgi?id=143852 Reviewed by Sam Weinig. * Shared/WebCompiledContentExtension.cpp: (WebKit::LegacyContentExtensionCompilationClient::LegacyContentExtensionCompilationClient): Deleted. (WebKit::LegacyContentExtensionCompilationClient::writeBytecode): Deleted. (WebKit::LegacyContentExtensionCompilationClient::writeActions): Deleted. (WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData): Deleted. * Shared/WebCompiledContentExtension.h: * UIProcess/API/C/WKUserContentFilterRef.cpp: Removed. * UIProcess/API/C/WKUserContentFilterRef.h: Removed. * UIProcess/API/C/WebKit2_C.h: * UIProcess/API/Cocoa/_WKUserContentFilter.h: * UIProcess/API/Cocoa/_WKUserContentFilter.mm: (-[_WKUserContentFilter initWithName:serializedRules:]): Deleted. * WebKit2.xcodeproj/project.pbxproj: 2015-04-16 Beth Dakin Rubber-stamped by Tim Horton. Fixing a small mistake in http://trac.webkit.org/changeset/182912 which should make sure to use the most up-to-date pressure information when setting the force on a WebMouseEvent. * Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebMouseEvent): 2015-04-13 Jer Noble [iOS] When simultaneously exiting-and-entering fullscreen, WebVideoFullscreenManager/Proxy becomes confused about what video element it represents. https://bugs.webkit.org/show_bug.cgi?id=143680 Reviewed by Simon Fraser. The original assumption of WebVideoFullscreenManager and -Proxy was that the two classes would represent a single video element and its full screen state. With multiple animations in and out of fullscreen combined with multiple fullscreen modes, this assumption no longer holds true. Rather than having a WebVideoFullscreenManager which /isa/ WebVideoFullscreenModelVideoElement, the manager now /hasa/ WebVideoFullscreenModelVideoElement (or has many such models). Ditto for WebVideoFullscreenManager and WebVideoFullscreenInterfaceAVKit. The WebVideoFullscreenInterfaceAVKit still needs a WebVideoFullscreenModel to communicate with, so a new wrapper class is used for that purpose, WebVideoFullscreenModelContext. Ditto for WebVideoFullscreenModelVideoElement and the new class WebVideoFullscreenInterfaceContext. These context classes are paired and share a contextId, allowing the manager and its proxy to route messages between the UIProcess's WebVideoFullscreenInterfaceAVKit to-and-from the WebProcess's WebVideoFullscreenModelVideoElement. Both the WebVideoFullscreenModelContext and the WebVideoFullscreenInterfaceContext take a back-pointer to their manager or manager proxy, and each method on the context simply calls the matching method on the manager and passes its contextId as a parameter. Both the WebVideoFullscreenManager and the WebVideoFullscreenManagerProxy pass that contextId in each of their cross-process messages. On the other side, the manager and proxy also have a map between contextIds and their matching WebVideoFullscreenModelVideoElement (in the case of WebVideoFullscreenManager) or WebVideoFullscreenInterfaceAVKit (in the case of WebVideoFullscreenManagerProxy). While this change is large by LoC, it is almost entirely boilerplate. The new and interesting pieces are these: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy): No longer a WebVideoFullscreenInterfaceAVKit. (WebKit::WebVideoFullscreenManagerProxy::invalidate): Walk through the models and interfaces, invalidating each. (WebKit::WebVideoFullscreenManagerProxy::createModelAndInterface): Added. Return a new model and interface tuple. (WebKit::WebVideoFullscreenManagerProxy::ensureModelAndInterface): Added. Lazily create, and add to the m_contextMap a new model and interface object. (WebKit::WebVideoFullscreenManagerProxy::ensureModel): Return the model half of ensureModelAndInterface(). (WebKit::WebVideoFullscreenManagerProxy::ensureInterface): Return the interface half of ensureModelAndInterface(). (WebKit::WebVideoFullscreenManagerProxy::enterFullscreen): Walk through the outstanding interface objects, and if any have a fullscreen mode which matches the about-to-be-fullscreen interface, request that that other interface exit fullscreen. * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::nextContextId): Static, incrementing counter used as a contextId source. (WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager): No longer a WebVideoFullscreenModelVideoElement. (WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager): Walk through the models and interfaces, invalidating each. (WebKit::WebVideoFullscreenManager::ensureModelAndInterface): Added. Return a new model and interface tuple. (WebKit::WebVideoFullscreenManager::ensureModelAndInterface): Added. Lazily create, and add to the m_contextMap a new model and interface object. (WebKit::WebVideoFullscreenManager::ensureModel): Return the model half of ensureModelAndInterface(). (WebKit::WebVideoFullscreenManager::ensureInterface): Return the interface half of ensureModelAndInterface(). New classes and methods which just forward on to their owning objects: * UIProcess/ios/WebVideoFullscreenManagerProxy.h: (WebKit::WebVideoFullscreenModelContext::create): (WebKit::WebVideoFullscreenModelContext::~WebVideoFullscreenModelContext): (WebKit::WebVideoFullscreenModelContext::invalidate): (WebKit::WebVideoFullscreenModelContext::layerHost): (WebKit::WebVideoFullscreenModelContext::setLayerHost): (WebKit::WebVideoFullscreenModelContext::setInitialVideoLayerFrame): (WebKit::WebVideoFullscreenModelContext::WebVideoFullscreenModelContext): * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenModelContext::play): (WebKit::WebVideoFullscreenModelContext::pause): (WebKit::WebVideoFullscreenModelContext::togglePlayState): (WebKit::WebVideoFullscreenModelContext::beginScrubbing): (WebKit::WebVideoFullscreenModelContext::endScrubbing): (WebKit::WebVideoFullscreenModelContext::seekToTime): (WebKit::WebVideoFullscreenModelContext::fastSeek): (WebKit::WebVideoFullscreenModelContext::beginScanningForward): (WebKit::WebVideoFullscreenModelContext::beginScanningBackward): (WebKit::WebVideoFullscreenModelContext::endScanning): (WebKit::WebVideoFullscreenModelContext::requestExitFullscreen): (WebKit::WebVideoFullscreenModelContext::setVideoLayerFrame): (WebKit::WebVideoFullscreenModelContext::videoLayerFrame): (WebKit::WebVideoFullscreenModelContext::setVideoLayerGravity): (WebKit::WebVideoFullscreenModelContext::videoLayerGravity): (WebKit::WebVideoFullscreenModelContext::selectAudioMediaOption): (WebKit::WebVideoFullscreenModelContext::selectLegibleMediaOption): (WebKit::WebVideoFullscreenModelContext::fullscreenModeChanged): (WebKit::WebVideoFullscreenModelContext::didSetupFullscreen): (WebKit::WebVideoFullscreenModelContext::didEnterFullscreen): (WebKit::WebVideoFullscreenModelContext::didExitFullscreen): (WebKit::WebVideoFullscreenModelContext::didCleanupFullscreen): (WebKit::WebVideoFullscreenModelContext::fullscreenMayReturnToInline): * WebProcess/ios/WebVideoFullscreenManager.h: (WebKit::WebVideoFullscreenInterfaceContext::create): (WebKit::WebVideoFullscreenInterfaceContext::invalidate): (WebKit::WebVideoFullscreenInterfaceContext::layerHostingContext): (WebKit::WebVideoFullscreenInterfaceContext::isAnimating): (WebKit::WebVideoFullscreenInterfaceContext::setIsAnimating): (WebKit::WebVideoFullscreenInterfaceContext::targetIsFullscreen): (WebKit::WebVideoFullscreenInterfaceContext::setTargetIsFullscreen): (WebKit::WebVideoFullscreenInterfaceContext::fullscreenMode): (WebKit::WebVideoFullscreenInterfaceContext::setFullscreenMode): (WebKit::WebVideoFullscreenInterfaceContext::isFullscreen): (WebKit::WebVideoFullscreenInterfaceContext::setIsFullscreen): * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenInterfaceContext::WebVideoFullscreenInterfaceContext): (WebKit::WebVideoFullscreenInterfaceContext::~WebVideoFullscreenInterfaceContext): (WebKit::WebVideoFullscreenInterfaceContext::setLayerHostingContext): (WebKit::WebVideoFullscreenInterfaceContext::resetMediaState): (WebKit::WebVideoFullscreenInterfaceContext::setDuration): (WebKit::WebVideoFullscreenInterfaceContext::setCurrentTime): (WebKit::WebVideoFullscreenInterfaceContext::setBufferedTime): (WebKit::WebVideoFullscreenInterfaceContext::setRate): (WebKit::WebVideoFullscreenInterfaceContext::setVideoDimensions): (WebKit::WebVideoFullscreenInterfaceContext::setSeekableRanges): (WebKit::WebVideoFullscreenInterfaceContext::setCanPlayFastReverse): (WebKit::WebVideoFullscreenInterfaceContext::setAudioMediaSelectionOptions): (WebKit::WebVideoFullscreenInterfaceContext::setLegibleMediaSelectionOptions): (WebKit::WebVideoFullscreenInterfaceContext::setExternalPlayback): Cross-process methods which now take a contextId parameter: * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): (WebKit::WebVideoFullscreenManagerProxy::resetMediaState): (WebKit::WebVideoFullscreenManagerProxy::setCurrentTime): (WebKit::WebVideoFullscreenManagerProxy::setBufferedTime): (WebKit::WebVideoFullscreenManagerProxy::setVideoDimensions): (WebKit::WebVideoFullscreenManagerProxy::setSeekableRangesVector): (WebKit::WebVideoFullscreenManagerProxy::setCanPlayFastReverse): (WebKit::WebVideoFullscreenManagerProxy::setAudioMediaSelectionOptions): (WebKit::WebVideoFullscreenManagerProxy::setLegibleMediaSelectionOptions): (WebKit::WebVideoFullscreenManagerProxy::setExternalPlaybackProperties): (WebKit::WebVideoFullscreenManagerProxy::setDuration): (WebKit::WebVideoFullscreenManagerProxy::setRate): (WebKit::WebVideoFullscreenManagerProxy::exitFullscreen): (WebKit::WebVideoFullscreenManagerProxy::cleanupFullscreen): (WebKit::WebVideoFullscreenManagerProxy::preparedToReturnToInline): (WebKit::WebVideoFullscreenManagerProxy::play): (WebKit::WebVideoFullscreenManagerProxy::pause): (WebKit::WebVideoFullscreenManagerProxy::togglePlayState): (WebKit::WebVideoFullscreenManagerProxy::beginScrubbing): (WebKit::WebVideoFullscreenManagerProxy::endScrubbing): (WebKit::WebVideoFullscreenManagerProxy::seekToTime): (WebKit::WebVideoFullscreenManagerProxy::fastSeek): (WebKit::WebVideoFullscreenManagerProxy::beginScanningForward): (WebKit::WebVideoFullscreenManagerProxy::beginScanningBackward): (WebKit::WebVideoFullscreenManagerProxy::endScanning): (WebKit::WebVideoFullscreenManagerProxy::requestExitFullscreen): (WebKit::WebVideoFullscreenManagerProxy::didSetupFullscreen): (WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen): (WebKit::WebVideoFullscreenManagerProxy::didEnterFullscreen): (WebKit::WebVideoFullscreenManagerProxy::didCleanupFullscreen): (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerGravity): (WebKit::WebVideoFullscreenManagerProxy::selectAudioMediaOption): (WebKit::WebVideoFullscreenManagerProxy::selectLegibleMediaOption): (WebKit::WebVideoFullscreenManagerProxy::fullscreenModeChanged): (WebKit::WebVideoFullscreenManagerProxy::fullscreenMayReturnToInline): (WebKit::WebVideoFullscreenManagerProxy::videoLayerFrame): Deleted. (WebKit::WebVideoFullscreenManagerProxy::videoLayerGravity): Deleted. * WebProcess/ios/WebVideoFullscreenManager.messages.in: * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): (WebKit::WebVideoFullscreenManager::exitVideoFullscreenForVideoElement): (WebKit::WebVideoFullscreenManager::resetMediaState): (WebKit::WebVideoFullscreenManager::setDuration): (WebKit::WebVideoFullscreenManager::setCurrentTime): (WebKit::WebVideoFullscreenManager::setBufferedTime): (WebKit::WebVideoFullscreenManager::setRate): (WebKit::WebVideoFullscreenManager::setVideoDimensions): (WebKit::WebVideoFullscreenManager::setSeekableRanges): (WebKit::WebVideoFullscreenManager::setCanPlayFastReverse): (WebKit::WebVideoFullscreenManager::setAudioMediaSelectionOptions): (WebKit::WebVideoFullscreenManager::setLegibleMediaSelectionOptions): (WebKit::WebVideoFullscreenManager::setExternalPlayback): (WebKit::WebVideoFullscreenManager::play): (WebKit::WebVideoFullscreenManager::pause): (WebKit::WebVideoFullscreenManager::togglePlayState): (WebKit::WebVideoFullscreenManager::beginScrubbing): (WebKit::WebVideoFullscreenManager::endScrubbing): (WebKit::WebVideoFullscreenManager::seekToTime): (WebKit::WebVideoFullscreenManager::fastSeek): (WebKit::WebVideoFullscreenManager::beginScanningForward): (WebKit::WebVideoFullscreenManager::beginScanningBackward): (WebKit::WebVideoFullscreenManager::endScanning): (WebKit::WebVideoFullscreenManager::requestExitFullscreen): (WebKit::WebVideoFullscreenManager::selectAudioMediaOption): (WebKit::WebVideoFullscreenManager::selectLegibleMediaOption): (WebKit::WebVideoFullscreenManager::fullscreenModeChanged): (WebKit::WebVideoFullscreenManager::didSetupFullscreen): (WebKit::WebVideoFullscreenManager::didEnterFullscreen): (WebKit::WebVideoFullscreenManager::didExitFullscreen): (WebKit::WebVideoFullscreenManager::didCleanupFullscreen): (WebKit::WebVideoFullscreenManager::setVideoLayerGravityEnum): (WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline): (WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): (WebKit::WebVideoFullscreenManager::exitVideoFullscreen): Deleted. 2015-04-16 Beth Dakin Force mouse events should go through normal mouse event handling code paths https://bugs.webkit.org/show_bug.cgi?id=143749 -and corresponding- rdar://problem/20472895 Reviewed by Dean Jackson. This patch makes pressureChangeWithEvent create NativeWebMouseEvents with the NSEventTypePressures that is gets and sends those down to the web process. Re-name pressureEvent to lastPressureEvent. Now that event can sometimes be an NSEventTypePressure, the new name makes it clear how the second parameter differs from the first. * Shared/NativeWebMouseEvent.h: New event types for the new types of events. * Shared/WebEvent.h: * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent): * Shared/mac/NativeWebMouseEventMac.mm: (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): * Shared/mac/WebEventFactory.h: All of the square-peg, round-hole problems of massaging the NSEventTypePressures events into WebMouseEvents is taken care of here. * Shared/mac/WebEventFactory.mm: (WebKit::mouseButtonForEvent): (WebKit::globalPointForEvent): (WebKit::pointForEvent): (WebKit::WebEventFactory::createWebMouseEvent): Instead of calling the old inputDeviceForceDidChange, create a NativeWebMouseEvent and handle it. * UIProcess/API/mac/WKView.mm: (-[WKView pressureChangeWithEvent:]): Handle the new types. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didReceiveEvent): Can delete inputDeviceForceDidChange since it’s no longer used. (WebKit::WebPageProxy::inputDeviceForceDidChange): Deleted. * UIProcess/WebPageProxy.h: Handle the new types of mouse events properly. * WebProcess/WebPage/WebPage.cpp: (WebKit::handleMouseEvent): Delete inputDeviceForceDidChange() and m_lastForceStage. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::inputDeviceForceDidChange): Deleted. Handle new WebEvent types. * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: 2015-04-16 Dan Bernstein Also include a definition of __NSd_{current deployment target} in WKFoundation.h. Reviewed by Tim Horton. * WebKit2.xcodeproj/project.pbxproj: 2015-04-16 Timothy Horton Provide a mechanism through the legacy SPI to know when swipe gestures begin and end https://bugs.webkit.org/show_bug.cgi?id=143740 Reviewed by Dan Bernstein. In the C SPI, add three WKPageLoaderClient callbacks for the three navigation gesture events (did begin, will end, did end). * UIProcess/API/C/WKPageLoaderClient.h: Add the callbacks. * UIProcess/API/APILoaderClient.h: (API::LoaderClient::navigationGestureDidBegin): (API::LoaderClient::navigationGestureWillEnd): (API::LoaderClient::navigationGestureDidEnd): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::navigationGestureDidBegin): (WebKit::WebPageProxy::navigationGestureWillEnd): (WebKit::WebPageProxy::navigationGestureDidEnd): Dispatch navigation gesture events to the loader client as well as (after a bounce through the PageClient) the navigation delegate. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageLoaderClient): Call the callbacks. * UIProcess/mac/ViewGestureController.h: * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::trackSwipeGesture): (WebKit::ViewGestureController::willEndSwipeGesture): While we were already informing WebPageProxy of 'did begin' and 'did end' navigation gesture events, we were missing 'will end'. Add it. 2015-04-16 Tim Horton Dispatching multiple asynchronous animated resizes in parallel causes page scale to detach from reality https://bugs.webkit.org/show_bug.cgi?id=143812 Reviewed by Simon Fraser. * Shared/VisibleContentRectUpdateInfo.h: (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo): No cats in transaction (more of these below, too). * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::dynamicViewportSizeUpdate): (WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::handleTap): (WebKit::WebPage::commitPotentialTap): (WebKit::WebPage::dynamicViewportSizeUpdate): Add an incrementing ID to dynamicViewportSizeUpdates. The UI process keeps the current ID, and it is bounced through the Web process (dynamicViewportSizeUpdates) back to the UI process (dynamicViewportUpdateChangedTarget). If we have dispatched another dynamicViewportSizeUpdate in the interim, ignore the intermediate target. 2015-04-16 Sungmann Cho Remove PluginController::isPluginVisible(). https://bugs.webkit.org/show_bug.cgi?id=143830 Reviewed by Darin Adler. PluginController::isPluginVisible() was introduced by http://webkit.org/b/60285. This method had been used only for WebKit2 on Windows, and no one uses it now. So we can remove it. No new tests, no behavior change. * PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::isPluginVisible): Deleted. * PluginProcess/PluginControllerProxy.h: * WebProcess/Plugins/PluginController.h: * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::isPluginVisible): Deleted. * WebProcess/Plugins/PluginView.h: 2015-04-16 Gyuyoung Kim [EFL] Disable a flaky ewk_context_network_process_model() API test https://bugs.webkit.org/show_bug.cgi?id=143824 Reviewed by Csaba Osztrogonác. ewk_context_network_process_model has been often failed. Though Bug 142967 was filed to fix this issue, it is not solved yet. To maintain EFL bot, this patch disables it until fixing it. * UIProcess/API/efl/tests/test_ewk2_context.cpp: (TEST_F): 2015-04-16 Csaba Osztrogonác [WK2] Forwarding headers generator shouldn't generate unnecessary headers https://bugs.webkit.org/show_bug.cgi?id=143820 Reviewed by Carlos Garcia Campos. * Scripts/generate-forwarding-headers.pl: (collectNeededHeaders): 2015-04-16 Csaba Osztrogonác [GTK] Run forwarding headers generator unconditionally https://bugs.webkit.org/show_bug.cgi?id=143819 Reviewed by Carlos Garcia Campos. * PlatformGTK.cmake: 2015-04-15 Brent Fulgham [Mac] Disable "Save to Downloads" option for local files https://bugs.webkit.org/show_bug.cgi?id=143794 Reviewed by Tim Horton. Disable the Image and Media download options if the download target is a local file. We can only download web resources; anything else is actually a no-op. * UIProcess/mac/WKActionMenuController.mm: (-[WKActionMenuController _defaultMenuItemsForVideo]): (-[WKActionMenuController _defaultMenuItemsForImage]): 2015-04-15 Anders Carlsson Make websiteDataStore on WKWebViewConfiguration public https://bugs.webkit.org/show_bug.cgi?id=143810 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.h: * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration websiteDataStore]): (-[WKWebViewConfiguration setWebsiteDataStore:]): (-[WKWebViewConfiguration _websiteDataStore]): (-[WKWebViewConfiguration _setWebsiteDataStore:]): 2015-04-15 Anders Carlsson Make WKWebsiteDataStore public https://bugs.webkit.org/show_bug.cgi?id=143805 Reviewed by Dan Bernstein. Rename the current _WKWebsiteDataStore to WKWebsiteDataStore. Make init unavailable and tighten up the types of the defaultDataStore and nonPersistentDataStore class methods. Add a new _WKWebsiteDataStore @interface and @implementation that derives from WKWebsiteDataStore and forwards the defaultDataStore and nonPersistentDataStore method calls. * Shared/API/Cocoa/WebKit.h: * Shared/Cocoa/APIObject.mm: (API::Object::newObject): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration _websiteDataStore]): * UIProcess/API/Cocoa/WKWebsiteDataStore.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStore.h. * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStore.mm. (+[WKWebsiteDataStore defaultDataStore]): (+[WKWebsiteDataStore nonPersistentDataStore]): (-[WKWebsiteDataStore dealloc]): (-[WKWebsiteDataStore isNonPersistent]): (toSystemClockTime): (-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]): (-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): (toWebsiteDataRecords): (-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]): (-[WKWebsiteDataStore _apiObject]): * UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h. (WebKit::wrapper): * UIProcess/API/Cocoa/_WKWebsiteDataStore.h: * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: (+[_WKWebsiteDataStore defaultDataStore]): (+[_WKWebsiteDataStore nonPersistentDataStore]): (-[_WKWebsiteDataStore dealloc]): Deleted. (-[_WKWebsiteDataStore isNonPersistent]): Deleted. (toWebsiteDataTypes): Deleted. (toSystemClockTime): Deleted. (-[_WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]): Deleted. (-[_WKWebsiteDataStore _apiObject]): Deleted. * WebKit2.xcodeproj/project.pbxproj: 2015-04-15 Timothy Horton Custom CSS cursors do not use -webkit-image-set on retina displays https://bugs.webkit.org/show_bug.cgi?id=120783 Reviewed by Beth Dakin. Patch by Evan Wallace . Serialize the cursor image scale for SetCursor messages so custom CSS cursors work with -webkit-image-set on retina displays. * Shared/WebCoreArgumentCoders.cpp: (CoreIPC::ArgumentCoder::encode): (CoreIPC::ArgumentCoder::decode): 2015-04-15 Alex Christensen Progress towards CMake on Mac. https://bugs.webkit.org/show_bug.cgi?id=143785 Reviewed by Csaba Osztrogonác. * CMakeLists.txt: * PlatformEfl.cmake: * PlatformGTK.cmake: 2015-04-15 Anders Carlsson Make WKWebsiteDataRecord public https://bugs.webkit.org/show_bug.cgi?id=143796 Reviewed by Dan Bernstein. Rename _WKWebsiteDataRecord and associated files to WKWebsiteDataRecord and add a new _WKWebsiteDataRecord.h with a class @interface declaration that just inherits from WKWebsiteDataRecord. We don't need an @implementation since nobody is expected to allocate _WKWebsiteDataRecord objects. * Shared/API/Cocoa/WebKit.h: * Shared/Cocoa/APIObject.mm: (API::Object::newObject): * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataRecord.h. * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm. (-[WKWebsiteDataRecord dealloc]): (dataTypesToString): (-[WKWebsiteDataRecord description]): (-[WKWebsiteDataRecord displayName]): (-[WKWebsiteDataRecord dataTypes]): (-[WKWebsiteDataRecord _apiObject]): * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h. (WebKit::wrapper): (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): * UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: (toWebsiteDataRecords): * WebKit2.xcodeproj/project.pbxproj: 2015-04-13 Jer Noble [Fullscreen] ChromeClient::exitVideoFullscreen() should take a pointer to a HTMLVideoElement. https://bugs.webkit.org/show_bug.cgi?id=143674 Reviewed by Darin Adler. * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::enterVideoFullscreenForVideoElement): Takes a reference. (WebKit::WebChromeClient::exitVideoFullscreenForVideoElement): Renamed from exitVideoFullscreen(). (WebKit::WebChromeClient::exitVideoFullscreen): Deleted. * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/ios/WebVideoFullscreenManager.h: * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Ditto. (WebKit::WebVideoFullscreenManager::exitVideoFullscreenForVideoElement): Renamed from exitVideoFullscreen(). (WebKit::WebVideoFullscreenManager::didEnterFullscreen): Pass a reference. (WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Ditto. (WebKit::WebVideoFullscreenManager::exitVideoFullscreen): Deleted. 2015-04-15 Antti Koivisto Network Cache: Inline small body data to record file https://bugs.webkit.org/show_bug.cgi?id=143783 Reviewed by Chris Dumez. We currently save all body data as separate files. We can improve space efficiency and do less reads and writes by inlining smaller resource bodies with the header. * NetworkProcess/cache/NetworkCacheIOChannel.h: * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: (WebKit::NetworkCache::IOChannel::read): (WebKit::NetworkCache::IOChannel::readSync): (WebKit::NetworkCache::IOChannel::write): Add WorkQueue argument to allow specifying which queue the result is submitted to. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::decodeRecordMetaData): Add a boolean indicating whether the body is inlined. (WebKit::NetworkCache::decodeRecordHeader): (WebKit::NetworkCache::Storage::decodeRecord): (WebKit::NetworkCache::encodeRecordMetaData): (WebKit::NetworkCache::Storage::storeBodyAsBlob): (WebKit::NetworkCache::Storage::encodeRecord): (WebKit::NetworkCache::Storage::dispatchReadOperation): Read the record first, then read the blob if needed. Submit the read operation directly from the main queue. Only thing we do is opening an IO channel and that uses O_NONBLOCK. Process the read results in the IO work queue where we now do the blob retrieval. (WebKit::NetworkCache::shouldStoreBodyAsBlob): The current threshold for saving a separate blob is 16KB. (WebKit::NetworkCache::Storage::dispatchWriteOperation): (WebKit::NetworkCache::Storage::traverse): (WebKit::NetworkCache::createRecord): Deleted. (WebKit::NetworkCache::encodeRecordHeader): Deleted. * NetworkProcess/cache/NetworkCacheStorage.h: 2015-04-15 Tim Horton Non-local keyboards don't update scroll view parameters https://bugs.webkit.org/show_bug.cgi?id=143791 * Platform/spi/ios/UIKitSPI.h: Fix the build. 2015-04-15 Tim Horton Non-local keyboards don't update scroll view parameters https://bugs.webkit.org/show_bug.cgi?id=143791 Reviewed by Enrica Casucci. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _shouldUpdateKeyboardWithInfo:]): (-[WKWebView _keyboardWillChangeFrame:]): (-[WKWebView _keyboardWillShow:]): Make sure that we update scroll view parameters (obscured insets, etc.) if we have a non-local keyboard, in addition to the cases where we have an assisted node. 2015-04-15 Dan Bernstein No matching __NSi_ definition for postprocessed value of WK_{MAC,IOS}_TBA https://bugs.webkit.org/show_bug.cgi?id=143786 Reviewed by Anders Carlsson. * Shared/API/Cocoa/WKFoundation.h: Added a placeholder for the postprocessing script to insert a definition of __NSi_* for the current deployment target. Import CoreFoundation.h so that we can check if the macro is already defined. * WebKit2.xcodeproj/project.pbxproj: In the Postprocess WKFoundation.h script build phase, replace the placeholder with a definition of __NSi_{current deployment target} if not already defined. 2015-04-14 Anders Carlsson Make creating send rights from shared memory more robust https://bugs.webkit.org/show_bug.cgi?id=143730 rdar://problem/16595870 Reviewed by Darin Adler. This cleans up creation of handles and send rights and also fixes a bug where it would be impossible to send more than 128 MB of shared memory in a single object. * Platform/SharedMemory.h: * Platform/mac/SharedMemoryMac.cpp: (WebKit::makeMemoryEntry): New helper function that creates a memory entry send right. This uses MAP_MEM_VM_SHARE which ensures that memory objects larger than 128 MB will be handled correctly. (WebKit::SharedMemory::create): Call makeMemoryEntry. (WebKit::SharedMemory::createHandle): Call createSendRight. (WebKit::SharedMemory::createSendRight): Call makeMemoryEntry and add the necessary assertions. 2015-04-15 Eric Carlson Generalize "isPlayingAudio" to include other media characteristics https://bugs.webkit.org/show_bug.cgi?id=143713 Reviewed by Jer Noble. * UIProcess/API/C/WKPage.cpp: (toGenericCallbackFunction): Scope CallbackBase. (WKPageForceRepaint): Ditto. (WKPageValidateCommand): Ditto. (WKPageComputePagesForPrinting): Ditto. * UIProcess/API/Cocoa/_WKThumbnailView.mm: (-[_WKThumbnailView _requestSnapshotIfNeeded]): Ditto. * UIProcess/API/mac/WKView.mm: (-[WKView becomeFirstResponder]): Ditto. (-[WKView updateFontPanelIfNeeded]): Ditto. (-[WKView validateUserInterfaceItem:]): Ditto. (-[WKView startSpeaking:]): Ditto. (-[WKView selectedRangeWithCompletionHandler:]): Ditto. (-[WKView markedRangeWithCompletionHandler:]): Ditto. (-[WKView hasMarkedTextWithCompletionHandler:]): Ditto. (-[WKView attributedSubstringForProposedRange:completionHandler:]): Ditto. (-[WKView firstRectForCharacterRange:completionHandler:]): Ditto. (-[WKView characterIndexForPoint:completionHandler:]): Ditto. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::isPlayingMediaDidChange): Rename from isPlayingAudioDidChange. (WebKit::WebPageProxy::isPlayingAudioDidChange): Deleted. * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController dealloc]): Scope CallbackBase. (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Ditto. * UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): Ditto. (-[WKPrintingView _askPageToComputePageRects]): Ditto. (-[WKPrintingView _drawPreview:]): Ditto. * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::setPluginIsPlayingAudio): * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::isPlayingMediaDidChange): (WebKit::WebChromeClient::isPlayingAudioDidChange): Deleted. * WebProcess/WebCoreSupport/WebChromeClient.h: 2015-04-15 Antti Koivisto Network Cache: Add thread-safe accessors for storage paths https://bugs.webkit.org/show_bug.cgi?id=143668 Reviewed by Darin Adler. Less need to use StringCapture. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::dumpFilePath): (WebKit::NetworkCache::Cache::storagePath): * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::makeRecordsDirectoryPath): (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::basePath): (WebKit::NetworkCache::Storage::versionPath): (WebKit::NetworkCache::Storage::recordsPath): (WebKit::NetworkCache::Storage::synchronize): (WebKit::NetworkCache::Storage::remove): (WebKit::NetworkCache::Storage::dispatchReadOperation): (WebKit::NetworkCache::Storage::finishReadOperation): (WebKit::NetworkCache::Storage::dispatchWriteOperation): (WebKit::NetworkCache::Storage::traverse): (WebKit::NetworkCache::Storage::clear): (WebKit::NetworkCache::Storage::shrink): (WebKit::NetworkCache::Storage::deleteOldVersions): (WebKit::NetworkCache::makeRecordDirectoryPath): Deleted. * NetworkProcess/cache/NetworkCacheStorage.h: (WebKit::NetworkCache::Storage::baseDirectoryPath): Deleted. (WebKit::NetworkCache::Storage::directoryPath): Deleted. 2015-04-14 Tim Horton Update gesture swipe shadow style https://bugs.webkit.org/show_bug.cgi?id=143616 Reviewed by Darin Adler. * UIProcess/mac/ViewGestureController.h: * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): For the modern shadow style, use a layer stretched along the edge of the swiping content with the newly added PNGs as the layer contents. Add a dimming layer over the lower layer of content which fades in/out during the swipe. (WebKit::ViewGestureController::handleSwipeGesture): Fade the dimming layer in and out during the entire swipe. Fade the shadow layer out during the last few pixels of the swipe. (WebKit::ViewGestureController::removeSwipeSnapshot): Unparent the new layers. * WebKit2.xcodeproj/project.pbxproj: * Resources/SwipeShadow.png: * Resources/SwipeShadow@2x.png: Add the new resources. 2015-04-14 Brian Weinstein Add SPI to clear HSTS hosts added since a date. https://bugs.webkit.org/show_bug.cgi?id=143726 and rdar://problem/16664597 Reviewed by Anders Carlsson. * UIProcess/API/C/mac/WKContextPrivateMac.h: * UIProcess/API/C/mac/WKContextPrivateMac.mm: (WKContextResetHSTSHostsAddedAfterDate): Call into the WebProcessPool. * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate): Call CFNetwork SPI to clear HSTS hosts added after the given date. * UIProcess/WebProcessPool.h: 2015-04-14 Anders Carlsson More work on making the SharedMemory interface more sane https://bugs.webkit.org/show_bug.cgi?id=143718 Reviewed by Andreas Kling. Get rid of m_shouldVMDeallocateData. The idea is that shared memory created by calling SharedMemory::allocate has a non-null m_data pointer, and a null m_port. Shared memory created by calling SharedMemory::create with a pointer and a length has a non-null port but a null m_data since the data can be unmapped by the caller and we don't want to hold on to dangling pointers. * Platform/SharedMemory.h: (WebKit::SharedMemory::data): * Platform/mac/SharedMemoryMac.cpp: (WebKit::SharedMemory::allocate): (WebKit::SharedMemory::create): (WebKit::SharedMemory::map): (WebKit::SharedMemory::~SharedMemory): (WebKit::SharedMemory::createHandle): 2015-04-14 Antti Koivisto Network Cache: Deduplicate body data https://bugs.webkit.org/show_bug.cgi?id=143652 Reviewed by Darin Adler. It is common to have cache entries with identical body data. This happens when the same resource is loaded from a different URL (https vs http, slash vs no-slash at end, etc.). It also happens when the same URL is referenced from different cache partitions. We can improve disk space efficiency and use less memory by sharing identical body data between cache entries. This patch splits the body data out from the record file. The new record file contains meta data and response headers only. Body data is stored using the new BlobStorage interface. Files are deduplicated by computing SHA1 hash over the data and looking for an existing blob with the same hash. If found the existing entry is reused by creating a hard link to it. The new disk structure looks like this: WebKitCache/ Version 3/ Blobs/ 0A3C9A970ADA27FAE9BD7BC630BAD0B929C293C0 0A6B8060BA77DF92C82A2FD7AF58F79524D8F34C ... Records/ apple.com/ 0B8645B04E7EC78C178B7460052601C2 0B8645B04E7EC78C178B7460052601C2-body 0CB1A3638D1C5A09C5E3283A74FA040B 0CB1A3638D1C5A09C5E3283A74FA040B-body ... Each record file has an associated -body which is a hard link to a file in the Blobs directory. The patch increases effective capacity by 10-20% with a typical cache. It also saves memory especially when identical resources are used in multiple tabs. Currently all >0 sized resources are stored as shared blobs. In future small resources should be integrated into record files and blobs used for larger files only. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::store): (WebKit::NetworkCache::Cache::update): Adopt the new storage interface. (WebKit::NetworkCache::Cache::dumpContentsToFile): * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: Added. (WebKit::NetworkCache::BlobStorage::BlobStorage): (WebKit::NetworkCache::BlobStorage::synchronize): Compute size and delete unused files from the Blobs directory (link count == 1). (WebKit::NetworkCache::BlobStorage::blobPath): (WebKit::NetworkCache::BlobStorage::add): (WebKit::NetworkCache::BlobStorage::get): Interface for storing and retrieving data blobs. Blobs are deduplicated on add. (WebKit::NetworkCache::BlobStorage::remove): Removes the link but doesn't remove the blob even if there are no other clients. That happens on next synchronize(). (WebKit::NetworkCache::BlobStorage::shareCount): Checks the link count to get the number of clients. * NetworkProcess/cache/NetworkCacheBlobStorage.h: Added. (WebKit::NetworkCache::BlobStorage::approximateSize): * NetworkProcess/cache/NetworkCacheCoders.cpp: (WebKit::NetworkCache::Coder::encode): (WebKit::NetworkCache::Coder::decode): * NetworkProcess/cache/NetworkCacheCoders.h: * NetworkProcess/cache/NetworkCacheData.h: (WebKit::NetworkCache::Data::isEmpty): * NetworkProcess/cache/NetworkCacheDataCocoa.mm: (WebKit::NetworkCache::Data::empty): (WebKit::NetworkCache::Data::fromMap): (WebKit::NetworkCache::mapFile): (WebKit::NetworkCache::computeSHA1): (WebKit::NetworkCache::bytesEqual): Add some helpers. * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::asJSON): * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: (WebKit::NetworkCache::IOChannel::IOChannel): * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::makeRecordDirectoryPath): (WebKit::NetworkCache::makeBlobDirectoryPath): (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::approximateSize): (WebKit::NetworkCache::Storage::synchronize): (WebKit::NetworkCache::partitionPathForKey): (WebKit::NetworkCache::recordPathForKey): (WebKit::NetworkCache::bodyPath): (WebKit::NetworkCache::decodeRecordMetaData): (WebKit::NetworkCache::decodeRecordHeader): (WebKit::NetworkCache::createRecord): (WebKit::NetworkCache::encodeRecordMetaData): (WebKit::NetworkCache::encodeRecordHeader): (WebKit::NetworkCache::Storage::remove): (WebKit::NetworkCache::Storage::updateFileModificationTime): (WebKit::NetworkCache::Storage::dispatchReadOperation): Read both the blob and the record entry. (WebKit::NetworkCache::Storage::finishReadOperation): Factor to a function. (WebKit::NetworkCache::Storage::store): (WebKit::NetworkCache::Storage::traverse): (WebKit::NetworkCache::Storage::dispatchPendingWriteOperations): (WebKit::NetworkCache::Storage::dispatchWriteOperation): We don't need separate full write and header write paths anymore. Everything is treated as a full write and deduplication stops us writing the body again. This simplifies the code and data structures. (WebKit::NetworkCache::Storage::finishWriteOperation): Factor to a function. (WebKit::NetworkCache::Storage::clear): (WebKit::NetworkCache::deletionProbability): Take the sharing count into account when computing deletion probability. It is less useful to delete a record that shares its body with others as data won't get deleted. (WebKit::NetworkCache::Storage::shrinkIfNeeded): (WebKit::NetworkCache::Storage::shrink): (WebKit::NetworkCache::Storage::deleteOldVersions): (WebKit::NetworkCache::directoryPathForKey): Deleted. (WebKit::NetworkCache::filePathForKey): Deleted. (WebKit::NetworkCache::openFileForKey): Deleted. (WebKit::NetworkCache::decodeRecord): Deleted. (WebKit::NetworkCache::Storage::update): Deleted. No need for separate update interface anymore. Regular store() avoids unnecessary body write. (WebKit::NetworkCache::Storage::dispatchFullWriteOperation): Deleted. (WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation): Deleted. * NetworkProcess/cache/NetworkCacheStorage.h: * WebKit2.xcodeproj/project.pbxproj: 2015-04-14 Chris Dumez REGRESSION(r182603): [GTK] More than 500 crashes on the layout tests with the debug build. https://bugs.webkit.org/show_bug.cgi?id=143715 Reviewed by Darin Adler. Enable assertions checking that calling editorState() does not cause a synchronous layout only on Mac and iOS. This assertion does not necessarily hold true on other ports as each one as its own platformEditorState() implementation. In particular, this assertion was being hit on GTK. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection): 2015-04-13 Alexey Proskuryakov Build fixes after r182772. * UIProcess/API/mac/WKView.mm: (-[WKView _updateAutomaticallyComputedFixedLayoutSize]): Make a CGSize, not an NSSize. (-[WKView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]): Moved implementation to the correct place. (-[WKView _automaticallyComputesFixedLayoutSizeFromViewScale]): Ditto. (-[WKView _layoutMode]): Use a memeber from _data directly, not via a method. 2015-04-13 Alexey Proskuryakov More build fix. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setDragImage): 2015-04-13 Hunseop Jeong [EFL][GTK] Fix build break after r182753 https://bugs.webkit.org/show_bug.cgi?id=143689 Reviewed by Anders Carlsson. * Platform/IPC/unix/ConnectionUnix.cpp: (IPC::Connection::processMessage): (IPC::Connection::sendOutgoingMessage): * Platform/unix/SharedMemoryUnix.cpp: (WebKit::SharedMemory::allocate): (WebKit::accessModeMMap): (WebKit::SharedMemory::map): (WebKit::SharedMemory::create): Deleted. 2015-04-13 Alexey Proskuryakov Build fix. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setDragImage): 2015-04-13 Anders Carlsson Keep track of each shared memory object's protection when deciding whether to return our existing port https://bugs.webkit.org/show_bug.cgi?id=143687 Reviewed by Tim Horton. * Platform/SharedMemory.h: * Platform/mac/SharedMemoryMac.cpp: (WebKit::machProtection): (WebKit::SharedMemory::create): (WebKit::SharedMemory::map): (WebKit::SharedMemory::createHandle): 2015-04-13 Tim Horton Add a persistent, fixed scale factor to make it easy to scale down WK(Web)Views https://bugs.webkit.org/show_bug.cgi?id=143560 Reviewed by Darin Adler. Add a new "view" scale factor to WKView and WKWebView. Unlike page scale (or "magnification" in the API), view scale: - persists between page loads - persists between Web process crashes - is not user adjustable - can reliably be < 1 The page scale and view scale are multiplied together whenever we push a new page scale down into WebCore, so the implementation of view scale is transparent to WebCore, and acts effectively as a constant multiplier for the (user-adjustable) page scale factor. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::scaleView): Add scaleView, which updates our cached viewScaleFactor and pushes it to the Web process. (WebKit::WebPageProxy::creationParameters): Plumb viewScaleFactor through the page creation parameters. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::viewScaleFactor): Added. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): If the viewScaleFactor is not 1 at creation time, call scalePage with a page scale of 1. Internally, scalePage will multiply in the viewScaleFactor and push it all to the Web process. (WebKit::WebPage::scalePage): Multiply the page scale factor by the view scale factor before passing it to WebCore. (WebKit::WebPage::scalePageInViewCoordinates): Early returns need to check the total scale, not just the new page scale. (WebKit::WebPage::totalScaleFactor): The scale that we get back from WebCore::Page::pageScaleFactor is the product of WebKit2's view and page scales. So, here we'll call that the totalScaleFactor. (Might need a different name because it seems like "total" should include deviceScale too). (WebKit::WebPage::pageScaleFactor): WebKit2's notion of the pageScaleFactor does not include the view scale, so divide it out of WebCore's page scale. (WebKit::WebPage::scaleView): Apply a new view scale, maintaining the current scroll position. * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::viewScaleFactor): * WebProcess/WebPage/WebPage.messages.in: * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): (WebKit::WebPageCreationParameters::decode): * Shared/WebPageCreationParameters.h: Plumb viewScaleFactor through the page creation parameters. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _viewScale]): (-[WKWebView _setViewScale:]): * UIProcess/API/mac/WKView.mm: (-[WKView _viewScale]): (-[WKView _setViewScale:]): Push the new view scale to WebPage. * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]): (-[WKWebView _automaticallyComputesFixedLayoutSizeFromViewScale]): * UIProcess/API/mac/WKView.mm: (-[WKView setFrameSize:]): (-[WKView _updateAutomaticallyComputedFixedLayoutSize]): (-[WKView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]): (-[WKView _automaticallyComputesFixedLayoutSizeFromViewScale]): * UIProcess/API/mac/WKViewInternal.h: Add a new layout mode, "DynamicSizeComputedFromViewScale", which turns on fixed layout size mode, and sets the fixed layout size based on the view's frame and view scale. The fixed layout size is maintained as the frame of the view scaled by the inverse of the view scale. This makes it very easy to maintain a WK(Web)View that is scaled down by a constant amount, but is laid out as if it were not. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom): (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom): (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage): Because the transient zoom mechanism touches layers that WebCore owns, it mostly need to operate with totalScaleFactor, because that is what WebCore sees. 2015-04-10 Brent Fulgham Expand test infrastructure to support scrolling tests https://bugs.webkit.org/show_bug.cgi?id=143286 Reviewed by Simon Fraser. Extend the WK2 testing API to include a method for setting a JSC callback function to be triggered by the new WebCore::WheelEventTestTrigger singleton. * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePageStartMonitoringScrollOperations): WK2 method that causes the testing system to begin tracking wheel events. (WKBundlePageRegisterScrollOperationCompletionCallback): WK2 method to set the callback function for testing. * WebProcess/InjectedBundle/API/c/WKBundlePage.h: 2015-04-13 Enrica Casucci Clients of WKWebView should be able to override drag functions. https://bugs.webkit.org/show_bug.cgi?id=143618 Reviewed by Darin Adler. WKWebView now implements the drag protocol functions and forwards the calls to the inner WKView. In the page client, when we receive a request to start drag from the WebProcess, we call _dragImageForView in WKView with the target view. The function calls dragImage on the given view, so that its clients can override the dragImage function. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView draggingEntered:]): (-[WKWebView draggingUpdated:]): (-[WKWebView draggingExited:]): (-[WKWebView prepareForDragOperation:]): (-[WKWebView performDragOperation:]): * UIProcess/API/mac/WKView.mm: (-[WKView _dragImageForView:withImage:at:linkDrag:]): (-[WKView _setDragImage:at:linkDrag:]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setDragImage): 2015-04-13 Alex Christensen [iOS] Unreviewed build fix after r182760. * Shared/WebCoreArgumentCoders.cpp: (IPC::encodeSharedBuffer): (IPC::decodeSharedBuffer): Update SharedMemory function names. 2015-04-13 Anders Carlsson Rename SharedMemory::create overloads https://bugs.webkit.org/show_bug.cgi?id=143679 Reviewed by Beth Dakin. Rename the SharedMemory::create overload that allocates memory to SharedMemory::allocate, and the SharedMemory::create overload that maps in a handle to SharedMemory::map. * Platform/SharedMemory.h: * Platform/mac/SharedMemoryMac.cpp: (WebKit::SharedMemory::allocate): (WebKit::SharedMemory::map): (WebKit::SharedMemory::create): Deleted. * Shared/ShareableBitmap.cpp: (WebKit::ShareableBitmap::createShareable): (WebKit::ShareableBitmap::create): * Shared/ShareableResource.cpp: (WebKit::ShareableResource::create): * Shared/ShareableResource.h: * Shared/WebCompiledContentExtension.cpp: (WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData): * Shared/WebCompiledContentExtensionData.cpp: (WebKit::WebCompiledContentExtensionData::decode): * Shared/WebHitTestResult.cpp: (WebKit::WebHitTestResult::Data::Data): (WebKit::WebHitTestResult::Data::decode): * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: (WebKit::WebPasteboardProxy::getPasteboardBufferForType): (WebKit::WebPasteboardProxy::setPasteboardBufferForType): * UIProcess/VisitedLinkProvider.cpp: (WebKit::VisitedLinkProvider::resizeTable): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::dataSelectionForPasteboard): (WebKit::WebPageProxy::setPromisedDataForImage): * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::writeItemsToPasteboard): * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::bufferForType): (WebKit::WebPlatformStrategies::setBufferForType): * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: (WebKit::WebDragClient::declareAndWriteDragImage): * WebProcess/WebPage/VisitedLinkTableController.cpp: (WebKit::VisitedLinkTableController::setVisitedLinkTable): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getDataSelectionForPasteboard): 2015-04-13 Brady Eidson Share sheets from Share menus appear outside the browser window. and https://bugs.webkit.org/show_bug.cgi?id=143620 Reviewed by Darin Adler. Refactor existing Sharing Service Picker code to also be used for the Share menu NSMenuItem. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): (WebKit::WebPageProxy::platformInitializeShareMenuItem): * UIProcess/WebPageProxy.h: * UIProcess/mac/WKSharingServicePickerDelegate.h: Added. * UIProcess/mac/WKSharingServicePickerDelegate.mm: Added. (+[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate]): (-[WKSharingServicePickerDelegate menuProxy]): (-[WKSharingServicePickerDelegate setMenuProxy:]): (-[WKSharingServicePickerDelegate setPicker:]): (-[WKSharingServicePickerDelegate setFiltersEditingServices:]): (-[WKSharingServicePickerDelegate setHandlesEditingReplacement:]): (-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]): (-[WKSharingServicePickerDelegate sharingServicePicker:delegateForSharingService:]): (-[WKSharingServicePickerDelegate sharingService:willShareItems:]): (-[WKSharingServicePickerDelegate sharingService:didShareItems:]): (-[WKSharingServicePickerDelegate sharingService:sourceWindowForShareItems:sharingContentScope:]): * UIProcess/mac/WebContextMenuProxyMac.mm: (WebKit::WebContextMenuProxyMac::setupServicesMenu): (+[WKSharingServicePickerDelegate sharedSharingServicePickerDelegate]): Deleted. (-[WKSharingServicePickerDelegate menuProxy]): Deleted. (-[WKSharingServicePickerDelegate setMenuProxy:]): Deleted. (-[WKSharingServicePickerDelegate setPicker:]): Deleted. (-[WKSharingServicePickerDelegate setIncludeEditorServices:]): Deleted. (-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]): Deleted. (-[WKSharingServicePickerDelegate sharingServicePicker:delegateForSharingService:]): Deleted. (-[WKSharingServicePickerDelegate sharingService:willShareItems:]): Deleted. (-[WKSharingServicePickerDelegate sharingService:didShareItems:]): Deleted. (-[WKSharingServicePickerDelegate sharingService:sourceWindowForShareItems:sharingContentScope:]): Deleted. * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::platformInitializeShareMenuItem): * WebKit2.xcodeproj/project.pbxproj: 2015-04-13 Anders Carlsson Begin cleaning up the shared memory interface https://bugs.webkit.org/show_bug.cgi?id=143677 Reviewed by Andreas Kling. Rename createFromVMBuffer to create and add a protection parameter (which is currently unused). Also, turn SharedMemory::Protection into a proper enum class. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::store): * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord): * NetworkProcess/mac/NetworkResourceLoaderMac.mm: (WebKit::tryGetShareableHandleFromCFData): * Platform/SharedMemory.h: * Platform/mac/SharedMemoryMac.cpp: (WebKit::SharedMemory::create): (WebKit::machProtection): (WebKit::SharedMemory::createHandle): (WebKit::SharedMemory::createFromVMBuffer): Deleted. * Shared/ContextMenuContextData.cpp: (WebKit::ContextMenuContextData::encode): (WebKit::ContextMenuContextData::decode): * Shared/ShareableBitmap.h: * Shared/ShareableResource.cpp: (WebKit::ShareableResource::create): (WebKit::ShareableResource::createHandle): * Shared/WebCompiledContentExtensionData.cpp: (WebKit::WebCompiledContentExtensionData::encode): (WebKit::WebCompiledContentExtensionData::decode): * Shared/WebHitTestResult.cpp: (WebKit::WebHitTestResult::Data::encode): (WebKit::WebHitTestResult::Data::decode): * UIProcess/API/APIUserContentExtensionStore.cpp: (API::createExtension): * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: (WebKit::WebPasteboardProxy::getPasteboardBufferForType): (WebKit::WebPasteboardProxy::setPasteboardBufferForType): (WebKit::WebPasteboardProxy::readBufferFromPasteboard): * UIProcess/VisitedLinkProvider.cpp: (WebKit::VisitedLinkProvider::sendTable): * UIProcess/mac/WKPrintingView.mm: (pageDidDrawToImage): * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::dataSelectionForPasteboard): (WebKit::WebPageProxy::setPromisedDataForImage): * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::writeItemsToPasteboard): * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::bufferForType): (WebKit::WebPlatformStrategies::setBufferForType): (WebKit::WebPlatformStrategies::readBufferFromPasteboard): * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: (WebKit::WebDragClient::declareAndWriteDragImage): * WebProcess/WebPage/VisitedLinkTableController.cpp: (WebKit::VisitedLinkTableController::setVisitedLinkTable): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::takeSnapshot): (WebKit::WebPage::drawRectToImage): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getDataSelectionForPasteboard): 2015-04-10 Jon Honeycutt Cannot click "Next" button on Google two-factor auth setup page This issue occurs when this site focuses the submit button. When it receives focus, we try to assist it. While we consider ourselves to be assisting it, we ignore further gesture inputs for that node, including the tap gesture. To fix this, only assist input types that we know are assistable, including text fields, select and date elements, etc. Reviewed by Darin Adler. * UIProcess/ios/WKContentViewInteraction.mm: (isAssistableInputType): If the type is a known-assistable type, return true. (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Call isAssistableInputType() to determine whether we should do any kind of assistance for this node. 2015-04-13 Beth Dakin Add force property to MouseEvents https://bugs.webkit.org/show_bug.cgi?id=143569 -and corresponding- rdar://problem/20472954 Reviewed by Darin Adler. In order to accommodate adding force to all PlatformMouseEvents, we have to add it to pass a caches pressure event to NativeWebMouseEvent and add force to WebMouseEvent. NativeWebMouseEvent now requires a second NSEvent for the pressureEvent. * Shared/NativeWebMouseEvent.h: WebMouseEvent takes a force parameter. * Shared/WebEvent.h: (WebKit::WebMouseEvent::force): * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent): * Shared/WebMouseEvent.cpp: (WebKit::WebMouseEvent::WebMouseEvent): (WebKit::WebMouseEvent::encode): (WebKit::WebMouseEvent::decode): * Shared/mac/NativeWebMouseEventMac.mm: (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): * Shared/mac/WebEventFactory.h: * Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebMouseEvent): Cache the most recent pressureEvent in _data so that it can be sent along to the NativeWebMouseEvent constructor. * UIProcess/API/mac/WKView.mm: (-[WKView pressureChangeWithEvent:]): (-[WKView acceptsFirstMouse:]): (-[WKView shouldDelayWindowOrderingForEvent:]): (-[WKView _postFakeMouseMovedEventForFlagsChangedEvent:]): (-[WKView initWithFrame:processPool:configuration:webView:]): WebMouseEvent takes a force parameter. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::showContextMenuAtPoint): * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::createWebEvent): MouseEvent and PlatformMouseEvent both take force parameters too. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::navigateToURLWithSimulatedClick): (WebKit::WebPage::contextMenuAtPointInWindow): (WebKit::WebPage::dragEnded): (WebKit::WebPage::simulateMouseDown): (WebKit::WebPage::simulateMouseUp): (WebKit::WebPage::simulateMouseMotion): The functions that dispatch the force events no longer take a PlatformMouseEvent as a parameter. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::inputDeviceForceDidChange): (WebKit::WebPage::immediateActionDidCancel): 2015-04-13 Andreas Kling Don't segregate heap objects based on Structure immortality. Reviewed by Darin Adler. * WebProcess/Plugins/Netscape/JSNPObject.h: 2015-04-13 Timothy Horton javascript: links in inline PDFs shouldn't execute JavaScript in the context of the host website https://bugs.webkit.org/show_bug.cgi?id=143642 Reviewed by Darin Adler. * WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::clickedLink): Don't follow javascript: URLs. 2015-04-10 Alex Christensen [Content Extensions] Don't unmap shared memory while using it. https://bugs.webkit.org/show_bug.cgi?id=143625 Reviewed by Darin Adler. * Shared/WebCompiledContentExtension.cpp: (WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData): * Shared/WebCompiledContentExtensionData.h: (WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData): * UIProcess/API/APIUserContentExtensionStore.cpp: (API::createExtension): Keep the Data object alive as long as the SharedMemory that uses it. 2015-04-12 Darin Adler [Cocoa] Localizable strings are inconsistent and need to be regenerated https://bugs.webkit.org/show_bug.cgi?id=143661 Reviewed by Dan Bernstein. * UIProcess/WebEditCommandProxy.cpp: (WebKit::WebEditCommandProxy::nameForEditAction): Also added a comment about the fact that we have two copies of all the localizable strings. 2015-04-12 Sungmann Cho Fix trival typos related to the word "coordinate". https://bugs.webkit.org/show_bug.cgi?id=143644 Reviewed by Alexey Proskuryakov. No new tests, no behavior change. * Shared/WebHitTestResult.cpp: (WebKit::WebHitTestResult::Data::encode): (WebKit::WebHitTestResult::Data::decode): * Shared/WebHitTestResult.h: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): (WebKit::WebPage::lookupTextAtLocation): 2015-04-12 Sungmann Cho Remove PluginModuleInfo.cpp from WebKit2 https://bugs.webkit.org/show_bug.cgi?id=143643 Reviewed by Darin Adler. Remove PluginModuleInfo.cpp from WebKit2 because it is totally empty. No new tests, no behavior change. * CMakeLists.txt: * Shared/Plugins/PluginModuleInfo.cpp: Removed. * WebKit2.xcodeproj/project.pbxproj: 2015-04-11 Yusuke Suzuki [ES6] Enable Symbol in web pages https://bugs.webkit.org/show_bug.cgi?id=143375 Reviewed by Ryosuke Niwa. * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * UIProcess/efl/WebInspectorProxyEfl.cpp: (WebKit::WebInspectorProxy::platformCreateInspectorPage): * UIProcess/gtk/WebInspectorProxyGtk.cpp: (WebKit::WebInspectorProxy::platformCreateInspectorPage): * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCreateInspectorPage): 2015-04-08 Sam Weinig Allow LaunchServices to handle URLs on link navigations https://bugs.webkit.org/show_bug.cgi?id=143544 Reviewed by Anders Carlsson. * UIProcess/Cocoa/NavigationState.mm: (WebKit::tryAppLink): (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): Only let LaunchServices have a crack at the URL if the navigation is: 1) a main frame navigation 2) a result of a user gesture 2015-04-10 Tim Horton Replace setFixedLayoutSizeEnabled: with an enum of layout modes https://bugs.webkit.org/show_bug.cgi?id=143576 Reviewed by Simon Fraser. * UIProcess/API/C/WKLayoutMode.h: Added. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _layoutMode]): (-[WKWebView _setLayoutMode:]): (-[WKWebView _isFixedLayoutEnabled]): Deleted. (-[WKWebView _setFixedLayoutEnabled:]): Deleted. * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/Cocoa/_WKLayoutMode.h: Added. * UIProcess/API/mac/WKView.mm: (-[WKView _layoutMode]): (-[WKView _setLayoutMode:]): (-[WKView _isFixedLayoutEnabled]): Deleted. (-[WKView _setFixedLayoutEnabled:]): Deleted. * WebKit2.xcodeproj/project.pbxproj: Add enums for "layout mode". Currently we have two values: "ViewSize", which is the normal behavior, and "FixedSize", which is fixed layout mode. More values will come in the future. 2015-04-10 Anders Carlsson _WKWebsiteDataStore doesn't track and remove offline application cache entries https://bugs.webkit.org/show_bug.cgi?id=143614 rdar://problem/20243235 Reviewed by Andreas Kling. * Shared/WebsiteData/WebsiteDataTypes.h: Add WebsiteDataTypeOfflineWebApplicationCache. * UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: * UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm: (dataTypesToString): * UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): Add WKWebsiteDataTypeOfflineWebApplicationCache. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::fetchData): Create a custom application cache storage and fetch the origins from it. (WebKit::WebsiteDataStore::removeData): Delete either all the cache entries (since we don't track time in the application cache), or the ones specified by the given entries. 2015-04-10 Eric Carlson [Mac] Refactor MediaPlaybackTarget https://bugs.webkit.org/show_bug.cgi?id=143571 Reviewed by Jer Noble. Pass a MediaPlaybackTargetContext across process boundary instead of a MediaPlaybackTarget. * Shared/WebCoreArgumentCoders.h: (IPC::ArgumentCoder::encode): New. (IPC::ArgumentCoder::decode): New. * Shared/mac/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::encodePlatformData): New. (IPC::ArgumentCoder::decodePlatformData): New. (IPC::ArgumentCoder::encode): Deleted. (IPC::ArgumentCoder::decode): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didChoosePlaybackTarget): Take a Ref&&. * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::playbackTargetSelected): Take a Ref&&. 2015-04-10 Hunseop Jeong Fix some minor typos related to the WebProcessCreationParameter. https://bugs.webkit.org/show_bug.cgi?id=143598 Reviewed by Csaba Osztrogonác. No new tests, no behavior change. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::createNewWebProcess): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): 2015-04-09 Andy Estes [Cocoa] Add a HAVE(AVKIT) and use it https://bugs.webkit.org/show_bug.cgi?id=143593 Reviewed by David Kilzer. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _mayAutomaticallyShowVideoOptimized]): Returned false if !HAVE(AVKIT). * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::WebPageProxy): Removed the check for < iOS 8.2. (WebKit::WebPageProxy::reattachToWebProcess): Ditto. * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::create): Created a version of this function that returns nullptr if the minimum required version of iOS is less than 8.2 or if !HAVE(AVKIT). * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Only called Settings::setAVKitEnabled(true) if HAVE(AVKIT). 2015-04-09 Hunseop Jeong Use modern loops in WebProcess https://bugs.webkit.org/show_bug.cgi?id=143302 Reviewed by Darin Adler. Use modern range for-loops in WebProcess. No new tests, no behavior change. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeConnection): (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::focusedWebPage): (WebKit::WebProcess::webPageGroup): (WebKit::WebProcess::setTextCheckerState): (WebKit::WebProcess::resetAllGeolocationPermissions): 2015-04-09 Gordon Sheridan Track IconDatabase retain counts for WebContent processes. Balance retain/releases for processes that terminate before successfully doing it themselves. https://bugs.webkit.org/show_bug.cgi?id=143517. Reviewed by Brady Eidson. * UIProcess/WebIconDatabase.messages.in: Move RetainIconForPageURL and ReleaseIconForPageURL messages to WebProcessProxy so they can be associated with the appropriate web process. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::connectionDidClose): Call releaseRemainingIconsForPageURLs() to balance retains/releases for this process. (WebKit::WebProcessProxy::retainIconForPageURL): Track retain counts for page URLs and call through to WebIconDatabase. (WebKit::WebProcessProxy::releaseIconForPageURL): Ditto. (WebKit::WebProcessProxy::releaseRemainingIconsForPageURLs): Call releaseIconForPageURL() once for each outstanding retain count, for each page URL. * UIProcess/WebProcessProxy.h: Declare methods for retainIconForPageURL(), releaseIconForPageURL(), and releaseRemainingIconsForPageURLs(). Declare hash map to track number of retains per page URL. * UIProcess/WebProcessProxy.messages.in: Moved RetainIconForPageURL and ReleaseIconForPageURL messages here from WebIconDatabase. * WebProcess/IconDatabase/WebIconDatabaseProxy.cpp: (WebKit::WebIconDatabaseProxy::retainIconForPageURL): Modify the receiver of the message to be WebProcessProxy. (WebKit::WebIconDatabaseProxy::releaseIconForPageURL): Ditto. 2015-04-09 Chris Dumez [WK2] Regression(r182194): The NetworkProcess is calling the wrong memory pressure handler before suspending https://bugs.webkit.org/show_bug.cgi?id=143575 Reviewed by Andreas Kling. After r182194, the NetworkProcess is calling the memory pressure handler before getting suspended to free-up as much memory as possible at this point. However, we were calling the default memory pressure handling code instead of the custom handler registered by the NetworkProcess. This patch fixes the problem. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::lowMemoryHandler): (WebKit::NetworkProcess::initializeNetworkProcess): (WebKit::NetworkProcess::processWillSuspend): * NetworkProcess/NetworkProcess.h: 2015-04-09 Brady Eidson REGRESSION (r182573): Action Menus no longer appear for WebKit2 views displaying an image rdar://problem/20486551 and https://bugs.webkit.org/show_bug.cgi?id=143574 Reviewed by Brent Fulgham. * Shared/WebHitTestResult.cpp: (WebKit::WebHitTestResult::Data::Data): Clear up a name scoping issue. 2015-04-09 Chris Dumez [WK2][iOS] editorState() should not cause a synchronous layout https://bugs.webkit.org/show_bug.cgi?id=142536 Reviewed by Enrica Casucci. platformEditorState() on iOS does a synchronous layout to compute some of the EditorState members (e.g. caretRectAtStart / caretRectAtEnd). This is bad for performance as this is called every time the selection is changed (which happens for e.g. when you set the value of a focused HTMLInputElement). This patch updates the behavior on iOS to only send a partial EditorState on selection change so that the UIProcess gets most of the information (the ones that do not require style recalc or layout) ASAP. A full Editor state is then sent after the asynchronous layout is done. With this change, I see a 38% improvement on Speedometer (26.4 +/- 0.37 -> 36.5 +/- 0.54) on iPhone 6 Plus. * Shared/EditorState.cpp: (WebKit::EditorState::encode): (WebKit::EditorState::decode): (WebKit::EditorState::PostLayoutData::encode): (WebKit::EditorState::PostLayoutData::decode): * Shared/EditorState.h: (WebKit::EditorState::EditorState): Deleted. * UIProcess/ios/WKContentView.mm: (-[WKContentView _didCommitLayerTree:]): * UIProcess/ios/WKContentViewInteraction.mm: (WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo): (-[WKContentView webSelectionRects]): (-[WKContentView _addShortcut:]): (-[WKContentView selectedText]): (-[WKContentView isReplaceAllowed]): (-[WKContentView _promptForReplace:]): (-[WKContentView _transliterateChinese:]): (-[WKContentView textStylingAtPosition:inDirection:]): (-[WKContentView canPerformAction:withSender:]): (-[WKContentView _showDictionary:]): (-[WKContentView _characterBeforeCaretSelection]): (-[WKContentView _characterInRelationToCaretSelection:]): (-[WKContentView _selectionAtDocumentStart]): (-[WKContentView selectedTextRange]): (-[WKContentView hasContent]): * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::didChangeSelectionAndUpdateLayout): * WebProcess/WebCoreSupport/WebEditorClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::editorState): (WebKit::WebPage::didChangeSelection): (WebKit::WebPage::sendPostLayoutEditorStateIfNeeded): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/efl/WebPageEfl.cpp: (WebKit::WebPage::platformEditorState): * WebProcess/WebPage/gtk/WebPageGtk.cpp: (WebKit::WebPage::platformEditorState): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformEditorState): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::platformEditorState): 2015-04-09 Antti Koivisto Network Cache: Crash in WebCore::CachedResource::tryReplaceEncodedData https://bugs.webkit.org/show_bug.cgi?id=143562 Reviewed by Anders Carlsson. If another thread comes and truncates the file before we map it we end up with a map that crashes when accessed. * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: (WebKit::NetworkCache::IOChannel::IOChannel): When creating a new file unlink any existing file instead of using O_TRUNC. 2015-04-09 Csaba Osztrogonác [EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times https://bugs.webkit.org/show_bug.cgi?id=142907 Unreviewed typo fix after r182595. * PlatformGTK.cmake: 2015-04-09 Csaba Osztrogonác [EFL][GTK] WebKit2's generate-forwarding-headers.pl runs too many times https://bugs.webkit.org/show_bug.cgi?id=142907 Reviewed by Carlos Garcia Campos. * PlatformEfl.cmake: * PlatformGTK.cmake: * Scripts/generate-forwarding-headers.pl: Make it work with more path and platform arguments. 2015-04-08 Joseph Pecoraro Exception in console and broken right click after attempting to show context menu in Inspector https://bugs.webkit.org/show_bug.cgi?id=143556 Reviewed by Brady Eidson. * Shared/mac/NativeContextMenuItem.mm: (WebKit::NativeContextMenuItem::NativeContextMenuItem): Add an ASSERT to immediately catch a menu item created with a nil native menu item. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): Gracefully handle a null share context menu item. 2015-04-08 Brent Fulgham [Mac] Unreviewed test fix after r182584 https://bugs.webkit.org/show_bug.cgi?id=143452 Correct bit comparison to use the correct value for the Control-key * Shared/mac/WebEventFactory.mm: (WebKit::typeForEvent): 2015-04-08 Jaehun Lim [EFL] Create PageUIClientEfl after sending CreateWebPage message https://bugs.webkit.org/show_bug.cgi?id=143514 Reviewed by Gyuyoung Kim. UIProcess sends some messages to WebPage before WebPage is created. It makes some error logs on debug build. So this patch moves the initialization of m_pageUIClient after calling WKViewInitialize(). * UIProcess/API/efl/EwkView.cpp: (EwkView::EwkView): 2015-04-08 Brent Fulgham [Mac] WebKit is not honoring OS preferences for secondary click behaviors https://bugs.webkit.org/show_bug.cgi?id=143452 Reviewed by Tim Horton. We cannot rely on the event's button number to decide behavior. The OS settings might have mapped middle button to context menu, etc. Instead, we should ask the OS (via NSMenu) what the proper button press behavior is. * Shared/mac/WebEventFactory.mm: (WebKit::mouseButtonForEvent): Ask NSMenu what kind of button press we have received. 2015-04-08 Brady Eidson Expose the "Share" menu for links, images, and media. and https://bugs.webkit.org/show_bug.cgi?id=143502 Reviewed by Tim Horton. * Shared/ContextMenuContextData.cpp: (WebKit::ContextMenuContextData::ContextMenuContextData): * Shared/WebHitTestResult.cpp: (WebKit::WebHitTestResult::Data::Data): * Shared/WebHitTestResult.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: (WebKit::WebContextMenuClient::shareMenuItem): * WebProcess/WebCoreSupport/WebContextMenuClient.h: * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: (WebKit::WebContextMenuClient::shareSelectedTextMenuItem): Deleted. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): 2015-04-08 Anders Carlsson Add encoding and decoding of ints to WKRemoteObjectCoder https://bugs.webkit.org/show_bug.cgi?id=143538 Reviewed by Tim Horton. * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (-[WKRemoteObjectEncoder encodeInt:forKey:]): (-[WKRemoteObjectDecoder decodeIntForKey:]): 2015-04-08 Anders Carlsson Delete ApplicationCache static member functions https://bugs.webkit.org/show_bug.cgi?id=143534 Reviewed by Tim Horton. * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp: (WebKit::WebApplicationCacheManager::deleteEntriesForOrigin): (WebKit::WebApplicationCacheManager::deleteAllEntries): * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::clearApplicationCacheForOrigin): (WebKit::InjectedBundle::appCacheUsageForOrigin): 2015-04-08 Enrica Casucci 32-bit build fix after r182554. * UIProcess/API/mac/WKView.mm: (-[WKView resignFirstResponder]): 2015-04-08 Beth Dakin Force events should not require preventDefault in order to fire https://bugs.webkit.org/show_bug.cgi?id=143503 -and corresponding- rdar://problem/20458916 Reviewed by Tim Horton. We no longer need m_lastActionMenuHitTestPreventsDefault since we’ll always dispatch the events to Element. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): (WebKit::WebPage::inputDeviceForceDidChange): (WebKit::WebPage::immediateActionDidCancel): 2015-04-08 Enrica Casucci Calling makeFirstResponder on WKWebView doesn't work. https://bugs.webkit.org/show_bug.cgi?id=143482 rdar://problem/20298166 Reviewed by Dan Bernstein. Adding forwarding of the responder status to the WKView. We also need to avoid doing any cleanup in resignFirstResponder if we know we are about to regain responder status again. Same goes for becomeFirstResponder. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView becomeFirstResponder]): (-[WKWebView acceptsFirstResponder]): * UIProcess/API/mac/WKView.mm: (-[WKView becomeFristResponder]): (-[WKView resignFirstResponder]): 2015-04-07 Tim Horton Fix the build. * UIProcess/API/mac/WKView.mm: (-[WKView _setFixedLayoutSize:]): 2015-04-07 Tim Horton Expose and test fixedLayoutSize via modern WebKit SPI https://bugs.webkit.org/show_bug.cgi?id=143500 Reviewed by Simon Fraser. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _isFixedLayoutEnabled]): (-[WKWebView _setFixedLayoutEnabled:]): (-[WKWebView _fixedLayoutSize]): (-[WKWebView _setFixedLayoutSize:]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/mac/WKView.mm: (-[WKView _isFixedLayoutEnabled]): (-[WKView _setFixedLayoutEnabled:]): (-[WKView _fixedLayoutSize]): (-[WKView _setFixedLayoutSize:]): Add API for adjusting the fixed layout size, and whether or not we use it. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Repair a mistake I made in r139822, where I brought odd TILED_BACKING_STORE-only logic (which disables scrollbars if fixedLayoutSize is enabled) to the rest of the ports. Put it back as TILED_BACKING_STORE-only. Persist the fixedLayoutSize through view creation; we already persist the enabled state, but not the size, which doesn't make any sense. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::fixedLayoutSize): * WebProcess/WebPage/WebPage.h: Add a fixedLayoutSize() getter. 2015-04-07 Brady Eidson ContextMenuItem refactoring https://bugs.webkit.org/show_bug.cgi?id=143485 Reviewed by Beth Dakin. * Shared/mac/NativeContextMenuItem.mm: (WebKit::NativeContextMenuItem::NativeContextMenuItem): 2015-04-07 Simon Fraser Add a new setting, AntialiasedFontDilationEnabled, exposed via WK2. https://bugs.webkit.org/show_bug.cgi?id=143495 Reviewed by Tim Horton. Exposed the antialiasedFontDilationEnabled setting via WK C SPI and Objective-C SPI. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetAntialiasedFontDilationEnabled): (WKPreferencesGetAntialiasedFontDilationEnabled): * UIProcess/API/C/WKPreferencesRefPrivate.h: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _antialiasedFontDilationEnabled]): (-[WKPreferences _setAntialiasedFontDilationEnabled:]): * UIProcess/API/Cocoa/WKPreferencesPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-04-07 Beth Dakin Should only propagate pressure events with relevant phases https://bugs.webkit.org/show_bug.cgi?id=143494 -and corresponding- rdar://problem/20453738 Reviewed by Tim Horton. We only care about the changed, began, and ended phases. * UIProcess/API/mac/WKView.mm: (-[WKView pressureChangeWithEvent:]): 2015-04-07 Jer Noble Unreviewed build fix; make calls to new SPI conditional on iOS version. * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): 2015-04-06 Anders Carlsson Create the web inspector process pool lazily https://bugs.webkit.org/show_bug.cgi?id=143456 rdar://problem/20146520 Reviewed by Mark Lam. Add and implement WebInspectorProxy::isInspectorProcessPool instead of always creating the inspector process pool when trying to determine if a given process pool is the inspector process pool. This should speed up initialization somewhat and avoid creating a storage manager for example. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::inspectorProcessPool): (WebKit::WebInspectorProxy::isInspectorProcessPool): * UIProcess/WebInspectorProxy.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::getLaunchOptions): 2015-04-06 Brady Eidson Combine ActionMenuHitTestResult with WebHitTestResult https://bugs.webkit.org/show_bug.cgi?id=143444 Reviewed by Beth Dakin. * Shared/mac/ActionMenuHitTestResult.h: Removed. * Shared/mac/ActionMenuHitTestResult.mm: Removed. * Shared/WebHitTestResult.cpp: (WebKit::WebHitTestResult::Data::Data): (WebKit::WebHitTestResult::Data::encode): (WebKit::WebHitTestResult::Data::decode): (WebKit::WebHitTestResult::Data::platformEncode): (WebKit::WebHitTestResult::Data::platformDecode): * Shared/WebHitTestResult.h: * Shared/mac/WebHitTestResult.mm: Added. (WebKit::WebHitTestResult::Data::platformEncode): (WebKit::WebHitTestResult::Data::platformDecode): * UIProcess/API/mac/WKView.mm: (-[WKView _didPerformActionMenuHitTest:forImmediateAction:contentPreventsDefault:userData:]): (-[WKView _didPerformActionMenuHitTest:forImmediateAction:userData:]): Deleted. * UIProcess/API/mac/WKViewInternal.h: * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didPerformActionMenuHitTest): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didPerformActionMenuHitTest): * UIProcess/mac/WKActionMenuController.h: * UIProcess/mac/WKActionMenuController.mm: (-[WKActionMenuController willDestroyView:]): (-[WKActionMenuController _clearActionMenuState]): (-[WKActionMenuController didPerformActionMenuHitTest:userData:]): (-[WKActionMenuController _hitTestResultDataImage]): (-[WKActionMenuController _defaultMenuItemsForImage]): (-[WKActionMenuController _copyImage:]): (-[WKActionMenuController _addImageToPhotos:]): (-[WKActionMenuController _defaultMenuItemsForDataDetectedText]): (-[WKActionMenuController _defaultMenuItemsForEditableTextWithSuggestions]): (-[WKActionMenuController _defaultMenuItemsForDataDetectableLink]): (-[WKActionMenuController _webHitTestResult]): (-[WKActionMenuController _defaultMenuItems]): (-[WKActionMenuController _hitTestResultImage]): Deleted. * UIProcess/mac/WKImmediateActionController.h: * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController willDestroyView:]): (-[WKImmediateActionController _clearImmediateActionState]): (-[WKImmediateActionController didPerformActionMenuHitTest:contentPreventsDefault:userData:]): (-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]): (-[WKImmediateActionController _webHitTestResult]): (-[WKImmediateActionController _defaultAnimationController]): (-[WKImmediateActionController _updateImmediateActionItem]): (-[WKImmediateActionController _menuItemForDataDetectedText]): (-[WKImmediateActionController _animationControllerForText]): (-[WKImmediateActionController didPerformActionMenuHitTest:userData:]): Deleted. * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): 2015-04-06 Jer Noble Synchronize fullscreen animation between processes. https://bugs.webkit.org/show_bug.cgi?id=143131 Reviewed by Simon Fraser. Support synchronize resizing by animating within the UIProcess. Since setVideoLayerFrameFenced() is now only ever called from within a 0-duration transaction, make that the official contract of the function and wrap the WebProcess side of that method in its own 0-duration transaction. * Platform/spi/ios/BackBoardServicesSPI.h: Added. * Platform/spi/ios/UIKitSPI.h: * UIProcess/ios/WebVideoFullscreenManagerProxy.h: * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Remember the initial rect. (WebKit::WebVideoFullscreenManagerProxy::videoLayerFrame): Added; simple getter. (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame): Use a different synchronization fence primative. Save the cached frame value. (WebKit::WebVideoFullscreenManagerProxy::videoLayerGravity): Added; simple getter. (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerGravity): Save the cached gravity value. * WebKit2.xcodeproj/project.pbxproj: * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): Wrap in a 0-length transaction. 2015-04-06 Chris Dumez [WK2][iOS] Regression(r182323): ASSERTION FAILED: WebCore::SQLiteDatabaseTracker::hasTransactionInProgress() in NetworkCache::Statistics::initialize() https://bugs.webkit.org/show_bug.cgi?id=143451 Reviewed by Anders Carlsson. Initialize WebProcess::m_webSQLiteDatabaseTracker and NetworkProcess::m_webSQLiteDatabaseTracker in their respective class constructors instead of doing it later in the initializeWebProcess() / initializeNetworkProcess() methods. If we do it later, it can happen that the tracker gets set after a SQLiteTransactionInProgressAutoCounter initialization and before the actual transaction. When this happens, the SQLiteTransactionInProgressAutoCounter variable fails to increment the transaction count. Then when the transaction is executed, SQLiteDatabaseTracker::hasTransactionInProgress() can return false. This would lead to possible assertions on start up on iOS. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::NetworkProcess): (WebKit::NetworkProcess::initializeNetworkProcess): * NetworkProcess/NetworkProcess.h: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): (WebKit::WebProcess::initializeConnection): * WebProcess/WebProcess.h: 2015-04-06 Beth Dakin https://trac.webkit.org/changeset/182338 introduced a build failure that I attempted to fix with https://trac.webkit.org/changeset/182341 , but that disabled the feature accidentally. This should do the right thing. * UIProcess/API/mac/WKView.mm: (-[WKView pressureChangeWithEvent:]): 2015-04-06 Commit Queue Unreviewed, rolling out r182296. https://bugs.webkit.org/show_bug.cgi?id=143448 This will disturb network cache efficacy logging, we should reland this later. (Requested by cdumez__ on #webkit). Reverted changeset: "[WK2][NetworkCache] Drop HTTP method from NetworkCache::Key" https://bugs.webkit.org/show_bug.cgi?id=143348 http://trac.webkit.org/changeset/182296 2015-04-06 Žan Doberšek [WK2] API::Array::copy() should move the resulting Vector<> of copies into the Array::create() call https://bugs.webkit.org/show_bug.cgi?id=143413 Reviewed by Darin Adler. Move the Vector<> object containing the copied elements into the Array::create() call, avoiding copying all the elements again. While here, change the Vector<> parameters for Array::create() and the Array constructor to rvalue references. This will ensure that the passed-in object is moved into the Array::create() call if possible, or explicitly copied otherwise. The constructor is moved into the header for inlining opportunities and the unnecessary parameter in the create(Vector<>&&) method declaration removed. * Shared/API/APIArray.cpp: (API::Array::create): (API::Array::copy): (API::Array::Array): Deleted. * Shared/API/APIArray.h: 2015-04-06 Žan Doberšek UserScript, UserStyleSheet constructors should take in Vector rvalues https://bugs.webkit.org/show_bug.cgi?id=143411 Reviewed by Darin Adler. Move the whitelist and blacklist Vector objects into the UserScript and UserStyleSheet constructors in ArgumentCoder::decode functions. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::decode): (IPC::ArgumentCoder::decode): 2015-04-05 Darin Adler [Mac] Spins seen in WKSetApplicationInformationItem, so it should not be called on the main thread https://bugs.webkit.org/show_bug.cgi?id=143423 rdar://problem/18773785 Reviewed by Alexey Proskuryakov. * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::origin): Factored out this helper function from updateActivePages below, so the function below is easier to read. (WebKit::WebProcess::updateActivePages): Refactored to use the new origin function. Use dispatch_async to call WKSetApplicationInformationItem without blocking. 2015-04-05 Gyuyoung Kim Use constants of sqlite3 directly for status of SQL result in webdatabase https://bugs.webkit.org/show_bug.cgi?id=143329 Reviewed by Darin Adler. In webdatabase, it has used own constant variables as well as using sqlite3 constants directly. If sqlite3 constants are changed in the library, we should modify many files as well. Besides it can cause to use if~else statement which consumes more cpu cycles compared to switch~case. * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp: (WebKit::SQLiteIDBCursor::createSQLiteStatement): (WebKit::SQLiteIDBCursor::resetAndRebindStatement): (WebKit::SQLiteIDBCursor::bindArguments): (WebKit::SQLiteIDBCursor::internalAdvanceOnce): * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp: (WebKit::createOrMigrateRecordsTableIfNecessary): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::extractExistingMetadata): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::changeDatabaseVersion): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::clearObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteIndex): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::generateKeyNumber): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::updateKeyGeneratorNumber): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::keyExistsInObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::putRecord): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::uncheckedPutIndexRecord): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteRecord): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRecordFromObjectStore): (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRangeRecordFromObjectStore): * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::executeSQLStatement): (WebKit::NetworkCache::Statistics::initialize): (WebKit::NetworkCache::Statistics::queryWasEverRequested): (WebKit::NetworkCache::Statistics::addHashesToDatabase): (WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase): * UIProcess/Storage/LocalStorageDatabase.cpp: (WebKit::LocalStorageDatabase::importItems): (WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems): (WebKit::LocalStorageDatabase::databaseIsEmpty): * UIProcess/Storage/LocalStorageDatabaseTracker.cpp: (WebKit::LocalStorageDatabaseTracker::deleteAllDatabases): (WebKit::LocalStorageDatabaseTracker::importOriginIdentifiers): (WebKit::LocalStorageDatabaseTracker::addDatabaseWithOriginIdentifier): (WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier): (WebKit::LocalStorageDatabaseTracker::pathForDatabaseWithOriginIdentifier): * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp: (webkitSoupCookieJarSqliteLoad): (webkitSoupCookieJarSqliteInsertCookie): (webkitSoupCookieJarSqliteDeleteCookie): 2015-04-05 Simon Fraser Remove "go ahead and" from comments https://bugs.webkit.org/show_bug.cgi?id=143421 Reviewed by Darin Adler, Benjamin Poulain. Remove the phrase "go ahead and" from comments where it doesn't add anything (which is almost all of them). * Platform/unix/EnvironmentUtilities.cpp: (WebKit::EnvironmentUtilities::stripValuesEndingWithString): * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::didClose): * UIProcess/API/mac/WKView.mm: (-[WKView insertText:replacementRange:]): (-[WKView _pluginFocusOrWindowFocusChanged:pluginComplexTextInputIdentifier:]): * UIProcess/Storage/LocalStorageDatabaseTracker.cpp: (WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier): 2015-04-05 Antti Koivisto Bloom filter should support longer hashes https://bugs.webkit.org/show_bug.cgi?id=143419 Reviewed by Dan Bernstein. Use the hash digest directly in the contents filter instead of going via shortHash. * NetworkProcess/cache/NetworkCacheKey.h: (WebKit::NetworkCache::Key::hash): (WebKit::NetworkCache::Key::shortHash): Deleted. (WebKit::NetworkCache::Key::toShortHash): Deleted. No longer needed. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::synchronize): (WebKit::NetworkCache::Storage::addToContentsFilter): (WebKit::NetworkCache::Storage::mayContain): * NetworkProcess/cache/NetworkCacheStorage.h: 2015-04-05 Antti Koivisto Network cache Bloom filter is too big https://bugs.webkit.org/show_bug.cgi?id=143400 Follow-up: Fix an ineffective assert. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::setMaximumSize): Average resource size is closer to 50KB than 50MB. 2015-04-05 Antti Koivisto Rename Cache::setMaximumSize to setCapacity https://bugs.webkit.org/show_bug.cgi?id=143418 Reviewed by Dan Bernstein. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::setCapacity): (WebKit::NetworkCache::Cache::setMaximumSize): Deleted. * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::retrieve): (WebKit::NetworkCache::Storage::store): (WebKit::NetworkCache::Storage::update): (WebKit::NetworkCache::Storage::setCapacity): (WebKit::NetworkCache::Storage::shrinkIfNeeded): (WebKit::NetworkCache::Storage::shrink): (WebKit::NetworkCache::Storage::setMaximumSize): Deleted. * NetworkProcess/cache/NetworkCacheStorage.h: * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformSetCacheModel): 2015-04-04 Antti Koivisto Network cache Bloom filter is too big https://bugs.webkit.org/show_bug.cgi?id=143400 Reviewed by Chris Dumez. It is currently 1MB. This patch switches the cache from a counting filter (CountingBloomFilter) to a bit filter (BloomFilter). It also reduces the filter size from 2^20 to 2^18 elements which is good for ~26000 cache entries while still keeping false positive rate below 1%. The current cache capacity allows around 4000 entries with typical web contents. The new filter size is 32KB. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::synchronize): Turn initialization function into general purpose synchronization function. (WebKit::NetworkCache::Storage::addToContentsFilter): Collect newly added hashes so we don't miss entries that were added during synchronization. (WebKit::NetworkCache::Storage::mayContain): (WebKit::NetworkCache::Storage::remove): (WebKit::NetworkCache::Storage::retrieve): (WebKit::NetworkCache::Storage::store): (WebKit::NetworkCache::Storage::dispatchPendingWriteOperations): (WebKit::NetworkCache::Storage::dispatchFullWriteOperation): (WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation): (WebKit::NetworkCache::Storage::setMaximumSize): (WebKit::NetworkCache::Storage::clear): (WebKit::NetworkCache::Storage::shrinkIfNeeded): (WebKit::NetworkCache::Storage::shrink): Non-counting Bloom filter does not support removals so this requires a new strategy. Shrink code now simply deletes entries. The filter is updated by calling synchronize() at the end. While we could synchronize the filter during traversal it is better to just have one function for that. (WebKit::NetworkCache::Storage::initialize): Deleted. * NetworkProcess/cache/NetworkCacheStorage.h: (WebKit::NetworkCache::Storage::mayContain): (WebKit::NetworkCache::Storage::cacheMayContain): Deleted. 2015-04-04 Andy Estes [Content Filtering] Blocked page is not always displayed when it should be https://bugs.webkit.org/show_bug.cgi?id=143410 Reviewed by Andreas Kling. * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::didStartProvisionalLoad): Stopped clearing m_contentFilterUnblockHandler here. (WebKit::WebFrameProxy::didHandleContentFilterUnblockNavigation): Started doing it here instead. 2015-04-04 Chris Dumez [WK2][Cocoa] Add a way to temporarily disable the WebKit Network Cache for testing https://bugs.webkit.org/show_bug.cgi?id=143392 Reviewed by Antti Koivisto. Add a way to temporarily disable the WebKit Network Cache for testing. It will be used temporarily for comparing page load times with and without the WebKit network disk cache enabled. This is in addition to the existing "WebKitNetworkCacheEnabled" NSUserDefaults: webkitNetworkCacheIsEnabled = [defaults boolForKey:WebKitNetworkCacheEnabledDefaultsKey] && ![defaults boolForKey:WebKitNetworkCacheTemporarilyDisabledForTestingKey]; * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess): 2015-04-04 Simon Fraser REGRESSION (r182215): Feedly crashes when closing article https://bugs.webkit.org/show_bug.cgi?id=143405 rdar://problem/20382734, rdar://problem/20395497 Reviewed by Tim Horton. Calling computeNonFastScrollableRegion() eagerly when scrollable areas come and go is bad, because it can cause FrameView::layout() to get called in the middle of RenderObject destruction, which leaves the render tree in a bad state. Fix by calling computeNonFastScrollableRegion() lazily, just before scrolling tree commit. AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged() now just sets a flag to say that the non-fast region needs to be recomputed, and that schedules a scrolling tree commit. When the commit happens, we recompute the region. If the region didn't change, and no other changes are pending, there's no need to commit. * WebProcess/Scrolling/RemoteScrollingCoordinator.mm: (WebKit::RemoteScrollingCoordinator::buildTransaction): * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::flushLayers): Outdent #ifdefs. 2015-04-03 Beth Dakin Attempted build fix. * UIProcess/API/mac/WKView.mm: 2015-04-03 Simon Fraser Fix the firing of the ReachedSessionRestorationRenderTreeSizeThreshold milestone on iOS https://bugs.webkit.org/show_bug.cgi?id=143394 Reviewed by Tim Horton. A client reshuffle at some point broke the dispatch of the ReachedSessionRestorationRenderTreeSizeThreshold milestone. Fix by using WebPageProxy::didLayout() to fire the milestone. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didCommitLayerTree): 2015-04-03 Beth Dakin https://bugs.webkit.org/show_bug.cgi?id=143387 Improvements to webkitmouseforce web API -and corresponding- rdar://problem/20281808 rdar://problem/20281853 Reviewed by Darin Adler. This patch: 1. Dispatches webkitmouseforceup and webkitmouseforceclick at the right time. 2. Dispatches webkitmouseforcechanged from mousedown all the way through through mouseup. 3. Uses force values from pressureChangeWithEvent instead of the immediate action gesture recognizer. Listen for this NSResponder method, and pass the relevant info to WebPageProxy to dispatch to the web process. * UIProcess/API/mac/WKView.mm: (-[WKView pressureChangeWithEvent:]): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::inputDeviceForceDidChange): (WebKit::WebPageProxy::immediateActionDidUpdate): * UIProcess/WebPageProxy.h: The web process still needs to know when the immediate action gesture recognizer is updating, but it doesn’t need the force information. That will come from pressureChangeWithEvent. * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]): Cache m_lastForceStage so that we can determine if we are transitioning to a new stage. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): * WebProcess/WebPage/WebPage.h: New message for InputDeviceForceDidChange and modified message for ImmediateActionDidUpdate * WebProcess/WebPage/WebPage.messages.in: inputDeviceForceDidChange now takes care of dispatching mouseforcechanged, mouseforcedown, mouseforceup, and mouseforceclick. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::inputDeviceForceDidChange): We still need to keep track of the ImmediateActionStages in WebCore::EventHandler so that we can have the right default behavior on mouseup based on whether or not that action began and was completed. (In other words, to ensure we don’t navigate to a link after force clicking it.) (WebKit::WebPage::immediateActionDidUpdate): (WebKit::WebPage::immediateActionDidComplete): 2015-04-03 Said Abou-Hallawa InjectedBundleNodeHandle::renderedImage() needs to be exposed from the Cocoa WebAPI layer. https://bugs.webkit.org/show_bug.cgi?id=143341. Reviewed by Anders Carlsson. * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h: * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: (-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:]): Expose rendered image injected bundle API from the Cocoa layer. A node in the page can be rendered to an NSImage on MacOS and to a UIImage on iOS. 2015-04-03 Chris Dumez [WK2][iOS] We should prevent NetworkProcess suspension while it has pending SQL transactions https://bugs.webkit.org/show_bug.cgi?id=143278 Reviewed by Anders Carlsson. Prevent NetworkProcess suspension while it has pending SQL transactions, similarly to what we already did for WebProcesses. This patch moves the WebSQLiteDatabaseTracker from WebProcess/ to Shared/ and make it usable by the NetworkProcess class as well. Whenever there are locked files to due SQL transactions, the NetworkProcess will send an IPC message to the NetworkProcessProxy which will hold a background process assertion until the NetworkProcess' SQL transactions are complete. This way, it is no longer possible for the NetworkProcess to get suspended while SQL transactions are running and a database file is locked. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::initializeNetworkProcess): * NetworkProcess/NetworkProcess.h: * Shared/WebSQLiteDatabaseTracker.cpp: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.cpp. (WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker): (WebKit::m_childProcessType): (WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction): (WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction): (WebKit::WebSQLiteDatabaseTracker::hysteresisUpdated): * Shared/WebSQLiteDatabaseTracker.h: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h. * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::didClose): (WebKit::NetworkProcessProxy::setIsHoldingLockedFiles): * UIProcess/Network/NetworkProcessProxy.h: * UIProcess/Network/NetworkProcessProxy.messages.in: * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebProcess.cpp: (WebKit::WebProcess::WebProcess): (WebKit::WebProcess::initializeConnection): * WebProcess/WebProcess.h: 2015-04-03 Antti Koivisto Add non-counting Bloom filter implementation https://bugs.webkit.org/show_bug.cgi?id=143366 Reviewed by Sam Weinig. * NetworkProcess/cache/NetworkCacheStorage.h: 2015-04-03 Zan Dobersek Fix the EFL and GTK build after r182243 https://bugs.webkit.org/show_bug.cgi?id=143361 Reviewed by Csaba Osztrogonác. * PlatformGTK.cmake: Add a custom command that copies the InspectorBackendCommands.js file into the proper directory under DerivedSources/WebInspectorUI/. 2015-04-03 Philippe Normand Unreviewed, GTK build fix. * UIProcess/API/gtk/WebKitContextMenuClient.cpp: * UIProcess/gtk/WebContextMenuProxyGtk.cpp: * UIProcess/gtk/WebContextMenuProxyGtk.h: 2015-04-02 Csaba Osztrogonác Typo fix. * PlatformGTK.cmake: 2015-04-02 Csaba Osztrogonác URTBF after r182303, stub NativeContextMenuItem implemetations added for EFL and GTK. * PlatformEfl.cmake: * PlatformGTK.cmake: * Shared/efl/NativeContextMenuItemEfl.cpp: Added. (WebKit::NativeContextMenuItem::NativeContextMenuItem): * Shared/gtk/NativeContextMenuItemGtk.cpp: Added. (WebKit::NativeContextMenuItem::NativeContextMenuItem): 2015-04-02 Timothy Horton De-PLATFORM(IOS)-ify LayerHostingContext::setFencePort https://bugs.webkit.org/show_bug.cgi?id=143342 * Platform/mac/LayerHostingContext.h: * Platform/mac/LayerHostingContext.mm: Actually, not available on Mavericks. Fix the build. 2015-04-02 Brady Eidson Unreviewed: Re-applied change after rollout. Expose the "Share" menu for text selections on platforms where it's available. rdar://problem/20034174 and https://bugs.webkit.org/show_bug.cgi?id=143318 * Shared/API/c/WKContextMenuItemTypes.h: Add a constant for the Share menu. * Shared/API/c/WKSharedAPICast.h: (WebKit::toAPI): (WebKit::toImpl): * Shared/ContextMenuContextData.cpp: (WebKit::ContextMenuContextData::ContextMenuContextData): (WebKit::ContextMenuContextData::encode): (WebKit::ContextMenuContextData::decode): * Shared/ContextMenuContextData.h: (WebKit::ContextMenuContextData::selectedText): Add a "cross platform" menu item wrapper, right now only for NSMenuItem. * Shared/NativeContextMenuItem.h: (WebKit::NativeContextMenuItem::~NativeContextMenuItem): (WebKit::NativeContextMenuItem::nsMenuItem): * Shared/mac/NativeContextMenuItem.mm: (WebKit::NativeContextMenuItem::NativeContextMenuItem): Let WebContextMenuItem hold on to a NativeContextMenuItem to maintain full fidelity of the platform. * Shared/WebContextMenuItem.cpp: (WebKit::WebContextMenuItem::WebContextMenuItem): * Shared/WebContextMenuItem.h: (WebKit::WebContextMenuItem::create): (WebKit::WebContextMenuItem::nativeContextMenuItem): * UIProcess/API/APIContextMenuClient.h: (API::ContextMenuClient::getContextMenuFromProposedMenu): (API::ContextMenuClient::showContextMenu): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageContextMenuClient): * UIProcess/WebContextMenuProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): Translate the placeholder item from the web process into the native Share menu before consulting the context menu client. Also create the API items here so the native NSMenuItem can be attached to them. * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (-[WKMenuTarget forwardContextMenuAction:]): (WebKit::nsMenuItem): (WebKit::nsMenuItemVector): (WebKit::WebContextMenuProxyMac::populate): (WebKit::WebContextMenuProxyMac::showContextMenu): * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebCoreSupport/WebContextMenuClient.h: * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: (WebKit::WebContextMenuClient::shareSelectedTextMenuItem): In the web process, mark the Share menu's place in the context menu with a placeholder item. It will be translated into the real Share menu in the UI process. 2015-04-02 Commit Queue Unreviewed, rolling out r182293. https://bugs.webkit.org/show_bug.cgi?id=143355 Broke GTK and EFL builds. (Requested by bfulgham on #webkit). Reverted changeset: "Expose the "Share" menu for text selections on platforms where it's available." https://bugs.webkit.org/show_bug.cgi?id=143318 http://trac.webkit.org/changeset/182293 2015-04-02 Chris Dumez [WK2][NetworkCache] Drop HTTP method from NetworkCache::Key https://bugs.webkit.org/show_bug.cgi?id=143348 Reviewed by Antti Koivisto. Drop HTTP method from NetworkCache::Key as we only cache GET responses for now. Even when we start caching HEAD responses, we likely will not want the method to be part of the key because: - A HEAD response can be used to update the headers of a previously cached response to GET - A cached GET response may be used to satisfy subsequent HEAD requests * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::makeCacheKey): * NetworkProcess/cache/NetworkCacheKey.cpp: (WebKit::NetworkCache::Key::Key): (WebKit::NetworkCache::Key::operator=): (WebKit::NetworkCache::Key::computeHash): (WebKit::NetworkCache::Key::operator==): (WebKit::NetworkCache::Key::encode): (WebKit::NetworkCache::Key::decode): * NetworkProcess/cache/NetworkCacheKey.h: (WebKit::NetworkCache::Key::method): Deleted. 2015-04-02 Jer Noble [Mac][WK2] Fullscreen animation incorrect when initiated on non-primary monitor https://bugs.webkit.org/show_bug.cgi?id=143237 Reviewed by Brent Fulgham. The animation calculations have an implicit assumptions of a screen whose origin is 0,0. Account for the screen origin by passing the window's screen's frame into the zoomAnimation() and maskAnimation() methods. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController initWithWindow:webView:]): (zoomAnimation): (maskAnimation): (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): 2015-04-02 Brady Eidson Expose the "Share" menu for text selections on platforms where it's available. rdar://problem/20034174 and https://bugs.webkit.org/show_bug.cgi?id=143318 Reviewed by Sam Weinig. * Shared/API/c/WKContextMenuItemTypes.h: Add a constant for the Share menu. * Shared/API/c/WKSharedAPICast.h: (WebKit::toAPI): (WebKit::toImpl): * Shared/ContextMenuContextData.cpp: (WebKit::ContextMenuContextData::ContextMenuContextData): (WebKit::ContextMenuContextData::encode): (WebKit::ContextMenuContextData::decode): * Shared/ContextMenuContextData.h: (WebKit::ContextMenuContextData::selectedText): Add a "cross platform" menu item wrapper, right now only for NSMenuItem. * Shared/NativeContextMenuItem.h: (WebKit::NativeContextMenuItem::~NativeContextMenuItem): (WebKit::NativeContextMenuItem::nsMenuItem): * Shared/mac/NativeContextMenuItem.mm: (WebKit::NativeContextMenuItem::NativeContextMenuItem): Let WebContextMenuItem hold on to a NativeContextMenuItem to maintain full fidelity of the platform. * Shared/WebContextMenuItem.cpp: (WebKit::WebContextMenuItem::WebContextMenuItem): * Shared/WebContextMenuItem.h: (WebKit::WebContextMenuItem::create): (WebKit::WebContextMenuItem::nativeContextMenuItem): * UIProcess/API/APIContextMenuClient.h: (API::ContextMenuClient::getContextMenuFromProposedMenu): (API::ContextMenuClient::showContextMenu): * UIProcess/API/C/WKPage.cpp: (WKPageSetPageContextMenuClient): * UIProcess/WebContextMenuProxy.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::internalShowContextMenu): Translate the placeholder item from the web process into the native Share menu before consulting the context menu client. Also create the API items here so the native NSMenuItem can be attached to them. * UIProcess/mac/WebContextMenuProxyMac.h: * UIProcess/mac/WebContextMenuProxyMac.mm: (-[WKMenuTarget forwardContextMenuAction:]): (WebKit::nsMenuItem): (WebKit::nsMenuItemVector): (WebKit::WebContextMenuProxyMac::populate): (WebKit::WebContextMenuProxyMac::showContextMenu): * WebKit2.xcodeproj/project.pbxproj: * WebProcess/WebCoreSupport/WebContextMenuClient.h: * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: (WebKit::WebContextMenuClient::shareSelectedTextMenuItem): In the web process, mark the Share menu's place in the context menu with a placeholder item. It will be translated into the real Share menu in the UI process. 2015-04-02 Timothy Horton De-PLATFORM(IOS)-ify LayerHostingContext::setFencePort https://bugs.webkit.org/show_bug.cgi?id=143342 Reviewed by Myles C. Maxfield. * Platform/mac/LayerHostingContext.h: * Platform/mac/LayerHostingContext.mm: (WebKit::LayerHostingContext::setFencePort): There's nothing iOS specific about this. 2015-04-02 Oliver Hunt Ensure that we always set network ATS context in the network process https://bugs.webkit.org/show_bug.cgi?id=143343 Reviewed by Dan Bernstein. If a custom cache location or size we were early returning before setting the CFNetwork ATS context. This is clearly an error. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): 2015-04-02 Alexey Proskuryakov Make checkURLReceivedFromWebProcess not rely on details of platform URL implementation. https://bugs.webkit.org/show_bug.cgi?id=143222 rdar://problem/19978997 Reviewed by Sam Weinig. * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess): 2015-04-02 Yusuke Suzuki Clean up EnumerationMode to easily extend https://bugs.webkit.org/show_bug.cgi?id=143276 Reviewed by Geoffrey Garen. Use default EnumerationMode(). * WebProcess/Plugins/Netscape/NPJSObject.cpp: (WebKit::NPJSObject::enumerate): 2015-04-02 Chris Dumez [WK2][iOS] Update the WebContent process' sandbox profile for AWD https://bugs.webkit.org/show_bug.cgi?id=143340 Reviewed by Alexey Proskuryakov. Update the WebContent process' sandbox profile for AWD. * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: 2015-04-01 Antti Koivisto Use std::chrono types to represent time in response and cache classes https://bugs.webkit.org/show_bug.cgi?id=143316 Reviewed by Andreas Kling. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didFinishLoading): * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::responseHasExpired): (WebKit::NetworkCache::responseNeedsRevalidation): (WebKit::NetworkCache::makeStoreDecision): (WebKit::NetworkCache::Cache::store): * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): (WebKit::NetworkCache::Entry::asJSON): * NetworkProcess/cache/NetworkCacheEntry.h: (WebKit::NetworkCache::Entry::timeStamp): * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::decodeRecordMetaData): (WebKit::NetworkCache::decodeRecord): Sanity check the timestamp on decode. (WebKit::NetworkCache::encodeRecordMetaData): (WebKit::NetworkCache::encodeRecordHeader): (WebKit::NetworkCache::Storage::traverse): * NetworkProcess/cache/NetworkCacheStorage.h: * WebProcess/Plugins/PluginView.cpp: (WebKit::lastModifiedDateMS): (WebKit::PluginView::Stream::didReceiveResponse): (WebKit::PluginView::manualLoadDidReceiveResponse): (WebKit::lastModifiedDate): Deleted. 2015-04-01 Chris Dumez [WK2][Cocoa] Add didFailProvisionalLoadWithErrorForFrame callback to WKWebProcessPlugInLoadDelegate https://bugs.webkit.org/show_bug.cgi?id=143319 Reviewed by Dan Bernstein. Add didFailProvisionalLoadWithErrorForFrame callback to WKWebProcessPlugInLoadDelegate so that the client side can track all types page load completions: - didFailProvisionalLoadWithErrorForFrame - didFailLoadWithErrorForFrame - didFinishLoadForFrame Note that this event is already exposed on UIProcess side via the WKPageLoaderClient.didFailLoadWithErrorForFrame callback. * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: (didFailProvisionalLoadWithErrorForFrame): (setUpPageLoaderClient): 2015-04-01 Enrica Casucci Injected bundle messages should be at the page level. https://bugs.webkit.org/show_bug.cgi?id=143283 Reviewed by Alexey Proskuryakov. All the messages between the injected bundle and the UI process should be page level messages instead of context. The author of this patch is Tim Horton, I just finished it. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageInjectedBundleClient): * UIProcess/API/C/WKPage.h: * UIProcess/API/C/WKPageInjectedBundleClient.h: Added. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _pageForTesting]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/WebPageInjectedBundleClient.cpp: Added. (WebKit::WebPageInjectedBundleClient::didReceiveMessageFromInjectedBundle): (WebKit::WebPageInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle): * UIProcess/WebPageInjectedBundleClient.h: Added. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setInjectedBundleClient): (WebKit::WebPageProxy::handleMessage): (WebKit::WebPageProxy::handleSynchronousMessage): * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::injectedBundleClient): * UIProcess/WebPageProxy.messages.in: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::handleMessage): * WebKit2.xcodeproj/project.pbxproj: * CMakeLists.txt: * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: (WKBundlePagePostMessage): (WKBundlePagePostSynchronousMessage): * WebProcess/InjectedBundle/API/c/WKBundlePage.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::postMessage): (WebKit::WebPage::postSynchronousMessage): * WebProcess/WebPage/WebPage.h: 2015-04-01 Alexey Proskuryakov [iOS] WebContent should have access to the entirety of its caches directory https://bugs.webkit.org/show_bug.cgi?id=143312 rdar://problem/20314916 Reviewed by Oliver Hunt. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): * Shared/Network/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode): (WebKit::NetworkProcessCreationParameters::decode): * Shared/Network/NetworkProcessCreationParameters.h: * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::networkingCachesDirectory): (WebKit::WebProcessPool::webContentCachesDirectory): (WebKit::WebProcessPool::openGLCacheDirectory): Deleted. (WebKit::WebProcessPool::networkingHSTSDatabasePath): Deleted. (WebKit::WebProcessPool::webContentHSTSDatabasePath): Deleted. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::ensureNetworkProcess): (WebKit::WebProcessPool::createNewWebProcess): * UIProcess/WebProcessPool.h: * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-04-01 Timothy Horton Smart magnification gesture sometimes shoots to the middle of the page https://bugs.webkit.org/show_bug.cgi?id=143296 Reviewed by Dean Jackson. * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture): Constrain the target rect to the viewport, and if it had overflowed the viewport, scroll halfway towards the gesture origin. 2015-03-31 Simon Fraser Remove scrolling tree dependency on wheel event handler counts, and use fast scrolling even when there are wheel handlers https://bugs.webkit.org/show_bug.cgi?id=143288 rdar://problem/16049624 Reviewed by Beth Dakin. Remove the wheel event counting that Document does, and passes into the scrolling tree. The ScrollingTree now just uses the non-fast scrollable region to determine when to fast scroll on pages with wheel event handlers. If a handler includes position:fixed renderers, we just cover the whole document with the slow-scrolling region currently. This could be improved. * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder::encode): (ArgumentCoder::decode): (WebKit::RemoteScrollingTreeTextStream::dump): * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::wheelEventHandlersChanged): (WebKit::WebChromeClient::numWheelEventHandlersChanged): Deleted. * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::wheelEventHandlersChanged): (WebKit::WebPage::recomputeShortCircuitHorizontalWheelEventsState): (WebKit::WebPage::numWheelEventHandlersChanged): Deleted. * WebProcess/WebPage/WebPage.h: 2015-03-31 Dan Bernstein [iOS] Include Add to Reading List link action only where supported https://bugs.webkit.org/show_bug.cgi?id=143289 Reviewed by Tim Horton. * UIProcess/API/Cocoa/_WKElementAction.h: Excluded _WKElementActionTypeAddToReadingList from the _WKElementActionType enum when Reading List is not supported. * UIProcess/API/Cocoa/_WKElementAction.mm: (+[_WKElementAction elementActionWithType:customTitle:]): Made Add to Reading List code conditional on HAVE(SAFARI_SERVICES_FRAMEWORK). * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant showImageSheet]): Ditto. (-[WKActionSheetAssistant showLinkSheet]): Ditto. * config.h: Defined HAVE_SAFARI_SERVICES_FRAMEWORK. 2015-03-31 Timothy Horton TextIndicator for inside an only highlights the , should highlight the whole https://bugs.webkit.org/show_bug.cgi?id=143287 Reviewed by Beth Dakin. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): Instead of just highlighting the hit element, highlight the whole element that the link URL comes from. 2015-03-31 Timothy Horton WKView should stop using endGestureWithEvent https://bugs.webkit.org/show_bug.cgi?id=143285 Reviewed by Simon Fraser. * UIProcess/API/mac/WKView.mm: (-[WKView magnifyWithEvent:]): (-[WKView endGestureWithEvent:]): Deleted. * UIProcess/mac/ViewGestureController.h: * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::endMagnificationGesture): (WebKit::ViewGestureController::endActiveGesture): Deleted. While there is no visible symptom, it is recommended that we check the phase of normal magnification events instead of using the special gesture end events. 2015-03-31 Timothy Horton Swipes occur in the wrong direction in RTL https://bugs.webkit.org/show_bug.cgi?id=143257 Reviewed by Simon Fraser. * UIProcess/ios/ViewGestureControllerIOS.mm: (-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]): When choosing which edge to attach our gesture recognizers to, flip them in RTL. (-[WKSwipeTransitionController directionForTransition:]): (WebKit::ViewGestureController::beginSwipeGesture): (WebKit::ViewGestureController::canSwipeInDirection): * UIProcess/mac/ViewGestureController.h: * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::scrollEventCanBecomeSwipe): (WebKit::ViewGestureController::trackSwipeGesture): (WebKit::ViewGestureController::determineLayerAdjacentToSnapshotForParent): (WebKit::ViewGestureController::beginSwipeGesture): (WebKit::ViewGestureController::handleSwipeGesture): Adjust SwipeDirection to be in logical back-forward list direction instead of physical edge direction. 2015-03-31 Myles C. Maxfield Move ExpansionBehaviorFlags and TextDirection to their own file https://bugs.webkit.org/show_bug.cgi?id=143273 Reviewed by Simon Fraser. This is a mechanical change. It just moves code around. This is getting ready for https://bugs.webkit.org/show_bug.cgi?id=142608 * Shared/WebPopupItem.h: * UIProcess/API/C/efl/WKAPICastEfl.h: * UIProcess/API/efl/EwkView.h: * UIProcess/WebPopupMenuProxy.h: * UIProcess/efl/WebUIPopupMenuClient.h: 2015-03-31 Yusuke Suzuki Clean up Identifier factories to clarify the meaning of StringImpl* https://bugs.webkit.org/show_bug.cgi?id=143146 Reviewed by Filip Pizlo. Just change to Identifier::fromString. * WebProcess/Plugins/Netscape/JSNPObject.cpp: (WebKit::JSNPObject::getOwnPropertyNames): * WebProcess/Plugins/Netscape/NPJSObject.cpp: (WebKit::identifierFromIdentifierRep): 2015-03-31 Timothy Horton WebKit briefly shows wrong webpage after swiping back (gigaom.com, or any site on a slow network) https://bugs.webkit.org/show_bug.cgi?id=143256 Reviewed by Dan Bernstein. Instead of allowing a flash of the previous page when the swipe snapshot timeouts fire (removing the snapshot before the new page is loaded), show the snapshotted background color. This fixes the problem on iOS, where UI-side compositing makes it easy to fix, but not yet on OS X. * UIProcess/API/Cocoa/WKWebView.mm: (baseScrollViewBackgroundColor): (scrollViewBackgroundColor): If the ViewGestureController returns a valid background color, use that instead of the page's background color. * UIProcess/API/Cocoa/WKWebViewInternal.h: Expose _updateScrollViewBackground. * UIProcess/PageClient.h: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::didChangeBackgroundColor): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::didChangeBackgroundColor): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didChangeBackgroundColor): * UIProcess/WebPageProxy.h: Add and plumb didChangeBackgroundColor, which calls _updateScrollViewBackground on iOS. * UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::endSwipeGesture): Hide the content of the drawing area until the next commit. This way, even if the snapshot is removed (say, because a timeout fired), we won't ever show the old page content (but we will show background color). Store the background color associated with the current snapshot. Let WKWebView know that it needs to recompute the background color. (WebKit::ViewGestureController::removeSwipeSnapshot): Clear the background color so that the next time we commit, WKWebView will get an invalid color from ViewGestureController and fall back to the page's extended background color instead. * UIProcess/mac/ViewGestureController.h: (WebKit::ViewGestureController::backgroundColorForCurrentSnapshot): * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::beginSwipeGesture): (WebKit::ViewGestureController::removeSwipeSnapshot): Keep backgroundColorForCurrentSnapshot up to date on Mac too, even though we don't use it yet. 2015-03-31 Timothy Horton [iOS] Rotating PDF in Safari scrolls to the wrong position https://bugs.webkit.org/show_bug.cgi?id=143259 Reviewed by Dan Bernstein. * UIProcess/ios/WKPDFView.mm: (-[WKPDFView web_setMinimumSize:]): Maintan the relative top/left within the rescaled document. 2015-03-31 Chris Dumez [WK2][iOS] Extend ProcessThrottler use to the NetworkProcess https://bugs.webkit.org/show_bug.cgi?id=143249 Reviewed by Gavin Barraclough. Extend ProcessThrottler use to the NetworkProcess instead of only the WebProcesses. This is needed so that the NetworkProcess gets notified before suspension. We now use this notification to free-up memory before suspending by calling the critical memory pressure handler, as we already do for WebProcesses (rdar://problem/20231539). In the future, this infrastructure will be used to delay suspension until the pending SQL transactions are done as well (rdar://problem/20180799). Previously, the NetworkProcessProxy would hold a foreground assertion on behalf of the NetworkProcess but would never release that assertion. In this patch, we change this so that WebProcessProxies hold assertions on behalf of the NetworkProcess, and release those assertions before suspending. As a result, the NetworkProcess gets suspended when all WebProcesses are suspended. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::processWillSuspend): (WebKit::NetworkProcess::cancelProcessWillSuspend): (WebKit::NetworkProcess::processDidResume): * NetworkProcess/NetworkProcess.h: * NetworkProcess/NetworkProcess.messages.in: * UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::NetworkProcessProxy): (WebKit::NetworkProcessProxy::didFinishLaunching): (WebKit::NetworkProcessProxy::sendProcessWillSuspend): (WebKit::NetworkProcessProxy::sendCancelProcessWillSuspend): (WebKit::NetworkProcessProxy::didCancelProcessSuspension): (WebKit::NetworkProcessProxy::sendProcessDidResume): (WebKit::NetworkProcessProxy::processReadyToSuspend): * UIProcess/Network/NetworkProcessProxy.h: (WebKit::NetworkProcessProxy::throttler): * UIProcess/Network/NetworkProcessProxy.messages.in: * UIProcess/ProcessThrottler.cpp: (WebKit::ProcessThrottler::ProcessThrottler): (WebKit::ProcessThrottler::didConnectToProcess): (WebKit::ProcessThrottler::didConnnectToProcess): Deleted. * UIProcess/ProcessThrottler.h: * UIProcess/ProcessThrottlerClient.h: Added. (WebKit::ProcessThrottlerClient::~ProcessThrottlerClient): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::ensureNetworkProcess): * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching): (WebKit::WebProcessProxy::initializeNetworkProcessActivityToken): (WebKit::WebProcessProxy::sendProcessDidResume): (WebKit::WebProcessProxy::processReadyToSuspend): * UIProcess/WebProcessProxy.h: * WebKit2.xcodeproj/project.pbxproj: 2015-03-31 Csaba Osztrogonác Unreviewed, revert accidental change by r182138. * Scripts/generate-forwarding-headers.pl: (createForwardingHeadersForFramework): 2015-03-31 Carlos Garcia Campos Unreviewed. Fix GTK+ build with REDIRECTED_XCOMPOSITE_WINDOW disabled in X11 platform. Also fix some unused parameter warnings when REDIRECTED_XCOMPOSITE_WINDOW is disabled. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewRenderAcceleratedCompositingResults): (resizeWebKitWebViewBaseFromAllocation): 2015-03-31 Carlos Garcia Campos [GTK] DnD icon/widget has odd background https://bugs.webkit.org/show_bug.cgi?id=143217 Reviewed by Martin Robinson. Use gtk_drag_set_icon_surface() to set the drag icon image, instead of DragIcon class. * UIProcess/API/gtk/WebKitWebView.cpp: * UIProcess/gtk/DragAndDropHandler.cpp: (WebKit::DragAndDropHandler::startDrag): * UIProcess/gtk/DragAndDropHandler.h: 2015-03-30 Commit Queue Unreviewed, rolling out r182172. https://bugs.webkit.org/show_bug.cgi?id=143250 Since this class is an API object, we don't know for sure when it will be destroyed. (Requested by kling on #webkit). Reverted changeset: "WebBackForwardList doesn't need to manually clear the snapshot of an entry when removing it." https://bugs.webkit.org/show_bug.cgi?id=143231 http://trac.webkit.org/changeset/182172 2015-03-30 Andreas Kling WebBackForwardList doesn't need to manually clear the snapshot of an entry when removing it. Reviewed by Tim Horton. Now that we don't keep WebBackForwardListItem objects alive forever, it's not necessary to clear the snapshot when removing them from the WebBackForwardList, since the entire object will be deleted shortly after that anyway. * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::didRemoveItem): 2015-03-30 Enrica Casucci [iOS] WebContent crashing at WebCore: WebCore::Range::collectSelectionRects. https://bugs.webkit.org/show_bug.cgi?id=143234 Reviewed by Tim Horton. This is a speculative fix that adds a null check before referencing the range. In both places where the check has been added the range returned by the call that should create it could be null. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformEditorState): 2015-03-30 Sam Weinig [Content Extensions] Flesh out the UserContentExtensionStore https://bugs.webkit.org/show_bug.cgi?id=143123 Reviewed by Benjamin Poulain. * Shared/WebCompiledContentExtension.cpp: (WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData): * Shared/WebCompiledContentExtensionData.cpp: (WebKit::WebCompiledContentExtensionData::encode): (WebKit::WebCompiledContentExtensionData::decode): * Shared/WebCompiledContentExtensionData.h: (WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData): Switch the order in memory of actions and bytecode (and switch the order of the variables as well, to keep it clear). This will become necessary when streaming the data to disk, as actions are created before the bytecode and we would have to keep them in memory until the bytecode was finished compiling if they didn't come before in the file. * UIProcess/API/APIUserContentExtensionStore.h: * UIProcess/API/APIUserContentExtensionStore.cpp: (API::UserContentExtensionStore::defaultStore): Add accessor for the processes default shared store. (API::constructedPath): Helper for constructing the path to a file in the store based on identifier. (API::encodeContentExtensionMetaData): (API::decodeContentExtensionMetaData): Helpers for encoding/decoding the file metadata (version, bytecode size, actions size). (API::openAndMapContentExtension): Helper to open and map a filed back content extension. (API::writeDataToFile): Helper to write a Data object to a file. (API::compiledToFile): Helper to run the content extension compiler and write it to disk. It first writes it to a temporary file and then does an atomic rename operation to put the file in the final location. Doing this means that if the process crashes while the compile is taking place, the partially written file won't end up in the cache, but rather, will be cleaned up by the OS. (API::UserContentExtensionStore::lookupContentExtension): API entry point to lookup an extension that has been compiled to disk. On a background queue, it attempts to open and map the extension (based on the identifier passed in) and return it to the caller via the callback function passed in. (API::UserContentExtensionStore::compileContentExtension): API entry point to compile an extension and write it to store. On a background queue, it compiles the file to disk and if successful, returns the memory mapped data via the callback function passed in. (API::UserContentExtensionStore::removeContentExtension): API entry point to remove an extension from the store. On a background queue, it unlinks the extension (based on the identifier passed in) and tells the caller it completed the action vial the callback function passed in. (API::UserContentExtensionStore::synchronousRemoveAllContentExtensions): Helper for testing which synchronously unlinks all the files in the store. (API::userContentExtensionStoreErrorCategory): std::error_code adaptor for some generic errors that can happen in the store. We will want to flesh these out further. * UIProcess/API/Cocoa/APIUserContentExtensionStoreCocoa.mm: Added. (API::UserContentExtensionStore::defaultStorePath): Helper to get the platform specific path for the store. * UIProcess/API/C/WKUserContentExtensionStoreRef.cpp: (WKUserContentExtensionStoreGetTypeID): Add ENABLE(CONTENT_EXTENSIONS) guards. * UIProcess/API/Cocoa/_WKUserContentExtensionStore.h: * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm: (-[_WKUserContentExtensionStore dealloc]): (+[_WKUserContentExtensionStore defaultStore]): (-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]): (-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]): (-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]): (-[_WKUserContentExtensionStore _removeAllContentExtensions]): (-[_WKUserContentExtensionStore init]): Deleted. * UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h: * UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h: Added. SPI wrappers for the store. * WebKit2.xcodeproj/project.pbxproj: Add new files. 2015-03-30 Antti Koivisto Don't cache resources that are very unlikely to be reused https://bugs.webkit.org/show_bug.cgi?id=143226 Reviewed by Chris Dumez. Follow-up to cover Cache-control: no-cache case which also has zero cache lifetime. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::makeStoreDecision): 2015-03-30 Antti Koivisto Include cache entry worth to json dump https://bugs.webkit.org/show_bug.cgi?id=143202 Follow-up fix. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::computeRecordWorth): This accidentally gave the error case worth 1 rather than 0 as it should be. 2015-03-30 Antti Koivisto Don't cache resources that are very unlikely to be reused https://bugs.webkit.org/show_bug.cgi?id=143226 Reviewed by Geoff Garen. We are writing lots of resources to the cache that are never used again. In browse-around-randomly test this reduced number of cache entries created by ~20% and bytes written by ~5%. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::makeUseDecision): (WebKit::NetworkCache::makeRetrieveDecision): Rename for clarity. (WebKit::NetworkCache::makeStoreDecision): Store only if the resource has non-zero expiration or has validation headers. Very High priority resources (main resources) keep the existing policy to minimize impact on back navigation and tab restore. (WebKit::NetworkCache::Cache::retrieve): (WebKit::NetworkCache::Cache::store): (WebKit::NetworkCache::canUse): Deleted. (WebKit::NetworkCache::canRetrieve): Deleted. (WebKit::NetworkCache::canStore): Deleted. * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheStatistics.cpp: (WebKit::NetworkCache::storeDecisionToDiagnosticKey): 2015-03-30 Tim Horton Swipe snapshot removed too early (jumps around) on arstechnica and NYT https://bugs.webkit.org/show_bug.cgi?id=143199 Reviewed by Dan Bernstein. Make ViewGestureControllerIOS's snapshot removal timing behave more like the Mac version. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): Let ViewGestureController know when the page has finished state restoration. (-[WKWebView _didFinishLoadForMainFrame]): (-[WKWebView _didSameDocumentNavigationForMainFrame:]): Forward these to ViewGestureController. * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::didFinishLoadForMainFrame): Forward didFinishLoadForMainFrame to WKWebView. * UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::ViewGestureController): (WebKit::ViewGestureController::endSwipeGesture): Split the swipe snapshot removal state into a bunch of bools. (WebKit::ViewGestureController::willCommitPostSwipeTransitionLayerTree): (WebKit::ViewGestureController::setRenderTreeSize): (WebKit::ViewGestureController::removeSwipeSnapshotIfReady): (WebKit::ViewGestureController::removeSwipeSnapshot): Unify the snapshot removal logic into one function; removeSwipeSnapshotIfReady completely owns the decision. For now, we're waiting for everything, but we can do better in the future (using firstVisuallyNonEmptyLayout like Mac used to). (WebKit::ViewGestureController::didRestoreScrollPosition): (WebKit::ViewGestureController::didFinishLoadForMainFrame): (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): (WebKit::ViewGestureController::activeLoadMonitoringTimerFired): Add more conditions for swipe snapshot removal. We'll now wait for didFinishLoadForMainFrame (or didSameDocumentNavigationForMainFrame), for active loads to finish, and for the scroll position to be restored. This brings the iOS implementation in line with the slightly better Mac implementation, and also sets the stage for deduplication of all of this code. * UIProcess/mac/ViewGestureController.h: * UIProcess/mac/ViewGestureControllerMac.mm: (WebKit::ViewGestureController::ViewGestureController): 2015-03-30 Chris Dumez [WK2][NetworkCache] Add support for "Cache-Control: max-stale" request header https://bugs.webkit.org/show_bug.cgi?id=143159 Reviewed by Antti Koivisto. Add support for "Cache-Control: max-stale" request header: https://tools.ietf.org/html/rfc7234#section-5.2.1.2 * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::responseHasExpired): (WebKit::NetworkCache::requestRequiresRevalidation): (WebKit::NetworkCache::canUse): 2015-03-30 Csaba Osztrogonác [EFL][GTK] WebKit2's generate-forwarding-headers.pl should fail if clashing headers found https://bugs.webkit.org/show_bug.cgi?id=142909 Reviewed by Philippe Normand. * Scripts/generate-forwarding-headers.pl: (createForwardingHeadersForFramework): 2015-03-29 Antti Koivisto Include cache entry worth to json dump https://bugs.webkit.org/show_bug.cgi?id=143202 Reviewed by Darin Adler. This is useful for analyzing cache performance. Also include the body size, total item count and average worth. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::traverse): (WebKit::NetworkCache::Cache::dumpContentsToFile): * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::asJSON): * NetworkProcess/cache/NetworkCacheEntry.h: * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::traverse): Add flags for specificying what sort of information is needed. (WebKit::NetworkCache::computeRecordWorth): Factor to a function. (WebKit::NetworkCache::deletionProbability): * NetworkProcess/cache/NetworkCacheStorage.h: 2015-03-29 Simon Fraser Fix iOS scrollperf crash after a web process crash https://bugs.webkit.org/show_bug.cgi?id=143110 Reviewed by Dean Jackson. When we destroy the drawing area after a web process crash, we also need to destroy the scrollingPerformanceData which has a reference to the drawing area. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetState): 2015-03-29 Simon Fraser Convert arguments to ScrollingCoordinator functions to references https://bugs.webkit.org/show_bug.cgi?id=143198 Reviewed by Darin Adler. Convert all the FrameView* and ScrollableArea* arguments to ScrollingCoordinator functions to references, and use references in a few other places. * WebProcess/Scrolling/RemoteScrollingCoordinator.h: * WebProcess/Scrolling/RemoteScrollingCoordinator.mm: (WebKit::RemoteScrollingCoordinator::coordinatesScrollingForFrameView): 2015-03-29 Enrica Casucci [iOS WK2] WKContentView should implement _selectionClipRect https://bugs.webkit.org/show_bug.cgi?id=143143 rdar://problem/20330075 Reviewed by Benjamin Poulain. UIKit checks if the text delegate responds to this selector to retrieve the clipping rectangle for the editable element where the selection is being create. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _selectionClipRect]): 2015-03-29 Antti Koivisto Use st_mtime instead of st_atime to track file access time https://bugs.webkit.org/show_bug.cgi?id=143200 Reviewed by Darin Adler. On OS X atime updates automatically on read so calling Storage::traverse() would always ends up updating access times for all cache entries to the current time. This would make entry worth computation produce unexpected results. We update mtime manually on successful cache retrieve only so switching to it fixes the problem. * NetworkProcess/cache/NetworkCacheFileSystemPosix.h: (WebKit::NetworkCache::fileTimes): (WebKit::NetworkCache::updateFileModificationTimeIfNeeded): (WebKit::NetworkCache::updateFileAccessTimeIfNeeded): Deleted. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::updateFileModificationTime): (WebKit::NetworkCache::Storage::dispatchReadOperation): (WebKit::NetworkCache::deletionProbability): (WebKit::NetworkCache::Storage::updateFileAccessTime): Deleted. * NetworkProcess/cache/NetworkCacheStorage.h: 2015-03-27 Gwang Yoon Hwang [TexMap] Seperate BitmapTexture related classes implementations from TextureMapper https://bugs.webkit.org/show_bug.cgi?id=142386 Reviewed by Žan Doberšek. TextureMapper and TextureMapperGL are bloated and tightly coupled with BitmapTexture. We should move these classes to seperated file of their own. Also, this patch removes friend relationship from TextureMapperGL and its subsidiary classes. The main purpose of this refactoring is to expose BitmapTexturePool to renderers of platformlayers like Video and Canvas. By doing this, each renderer can acquire textures from the global texture pool to paint their contents directly. * Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp: Include BitmapTextureGL.h explicitly 2015-03-27 Anders Carlsson Use a typedef for the WKPluginLoadClientPolicy enum https://bugs.webkit.org/show_bug.cgi?id=143161 Reviewed by Tim Horton. * UIProcess/API/C/WKPluginLoadPolicy.h: 2015-03-27 Chris Dumez [WK2][NetworkCache] Use WTF::WorkQueue abstraction inside NetworkCacheStatistics https://bugs.webkit.org/show_bug.cgi?id=143154 Reviewed by Antti Koivisto. Use WTF::WorkQueue abstraction inside NetworkCacheStatistics, like we already do in NetworkCacheStorage. * NetworkProcess/cache/NetworkCacheStatistics.cpp: Renamed from Source/WebKit2/NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm. (WebKit::NetworkCache::executeSQLCommand): (WebKit::NetworkCache::executeSQLStatement): (WebKit::NetworkCache::Statistics::open): (WebKit::NetworkCache::Statistics::Statistics): (WebKit::NetworkCache::Statistics::initialize): (WebKit::NetworkCache::Statistics::bootstrapFromNetworkCache): (WebKit::NetworkCache::Statistics::shrinkIfNeeded): (WebKit::NetworkCache::Statistics::recordRetrievalRequest): (WebKit::NetworkCache::Statistics::recordNotCachingResponse): (WebKit::NetworkCache::retrieveDecisionToDiagnosticKey): (WebKit::NetworkCache::Statistics::recordNotUsingCacheForRequest): (WebKit::NetworkCache::storeDecisionToDiagnosticKey): (WebKit::NetworkCache::Statistics::recordRetrievalFailure): (WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey): (WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry): (WebKit::NetworkCache::Statistics::markAsRequested): (WebKit::NetworkCache::Statistics::writeTimerFired): (WebKit::NetworkCache::Statistics::queryWasEverRequested): (WebKit::NetworkCache::Statistics::clear): (WebKit::NetworkCache::Statistics::addHashesToDatabase): (WebKit::NetworkCache::Statistics::addStoreDecisionsToDatabase): * NetworkProcess/cache/NetworkCacheStatistics.h: (WebKit::NetworkCache::Statistics::serialBackgroundIOQueue): * WebKit2.xcodeproj/project.pbxproj: 2015-03-27 Ryosuke Niwa Safari clears selection when its window gets activated via mouse down https://bugs.webkit.org/show_bug.cgi?id=143157 Reviewed by Anders Carlsson. The bug was caused by PlatformMouseEvent created in WebKit2 not having its event number even though we were correctly calling setActivationEventNumber in WebPage::acceptsFirstMouse. Fixed the bug by storing [NSEvent eventNumber] in WebMouseEvent on Mac in WebKit2 as done in WebKit1. * Shared/WebEvent.h: (WebKit::WebMouseEvent::eventNumber): * Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent): * Shared/WebMouseEvent.cpp: (WebKit::WebMouseEvent::WebMouseEvent): (WebKit::WebMouseEvent::encode): (WebKit::WebMouseEvent::decode): * Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebMouseEvent): 2015-03-27 Anders Carlsson Only do the Connection::setShouldCloseConnectionOnMachExceptions() hack where necessary https://bugs.webkit.org/show_bug.cgi?id=143141 rdar://problem/19471284 Reviewed by Andreas Kling. * Platform/IPC/Connection.h: * Platform/IPC/mac/ConnectionMac.mm: (IPC::Connection::platformInvalidate): (IPC::Connection::platformInitialize): (IPC::Connection::open): * Shared/ChildProcessProxy.cpp: (WebKit::ChildProcessProxy::didFinishLaunching): * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::didFinishLaunching): 2015-03-27 Tim Horton Implement iOS WebKit2 PDF Find-in-Page https://bugs.webkit.org/show_bug.cgi?id=143065 Reviewed by Dan Bernstein. * Platform/spi/ios/CorePDFSPI.h: Add some SPI. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _countStringMatches:options:maxCount:]): (-[WKWebView _findString:options:maxCount:]): (-[WKWebView _hideFindUI]): If we have a custom content view, forward find-in-page methods to it. * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/Cocoa/_WKFindOptions.h: Move _WKFindOptions into its own file. * UIProcess/Cocoa/WKWebViewContentProvider.h: Add find-related methods to the WKWebViewContentProvider protocol. * UIProcess/ios/WKPDFView.mm: (-[WKPDFView web_initWithFrame:webView:]): (-[WKPDFView dealloc]): Maintain a dispatch queue for searching the PDF. (-[WKPDFView web_setContentProviderData:suggestedFilename:]): Fix a type. (-[WKPDFView _ensureViewForPage:]): Split the code to create/parent a page view out from _revalidateViews, so that the find code can create/parent the targetted UIPDFPageView in order to install the find highlight in it, but before it is scrolled into view. (-[WKPDFView _revalidateViews]): Use the stored page index instead of counting again. Don't unparent page views that have find-in-page highlights in them, because we won't know enough to recreate them later. (-[WKPDFView _computePageAndDocumentFrames]): Put the page index in PDFPageInfo, for reference elsewhere. (-[WKPDFView _stringCompareOptionsFromWKFindOptions:]): (-[WKPDFView _computeMatchesForString:options:maxCount:completionHandler:]): Asynchronously (and on our serial queue) search the PDF for the given string. We'll cache the most recent results to avoid searching more than once, cancel existing searches when another begins (since it's a serial queue, this ensures we'll only have one search active at a time). (-[WKPDFView web_countStringMatches:options:maxCount:]): Count the number of matches for the given string, and inform the FindClient of the result. (-[WKPDFView _didFindMatch:]): When we find a match, create a view for it, highlight the match, and zoom so that it's in-view. (-[WKPDFView web_findString:options:maxCount:]): Incrementally search the document for the given string. We do an incremental search even if we have all of the results so that we can anchor the search in the right place if the new string is a prefix of the old string, etc. Wrap around appropriately when searching past the beginning or end of the document. If we have all of the results (there were less than maxCount results), look through the cached matches for the incrementally-found result and report its index to the client. (-[WKPDFView web_hideFindUI]): Dismiss the selection and clear some state so we start the next search afresh. * WebKit2.xcodeproj/project.pbxproj: 2015-03-27 Andreas Kling WebProcessProxy should not retain WebBackForwardListItems forever. Reviewed by Anders Carlsson. Have WebProcessProxy actually forget about a WebBackForwardListItem after it's removed from the WebBackForwardList. This ensures that we don't accumulate too many of these objects, which can get quite large due to the session state encoded in them. We already have graceful handling of the case where an incoming IPC message references a removed back/forward list item. * UIProcess/WebBackForwardList.cpp: (WebKit::WebBackForwardList::didRemoveItem): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::backForwardRemovedItem): * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::removeBackForwardItem): * UIProcess/WebProcessProxy.h: 2015-03-27 Simon Fraser Use the correct timebase to log scrollperf blank pixel counts on iOS https://bugs.webkit.org/show_bug.cgi?id=143149 Reviewed by Tim Horton. MobileSafari and WebKit need to collect scrollperf data using the same timebase; MobileSafari can't call WTF::monotonicallyIncreasingTime(), so use CFAbsoluteTimeGetCurrent() everywhere. * UIProcess/Cocoa/RemoteLayerTreeScrollingPerformanceData.mm: (WebKit::RemoteLayerTreeScrollingPerformanceData::appendBlankPixelCount): 2015-03-27 Chris Dumez [WK2][NetworkCache] Rename requestNeedsRevalidation() to requestRequiresRevalidation() https://bugs.webkit.org/show_bug.cgi?id=143137 Reviewed by Antti Koivisto. Rename requestNeedsRevalidation() to requestRequiresRevalidation() as I think it is more accurate. It is not the request that needs revalidating. The requests just requires us to revalidate the response. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::requestRequiresRevalidation): (WebKit::NetworkCache::canUse): (WebKit::NetworkCache::requestNeedsRevalidation): Deleted. 2015-03-27 Oliver Hunt Forward additional CFNetwork ATS information to child processes https://bugs.webkit.org/show_bug.cgi?id=143136 Reviewed by Anders Carlsson. Add additional process creation parameter information, and pass it to the child processes that actually use CFNetwork. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): * Shared/Network/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode): (WebKit::NetworkProcessCreationParameters::decode): * Shared/Network/NetworkProcessCreationParameters.h: * Shared/Plugins/PluginProcessCreationParameters.cpp: (WebKit::PluginProcessCreationParameters::encode): (WebKit::PluginProcessCreationParameters::decode): * Shared/Plugins/PluginProcessCreationParameters.h: * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::platformInitializeNetworkProcess): * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: (WebKit::PluginProcessProxy::platformInitializePluginProcess): * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-03-27 Chris Dumez [WK2][NetworkCache] We only cache responses with status codes that are cacheable by default https://bugs.webkit.org/show_bug.cgi?id=143125 Reviewed by Antti Koivisto. We Previously only cached responses with status codes that are cacheable by default [1]. However, RFC 7234 [2] allows us to cache responses with other status codes, as long as they have explicit headers allowing caching: - 'Expires' header field - 'max-age' response directive This patch updates our caching policy accordingly to improve efficiency. [1] http://tools.ietf.org/html/rfc7231#page-48 [2] http://tools.ietf.org/html/rfc7234#section-4.3.2 Test: http/tests/cache/disk-cache/disk-cache-307-status-code.html * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::canStore): 2015-03-26 Antti Koivisto Respect cache-control directives in request https://bugs.webkit.org/show_bug.cgi?id=143121 rdar://problem/19714040 Reviewed by Chris Dumez. Better support for https://tools.ietf.org/html/rfc7234#section-5.2.1 * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::canUse): Consider requests with Cache-control: no-cache and max-age=0 expired. (WebKit::NetworkCache::canStore): Don't store requests with Cache-control: no-store. (WebKit::NetworkCache::Cache::store): * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm: (WebKit::NetworkCache::storeDecisionToDiagnosticKey): 2015-03-25 Jon Honeycutt iOS file upload panel menu items need icons Reviewed by Andy Estes. * Platform/spi/ios/UIKitSPI.h: Declare new SPI methods _UIImageGetWebKitTakePhotoOrVideoIcon and _UIImageGetWebKitPhotoLibraryIcon(). * UIProcess/ios/forms/WKFileUploadPanel.mm: (photoLibraryIcon): (cameraIcon): If UIKit SPI exists, use it. Otherwise, return nil. (-[WKFileUploadPanel _showDocumentPickerMenu]): Use icons. 2015-03-26 Enrica Casucci OS X build fix after r182037. Unreviewed. * UIProcess/API/mac/WKView.mm: (-[WKView _addFontPanelObserver]): (-[WKView removeWindowObservers]): (-[WKView observeValueForKeyPath:ofObject:change:context:]): 2015-03-26 Enrica Casucci iOS build fix after r182037. Unreviewed. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setEditable:]): 2015-03-26 Enrica Casucci REGRESSION(r1807689): Slower startup time for WKWebView. https://bugs.webkit.org/show_bug.cgi?id=143115 rdar://problem/20233711 Reviewed by Anders Carlsson. In http://trac.webkit.org/changeset/180768 we added an observer to track visibility of the NSFontPanel to ensure we could fetch the font information for the current selection when the panel first becomes visible. It turns out that adding the observer requires the shared font panel object to be created. That is apparently a very expensive operation that is regressing the initialization time for the WKWebView. We should initialize the NSFontPanel lazily, only when we make the entire view editable. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setEditable:]): * UIProcess/API/mac/WKView.mm: (-[WKView addWindowObserversForWindow:]): (-[WKView _addFontPanelObserver]): (-[WKView removeWindowObservers]): (-[WKView observeValueForKeyPath:ofObject:change:context:]): * UIProcess/API/mac/WKViewInternal.h: 2015-03-26 Alex Christensen Progress towards CMake on Mac. https://bugs.webkit.org/show_bug.cgi?id=143112 Reviewed by Chris Dumez. * CMakeLists.txt: * PlatformMac.cmake: * UIProcess/Cocoa/WebPageProxyCocoa.mm: 2015-03-26 Chris Dumez [WK2][Cocoa] Add private API to override the network disk cache size https://bugs.webkit.org/show_bug.cgi?id=143113 Reviewed by Antti Koivisto. Add private API to let the client override the network disk cache size. By default, the network disk cache is automatically determined based on the CacheModel and the available disk space. However, for testing purposes, it can be used for the client-side to be able to override the disk cache size. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::initializeNetworkProcess): * NetworkProcess/NetworkProcess.h: * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::setMaximumSize): * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformSetCacheModel): * Shared/Network/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode): (WebKit::NetworkProcessCreationParameters::decode): * Shared/Network/NetworkProcessCreationParameters.h: * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration diskCacheSizeOverride]): (-[_WKProcessPoolConfiguration setDiskCacheSizeOverride:]): * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): (WebKit::WebProcessPool::ensureNetworkProcess): * UIProcess/WebProcessPool.h: 2015-03-26 Andreas Kling [Darwin] Boost the web process QoS level while handling a synchronous IPC message. Reviewed by Antti Koivisto and Anders Carlsson. Add a mechanism for IPC::Connection to boost the main thread for the duration of processing a synchronous message. This fixes an issue where the UI process would block on a synchronous request to the web process that was being carried out at a lower QoS level. * Platform/IPC/Connection.cpp: (IPC::Connection::Connection): Save the main thread's pthread_t while we have a chance to retreive it. (IPC::Connection::processIncomingMessage): Optionally boost the main thread when processing an incoming message with the IsSyncMessage flag set. * Platform/IPC/Connection.h: (IPC::Connection::setShouldBoostMainThreadOnSyncMessage): Added. When this mode is enabled, Connection will give a temporary QoS override to the main thread when receiving a synchronous message. Ownership of the override is handed to the MessageDecoder, which resets the main thread QoS in its destructor. * Platform/IPC/MessageDecoder.cpp: (IPC::MessageDecoder::~MessageDecoder): Remove any QoS override owned by this message. * Platform/IPC/MessageDecoder.h: (IPC::MessageDecoder::setQOSClassOverride): Added. Takes ownership of a QoS override to make sure it stays in effect until this message has been dispatched. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeConnection): Set up main thread QoS boosting for the web process's connection to the UI process. 2015-03-26 Ryosuke Niwa Cursor doesn't change back to pointer when leaving Mail https://bugs.webkit.org/show_bug.cgi?id=132038 Reviewed by Anders Carlsson. Fixed the bug by adding a cursor rect and making the primary tracking area update the cursor so that AppKit will reset the cursor as it leaves the WebView. We use nil cursor here since we manually update the cursor by calling [NSCursor set]. * UIProcess/API/mac/WKView.mm: (-[WKView initWithFrame:processPool:configuration:webView:]): * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::recommendedScrollbarStyleDidChange): 2015-03-26 Michael Catanzaro [Linux] SeccompFilters: improve the port-agnostic whitelist https://bugs.webkit.org/show_bug.cgi?id=140064 Reviewed by Žan Doberšek. Allow the web process to access several files and directories that it was previously prohibited from accessing. This makes the web process much less likely to break. * Shared/linux/SeccompFilters/SyscallPolicy.cpp: (WebKit::SyscallPolicy::addDefaultWebProcessPolicy): 2015-03-26 Antti Koivisto Remove unneeded isConditionalRequest check from NetworkResourceLoader https://bugs.webkit.org/show_bug.cgi?id=143096 Reviewed by Anders Carlsson. This check is leftover from implementation that allowed disk cache to validate conditional request itself. The case can't happen as NetworkCache canRetrieve test does not allow conditional requests in the first place. * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveResponseAsync): (WebKit::isConditionalRequest): Deleted. 2015-03-26 Antti Koivisto Rename Storage::Entry to Storage::Record https://bugs.webkit.org/show_bug.cgi?id=143101 Reviewed by Chris Dumez. Lets have just one type called Entry in the cache code. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::retrieve): (WebKit::NetworkCache::Cache::store): (WebKit::NetworkCache::Cache::update): (WebKit::NetworkCache::Cache::traverse): (WebKit::NetworkCache::Cache::dumpContentsToFile): * NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): (WebKit::NetworkCache::Entry::encodeAsStorageRecord): (WebKit::NetworkCache::Entry::decodeStorageRecord): (WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord): (WebKit::NetworkCache::Entry::buffer): (WebKit::NetworkCache::Entry::shareableResourceHandle): (WebKit::NetworkCache::Entry::encode): Deleted. (WebKit::NetworkCache::Entry::decode): Deleted. (WebKit::NetworkCache::Entry::initializeBufferFromStorageEntry): Deleted. * NetworkProcess/cache/NetworkCacheEntry.h: (WebKit::NetworkCache::Entry::sourceStorageRecord): (WebKit::NetworkCache::Entry::sourceStorageEntry): Deleted. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::RecordMetaData::RecordMetaData): (WebKit::NetworkCache::decodeRecordMetaData): (WebKit::NetworkCache::decodeRecordHeader): (WebKit::NetworkCache::decodeRecord): (WebKit::NetworkCache::encodeRecordMetaData): (WebKit::NetworkCache::encodeRecordHeader): (WebKit::NetworkCache::Storage::dispatchReadOperation): (WebKit::NetworkCache::retrieveFromMemory): (WebKit::NetworkCache::Storage::store): (WebKit::NetworkCache::Storage::update): (WebKit::NetworkCache::Storage::traverse): (WebKit::NetworkCache::Storage::dispatchPendingWriteOperations): (WebKit::NetworkCache::Storage::dispatchFullWriteOperation): (WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation): (WebKit::NetworkCache::EntryMetaData::EntryMetaData): Deleted. (WebKit::NetworkCache::decodeEntryMetaData): Deleted. (WebKit::NetworkCache::decodeEntryHeader): Deleted. (WebKit::NetworkCache::decodeEntry): Deleted. (WebKit::NetworkCache::encodeEntryMetaData): Deleted. (WebKit::NetworkCache::encodeEntryHeader): Deleted. * NetworkProcess/cache/NetworkCacheStorage.h: 2015-03-26 Chris Dumez [WK2] Let the compiler generate the NetworkCache::Key move constructor https://bugs.webkit.org/show_bug.cgi?id=143079 Reviewed by Antti Koivisto. Let the compiler generate the NetworkCache::Key move constructor. The generated one will do exactly the same thing as the one we had except that it will move the m_hash member as well. I don't see any reason why we weren't moving this member before (it is an std::array). Also have the compiler generate a move assignment operator for consistency. Although it is not currently useful, it could be at some point. * NetworkProcess/cache/NetworkCacheKey.cpp: (WebKit::NetworkCache::Key::Key): Deleted. * NetworkProcess/cache/NetworkCacheKey.h: 2015-03-26 Chris Dumez [WK2][NetworkCache] Compute if a cached response has expired only when actually needed https://bugs.webkit.org/show_bug.cgi?id=143070 Reviewed by Antti Koivisto. Compute if a cached response has expired only when actually needed: - This is not a history navigation and - It does not have "Cache-Control: no-cache" header Previously, we would always determine if the response has expired and we often end up not using this information. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::responseHasExpired): (WebKit::NetworkCache::canUse): 2015-03-26 Zan Dobersek Avoid the Vector<> copy in WebTouchEvent constructor https://bugs.webkit.org/show_bug.cgi?id=143043 Reviewed by Carlos Garcia Campos. Have the WebTouchEvent accept a Vector<> rvalue. The relevant code is updated so the Vector<> object is moved through the call chain and finally into the WebTouchEvent constructor. * Shared/NativeWebTouchEvent.h: * Shared/WebEvent.h: * Shared/WebTouchEvent.cpp: (WebKit::WebTouchEvent::WebTouchEvent): * Shared/efl/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebTouchEvent): * Shared/gtk/NativeWebTouchEventGtk.cpp: (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): * Shared/gtk/WebEventFactory.cpp: (WebKit::WebEventFactory::createWebTouchEvent): * Shared/gtk/WebEventFactory.h: * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseTouchEvent): 2015-03-25 Chris Dumez [WK2] WebFrameLoaderClient::dispatchDecidePolicyForResponse() should always call the FramePolicyFunction https://bugs.webkit.org/show_bug.cgi?id=143036 Reviewed by Alexey Proskuryakov. WebFrameLoaderClient::dispatchDecidePolicyForResponse() should always call the FramePolicyFunction. Previously, it would fail to do in 2 cases: - m_frame->page() returns null or - webPage->sendSync() returns false If the FramePolicyFunction is not called, we will fail to clear the callback in the PolicyChecker and DocumentLoader::continueAfterContentPolicy() will not be called. DocumentLoader::continueAfterContentPolicy() is in charge of resetting m_waitingForContentPolicy flag to false. This could therefore explain the following assertion being hit in DocumentLoader::detachFromFrame() (see ): RELEASE_ASSERT(!m_waitingForContentPolicy) Also, as the PolicyChecker callback is not cleared, it could make it possible for DocumentLoader::continueAfterContentPolicy() to be called *after* the load is finished, when later canceling the PolicyCallback: FrameLoader::stopAllLoaders() -> PolicyChecker::stopCheck() -> PolicyCallback::cancel() -> DocumentLoader::continueAfterContentPolicy(PolicyIgnore) Calling continueAfterContentPolicy(PolicyIgnore) after the load is finished would be bad and could explain some of the crashes we've seen in DocumentLoader::continueAfterContentPolicy() -> DocumentLoader:: stopLoadingForPolicyChange() (see ). This patch also applies the same fix to dispatchDecidePolicyForNewWindowAction() and dispatchDecidePolicyForNavigationAction() as they use the same pattern. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction): (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): 2015-03-25 Tim Horton Add a preference to prevent "user-scalable=no" from having any effect https://bugs.webkit.org/show_bug.cgi?id=143032 Reviewed by Sam Weinig. * Shared/WebPreferencesDefinitions.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): Add a preference and push it to the ViewportConfiguration. 2015-03-25 Beth Dakin REGRESSION (r181660): Force click url preview doesn't have a TextIndicator in Mail https://bugs.webkit.org/show_bug.cgi?id=143064 -and corresponding- rdar://problem/20251440 Reviewed by Tim Horton. The TextIndicator was getting set to nil by the call to _dismissContentRelativeChildWindows in mouseDown. That line of code was added by http://trac.webkit.org/changeset/177242 to work around a bug in another component that has now been resolved, so it no longer appears to be necessary. * UIProcess/API/mac/WKView.mm: (-[WKView mouseDown:]): 2015-03-25 Anders Carlsson Add network and application cache directories to WebsiteDataStore https://bugs.webkit.org/show_bug.cgi?id=143063 Reviewed by Sam Weinig. Create a WebKit directory under ~/Library/Caches/ for non-sandboxed applications, and ~/Library/Caches for sandboxed applications. Create NetworkCache and OfflineWebApplicationCache subdirectories. These directories will be used with the modern WebKit API. * UIProcess/API/APIWebsiteDataStore.h: * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: (API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): (API::WebsiteDataStore::defaultDataStoreConfiguration): * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::WebsiteDataStore): * UIProcess/WebsiteData/WebsiteDataStore.h: 2015-03-25 Sam Weinig Address additional review feedback from https://bugs.webkit.org/show_bug.cgi?id=143059. * Shared/WebCompiledContentExtension.cpp: (WebKit::WebCompiledContentExtension::createFromCompiledContentExtensionData): * UIProcess/API/C/WKUserContentFilterRef.cpp: (WKUserContentFilterCreate): * UIProcess/API/Cocoa/_WKUserContentFilter.mm: (-[_WKUserContentFilter initWithName:serializedRules:]): 2015-03-25 Sam Weinig [Content Extensions] Convert content extension compiling to return error codes and write its output using a client https://bugs.webkit.org/show_bug.cgi?id=143059 Reviewed by Alex Christensen. * Shared/WebCompiledContentExtension.cpp: * Shared/WebCompiledContentExtension.h: (WebKit::LegacyContentExtensionCompilationClient::LegacyContentExtensionCompilationClient): (WebKit::LegacyContentExtensionCompilationClient::writeBytecode): (WebKit::LegacyContentExtensionCompilationClient::writeActions): Add subclass of ContentExtensionCompilationClient for use with the non-file backed content extensions. * UIProcess/API/C/WKUserContentFilterRef.cpp: (WKUserContentFilterCreate): * UIProcess/API/Cocoa/_WKUserContentFilter.mm: (-[_WKUserContentFilter initWithName:serializedRules:]): Update to use the new interface of compileRuleList(). 2015-03-25 Ryosuke Niwa Web Inspector: Switching tabs to window with inspector open prohibits typing into console https://bugs.webkit.org/show_bug.cgi?id=126800 Reviewed by Anders Carlsson. This is a regression from r85356 and r83814. These two patches made WKWebView clear its selection when WKView resigns the first responder without ever restoring it even if WKView later becomes the first responder again. This is problematic when a text field or a editing host element had been focused and selected prior to the resignation since the editing code uses the selection to determine the editability of the element. Fixed the bug by restoring selection in [WKView becomeFirstResponder] if the selection is empty. * UIProcess/API/mac/WKView.mm: (-[WKView becomeFirstResponder]): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::restoreSelectionInFocusedEditableElement): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::restoreSelectionInFocusedEditableElement): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-03-25 Beth Dakin REGRESSION (r181660): Safari navigates to link after a starting and canceling a force preview https://bugs.webkit.org/show_bug.cgi?id=143057 -and corresponding- rdar://problem/20251436 Reviewed by Tim Horton. Always call _page->immediateActionDidUpdate() so that the EventHandler’s ImmediateActionStage is appropriately updated. * UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]): Update the EventHandler’s ImmediateActionStage. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::immediateActionDidUpdate): 2015-03-25 Antti Koivisto Separate entry decoding from validation https://bugs.webkit.org/show_bug.cgi?id=143052 Reviewed by Chris Dumez. Make NetworkCache::Cache a class and move it to a file of its own. Move the encoding/decoding code there. * NetworkProcess/NetworkProcess.cpp: (WebKit::fetchDiskCacheEntries): (WebKit::clearDiskCacheEntries): * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::sendReplyToSynchronousRequest): (WebKit::NetworkResourceLoader::start): (WebKit::NetworkResourceLoader::sendBufferMaybeAborting): (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): (WebKit::NetworkResourceLoader::validateCacheEntry): * NetworkProcess/NetworkResourceLoader.h: * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::collectVaryingRequestHeaders): (WebKit::NetworkCache::canUse): Focused function for deciding if we can use a cache entry and if it needs validation. (WebKit::NetworkCache::Cache::retrieve): (WebKit::NetworkCache::Cache::store): (WebKit::NetworkCache::Cache::update): (WebKit::NetworkCache::Cache::traverse): (WebKit::NetworkCache::encodeStorageEntry): Deleted. (WebKit::NetworkCache::decodeStorageEntry): Deleted. * NetworkProcess/cache/NetworkCache.h: * NetworkProcess/cache/NetworkCacheEntry.cpp: Added. (WebKit::NetworkCache::Entry::Entry): (WebKit::NetworkCache::Entry::encode): (WebKit::NetworkCache::Entry::decode): (WebKit::NetworkCache::Entry::initializeBufferFromStorageEntry): (WebKit::NetworkCache::Entry::buffer): (WebKit::NetworkCache::Entry::shareableResourceHandle): (WebKit::NetworkCache::Entry::needsValidation): (WebKit::NetworkCache::Entry::setNeedsValidation): * NetworkProcess/cache/NetworkCacheEntry.h: Added. (WebKit::NetworkCache::Entry::key): (WebKit::NetworkCache::Entry::timeStamp): (WebKit::NetworkCache::Entry::response): (WebKit::NetworkCache::Entry::varyingRequestHeaders): (WebKit::NetworkCache::Entry::sourceStorageEntry): * NetworkProcess/cache/NetworkCacheStatistics.h: * NetworkProcess/cache/NetworkCacheStatisticsCocoa.mm: (WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey): (WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry): * WebKit2.xcodeproj/project.pbxproj: 2015-03-25 David Hyatt Add a pref to enable the new block-inside-inline model https://bugs.webkit.org/show_bug.cgi?id=143050 Reviewed by Sam Weinig. * Shared/WebPreferencesDefinitions.h: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetNewBlockInsideInlineModelEnabled): (WKPreferencesGetNewBlockInsideInlineModelEnabled): * UIProcess/API/C/WKPreferencesRefPrivate.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updatePreferences): 2015-03-25 Zan Dobersek [WK2] WebUserMediaClient::pageDestroyed() virtual method should be marked as override https://bugs.webkit.org/show_bug.cgi?id=143046 Reviewed by Carlos Garcia Campos. * WebProcess/WebCoreSupport/WebUserMediaClient.h: Mark the WebUserMediaClient::pageDestroyed() method, inherited from the WebCore::UserMediaClient, as an override. 2015-03-25 Zan Dobersek [GTK][WK2] WebPageProxy::failedToShowPopupMenu() virtual method should be marked as override https://bugs.webkit.org/show_bug.cgi?id=143045 Reviewed by Carlos Garcia Campos. * UIProcess/WebPageProxy.h: Mark the failedToShowPopupMenu(), inherited from the WebPopupMenuProxy::Client class, as overridden. 2015-03-25 Zan Dobersek [WK2] Clean up DrawingAreaImpl vtable overrides https://bugs.webkit.org/show_bug.cgi?id=143044 Reviewed by Carlos Garcia Campos. Declare virtual methods of the DrawingAreaImpl class as overridden where necessary. * WebProcess/WebPage/DrawingAreaImpl.h: (WebKit::DrawingAreaImpl::layerTreeStateIsFrozen): Deleted. (WebKit::DrawingAreaImpl::layerTreeHost): Deleted. 2015-03-24 Ryosuke Niwa Inspector doesn't get focused when opened in dock mode https://bugs.webkit.org/show_bug.cgi?id=143030 Reviewed by Anders Carlsson. The bug was caused by platformBringToFront and platformAttach calling makeFirstResponder on WKWebView, which aren't intended to become the first responder. Fixed the bug by calling makeFirstResponder on the WKView subview of the WKWebView, which is intended to be used as the first responder on behalf of the web view. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformBringToFront): (WebKit::WebInspectorProxy::platformAttach): 2015-03-24 Chris Dumez [WK2] Responses with 302 HTTP Status Code should not be cached https://bugs.webkit.org/show_bug.cgi?id=143028 Reviewed by Antti Koivisto. Responses with 302 HTTP Status Code should not be cached as per RFC 7231: http://tools.ietf.org/html/rfc7231#section-6.1 This patch updates our disk cache policy accordingly. Test: http/tests/cache/disk-cache/disk-cache-302-status-code.html * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::canStore): 2015-03-24 Anders Carlsson Fix crash in WebKit::RemoteObjectRegistry::sendInvocation https://bugs.webkit.org/show_bug.cgi?id=143027 rdar://problem/20208674 Reviewed by Sam Weinig. * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: (-[WKWebProcessPlugInBrowserContextController dealloc]): Make sure to invalidate the _WKRemoteObjectRegistry like we do in the UI process. 2015-03-24 Chris Dumez [WK2] Responses with 204 HTTP Status Code should be cacheable by default https://bugs.webkit.org/show_bug.cgi?id=143020 Reviewed by Antti Koivisto. Make responses with 204 HTTP Status Code cacheable by default, as per RFC 7231: http://tools.ietf.org/html/rfc7231#section-6.3.5 Test: http/tests/cache/disk-cache/disk-cache-204-status-code.html * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::canStore): 2015-03-24 Enrica Casucci [iOS] Remove unused keyboard code in WKSelectPopover class. https://bugs.webkit.org/show_bug.cgi?id=143021 Reviewed by Joseph Pecoraro. WKSelectPopover created an instance of UIKeyboard that was initialized in initWithView but never used. Removing the obsolete code. * UIProcess/ios/forms/WKFormSelectPopover.mm: (-[WKSelectPopover initWithView:hasGroups:]): 2015-03-24 Dan Bernstein WebKit2 part of Transforms are flattened in snapshots of on-screen WKWebViews https://bugs.webkit.org/show_bug.cgi?id=143023 Reviewed by Tim Horton. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): If the view is in a window, use CARenderServerRenderLayerWithTransform to synchronously capture a snapshot of its layer tree into an IOSurfcae, then call the completion handler with an image created from the IOSurface. 2015-03-24 Beth Dakin Add events related to force click gesture https://bugs.webkit.org/show_bug.cgi?id=142836 -and corresponding- rdar://problem/20210239 Reviewed by Dean Jackson. ActionMenuHitTestResult has a new bool indicating whether to not the HitTestResult will prevent default. * Shared/mac/ActionMenuHitTestResult.h: * Shared/mac/ActionMenuHitTestResult.mm: (WebKit::ActionMenuHitTestResult::encode): (WebKit::ActionMenuHitTestResult::decode): Send immediateActionDidUpdate and the normalized force over the the WebProcess. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::immediateActionDidUpdate): * UIProcess/WebPageProxy.h: We need a dummy animation controller when web content is overriding the default behavior. * UIProcess/mac/WKImmediateActionController.mm: Send along the update information. (-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]): Use the dummy animation controller if default has been prevented. (-[WKImmediateActionController _defaultAnimationController]): (-[WKImmediateActionController _updateImmediateActionItem]): Keep track of whether m_lastActionMenuHitTes prevented the default immediate action behavior. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Call dispatchMouseForceMayBegin() at hit test time. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): Call dispatchMouseForceChanged() if appropriate. (WebKit::WebPage::immediateActionDidUpdate): Call dispatchMouseForceCancelled() if appropriate. (WebKit::WebPage::immediateActionDidCancel): Call dispatchMouseForceDown() if appropriate. (WebKit::WebPage::immediateActionDidComplete): 2015-03-24 Anders Carlsson Fix designated initializer violations https://bugs.webkit.org/show_bug.cgi?id=143016 rdar://problem/20268858 Reviewed by Dan Bernstein. Move -[WKProcessPool _initWithConfiguration:] to a class extension so we can make it the designated initializer. * UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _initWithConfiguration:]): * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: 2015-03-24 Chris Dumez [WK2] Responses with 404 HTTP Status Code should be cacheable by default https://bugs.webkit.org/show_bug.cgi?id=143014 Reviewed by Antti Koivisto. Make responses with 404 HTTP Status Code cacheable by default, as per RFC 7231: http://tools.ietf.org/html/rfc7231#section-6.5.4 Test: http/tests/cache/disk-cache/disk-cache-404-status-code.html * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::canStore): 2015-03-24 Chris Dumez [WK2] Remove NetworkCache FIXME comment about caching responses to OPTIONS requests https://bugs.webkit.org/show_bug.cgi?id=143009 Reviewed by Andreas Kling. Remove NetworkCache FIXME comment about caching responses to OPTIONS method as RFC 7234 says "Responses to the OPTIONS method are not cacheable" [1]. [1] http://tools.ietf.org/html/rfc7231#page-31 * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::canRetrieve): 2015-03-24 Chris Dumez [WK2] NetworkCache retrievals fail for entries with no body https://bugs.webkit.org/show_bug.cgi?id=142979 Reviewed by Antti Koivisto. NetworkCache retrievals were failing for entries with no body because decodeEntry() doesn't correctly handle this case. In particular, the following check fails: "metaData.bodyOffset + metaData.bodySize == fileData.size()". This is because bodyOffset is pageSize-aligned. As a result, the following resource on apple.com is stored in the cache but we fail to reuse it and reload it from the network every time: http://images.apple.com/home/styles/promos.css This patch updates decodeEntry() to create a null Data object for the body if bodySize is 0. * NetworkProcess/cache/NetworkCacheDataCocoa.mm: (WebKit::NetworkCache::Data::data): Do not attempt to initialize m_data if m_dispatchData is null as the call to dispatch_data_create_map() would then crash. We now return null in this case. This is needed as decodeStorageEntry() in NetworkCache.cpp constructs a SharedBuffer from storageEntry.body.data() and the body may be null. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::decodeEntry): 2015-03-24 Chris Dumez [WK2] The WebKit network cache does not cache responses with "Content-Disposition: attachment" header https://bugs.webkit.org/show_bug.cgi?id=142989 Reviewed by Antti Koivisto. Update our WebKit network cache policy to cache responses with "Content-Disposition: attachment" header. There is no reason we cannot cache these and our memory cache already does. This was causing a decent amount of cache misses in the wild. I have noticed for example that when loading disney.com, we fail to cache the following resources because of this policy: http://pagead2.googlesyndication.com/pagead/osd.js http://pagead2.googlesyndication.com/pagead/show_companion_ad.js Those resources have Cache-Control headers that indicate they are meant to be cacheable. Test: http/tests/cache/disk-cache-validation-attachment.html * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::canStore): 2015-03-23 Joseph Pecoraro Unreviewed, another attempt to fix 32-bit build after r181881. * UIProcess/WebInspectorProxy.h: 2015-03-23 Joseph Pecoraro Unreviewed, attempt to fix 32-bit build after r181881. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/mac/WKView.mm: 2015-03-19 Timothy Hatcher Web Inspector: Support attaching to another view other than the WKView https://bugs.webkit.org/show_bug.cgi?id=142892 Reviewed by Tim Horton. * UIProcess/API/C/WKInspector.cpp: (WKInspectorAttach): Drive by fix so it used the last attachment side. * UIProcess/API/Cocoa/WKViewPrivate.h: * UIProcess/API/mac/WKView.mm: (-[WKView _inspectorAttachmentView]): Added. (-[WKView _setInspectorAttachmentView:]): Added. * UIProcess/WebInspectorProxy.cpp: (WebKit::WebInspectorProxy::createInspectorPage): (WebKit::WebInspectorProxy::attachAvailabilityChanged): Use platformCanAttach as a final check incase there is a different attachment view that the platform knows about. * UIProcess/WebInspectorProxy.h: (WebKit::WebInspectorProxy::attachmentSide): Added. (WebKit::WebInspectorProxy::platformCanAttach): Added. * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::attachmentViewDidChange): Added. (WebKit::WebInspectorProxy::closeTimerFired): (WebKit::WebInspectorProxy::platformCreateInspectorPage): (WebKit::WebInspectorProxy::platformCanAttach): (WebKit::WebInspectorProxy::inspectedViewFrameDidChange): (WebKit::WebInspectorProxy::platformInspectedWindowHeight): (WebKit::WebInspectorProxy::platformInspectedWindowWidth): (WebKit::WebInspectorProxy::platformAttach): (WebKit::WebInspectorProxy::platformDetach): Use the _inspectorAttachmentView and change how the frame change notification is observed and follow the attachment view as it changes. 2015-03-23 Tim Horton Images shared to photos via action menu are padded with zeroes at the end https://bugs.webkit.org/show_bug.cgi?id=142985 Reviewed by Anders Carlsson. * Shared/mac/ActionMenuHitTestResult.h: * Shared/mac/ActionMenuHitTestResult.mm: (WebKit::ActionMenuHitTestResult::encode): (WebKit::ActionMenuHitTestResult::decode): * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::performActionMenuHitTestAtLocation): Send the size of the image separately from the SharedMemory. The SharedMemory's size can be rounded up, so we need to keep the original size around in order to write the data to disk. * UIProcess/mac/WKActionMenuController.mm: (-[WKActionMenuController _hitTestResultImage]): (-[WKActionMenuController _addImageToPhotos:]): Use the image size instead of the SharedMemory size. 2015-03-23 Enrica Casucci [iOS] WebContent crash attempting to select text with a gesture at RenderObject::absoluteBoundingBoxRect. https://bugs.webkit.org/show_bug.cgi?id=142913 rdar://problem/16400033 Reviewed by Sam Weinig. When looking for the best candidate range at the given position, we should skip nodes that don't have a renderer. This is a speculative fix. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::rangeForWebSelectionAtPosition): 2015-03-23 Alexey Proskuryakov REGRESSION (Yosemite): WKView visibility notifications are messed up https://bugs.webkit.org/show_bug.cgi?id=142945 Reviewed by Tim Horton. As these notifications cannot be used by NSView subclasses, create a separate object for observing them. * UIProcess/API/mac/WKView.mm: (-[WKWindowVisibilityObserver initWithView:]): (-[WKWindowVisibilityObserver startObserving:]): (-[WKWindowVisibilityObserver stopObserving:]): (-[WKWindowVisibilityObserver _windowDidOrderOnScreen:]): (-[WKWindowVisibilityObserver _windowDidOrderOffScreen:]): (-[WKView addWindowObserversForWindow:]): (-[WKView removeWindowObservers]): Also, don't try to remove NSWindowWillOrderOffScreenNotification, which we never start to observe. (-[WKView initWithFrame:processPool:configuration:webView:]): * UIProcess/API/mac/WKViewInternal.h: 2015-03-23 Anders Carlsson Make platform/mac-wk2/plugins/destroy-during-async-npp-new.html work again. https://bugs.webkit.org/show_bug.cgi?id=133692 rdar://problem/17255947 Reviewed by Alexey Proskuryakov. Add plug-in destruction protectors around message receiver code that can call out to NPObjects or JavaScript where we need the plug-in to stay around after the call. * Shared/Plugins/NPObjectMessageReceiver.cpp: (WebKit::NPObjectMessageReceiver::invoke): (WebKit::NPObjectMessageReceiver::invokeDefault): (WebKit::NPObjectMessageReceiver::getProperty): (WebKit::NPObjectMessageReceiver::setProperty): (WebKit::NPObjectMessageReceiver::construct): 2015-03-23 Anders Carlsson Put the WK_NULLABLE_SPECIFIER in the right place for block parameters https://bugs.webkit.org/show_bug.cgi?id=142975 rdar://problem/19863930 Reviewed by Dan Bernstein. * UIProcess/API/Cocoa/WKNavigationDelegate.h: * UIProcess/API/Cocoa/WKUIDelegate.h: * UIProcess/API/Cocoa/WKWebView.h: 2015-03-23 Tim Horton Add a share item to the link action menu https://bugs.webkit.org/show_bug.cgi?id=142961 Reviewed by Beth Dakin. * UIProcess/mac/WKActionMenuController.mm: (-[WKActionMenuController _hitLinkURL]): Factor out _hitLinkURL from various places. (-[WKActionMenuController _openURLFromActionMenu:]): (-[WKActionMenuController _addToReadingListFromActionMenu:]): (-[WKActionMenuController _defaultMenuItemsForVideo]): (-[WKActionMenuController _defaultMenuItemsForImage]): (-[WKActionMenuController _createActionMenuItemForTag:]): (-[WKActionMenuController _createShareActionMenuItemForTag:withItems:]): Adopt -[NSMenuItem standardShareMenuItemWithItems]. All of the null-checking is unnecessary as it's impossible to enter these functions with a null image/etc. (-[WKActionMenuController _defaultMenuItemsForLink]): * Shared/API/c/WKActionMenuItemTypes.h: Add a 'Share' item to the link menu. 2015-03-23 Zan Dobersek [GTK] Use std::abs() in ClickCounter::currentClickCountForGdkButtonEvent() https://bugs.webkit.org/show_bug.cgi?id=142964 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (ClickCounter::currentClickCountForGdkButtonEvent): Use the STL's std::abs() instead of C's abs(). The templated nature of std::abs() ensures the proper computation that matches the types of the passed-in values, and shuts down a warning when compiling with Clang. 2015-03-23 Zan Dobersek [GTK][WK2] webkitBackForwardListChanged() should operate on a Vector reference https://bugs.webkit.org/show_bug.cgi?id=142963 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitBackForwardList.cpp: (webkitBackForwardListChanged): This function only reads from the passed-in Vector of removed items, so only a const lvalue reference to the Vector is needed. * UIProcess/API/gtk/WebKitBackForwardListPrivate.h: 2015-03-23 Carlos Garcia Campos [GTK] Add a configure option to build without Redirected XComposite Window https://bugs.webkit.org/show_bug.cgi?id=142865 Reviewed by Žan Doberšek. Use USE(REDIRECTED_XCOMPOSITE_WINDOW) instead of USE(TEXTURE_MAPPER_GL) && PLATFORM(X11). * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseRealize): Use the XID of the WebKitWebView window as native surface handle when REDIRECTED_XCOMPOSITE_WINDOW is disabled. (webkitWebViewRenderAcceleratedCompositingResults): (resizeWebKitWebViewBaseFromAllocation): (webkitWebViewBaseEnterAcceleratedCompositingMode): (webkitWebViewBaseExitAcceleratedCompositingMode): * UIProcess/gtk/RedirectedXCompositeWindow.cpp: * UIProcess/gtk/RedirectedXCompositeWindow.h: 2015-03-22 Eric Carlson [Mac] Enable WIRELESS_PLAYBACK_TARGET for WK1 https://bugs.webkit.org/show_bug.cgi?id=142940 Reviewed by Sam Weinig. * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::playbackTargetSelected): Argument to didChoosePlaybackTarget is now const. 2015-03-22 Anders Carlsson _WKWebsiteDataStore should clear WebSQL databases https://bugs.webkit.org/show_bug.cgi?id=142947 rdar://problem/20242174 Reviewed by Sam Weinig. * Shared/WebsiteData/WebsiteDataTypes.h: Add WebsiteDataTypeWebSQLDatabases. * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: (API::WebsiteDataStore::defaultDataStoreConfiguration): Initialize configuration.webSQLDatabaseDirectory. * UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: Add WKWebsiteDataTypeWebSQLDatabases. * UIProcess/API/Cocoa/_WKWebsiteDataRecord.mm: (dataTypesToString): Handle WKWebsiteDataTypeWebSQLDatabases. * UIProcess/API/Cocoa/_WKWebsiteDataRecordInternal.h: (WebKit::toWebsiteDataTypes): (WebKit::toWKWebsiteDataTypes): Handle WKWebsiteDataTypeWebSQLDatabases and WebsiteDataTypes::WebsiteDataTypeWebSQLDatabases. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::WebsiteDataStore): Initialize m_webSQLDatabaseDirectory and add a queue member variable. (WebKit::WebsiteDataStore::fetchData): Fetch database origins. (WebKit::WebsiteDataStore::removeData): Remove databases. * UIProcess/WebsiteData/WebsiteDataStore.h: Add new members. 2015-03-22 Dan Bernstein [iOS] Expose WebPageProxy::setInitialFocus as SPI https://bugs.webkit.org/show_bug.cgi?id=142951 Reviewed by Anders Carlsson. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): New SPI. Just calls through to WKWebContentView, but allows a nil completion handler. * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/mac/WKView.mm: (-[WKView becomeFirstResponder]): Pass an empty lambda for the new callback parameter to WebPageProxy::setInitialFocus. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setInitialFocus): Added a void callback parameter and made sure to call it. * UIProcess/WebPageProxy.h: * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): Added. Calls WebPageProxy::setInitialFocus, and once that completes, checks if anything was focused and if so, becomes first responder, then calls the completion handler. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setInitialFocus): Added a callbackID parameter, and made sure to send the callback message. Added a temporary change of m_userIsInteracting to true, so that the UI process won’t ignore any StartAssistingNode message resulting from the focus change. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Added a callbackID parameter to SetInitialFocus. 2015-03-21 Dean Jackson Remove the prefix for CSS Transforms https://bugs.webkit.org/show_bug.cgi?id=142927 Reviewed by Simon Fraser. Rename AnimatedPropertyWebkitTransform to AnimatedPropertyTransform. * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp: (IPC::ArgumentCoder::encode): 2015-03-21 Csaba Osztrogonác [EFL][GTK] Make WebKit2's generate-forwarding-headers.pl less verbose https://bugs.webkit.org/show_bug.cgi?id=142908 Reviewed by Žan Doberšek. * Scripts/generate-forwarding-headers.pl: (createForwardingHeadersForFramework): 2015-03-21 Commit Queue Unreviewed, rolling out r181824. https://bugs.webkit.org/show_bug.cgi?id=142935 Broke Windows build (Requested by ap on #webkit). Reverted changeset: "Remove the prefix for CSS Transforms" https://bugs.webkit.org/show_bug.cgi?id=142927 http://trac.webkit.org/changeset/181824 2015-03-20 Dean Jackson Remove the prefix for CSS Transforms https://bugs.webkit.org/show_bug.cgi?id=142927 Reviewed by Simon Fraser. Rename AnimatedPropertyWebkitTransform to AnimatedPropertyTransform. * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp: (IPC::ArgumentCoder::encode): 2015-03-20 Chris Dumez [WK2] NetworkCache retrievals sometimes fail on browser startup https://bugs.webkit.org/show_bug.cgi?id=142925 Reviewed by Antti Koivisto. NetworkCache retrievals sometimes fail on browser startup for resources that are actually cached. The reason is that we are using a bloom filter for performance reasons to avoid unnecessary disk I/O and this bloom filter is populated on start up in a background thread by traversing the cache files on disk. However, when restoring the tabs on start-up we sometimes query this bloom filter before it is completely populated and we thus fail to retrieve cached entries because we think they don't exist and don't check the disk. This patch adds an "isPopulatingContentsFilter" flag that is turned ON on start up while we are populating the bloon filter. We then bypass the bloom filter and send queries directly to disk on start up if this flag is ON. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::initialize): (WebKit::NetworkCache::Storage::retrieve): (WebKit::NetworkCache::Storage::dispatchPendingWriteOperations): (WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation): * NetworkProcess/cache/NetworkCacheStorage.h: (WebKit::NetworkCache::Storage::cacheMayContain): 2015-03-20 Chris Dumez [WK2] Allow stale content when restoring the browser's session state https://bugs.webkit.org/show_bug.cgi?id=142916 Reviewed by Darin Adler. Allow stale content when restoring the browser's session state (restoring all tabs from previous session), e.g. - Via History > Reopen All windows from previous session on Safari - Happens on startup for MobileSafari I have verified that using "Open in tabs" on a bookmarks folder still does fresh loads (rdar://problem/8131355) as it is not using the restoreFromSessionState() code path. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reattachToWebProcessForReload): (WebKit::WebPageProxy::reattachToWebProcessWithItem): (WebKit::WebPageProxy::goForward): (WebKit::WebPageProxy::goBack): (WebKit::WebPageProxy::goToBackForwardItem): (WebKit::WebPageProxy::restoreFromSessionState): * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::goToBackForwardItem): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-03-20 Beth Dakin [Immediate Actions] Should re-enable immediate actions for iBooks https://bugs.webkit.org/show_bug.cgi?id=142915 -and corresponding- rdar://problem/19585689 Reviewed by Tim Horton. * UIProcess/API/mac/WKView.mm: (-[WKView initWithFrame:processPool:configuration:webView:]): 2015-03-20 Alex Christensen Progress towards CMake on Mac. https://bugs.webkit.org/show_bug.cgi?id=136003 Reviewed by Chris Dumez. * PlatformMac.cmake: Add include directories and forwarding headers. * Shared/API/APIObject.h: (API::ObjectImpl::operator new): * UIProcess/DrawingAreaProxy.h: (WebKit::DrawingAreaProxy::intrinsicContentSizeDidChange): * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: Fix some unused parameter warnings. 2015-03-20 Gyuyoung Kim [CMake] Remove duplicated cmake function calls in WebKit2/CMakeLists.txt https://bugs.webkit.org/show_bug.cgi?id=142901 Reviewed by Csaba Osztrogonác. add_depencencies(), install() can support multiple targets or location. We don't need to call it twice. * CMakeLists.txt: Additionaly move -DBUILDING_WEBKIT to PlatformGTK.cmake, because it is only used by GTK port. 2015-03-20 Zan Dobersek [GTK] Disable accelerated compositing on Wayland https://bugs.webkit.org/show_bug.cgi?id=142877 Reviewed by Carlos Garcia Campos. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseCreateWebPage): As was done in the past, we should disable accelerated compositing on Wayland until the proper support for it lands. 2015-03-19 Andy Estes [Content Filtering] Add tests for unblock requests https://bugs.webkit.org/show_bug.cgi?id=142900 Reviewed by Andreas Kling. * UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): Called WebFrameProxy::contentFilterDidBlockLoad. * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::didStartProvisionalLoad): Assigned a default-constructed ContentFilterUnblockHandler instead of calling clear(). (WebKit::WebFrameProxy::didHandleContentFilterUnblockNavigation): Renamed from contentFilterDidHandleNavigationAction. Updated to use ContentFilterUnblockHandler's new API. (WebKit::WebFrameProxy::contentFilterDidHandleNavigationAction): Deleted. * UIProcess/WebFrameProxy.h: (WebKit::WebFrameProxy::contentFilterDidBlockLoad): Renamed from setContentFilterUnblockHandler. (WebKit::WebFrameProxy::setContentFilterUnblockHandler): Deleted. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction): Called WebFrameProxy::didHandleContentFilterUnblockNavigation. * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::contentFilterDidBlockLoad): If the unblock handler needs the UI process, send WebPageProxy::ContentFilterDidBlockLoadForFrame. Oterwise, call PolicyChecker::setContentFilterUnblockHandler. 2015-03-20 Zan Dobersek [GTK] Properly guard X11-specific code in BackingStore::createBackend() https://bugs.webkit.org/show_bug.cgi?id=142875 Reviewed by Martin Robinson. * UIProcess/cairo/BackingStoreCairo.cpp: (WebKit::BackingStore::createBackend): Guard the GTK- and X11-specific bit of code with PLATFORM(GTK) and PLATFORM(X11). Testing GDK_WINDOWING_X11 ensures that the GTK+ dependency has X11 support, but does not ensure that WebKitGTK+ has been configured to build for X11 environments (which is what PLATFORM(X11) ensures). 2015-03-19 Chris Dumez [WK2] We should allow stale content when restoring a killed / crashed WebProcess https://bugs.webkit.org/show_bug.cgi?id=142893 Reviewed by Antti Koivisto. Allow stale content when restoring a killed / crashed WebProcess (similarly to a history navigation). This is actually what was intended as we call WebPage::goToBackForwardItem() in this case, which uses IndexedBackForward load type. However, this value was then ignored in FrameLoader::loadDifferentDocumentItem(). This patch gets rid of the special casing in FrameLoader::loadDifferentDocumentItem() and makes it clear at call sites when calling goToBackForwardItem() if we should allow stale content or not. If goToBackForwardItem() is called with the allowStaleContent flag off, we'll keep using the IndexedBackForward frame load type. However, if the flag is on, we'll use the Standard frame load type and do a fresh load. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reattachToWebProcessForReload): Set allowStaleContent flag to true as we want to allow stale content when reloading a WebProcess after it crashed or was killed (behavior change). (WebKit::WebPageProxy::reattachToWebProcessWithItem): Add allowStaleContent parameter so that call sites can decide which policy to use. (WebKit::WebPageProxy::goForward): (WebKit::WebPageProxy::goBack): Set allowStaleContent flag to true as this is our policy for history navigations. (WebKit::WebPageProxy::goToBackForwardItem): Add allowStaleContent parameter so that the call site can let us know what to do. This is useful as this is called not only for indexed back / forward navigations (allowing stale content) but also for restoring session state (forbidding state content: ). (WebKit::WebPageProxy::restoreFromSessionState): Call goToBackForwardItem() with allowStaleContent flag set to false as users expect fresh contents in this case. This method is called when: - Tabs are restored on Safari / MobileSafari startup - Tabs are restored via "History > Reopen All windows from last session" * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::goToBackForwardItem): Add allowStaleContent parameter and use "Standard" frame load type instead of "IndexedBackForward" if it is false. This is needed as "IndexedBackForward" frame load type allows using stale content. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Add allowStaleContent flag to GoToBackForwardItem message. 2015-03-19 Eric Carlson [Mac] Move MediaPlaybackTargetPicker https://bugs.webkit.org/show_bug.cgi?id=142889 Move WebMediaPlaybackTargetPickerProxy to WebCore so it can be used by both WK2 and WK1. Reviewed by Tim Horton. * UIProcess/PageClient.h: * UIProcess/WebMediaPlaybackTargetPickerProxy.cpp: Removed. * UIProcess/WebMediaPlaybackTargetPickerProxy.h: Removed. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::devicePickerProxy): * UIProcess/WebPageProxy.h: * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::createPlaybackTargetPicker): * UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.h: Removed. * UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.mm: Removed. * WebKit2.xcodeproj/project.pbxproj: 2015-03-19 Jessie Berlin 32-bit build fix after r181770. * UIProcess/mac/WKFullScreenWindowController.mm: (-[WKFullScreenWindowController initWithWindow:webView:]): 2015-03-19 Anders Carlsson Add support for deleting individual cache entries https://bugs.webkit.org/show_bug.cgi?id=142886 Reviewed by Antti Koivisto. * NetworkProcess/NetworkProcess.cpp: (WebKit::fetchDiskCacheEntries): Remove an unnecessary call to cfURLCacheOrigins(). (WebKit::clearDiskCacheEntries): Helper function for clearing disk cache entries. This handles both the old and new cache implementations. (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): Call clearDiskCacheEntries if needed. 2015-03-19 Jer Noble [WK2][Mac] Fullscreen animations with mismatched aspect ratios are "squished". https://bugs.webkit.org/show_bug.cgi?id=142132 Reviewed by Tim Horton. Use CALayer animations for the transition into and out of fullscreen. The fullscreen transition consists of three separate animations: 1. An opacity animation for the black backdrop behind the fullscreen content 2. A scale/translation animation from fullscreen element's initial screen to its final one. 3. A clip animation from the fullscreen element's initial aspect ratio to its final one. The opacity animation will apply to the fullscreen window's content view's layer's background color. To separately animate the transform and mask of the web view's content, a layer-backed subview is added to the content view, and the scale/translation & clip animations are applied to its transform property and mask layer respectively. Utility methods to create each animation have been added, and each includes a parameter for the direction of the animation, so that the same methods can be used for entering and exiting fullscreen transitions. The user-visible changes to this new transition are when the aspect ratios of the initial and final screen locations are different: previously the transition would use a scale transform to "squish" the fullscreen content into the initial aspect ratio. The new transition instead "clips" the fullscreen content to the initial aspect ratio. For common operations such a