summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/WebProcess.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-10-17 16:21:14 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2012-10-17 16:21:14 +0200
commit8995b83bcbfbb68245f779b64e5517627c6cc6ea (patch)
tree17985605dab9263cc2444bd4d45f189e142cca7c /Source/WebKit2/WebProcess/WebProcess.cpp
parentb9c9652036d5e9f1e29c574f40bc73a35c81ace6 (diff)
downloadqtwebkit-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.cpp102
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)