From 2a10f681c582df15719956061b6742a55bccb46a Mon Sep 17 00:00:00 2001 From: "jorlow@chromium.org" Date: Fri, 24 Jul 2009 01:22:51 +0000 Subject: The final CL for plumbing DOM Storage. Add webKitClient plumbing for getting/creating storage namespaces. Add a chromium implementation for WebStorageArea and WebStorageNamespace which communicates via IPC with the dom_storage_dispatcher_host in the browser process. Flesh out the StorageAreaProxy and StorageNamespaceProxy to use the aforementioned implementations. The WebStorageArea implementation includes decently aggressive caching optimizations. There's still a lot of work to do, though. BUG=4360 TEST=none Review URL: http://codereview.chromium.org/147248 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21495 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/renderer/renderer_webkitclient_impl.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'chrome/renderer/renderer_webkitclient_impl.cc') diff --git a/chrome/renderer/renderer_webkitclient_impl.cc b/chrome/renderer/renderer_webkitclient_impl.cc index 05e56fb..a863971 100644 --- a/chrome/renderer/renderer_webkitclient_impl.cc +++ b/chrome/renderer/renderer_webkitclient_impl.cc @@ -10,6 +10,7 @@ #include "chrome/plugin/npobject_util.h" #include "chrome/renderer/net/render_dns_master.h" #include "chrome/renderer/render_thread.h" +#include "chrome/renderer/renderer_webstoragenamespace_impl.h" #include "chrome/renderer/visitedlink_slave.h" #include "webkit/api/public/WebString.h" #include "webkit/api/public/WebURL.h" @@ -20,6 +21,8 @@ #include "chrome/renderer/renderer_sandbox_support_linux.h" #endif +using WebKit::WebStorageArea; +using WebKit::WebStorageNamespace; using WebKit::WebString; using WebKit::WebURL; @@ -100,6 +103,20 @@ void RendererWebKitClientImpl::suddenTerminationChanged(bool enabled) { thread->Send(new ViewHostMsg_SuddenTerminationChanged(enabled)); } +WebStorageNamespace* RendererWebKitClientImpl::createLocalStorageNamespace( + const WebString& path) { + if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess)) + return WebStorageNamespace::createLocalStorageNamespace(path); + // The browser process decides the path, so ignore that param. + return new RendererWebStorageNamespaceImpl(true); +} + +WebStorageNamespace* RendererWebKitClientImpl::createSessionStorageNamespace() { + if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess)) + return WebStorageNamespace::createSessionStorageNamespace(); + return new RendererWebStorageNamespaceImpl(false); +} + //------------------------------------------------------------------------------ WebString RendererWebKitClientImpl::MimeRegistry::mimeTypeForExtension( -- cgit v1.1