Commit 227df473 authored by andersca@apple.com's avatar andersca@apple.com

2011-04-04 Anders Carlsson <andersca@apple.com>

        Reviewed by Dan Bernstein.

        Get rid of WebContext::process() in more places
        https://bugs.webkit.org/show_bug.cgi?id=57787

        Migrate calls to WebContext::process() over to sendToAllProcesses and
        sendToAllProcessesRelaunchingThemIfNecessary.

        Add FIXMEs for things that need to be fixed in order to support multiple web processes.
                
        * UIProcess/Downloads/DownloadProxy.cpp:
        (WebKit::DownloadProxy::cancel):
        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
        (WebKit::WebPluginSiteDataManager::getSitesWithData):
        (WebKit::WebPluginSiteDataManager::clearSiteData):
        * UIProcess/VisitedLinkProvider.cpp:
        (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
        * UIProcess/WebApplicationCacheManagerProxy.cpp:
        (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins):
        (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
        (WebKit::WebApplicationCacheManagerProxy::deleteAllEntries):
        * UIProcess/WebCookieManagerProxy.cpp:
        (WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
        (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
        * UIProcess/WebDatabaseManagerProxy.cpp:
        (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
        (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
        (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
        (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
        (WebKit::WebDatabaseManagerProxy::deleteAllDatabases):
        (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
        * UIProcess/WebGeolocationManagerProxy.cpp:
        (WebKit::WebGeolocationManagerProxy::providerDidChangePosition):
        (WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition):
        * UIProcess/WebIconDatabase.cpp:
        (WebKit::WebIconDatabase::getLoadDecisionForIconURL):
        (WebKit::WebIconDatabase::didFinishURLImport):
        * UIProcess/WebKeyValueStorageManagerProxy.cpp:
        (WebKit::WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins):
        (WebKit::WebKeyValueStorageManagerProxy::deleteEntriesForOrigin):
        (WebKit::WebKeyValueStorageManagerProxy::deleteAllEntries):
        * UIProcess/WebMediaCacheManagerProxy.cpp:
        (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache):
        (WebKit::WebMediaCacheManagerProxy::clearCacheForHostname):
        (WebKit::WebMediaCacheManagerProxy::clearCacheForAllHostnames):
        * UIProcess/WebResourceCacheManagerProxy.cpp:
        (WebKit::WebResourceCacheManagerProxy::getCacheOrigins):
        (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin):
        (WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins):


git-svn-id: svn://svn.chromium.org/blink/trunk@82873 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 76d97b5f
2011-04-04 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Get rid of WebContext::process() in more places
https://bugs.webkit.org/show_bug.cgi?id=57787
Migrate calls to WebContext::process() over to sendToAllProcesses and
sendToAllProcessesRelaunchingThemIfNecessary.
Add FIXMEs for things that need to be fixed in order to support multiple web processes.
* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::cancel):
* UIProcess/Plugins/WebPluginSiteDataManager.cpp:
(WebKit::WebPluginSiteDataManager::getSitesWithData):
(WebKit::WebPluginSiteDataManager::clearSiteData):
* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
* UIProcess/WebApplicationCacheManagerProxy.cpp:
(WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins):
(WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
(WebKit::WebApplicationCacheManagerProxy::deleteAllEntries):
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
* UIProcess/WebDatabaseManagerProxy.cpp:
(WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
(WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
(WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
(WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
(WebKit::WebDatabaseManagerProxy::deleteAllDatabases):
(WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
* UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::providerDidChangePosition):
(WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition):
* UIProcess/WebIconDatabase.cpp:
(WebKit::WebIconDatabase::getLoadDecisionForIconURL):
(WebKit::WebIconDatabase::didFinishURLImport):
* UIProcess/WebKeyValueStorageManagerProxy.cpp:
(WebKit::WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins):
(WebKit::WebKeyValueStorageManagerProxy::deleteEntriesForOrigin):
(WebKit::WebKeyValueStorageManagerProxy::deleteAllEntries):
* UIProcess/WebMediaCacheManagerProxy.cpp:
(WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache):
(WebKit::WebMediaCacheManagerProxy::clearCacheForHostname):
(WebKit::WebMediaCacheManagerProxy::clearCacheForAllHostnames):
* UIProcess/WebResourceCacheManagerProxy.cpp:
(WebKit::WebResourceCacheManagerProxy::getCacheOrigins):
(WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin):
(WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins):
2011-04-04 Alexey Proskuryakov <ap@apple.com>
Reviewed by Dan Bernstein.
......
......@@ -65,7 +65,8 @@ void DownloadProxy::cancel()
if (!m_webContext)
return;
m_webContext->process()->send(Messages::WebProcess::CancelDownload(m_downloadID), 0);
// FIXME (Multi-WebProcess): Downloads shouldn't be handled in the web process.
m_webContext->sendToAllProcesses(Messages::WebProcess::CancelDownload(m_downloadID));
}
void DownloadProxy::invalidate()
......
......@@ -167,8 +167,10 @@ void WebPluginSiteDataManager::getSitesWithData(PassRefPtr<ArrayCallback> prpCal
Vector<String> pluginPaths;
m_webContext->pluginInfoStore()->getPluginPaths(pluginPaths);
m_webContext->ensureWebProcess();
m_webContext->process()->send(Messages::WebProcess::GetSitesWithPluginData(pluginPaths, callbackID), 0);
// FIXME (Multi-WebProcess): When multi-process is enabled, we must always use a plug-in process for this,
// so this code should just be removed.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebProcess::GetSitesWithPluginData(pluginPaths, callbackID));
#endif
}
......@@ -226,8 +228,10 @@ void WebPluginSiteDataManager::clearSiteData(ImmutableArray* sites, uint64_t fla
m_webContext->relaunchProcessIfNecessary();
Vector<String> pluginPaths;
m_webContext->pluginInfoStore()->getPluginPaths(pluginPaths);
m_webContext->ensureWebProcess();
m_webContext->process()->send(Messages::WebProcess::ClearPluginSiteData(pluginPaths, sitesVector, flags, maxAgeInSeconds, callbackID), 0);
// FIXME (Multi-WebProcess): When multi-process is enabled, we must always use a plug-in process for this,
// so this code should just be removed.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebProcess::ClearPluginSiteData(pluginPaths, sitesVector, flags, maxAgeInSeconds, callbackID));
#endif
}
......
......@@ -163,17 +163,19 @@ void VisitedLinkProvider::pendingVisitedLinksTimerFired()
if (!m_table.sharedMemory()->createHandle(handle, SharedMemory::ReadOnly))
return;
m_context->process()->send(Messages::WebProcess::SetVisitedLinkTable(handle), 0);
// FIXME (Multi-WebProcess): Encoding a handle will null it out so we need to create a new
// handle for every process. Maybe the ArgumentEncoder should handle this.
m_context->sendToAllProcesses(Messages::WebProcess::SetVisitedLinkTable(handle));
}
// We now need to let the web process know that we've added links.
if (m_webProcessHasVisitedLinkState && addedVisitedLinks.size() <= 20) {
m_context->process()->send(Messages::WebProcess::VisitedLinkStateChanged(addedVisitedLinks), 0);
m_context->sendToAllProcesses(Messages::WebProcess::VisitedLinkStateChanged(addedVisitedLinks));
return;
}
// Just recalculate all the visited links.
m_context->process()->send(Messages::WebProcess::AllVisitedLinkStateChanged(), 0);
m_context->sendToAllProcesses(Messages::WebProcess::AllVisitedLinkStateChanged());
m_webProcessHasVisitedLinkState = true;
}
......
......@@ -65,11 +65,12 @@ void WebApplicationCacheManagerProxy::didReceiveMessage(CoreIPC::Connection* con
void WebApplicationCacheManagerProxy::getApplicationCacheOrigins(PassRefPtr<ArrayCallback> prpCallback)
{
RefPtr<ArrayCallback> callback = prpCallback;
m_webContext->relaunchProcessIfNecessary();
uint64_t callbackID = callback->callbackID();
m_arrayCallbacks.set(callbackID, callback.release());
m_webContext->process()->send(Messages::WebApplicationCacheManager::GetApplicationCacheOrigins(callbackID), 0);
// FIXME (Multi-WebProcess): The application cache shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebApplicationCacheManager::GetApplicationCacheOrigins(callbackID));
}
void WebApplicationCacheManagerProxy::didGetApplicationCacheOrigins(const Vector<SecurityOriginData>& originDatas, uint64_t callbackID)
......@@ -80,20 +81,19 @@ void WebApplicationCacheManagerProxy::didGetApplicationCacheOrigins(const Vector
void WebApplicationCacheManagerProxy::deleteEntriesForOrigin(WebSecurityOrigin* origin)
{
m_webContext->relaunchProcessIfNecessary();
SecurityOriginData securityOriginData;
securityOriginData.protocol = origin->protocol();
securityOriginData.host = origin->host();
securityOriginData.port = origin->port();
m_webContext->process()->send(Messages::WebApplicationCacheManager::DeleteEntriesForOrigin(securityOriginData), 0);
// FIXME (Multi-WebProcess): The application cache shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebApplicationCacheManager::DeleteEntriesForOrigin(securityOriginData));
}
void WebApplicationCacheManagerProxy::deleteAllEntries()
{
m_webContext->relaunchProcessIfNecessary();
m_webContext->process()->send(Messages::WebApplicationCacheManager::DeleteAllEntries(), 0);
// FIXME (Multi-WebProcess): The application cache shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebApplicationCacheManager::DeleteAllEntries());
}
} // namespace WebKit
......@@ -73,11 +73,11 @@ void WebCookieManagerProxy::getHostnamesWithCookies(PassRefPtr<ArrayCallback> pr
ASSERT(m_webContext);
RefPtr<ArrayCallback> callback = prpCallback;
m_webContext->relaunchProcessIfNecessary();
uint64_t callbackID = callback->callbackID();
m_arrayCallbacks.set(callbackID, callback.release());
m_webContext->process()->send(Messages::WebCookieManager::GetHostnamesWithCookies(callbackID), 0);
// FIXME (Multi-WebProcess): Cookies shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebCookieManager::GetHostnamesWithCookies(callbackID));
}
void WebCookieManagerProxy::didGetHostnamesWithCookies(const Vector<String>& hostnameList, uint64_t callbackID)
......@@ -141,11 +141,12 @@ void WebCookieManagerProxy::getHTTPCookieAcceptPolicy(PassRefPtr<HTTPCookieAccep
ASSERT(m_webContext);
RefPtr<HTTPCookieAcceptPolicyCallback> callback = prpCallback;
m_webContext->relaunchProcessIfNecessary();
uint64_t callbackID = callback->callbackID();
m_httpCookieAcceptPolicyCallbacks.set(callbackID, callback.release());
m_webContext->process()->send(Messages::WebCookieManager::GetHTTPCookieAcceptPolicy(callbackID), 0);
// FIXME (Multi-WebProcess): Cookies shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebCookieManager::GetHTTPCookieAcceptPolicy(callbackID));
}
void WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy(uint32_t policy, uint64_t callbackID)
......
......@@ -116,12 +116,12 @@ void WebDatabaseManagerProxy::initializeClient(const WKDatabaseManagerClient* cl
void WebDatabaseManagerProxy::getDatabasesByOrigin(PassRefPtr<ArrayCallback> prpCallback)
{
RefPtr<ArrayCallback> callback = prpCallback;
m_webContext->relaunchProcessIfNecessary();
uint64_t callbackID = callback->callbackID();
m_arrayCallbacks.set(callbackID, callback.release());
m_webContext->process()->send(Messages::WebDatabaseManager::GetDatabasesByOrigin(callbackID), 0);
}
// FIXME (Multi-WebProcess): Databases shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebDatabaseManager::GetDatabasesByOrigin(callbackID));
}
void WebDatabaseManagerProxy::didGetDatabasesByOrigin(const Vector<OriginAndDatabases>& originAndDatabasesVector, uint64_t callbackID)
{
......@@ -169,10 +169,11 @@ void WebDatabaseManagerProxy::didGetDatabasesByOrigin(const Vector<OriginAndData
void WebDatabaseManagerProxy::getDatabaseOrigins(PassRefPtr<ArrayCallback> prpCallback)
{
RefPtr<ArrayCallback> callback = prpCallback;
m_webContext->relaunchProcessIfNecessary();
uint64_t callbackID = callback->callbackID();
m_arrayCallbacks.set(callbackID, callback.release());
m_webContext->process()->send(Messages::WebDatabaseManager::GetDatabaseOrigins(callbackID), 0);
// FIXME (Multi-WebProcess): Databases shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebDatabaseManager::GetDatabaseOrigins(callbackID));
}
void WebDatabaseManagerProxy::didGetDatabaseOrigins(const Vector<String>& originIdentifiers, uint64_t callbackID)
......@@ -194,26 +195,26 @@ void WebDatabaseManagerProxy::didGetDatabaseOrigins(const Vector<String>& origin
void WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin(const String& databaseIdentifier, WebSecurityOrigin* origin)
{
m_webContext->relaunchProcessIfNecessary();
m_webContext->process()->send(Messages::WebDatabaseManager::DeleteDatabaseWithNameForOrigin(databaseIdentifier, origin->databaseIdentifier()), 0);
// FIXME (Multi-WebProcess): Databases shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebDatabaseManager::DeleteDatabaseWithNameForOrigin(databaseIdentifier, origin->databaseIdentifier()));
}
void WebDatabaseManagerProxy::deleteDatabasesForOrigin(WebSecurityOrigin* origin)
{
m_webContext->relaunchProcessIfNecessary();
m_webContext->process()->send(Messages::WebDatabaseManager::DeleteDatabasesForOrigin(origin->databaseIdentifier()), 0);
// FIXME (Multi-WebProcess): Databases shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebDatabaseManager::DeleteDatabasesForOrigin(origin->databaseIdentifier()));
}
void WebDatabaseManagerProxy::deleteAllDatabases()
{
m_webContext->relaunchProcessIfNecessary();
m_webContext->process()->send(Messages::WebDatabaseManager::DeleteAllDatabases(), 0);
// FIXME (Multi-WebProcess): Databases shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebDatabaseManager::DeleteAllDatabases());
}
void WebDatabaseManagerProxy::setQuotaForOrigin(WebSecurityOrigin* origin, uint64_t quota)
{
m_webContext->relaunchProcessIfNecessary();
m_webContext->process()->send(Messages::WebDatabaseManager::SetQuotaForOrigin(origin->databaseIdentifier(), quota), 0);
// FIXME (Multi-WebProcess): Databases shouldn't be stored in the web process.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebDatabaseManager::SetQuotaForOrigin(origin->databaseIdentifier(), quota));
}
void WebDatabaseManagerProxy::didModifyOrigin(const String& originIdentifier)
......
......@@ -61,8 +61,7 @@ void WebGeolocationManagerProxy::providerDidChangePosition(WebGeolocationPositio
if (!m_context)
return;
// FIXME: Should this check for a valid process?
m_context->process()->send(Messages::WebGeolocationManager::DidChangePosition(position->data()), 0);
m_context->sendToAllProcesses(Messages::WebGeolocationManager::DidChangePosition(position->data()));
}
void WebGeolocationManagerProxy::providerDidFailToDeterminePosition()
......@@ -70,8 +69,7 @@ void WebGeolocationManagerProxy::providerDidFailToDeterminePosition()
if (!m_context)
return;
// FIXME: Should this check for a valid process?
m_context->process()->send(Messages::WebGeolocationManager::DidFailToDeterminePosition(), 0);
m_context->sendToAllProcesses(Messages::WebGeolocationManager::DidFailToDeterminePosition());
}
void WebGeolocationManagerProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
......
......@@ -155,7 +155,8 @@ void WebIconDatabase::getLoadDecisionForIconURL(const String& iconURL, uint64_t
return;
if (!m_iconDatabaseImpl || !m_iconDatabaseImpl->isOpen() || iconURL.isEmpty()) {
m_webContext->process()->send(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast<int>(IconLoadNo), callbackID), 0);
// FIXME (Multi-WebProcess): We need to know which connection to send this message to.
m_webContext->sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast<int>(IconLoadNo), callbackID));
return;
}
......@@ -168,8 +169,9 @@ void WebIconDatabase::getLoadDecisionForIconURL(const String& iconURL, uint64_t
m_pendingLoadDecisionURLMap.set(callbackID, iconURL);
return;
}
m_webContext->process()->send(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision((int)decision, callbackID), 0);
// FIXME (Multi-WebProcess): We need to know which connection to send this message to.
m_webContext->sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision((int)decision, callbackID));
}
Image* WebIconDatabase::imageForPageURL(const String& pageURL)
......@@ -243,7 +245,8 @@ void WebIconDatabase::didFinishURLImport()
// Decisions should never be unknown after the inital import is complete
ASSERT(decision != IconLoadUnknown);
m_webContext->process()->send(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast<int>(decision), i->first), 0);
// FIXME (Multi-WebProcess): We need to know which connection to send this message to.
m_webContext->sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast<int>(decision), i->first));
}
m_pendingLoadDecisionURLMap.clear();
......
......@@ -65,11 +65,11 @@ void WebKeyValueStorageManagerProxy::didReceiveMessage(CoreIPC::Connection* conn
void WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins(PassRefPtr<ArrayCallback> prpCallback)
{
RefPtr<ArrayCallback> callback = prpCallback;
m_webContext->relaunchProcessIfNecessary();
uint64_t callbackID = callback->callbackID();
m_arrayCallbacks.set(callbackID, callback.release());
m_webContext->process()->send(Messages::WebKeyValueStorageManager::GetKeyValueStorageOrigins(callbackID), 0);
// FIXME (Multi-WebProcess): Should key-value storage be handled in the web process?
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebKeyValueStorageManager::GetKeyValueStorageOrigins(callbackID));
}
void WebKeyValueStorageManagerProxy::didGetKeyValueStorageOrigins(const Vector<SecurityOriginData>& originDatas, uint64_t callbackID)
......@@ -80,20 +80,19 @@ void WebKeyValueStorageManagerProxy::didGetKeyValueStorageOrigins(const Vector<S
void WebKeyValueStorageManagerProxy::deleteEntriesForOrigin(WebSecurityOrigin* origin)
{
m_webContext->relaunchProcessIfNecessary();
SecurityOriginData securityOriginData;
securityOriginData.protocol = origin->protocol();
securityOriginData.host = origin->host();
securityOriginData.port = origin->port();
m_webContext->process()->send(Messages::WebKeyValueStorageManager::DeleteEntriesForOrigin(securityOriginData), 0);
// FIXME (Multi-WebProcess): Should key-value storage be handled in the web process?
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebKeyValueStorageManager::DeleteEntriesForOrigin(securityOriginData));
}
void WebKeyValueStorageManagerProxy::deleteAllEntries()
{
m_webContext->relaunchProcessIfNecessary();
m_webContext->process()->send(Messages::WebKeyValueStorageManager::DeleteAllEntries(), 0);
// FIXME (Multi-WebProcess): Should key-value storage be handled in the web process?
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebKeyValueStorageManager::DeleteAllEntries());
}
} // namespace WebKit
......@@ -64,11 +64,12 @@ void WebMediaCacheManagerProxy::didReceiveMessage(CoreIPC::Connection* connectio
void WebMediaCacheManagerProxy::getHostnamesWithMediaCache(PassRefPtr<ArrayCallback> prpCallback)
{
RefPtr<ArrayCallback> callback = prpCallback;
m_webContext->relaunchProcessIfNecessary();
uint64_t callbackID = callback->callbackID();
m_arrayCallbacks.set(callbackID, callback.release());
m_webContext->process()->send(Messages::WebMediaCacheManager::GetHostnamesWithMediaCache(callbackID), 0);
// FIXME (Multi-WebProcess): When we're sending this to multiple processes, we need to aggregate the
// callback data when it comes back.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebMediaCacheManager::GetHostnamesWithMediaCache(callbackID));
}
void WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache(const Vector<String>& hostnameList, uint64_t callbackID)
......@@ -90,14 +91,12 @@ void WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache(const Vector<Strin
void WebMediaCacheManagerProxy::clearCacheForHostname(const String& hostname)
{
m_webContext->relaunchProcessIfNecessary();
m_webContext->process()->send(Messages::WebMediaCacheManager::ClearCacheForHostname(hostname), 0);
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebMediaCacheManager::ClearCacheForHostname(hostname));
}
void WebMediaCacheManagerProxy::clearCacheForAllHostnames()
{
m_webContext->relaunchProcessIfNecessary();
m_webContext->process()->send(Messages::WebMediaCacheManager::ClearCacheForAllHostnames(), 0);
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebMediaCacheManager::ClearCacheForAllHostnames());
}
} // namespace WebKit
......@@ -67,7 +67,9 @@ void WebResourceCacheManagerProxy::getCacheOrigins(PassRefPtr<ArrayCallback> prp
m_webContext->relaunchProcessIfNecessary();
uint64_t callbackID = callback->callbackID();
m_arrayCallbacks.set(callbackID, callback.release());
m_webContext->process()->send(Messages::WebResourceCacheManager::GetCacheOrigins(callbackID), 0);
// FIXME (Multi-WebProcess): When multi-process is enabled, we need to aggregate the callback data from all processes.
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::GetCacheOrigins(callbackID));
}
void WebResourceCacheManagerProxy::didGetCacheOrigins(const Vector<SecurityOriginData>& origins, uint64_t callbackID)
......@@ -78,19 +80,17 @@ void WebResourceCacheManagerProxy::didGetCacheOrigins(const Vector<SecurityOrigi
void WebResourceCacheManagerProxy::clearCacheForOrigin(WebSecurityOrigin* origin)
{
m_webContext->relaunchProcessIfNecessary();
SecurityOriginData securityOrigin;
securityOrigin.protocol = origin->protocol();
securityOrigin.host = origin->host();
securityOrigin.port = origin->port();
m_webContext->process()->send(Messages::WebResourceCacheManager::ClearCacheForOrigin(securityOrigin), 0);
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForOrigin(securityOrigin));
}
void WebResourceCacheManagerProxy::clearCacheForAllOrigins()
{
m_webContext->relaunchProcessIfNecessary();
m_webContext->process()->send(Messages::WebResourceCacheManager::ClearCacheForAllOrigins(), 0);
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForAllOrigins());
}
} // namespace WebKit
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment