diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-17 16:21:14 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-17 16:21:14 +0200 |
commit | 8995b83bcbfbb68245f779b64e5517627c6cc6ea (patch) | |
tree | 17985605dab9263cc2444bd4d45f189e142cca7c /Source/WebKit2/WebProcess/WebProcess.cpp | |
parent | b9c9652036d5e9f1e29c574f40bc73a35c81ace6 (diff) | |
download | qtwebkit-8995b83bcbfbb68245f779b64e5517627c6cc6ea.tar.gz |
Imported WebKit commit cf4f8fc6f19b0629f51860cb2d4b25e139d07e00 (http://svn.webkit.org/repository/webkit/trunk@131592)
New snapshot that includes the build fixes for Mac OS X 10.6 and earlier as well
as the previously cherry-picked changes
Diffstat (limited to 'Source/WebKit2/WebProcess/WebProcess.cpp')
-rw-r--r-- | Source/WebKit2/WebProcess/WebProcess.cpp | 102 |
1 files changed, 40 insertions, 62 deletions
diff --git a/Source/WebKit2/WebProcess/WebProcess.cpp b/Source/WebKit2/WebProcess/WebProcess.cpp index de1832459..6f67ed022 100644 --- a/Source/WebKit2/WebProcess/WebProcess.cpp +++ b/Source/WebKit2/WebProcess/WebProcess.cpp @@ -26,10 +26,8 @@ #include "config.h" #include "WebProcess.h" -#include "AuthenticationManager.h" #include "DownloadManager.h" #include "InjectedBundle.h" -#include "InjectedBundleMessageKinds.h" #include "InjectedBundleUserMessageCoders.h" #include "SandboxExtension.h" #include "StatisticsData.h" @@ -160,9 +158,6 @@ WebProcess::WebProcess() , m_notificationManager(this) #endif , m_iconDatabaseProxy(this) -#if ENABLE(PLUGIN_PROCESS) - , m_disablePluginProcessMessageTimeout(false) -#endif #if USE(SOUP) , m_soupRequestManager(this) #endif @@ -251,9 +246,6 @@ void WebProcess::initializeWebProcess(const WebProcessCreationParameters& parame setDefaultRequestTimeoutInterval(parameters.defaultRequestTimeoutInterval); - for (size_t i = 0; i < parameters.mimeTypesWithCustomRepresentation.size(); ++i) - m_mimeTypesWithCustomRepresentations.add(parameters.mimeTypesWithCustomRepresentation[i]); - if (parameters.shouldAlwaysUseComplexTextCodePath) setAlwaysUsesComplexTextCodePath(true); @@ -264,10 +256,6 @@ void WebProcess::initializeWebProcess(const WebProcessCreationParameters& parame WebCore::ResourceHandle::setPrivateBrowsingStorageSessionIdentifierBase(parameters.uiProcessBundleIdentifier); #endif -#if ENABLE(PLUGIN_PROCESS) - m_disablePluginProcessMessageTimeout = parameters.disablePluginProcessMessageTimeout; -#endif - setTerminationTimeout(parameters.terminationTimeout); } @@ -354,7 +342,7 @@ void WebProcess::visitedLinkStateChanged(const Vector<WebCore::LinkHash>& linkHa HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::const_iterator it = m_pageGroupMap.begin(); HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::const_iterator end = m_pageGroupMap.end(); for (; it != end; ++it) - Page::visitedStateChanged(PageGroup::pageGroup(it->second->identifier()), linkHashes[i]); + Page::visitedStateChanged(PageGroup::pageGroup(it->value->identifier()), linkHashes[i]); } pageCache()->markPagesForVistedLinkStyleRecalc(); @@ -366,7 +354,7 @@ void WebProcess::allVisitedLinkStateChanged() HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::const_iterator it = m_pageGroupMap.begin(); HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::const_iterator end = m_pageGroupMap.end(); for (; it != end; ++it) - Page::allVisitedStateChanged(PageGroup::pageGroup(it->second->identifier())); + Page::allVisitedStateChanged(PageGroup::pageGroup(it->value->identifier())); pageCache()->markPagesForVistedLinkStyleRecalc(); } @@ -542,7 +530,7 @@ WebPage* WebProcess::focusedWebPage() const { HashMap<uint64_t, RefPtr<WebPage> >::const_iterator end = m_pageMap.end(); for (HashMap<uint64_t, RefPtr<WebPage> >::const_iterator it = m_pageMap.begin(); it != end; ++it) { - WebPage* page = (*it).second.get(); + WebPage* page = (*it).value.get(); if (page->windowAndWebPageAreFocused()) return page; } @@ -560,14 +548,14 @@ void WebProcess::createWebPage(uint64_t pageID, const WebPageCreationParameters& // link) the WebPage gets created both in the synchronous handler and through the normal way. HashMap<uint64_t, RefPtr<WebPage> >::AddResult result = m_pageMap.add(pageID, 0); if (result.isNewEntry) { - ASSERT(!result.iterator->second); - result.iterator->second = WebPage::create(pageID, parameters); + ASSERT(!result.iterator->value); + result.iterator->value = WebPage::create(pageID, parameters); // Balanced by an enableTermination in removeWebPage. disableTermination(); } - ASSERT(result.iterator->second); + ASSERT(result.iterator->value); } void WebProcess::removeWebPage(uint64_t pageID) @@ -638,11 +626,6 @@ void WebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Mes return; } - if (messageID.is<CoreIPC::MessageClassAuthenticationManager>()) { - AuthenticationManager::shared().didReceiveMessage(connection, messageID, arguments); - return; - } - if (messageID.is<CoreIPC::MessageClassWebApplicationCacheManager>()) { WebApplicationCacheManager::shared().didReceiveMessage(connection, messageID, arguments); return; @@ -660,11 +643,6 @@ void WebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Mes } #endif - if (messageID.is<CoreIPC::MessageClassWebGeolocationManager>()) { - m_geolocationManager.didReceiveMessage(connection, messageID, arguments); - return; - } - #if ENABLE(BATTERY_STATUS) if (messageID.is<CoreIPC::MessageClassWebBatteryManager>()) { m_batteryManager.didReceiveMessage(connection, messageID, arguments); @@ -712,12 +690,17 @@ void WebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Mes return; } #endif - - if (messageID.is<CoreIPC::MessageClassInjectedBundle>()) { - if (!m_injectedBundle) + + if (messageID.is<CoreIPC::MessageClassWebPageGroupProxy>()) { + uint64_t pageGroupID = arguments->destinationID(); + if (!pageGroupID) return; - m_injectedBundle->didReceiveMessage(connection, messageID, arguments); - return; + + WebPageGroupProxy* pageGroupProxy = webPageGroup(pageGroupID); + if (!pageGroupProxy) + return; + + pageGroupProxy->didReceiveMessage(connection, messageID, arguments); } uint64_t pageID = arguments->destinationID(); @@ -760,10 +743,6 @@ void WebProcess::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::Message // we'll let it slide. } -void WebProcess::syncMessageSendTimedOut(CoreIPC::Connection*) -{ -} - void WebProcess::didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, bool& didHandleMessage) { if (messageID.is<CoreIPC::MessageClassWebProcess>()) { @@ -804,11 +783,11 @@ WebPageGroupProxy* WebProcess::webPageGroup(const WebPageGroupData& pageGroupDat { HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::AddResult result = m_pageGroupMap.add(pageGroupData.pageGroupID, 0); if (result.isNewEntry) { - ASSERT(!result.iterator->second); - result.iterator->second = WebPageGroupProxy::create(pageGroupData); + ASSERT(!result.iterator->value); + result.iterator->value = WebPageGroupProxy::create(pageGroupData); } - return result.iterator->second.get(); + return result.iterator->value.get(); } #if ENABLE(WEB_INTENTS) @@ -831,26 +810,6 @@ void WebProcess::removeMessagePortChannel(uint64_t channelID) } #endif -static bool canPluginHandleResponse(const ResourceResponse& response) -{ - String pluginPath; - bool blocked; - - if (!WebProcess::shared().connection()->sendSync(Messages::WebProcessProxy::GetPluginPath(response.mimeType(), response.url().string()), Messages::WebProcessProxy::GetPluginPath::Reply(pluginPath, blocked), 0)) - return false; - - return !blocked && !pluginPath.isEmpty(); -} - -bool WebProcess::shouldUseCustomRepresentationForResponse(const ResourceResponse& response) const -{ - if (!m_mimeTypesWithCustomRepresentations.contains(response.mimeType())) - return false; - - // If a plug-in exists that claims to support this response, it should take precedence over the custom representation. - return !canPluginHandleResponse(response); -} - void WebProcess::clearResourceCaches(ResourceCachesToClear resourceCachesToClear) { platformClearResourceCaches(resourceCachesToClear); @@ -934,7 +893,7 @@ static void fromCountedSetToHashMap(TypeCountSet* countedSet, HashMap<String, ui { TypeCountSet::const_iterator end = countedSet->end(); for (TypeCountSet::const_iterator it = countedSet->begin(); it != end; ++it) - map.set(it->first, it->second); + map.set(it->key, it->value); } static void getWebCoreMemoryCacheStatistics(Vector<HashMap<String, uint64_t> >& result) @@ -1046,6 +1005,25 @@ void WebProcess::setJavaScriptGarbageCollectorTimerEnabled(bool flag) gcController().setJavaScriptGarbageCollectorTimerEnabled(flag); } +void WebProcess::postInjectedBundleMessage(const CoreIPC::DataReference& messageData) +{ + InjectedBundle* injectedBundle = WebProcess::shared().injectedBundle(); + if (!injectedBundle) + return; + + CoreIPC::ArgumentDecoder messageDecoder(messageData.data(), messageData.size()); + + String messageName; + if (!messageDecoder.decode(messageName)) + return; + + RefPtr<APIObject> messageBody; + if (!messageDecoder.decode(InjectedBundleUserMessageDecoder(messageBody))) + return; + + injectedBundle->didReceiveMessage(messageName, messageBody.get()); +} + #if ENABLE(PLUGIN_PROCESS) void WebProcess::pluginProcessCrashed(CoreIPC::Connection*, const String& pluginPath) { @@ -1107,7 +1085,7 @@ void WebProcess::setTextCheckerState(const TextCheckerState& textCheckerState) HashMap<uint64_t, RefPtr<WebPage> >::iterator end = m_pageMap.end(); for (HashMap<uint64_t, RefPtr<WebPage> >::iterator it = m_pageMap.begin(); it != end; ++it) { - WebPage* page = (*it).second.get(); + WebPage* page = (*it).value.get(); if (continuousSpellCheckingTurnedOff) page->unmarkAllMisspellings(); if (grammarCheckingTurnedOff) |