diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp b/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp index dafa613..1de1532 100644 --- a/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp +++ b/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp @@ -52,6 +52,11 @@ void WebKeyValueStorageManagerProxy::invalidate() invalidateCallbackMap(m_arrayCallbacks); } +bool WebKeyValueStorageManagerProxy::shouldTerminate(WebProcessProxy*) const +{ + return m_arrayCallbacks.isEmpty(); +} + void WebKeyValueStorageManagerProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments) { didReceiveWebKeyValueStorageManagerProxyMessage(connection, messageID, arguments); @@ -60,10 +65,7 @@ void WebKeyValueStorageManagerProxy::didReceiveMessage(CoreIPC::Connection* conn void WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins(PassRefPtr<ArrayCallback> prpCallback) { RefPtr<ArrayCallback> callback = prpCallback; - if (!m_webContext->hasValidProcess()) { - callback->invalidate(); - return; - } + m_webContext->relaunchProcessIfNecessary(); uint64_t callbackID = callback->callbackID(); m_arrayCallbacks.set(callbackID, callback.release()); @@ -78,8 +80,7 @@ void WebKeyValueStorageManagerProxy::didGetKeyValueStorageOrigins(const Vector<S void WebKeyValueStorageManagerProxy::deleteEntriesForOrigin(WebSecurityOrigin* origin) { - if (!m_webContext->hasValidProcess()) - return; + m_webContext->relaunchProcessIfNecessary(); SecurityOriginData securityOriginData; securityOriginData.protocol = origin->protocol(); @@ -91,9 +92,7 @@ void WebKeyValueStorageManagerProxy::deleteEntriesForOrigin(WebSecurityOrigin* o void WebKeyValueStorageManagerProxy::deleteAllEntries() { - if (!m_webContext->hasValidProcess()) - return; - + m_webContext->relaunchProcessIfNecessary(); m_webContext->process()->send(Messages::WebKeyValueStorageManager::DeleteAllEntries(), 0); } |