summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authormichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-10 00:04:10 +0000
committermichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-10 00:04:10 +0000
commit1910fe893606e5199a6359df1d57af34a42e59d5 (patch)
tree8c565ca45e16dbe41cc269f825b257b71f21b341 /content
parentebac2a8753009a83979f8e35d2371a4b48b4ee97 (diff)
downloadchromium_src-1910fe893606e5199a6359df1d57af34a42e59d5.zip
chromium_src-1910fe893606e5199a6359df1d57af34a42e59d5.tar.gz
chromium_src-1910fe893606e5199a6359df1d57af34a42e59d5.tar.bz2
Pull domstorage specifics out of RenderThreadImpl into a seperate
DomStorageDispatcher class, and move existing renderer side domstorage sources into a subdirectory so OWNERS can be applied more meaningfully. BUG=94382 TBR=jam Review URL: https://chromiumcodereview.appspot.com/10162015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136188 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/content_renderer.gypi10
-rw-r--r--content/renderer/dom_storage/OWNERS1
-rw-r--r--content/renderer/dom_storage/dom_storage_dispatcher.cc58
-rw-r--r--content/renderer/dom_storage/dom_storage_dispatcher.h29
-rw-r--r--content/renderer/dom_storage/webstoragearea_impl.cc (renamed from content/renderer/renderer_webstoragearea_impl.cc)28
-rw-r--r--content/renderer/dom_storage/webstoragearea_impl.h (renamed from content/renderer/renderer_webstoragearea_impl.h)19
-rw-r--r--content/renderer/dom_storage/webstoragenamespace_impl.cc (renamed from content/renderer/renderer_webstoragenamespace_impl.cc)26
-rw-r--r--content/renderer/dom_storage/webstoragenamespace_impl.h (renamed from content/renderer/renderer_webstoragenamespace_impl.h)17
-rw-r--r--content/renderer/render_thread_impl.cc51
-rw-r--r--content/renderer/render_thread_impl.h4
-rw-r--r--content/renderer/render_view_impl.cc5
-rw-r--r--content/renderer/renderer_webkitplatformsupport_impl.cc4
12 files changed, 152 insertions, 100 deletions
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi
index 38dc5af..f787dc1 100644
--- a/content/content_renderer.gypi
+++ b/content/content_renderer.gypi
@@ -54,6 +54,12 @@
'renderer/devtools_client.h',
'renderer/dom_automation_controller.cc',
'renderer/dom_automation_controller.h',
+ 'renderer/dom_storage/dom_storage_dispatcher.cc',
+ 'renderer/dom_storage/dom_storage_dispatcher.h',
+ 'renderer/dom_storage/webstoragearea_impl.cc',
+ 'renderer/dom_storage/webstoragearea_impl.h',
+ 'renderer/dom_storage/webstoragenamespace_impl.cc',
+ 'renderer/dom_storage/webstoragenamespace_impl.h',
'renderer/external_popup_menu.cc',
'renderer/external_popup_menu.h',
'renderer/gamepad_shared_memory_reader.cc',
@@ -183,10 +189,6 @@
'renderer/renderer_webcolorchooser_impl.h',
'renderer/renderer_webkitplatformsupport_impl.cc',
'renderer/renderer_webkitplatformsupport_impl.h',
- 'renderer/renderer_webstoragearea_impl.cc',
- 'renderer/renderer_webstoragearea_impl.h',
- 'renderer/renderer_webstoragenamespace_impl.cc',
- 'renderer/renderer_webstoragenamespace_impl.h',
'renderer/text_input_client_observer.cc',
'renderer/text_input_client_observer.h',
'renderer/v8_value_converter_impl.cc',
diff --git a/content/renderer/dom_storage/OWNERS b/content/renderer/dom_storage/OWNERS
new file mode 100644
index 0000000..3723f40
--- /dev/null
+++ b/content/renderer/dom_storage/OWNERS
@@ -0,0 +1 @@
+michaeln@chromium.org
diff --git a/content/renderer/dom_storage/dom_storage_dispatcher.cc b/content/renderer/dom_storage/dom_storage_dispatcher.cc
new file mode 100644
index 0000000..aa68420
--- /dev/null
+++ b/content/renderer/dom_storage/dom_storage_dispatcher.cc
@@ -0,0 +1,58 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/renderer/dom_storage/dom_storage_dispatcher.h"
+
+#include "content/common/dom_storage_messages.h"
+#include "content/renderer/dom_storage/webstoragearea_impl.h"
+#include "content/renderer/dom_storage/webstoragenamespace_impl.h"
+#include "content/renderer/render_thread_impl.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageEventDispatcher.h"
+
+bool DomStorageDispatcher::OnMessageReceived(const IPC::Message& msg) {
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(DomStorageDispatcher, msg)
+ IPC_MESSAGE_HANDLER(DOMStorageMsg_Event, OnStorageEvent)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+ return handled;
+}
+
+void DomStorageDispatcher::OnStorageEvent(
+ const DOMStorageMsg_Event_Params& params) {
+ RenderThreadImpl::current()->EnsureWebKitInitialized();
+
+ bool originated_in_process = params.connection_id != 0;
+ WebStorageAreaImpl* originating_area = NULL;
+ if (originated_in_process) {
+ originating_area = WebStorageAreaImpl::FromConnectionId(
+ params.connection_id);
+ }
+
+ if (params.namespace_id == dom_storage::kLocalStorageNamespaceId) {
+ WebKit::WebStorageEventDispatcher::dispatchLocalStorageEvent(
+ params.key,
+ params.old_value,
+ params.new_value,
+ params.origin,
+ params.page_url,
+ originating_area,
+ originated_in_process);
+ } else if (originated_in_process) {
+ // TODO(michaeln): For now, we only raise session storage events into the
+ // process which caused the event to occur. However there are cases where
+ // sessions can span process boundaries, so there are correctness issues.
+ WebStorageNamespaceImpl
+ session_namespace_for_event_dispatch(params.namespace_id);
+ WebKit::WebStorageEventDispatcher::dispatchSessionStorageEvent(
+ params.key,
+ params.old_value,
+ params.new_value,
+ params.origin,
+ params.page_url,
+ session_namespace_for_event_dispatch,
+ originating_area,
+ originated_in_process);
+ }
+}
diff --git a/content/renderer/dom_storage/dom_storage_dispatcher.h b/content/renderer/dom_storage/dom_storage_dispatcher.h
new file mode 100644
index 0000000..115a811
--- /dev/null
+++ b/content/renderer/dom_storage/dom_storage_dispatcher.h
@@ -0,0 +1,29 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CONTENT_RENDERER_DOM_STORAGE_DOM_STORAGE_DISPATCHER_H_
+#define CONTENT_RENDERER_DOM_STORAGE_DOM_STORAGE_DISPATCHER_H_
+#pragma once
+
+#include "ipc/ipc_channel.h"
+
+struct DOMStorageMsg_Event_Params;
+
+// Dispatches DomStorage related messages sent to a renderer process from the
+// main browser process. There is one instance per child process. Messages
+// are dispatched on the main renderer thread. The RenderThreadImpl
+// creates an instance and delegates calls to it.
+class DomStorageDispatcher : public IPC::Channel::Listener {
+ public:
+ DomStorageDispatcher() {}
+
+ // IPC::Channel::Listener implementation
+ virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
+
+ private:
+ // IPC message handlers
+ void OnStorageEvent(const DOMStorageMsg_Event_Params& params);
+};
+
+#endif // CONTENT_RENDERER_DOM_STORAGE_DOM_STORAGE_DISPATCHER_H_
diff --git a/content/renderer/renderer_webstoragearea_impl.cc b/content/renderer/dom_storage/webstoragearea_impl.cc
index a7cbfb6..e143f93 100644
--- a/content/renderer/renderer_webstoragearea_impl.cc
+++ b/content/renderer/dom_storage/webstoragearea_impl.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/renderer/renderer_webstoragearea_impl.h"
+#include "content/renderer/dom_storage/webstoragearea_impl.h"
#include "base/lazy_instance.h"
#include "base/metrics/histogram.h"
@@ -16,30 +16,28 @@
using WebKit::WebString;
using WebKit::WebURL;
-typedef IDMap<RendererWebStorageAreaImpl> AreaImplMap;
+typedef IDMap<WebStorageAreaImpl> AreaImplMap;
static base::LazyInstance<AreaImplMap>::Leaky
g_all_areas_map = LAZY_INSTANCE_INITIALIZER;
// static
-RendererWebStorageAreaImpl* RendererWebStorageAreaImpl::FromConnectionId(
+WebStorageAreaImpl* WebStorageAreaImpl::FromConnectionId(
int id) {
return g_all_areas_map.Pointer()->Lookup(id);
}
-RendererWebStorageAreaImpl::RendererWebStorageAreaImpl(
- int64 namespace_id, const WebString& origin)
+WebStorageAreaImpl::WebStorageAreaImpl(
+ int64 namespace_id, const GURL& origin)
: ALLOW_THIS_IN_INITIALIZER_LIST(
connection_id_(g_all_areas_map.Pointer()->Add(this))) {
- // TODO(michaeln): fix the webkit api to have the 'origin' input
- // be a URL instead of a string.
DCHECK(connection_id_);
RenderThreadImpl::current()->Send(
new DOMStorageHostMsg_OpenStorageArea(
- connection_id_, namespace_id, GURL(origin)));
+ connection_id_, namespace_id, origin));
}
-RendererWebStorageAreaImpl::~RendererWebStorageAreaImpl() {
+WebStorageAreaImpl::~WebStorageAreaImpl() {
g_all_areas_map.Pointer()->Remove(connection_id_);
RenderThreadImpl::current()->Send(
new DOMStorageHostMsg_CloseStorageArea(connection_id_));
@@ -59,28 +57,28 @@ RendererWebStorageAreaImpl::~RendererWebStorageAreaImpl() {
// key .591 0.6 2.0 29.9
// clear 1e-6 1.0 32.4 605.2
-unsigned RendererWebStorageAreaImpl::length() {
+unsigned WebStorageAreaImpl::length() {
unsigned length;
RenderThreadImpl::current()->Send(
new DOMStorageHostMsg_Length(connection_id_, &length));
return length;
}
-WebString RendererWebStorageAreaImpl::key(unsigned index) {
+WebString WebStorageAreaImpl::key(unsigned index) {
NullableString16 key;
RenderThreadImpl::current()->Send(
new DOMStorageHostMsg_Key(connection_id_, index, &key));
return key;
}
-WebString RendererWebStorageAreaImpl::getItem(const WebString& key) {
+WebString WebStorageAreaImpl::getItem(const WebString& key) {
NullableString16 value;
RenderThreadImpl::current()->Send(
new DOMStorageHostMsg_GetItem(connection_id_, key, &value));
return value;
}
-void RendererWebStorageAreaImpl::setItem(
+void WebStorageAreaImpl::setItem(
const WebString& key, const WebString& value, const WebURL& url,
WebStorageArea::Result& result, WebString& old_value_webkit) {
if (key.length() + value.length() > dom_storage::kPerAreaQuota) {
@@ -93,7 +91,7 @@ void RendererWebStorageAreaImpl::setItem(
old_value_webkit = old_value;
}
-void RendererWebStorageAreaImpl::removeItem(
+void WebStorageAreaImpl::removeItem(
const WebString& key, const WebURL& url, WebString& old_value_webkit) {
NullableString16 old_value;
RenderThreadImpl::current()->Send(
@@ -101,7 +99,7 @@ void RendererWebStorageAreaImpl::removeItem(
old_value_webkit = old_value;
}
-void RendererWebStorageAreaImpl::clear(
+void WebStorageAreaImpl::clear(
const WebURL& url, bool& cleared_something) {
RenderThreadImpl::current()->Send(
new DOMStorageHostMsg_Clear(connection_id_, url, &cleared_something));
diff --git a/content/renderer/renderer_webstoragearea_impl.h b/content/renderer/dom_storage/webstoragearea_impl.h
index 9206d1c..6ff7a93 100644
--- a/content/renderer/renderer_webstoragearea_impl.h
+++ b/content/renderer/dom_storage/webstoragearea_impl.h
@@ -1,22 +1,23 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_RENDERER_RENDERER_WEBSTORAGEAREA_IMPL_H_
-#define CONTENT_RENDERER_RENDERER_WEBSTORAGEAREA_IMPL_H_
+#ifndef CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGEAREA_IMPL_H_
+#define CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGEAREA_IMPL_H_
#pragma once
#include "base/basictypes.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageArea.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
-class RendererWebStorageAreaImpl : public WebKit::WebStorageArea {
+class GURL;
+
+class WebStorageAreaImpl : public WebKit::WebStorageArea {
public:
- static RendererWebStorageAreaImpl* FromConnectionId(int id);
+ static WebStorageAreaImpl* FromConnectionId(int id);
- RendererWebStorageAreaImpl(int64 namespace_id,
- const WebKit::WebString& origin);
- virtual ~RendererWebStorageAreaImpl();
+ WebStorageAreaImpl(int64 namespace_id, const GURL& origin);
+ virtual ~WebStorageAreaImpl();
// See WebStorageArea.h for documentation on these functions.
virtual unsigned length();
@@ -35,4 +36,4 @@ class RendererWebStorageAreaImpl : public WebKit::WebStorageArea {
int connection_id_;
};
-#endif // CONTENT_RENDERER_RENDERER_WEBSTORAGEAREA_IMPL_H_
+#endif // CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGEAREA_IMPL_H_
diff --git a/content/renderer/renderer_webstoragenamespace_impl.cc b/content/renderer/dom_storage/webstoragenamespace_impl.cc
index de6c10a..b718708 100644
--- a/content/renderer/renderer_webstoragenamespace_impl.cc
+++ b/content/renderer/dom_storage/webstoragenamespace_impl.cc
@@ -1,36 +1,38 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/renderer/renderer_webstoragenamespace_impl.h"
+#include "content/renderer/dom_storage/webstoragenamespace_impl.h"
#include "base/logging.h"
-#include "content/renderer/renderer_webstoragearea_impl.h"
+#include "content/renderer/dom_storage/webstoragearea_impl.h"
+#include "googleurl/src/gurl.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
#include "webkit/dom_storage/dom_storage_types.h"
using WebKit::WebStorageArea;
using WebKit::WebStorageNamespace;
using WebKit::WebString;
-RendererWebStorageNamespaceImpl::RendererWebStorageNamespaceImpl()
+WebStorageNamespaceImpl::WebStorageNamespaceImpl()
: namespace_id_(dom_storage::kLocalStorageNamespaceId) {
}
-RendererWebStorageNamespaceImpl::RendererWebStorageNamespaceImpl(
+WebStorageNamespaceImpl::WebStorageNamespaceImpl(
int64 namespace_id)
: namespace_id_(namespace_id) {
DCHECK_NE(dom_storage::kInvalidSessionStorageNamespaceId, namespace_id);
}
-RendererWebStorageNamespaceImpl::~RendererWebStorageNamespaceImpl() {
+WebStorageNamespaceImpl::~WebStorageNamespaceImpl() {
}
-WebStorageArea* RendererWebStorageNamespaceImpl::createStorageArea(
+WebStorageArea* WebStorageNamespaceImpl::createStorageArea(
const WebString& origin) {
- return new RendererWebStorageAreaImpl(namespace_id_, origin);
+ return new WebStorageAreaImpl(namespace_id_, GURL(origin));
}
-WebStorageNamespace* RendererWebStorageNamespaceImpl::copy() {
+WebStorageNamespace* WebStorageNamespaceImpl::copy() {
// By returning NULL, we're telling WebKit to lazily fetch it the next time
// session storage is used. In the WebViewClient::createView, we do the
// book-keeping necessary to make it a true copy-on-write despite not doing
@@ -38,9 +40,9 @@ WebStorageNamespace* RendererWebStorageNamespaceImpl::copy() {
return NULL;
}
-bool RendererWebStorageNamespaceImpl::isSameNamespace(
+bool WebStorageNamespaceImpl::isSameNamespace(
const WebStorageNamespace& other) const {
- const RendererWebStorageNamespaceImpl* other_impl =
- static_cast<const RendererWebStorageNamespaceImpl*>(&other);
+ const WebStorageNamespaceImpl* other_impl =
+ static_cast<const WebStorageNamespaceImpl*>(&other);
return namespace_id_ == other_impl->namespace_id_;
}
diff --git a/content/renderer/renderer_webstoragenamespace_impl.h b/content/renderer/dom_storage/webstoragenamespace_impl.h
index e8aa204..5e3b8dc 100644
--- a/content/renderer/renderer_webstoragenamespace_impl.h
+++ b/content/renderer/dom_storage/webstoragenamespace_impl.h
@@ -1,31 +1,30 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_RENDERER_RENDERER_WEBSTORAGENAMESPACE_IMPL_H_
-#define CONTENT_RENDERER_RENDERER_WEBSTORAGENAMESPACE_IMPL_H_
+#ifndef CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGENAMESPACE_IMPL_H_
+#define CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGENAMESPACE_IMPL_H_
#pragma once
#include "base/basictypes.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageNamespace.h"
-class RendererWebStorageNamespaceImpl : public WebKit::WebStorageNamespace {
+class WebStorageNamespaceImpl : public WebKit::WebStorageNamespace {
public:
// The default constructor creates a local storage namespace, the second
// constructor should be used for session storage namepaces.
- RendererWebStorageNamespaceImpl();
- explicit RendererWebStorageNamespaceImpl(int64 namespace_id);
+ WebStorageNamespaceImpl();
+ explicit WebStorageNamespaceImpl(int64 namespace_id);
+ virtual ~WebStorageNamespaceImpl();
// See WebStorageNamespace.h for documentation on these functions.
- virtual ~RendererWebStorageNamespaceImpl();
virtual WebKit::WebStorageArea* createStorageArea(
const WebKit::WebString& origin);
virtual WebKit::WebStorageNamespace* copy();
virtual bool isSameNamespace(const WebStorageNamespace&) const;
-
private:
int64 namespace_id_;
};
-#endif // CONTENT_RENDERER_RENDERER_WEBSTORAGENAMESPACE_IMPL_H_
+#endif // CONTENT_RENDERER_DOM_STORAGE_WEBSTORAGENAMESPACE_IMPL_H_
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 7009e39..308dc60 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -47,6 +47,9 @@
#include "content/public/renderer/render_process_observer.h"
#include "content/public/renderer/render_view_visitor.h"
#include "content/renderer/devtools_agent_filter.h"
+#include "content/renderer/dom_storage/dom_storage_dispatcher.h"
+#include "content/renderer/dom_storage/webstoragearea_impl.h"
+#include "content/renderer/dom_storage/webstoragenamespace_impl.h"
#include "content/renderer/gpu/compositor_thread.h"
#include "content/renderer/media/audio_input_message_filter.h"
#include "content/renderer/media/audio_message_filter.h"
@@ -57,8 +60,6 @@
#include "content/renderer/render_process_impl.h"
#include "content/renderer/render_view_impl.h"
#include "content/renderer/renderer_webkitplatformsupport_impl.h"
-#include "content/renderer/renderer_webstoragearea_impl.h"
-#include "content/renderer/renderer_webstoragenamespace_impl.h"
#include "grit/content_resources.h"
#include "ipc/ipc_channel_handle.h"
#include "ipc/ipc_platform_file.h"
@@ -76,7 +77,6 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebRuntimeFeatures.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptController.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityPolicy.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageEventDispatcher.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
#include "ui/base/ui_base_switches.h"
@@ -105,7 +105,6 @@ using WebKit::WebRuntimeFeatures;
using WebKit::WebScriptController;
using WebKit::WebSecurityPolicy;
using WebKit::WebString;
-using WebKit::WebStorageEventDispatcher;
using WebKit::WebView;
using content::RenderProcessObserver;
@@ -210,6 +209,7 @@ void RenderThreadImpl::Init() {
compositor_initialized_ = false;
appcache_dispatcher_.reset(new AppCacheDispatcher(Get()));
+ dom_storage_dispatcher_.reset(new DomStorageDispatcher());
main_thread_indexed_db_dispatcher_.reset(new IndexedDBDispatcher());
media_stream_center_ = NULL;
@@ -810,44 +810,6 @@ void RenderThreadImpl::OnSetZoomLevelForCurrentURL(const std::string& host,
content::RenderView::ForEach(&zoomer);
}
-void RenderThreadImpl::OnDOMStorageEvent(
- const DOMStorageMsg_Event_Params& params) {
- EnsureWebKitInitialized();
-
- bool originated_in_process = params.connection_id != 0;
- RendererWebStorageAreaImpl* originating_area = NULL;
- if (originated_in_process) {
- originating_area = RendererWebStorageAreaImpl::FromConnectionId(
- params.connection_id);
- }
-
- if (params.namespace_id == dom_storage::kLocalStorageNamespaceId) {
- WebStorageEventDispatcher::dispatchLocalStorageEvent(
- params.key,
- params.old_value,
- params.new_value,
- params.origin,
- params.page_url,
- originating_area,
- originated_in_process);
- } else if (originated_in_process) {
- // TODO(michaeln): For now, we only raise session storage events into the
- // process which caused the event to occur. However there are cases where
- // sessions can span process boundaries, so there are correctness issues.
- RendererWebStorageNamespaceImpl
- session_namespace_for_event_dispatch(params.namespace_id);
- WebStorageEventDispatcher::dispatchSessionStorageEvent(
- params.key,
- params.old_value,
- params.new_value,
- params.origin,
- params.page_url,
- session_namespace_for_event_dispatch,
- originating_area,
- originated_in_process);
- }
-}
-
bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) {
ObserverListBase<RenderProcessObserver>::Iterator it(observers_);
RenderProcessObserver* observer;
@@ -857,8 +819,10 @@ bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) {
}
// Some messages are handled by delegates.
- if (appcache_dispatcher_->OnMessageReceived(msg))
+ if (appcache_dispatcher_->OnMessageReceived(msg) ||
+ dom_storage_dispatcher_->OnMessageReceived(msg)) {
return true;
+ }
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg)
@@ -870,7 +834,6 @@ bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) {
IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView)
IPC_MESSAGE_HANDLER(ViewMsg_PurgePluginListCache, OnPurgePluginListCache)
IPC_MESSAGE_HANDLER(ViewMsg_NetworkStateChanged, OnNetworkStateChanged)
- IPC_MESSAGE_HANDLER(DOMStorageMsg_Event, OnDOMStorageEvent)
IPC_MESSAGE_HANDLER(ViewMsg_TempCrashWithData, OnTempCrashWithData)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 5b1e98d..015b7fd 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -30,7 +30,7 @@ class AudioMessageFilter;
class CompositorThread;
class DBMessageFilter;
class DevToolsAgentFilter;
-struct DOMStorageMsg_Event_Params;
+class DomStorageDispatcher;
class GpuChannelHost;
class IndexedDBDispatcher;
class RendererWebKitPlatformSupportImpl;
@@ -208,7 +208,6 @@ class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread,
void Init();
void OnSetZoomLevelForCurrentURL(const std::string& host, double zoom_level);
- void OnDOMStorageEvent(const DOMStorageMsg_Event_Params& params);
void OnSetCSSColors(const std::vector<CSSColors::CSSColorMapping>& colors);
void OnCreateNewView(const ViewMsg_New_Params& params);
void OnTransferBitmap(const SkBitmap& bitmap, int resource_id);
@@ -221,6 +220,7 @@ class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread,
// These objects live solely on the render thread.
scoped_ptr<AppCacheDispatcher> appcache_dispatcher_;
+ scoped_ptr<DomStorageDispatcher> dom_storage_dispatcher_;
scoped_ptr<IndexedDBDispatcher> main_thread_indexed_db_dispatcher_;
scoped_ptr<RendererWebKitPlatformSupportImpl> webkit_platform_support_;
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 342fefa..6a9d750 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -57,6 +57,7 @@
#include "content/renderer/device_orientation_dispatcher.h"
#include "content/renderer/devtools_agent.h"
#include "content/renderer/dom_automation_controller.h"
+#include "content/renderer/dom_storage/webstoragenamespace_impl.h"
#include "content/renderer/external_popup_menu.h"
#include "content/renderer/geolocation_dispatcher.h"
#include "content/renderer/gpu/compositor_thread.h"
@@ -84,7 +85,6 @@
#include "content/renderer/renderer_accessibility.h"
#include "content/renderer/renderer_webapplicationcachehost_impl.h"
#include "content/renderer/renderer_webcolorchooser_impl.h"
-#include "content/renderer/renderer_webstoragenamespace_impl.h"
#include "content/renderer/text_input_client_observer.h"
#include "content/renderer/v8_value_converter_impl.h"
#include "content/renderer/web_intents_host.h"
@@ -129,7 +129,6 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityPolicy.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebSettings.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageNamespace.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageQuotaCallbacks.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebUserMediaClient.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
@@ -1599,7 +1598,7 @@ WebStorageNamespace* RenderViewImpl::createSessionStorageNamespace(
unsigned quota) {
CHECK(session_storage_namespace_id_ !=
dom_storage::kInvalidSessionStorageNamespaceId);
- return new RendererWebStorageNamespaceImpl(session_storage_namespace_id_);
+ return new WebStorageNamespaceImpl(session_storage_namespace_id_);
}
WebGraphicsContext3D* RenderViewImpl::createGraphicsContext3D(
diff --git a/content/renderer/renderer_webkitplatformsupport_impl.cc b/content/renderer/renderer_webkitplatformsupport_impl.cc
index 19db1db..8d9814f 100644
--- a/content/renderer/renderer_webkitplatformsupport_impl.cc
+++ b/content/renderer/renderer_webkitplatformsupport_impl.cc
@@ -22,6 +22,7 @@
#include "content/public/common/content_switches.h"
#include "content/public/common/gpu_info.h"
#include "content/public/renderer/content_renderer_client.h"
+#include "content/renderer/dom_storage/webstoragenamespace_impl.h"
#include "content/renderer/gamepad_shared_memory_reader.h"
#include "content/renderer/media/audio_device.h"
#include "content/renderer/media/audio_hardware.h"
@@ -29,7 +30,6 @@
#include "content/renderer/render_thread_impl.h"
#include "content/renderer/render_view_impl.h"
#include "content/renderer/renderer_clipboard_client.h"
-#include "content/renderer/renderer_webstoragenamespace_impl.h"
#include "content/renderer/websharedworkerrepository_impl.h"
#include "googleurl/src/gurl.h"
#include "ipc/ipc_sync_message_filter.h"
@@ -310,7 +310,7 @@ void RendererWebKitPlatformSupportImpl::suddenTerminationChanged(bool enabled) {
WebStorageNamespace*
RendererWebKitPlatformSupportImpl::createLocalStorageNamespace(
const WebString& path, unsigned quota) {
- return new RendererWebStorageNamespaceImpl();
+ return new WebStorageNamespaceImpl();
}