diff options
author | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-10 00:04:10 +0000 |
---|---|---|
committer | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-10 00:04:10 +0000 |
commit | 1910fe893606e5199a6359df1d57af34a42e59d5 (patch) | |
tree | 8c565ca45e16dbe41cc269f825b257b71f21b341 /content | |
parent | ebac2a8753009a83979f8e35d2371a4b48b4ee97 (diff) | |
download | chromium_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.gypi | 10 | ||||
-rw-r--r-- | content/renderer/dom_storage/OWNERS | 1 | ||||
-rw-r--r-- | content/renderer/dom_storage/dom_storage_dispatcher.cc | 58 | ||||
-rw-r--r-- | content/renderer/dom_storage/dom_storage_dispatcher.h | 29 | ||||
-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.cc | 51 | ||||
-rw-r--r-- | content/renderer/render_thread_impl.h | 4 | ||||
-rw-r--r-- | content/renderer/render_view_impl.cc | 5 | ||||
-rw-r--r-- | content/renderer/renderer_webkitplatformsupport_impl.cc | 4 |
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(); } |