diff options
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/in_process_webkit/dom_storage_dispatcher_host.cc | 6 | ||||
-rw-r--r-- | chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h | 3 | ||||
-rw-r--r-- | chrome/browser/in_process_webkit/storage_namespace.cc | 12 | ||||
-rw-r--r-- | chrome/browser/in_process_webkit/storage_namespace.h | 7 | ||||
-rw-r--r-- | chrome/chrome.gyp | 1 | ||||
-rw-r--r-- | chrome/common/dom_storage_type.h | 13 | ||||
-rw-r--r-- | chrome/common/render_messages.h | 189 | ||||
-rw-r--r-- | chrome/common/render_messages_internal.h | 2 | ||||
-rw-r--r-- | chrome/renderer/renderer_webkitclient_impl.cc | 4 | ||||
-rw-r--r-- | chrome/renderer/renderer_webstoragenamespace_impl.cc | 14 | ||||
-rw-r--r-- | chrome/renderer/renderer_webstoragenamespace_impl.h | 11 |
11 files changed, 156 insertions, 106 deletions
diff --git a/chrome/browser/in_process_webkit/dom_storage_dispatcher_host.cc b/chrome/browser/in_process_webkit/dom_storage_dispatcher_host.cc index 49fdfda..ba3df60 100644 --- a/chrome/browser/in_process_webkit/dom_storage_dispatcher_host.cc +++ b/chrome/browser/in_process_webkit/dom_storage_dispatcher_host.cc @@ -98,20 +98,20 @@ void DOMStorageDispatcherHost::Send(IPC::Message* message) { &DOMStorageDispatcherHost::Send, message)); } -void DOMStorageDispatcherHost::OnNamespaceId(bool is_local_storage, +void DOMStorageDispatcherHost::OnNamespaceId(DOMStorageType storage_type, IPC::Message* reply_msg) { DCHECK(!shutdown_); if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { MessageLoop* webkit_loop = webkit_thread_->GetMessageLoop(); webkit_loop->PostTask(FROM_HERE, NewRunnableMethod(this, &DOMStorageDispatcherHost::OnNamespaceId, - is_local_storage, reply_msg)); + storage_type, reply_msg)); return; } DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); StorageNamespace* new_namespace; - if (is_local_storage) + if (storage_type == DOM_STORAGE_LOCAL) new_namespace = Context()->LocalStorage(); else new_namespace = Context()->NewSessionStorage(); diff --git a/chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h b/chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h index 8f5c94d..d4a1d2a 100644 --- a/chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h +++ b/chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h @@ -9,6 +9,7 @@ #include "base/ref_counted.h" #include "chrome/browser/in_process_webkit/storage_area.h" #include "chrome/browser/in_process_webkit/webkit_context.h" +#include "chrome/common/dom_storage_type.h" #include "ipc/ipc_message.h" class DOMStorageContext; @@ -37,7 +38,7 @@ class DOMStorageDispatcherHost : ~DOMStorageDispatcherHost(); // Message Handlers. - void OnNamespaceId(bool is_local_storage, IPC::Message* reply_msg); + void OnNamespaceId(DOMStorageType storage_type, IPC::Message* reply_msg); void OnCloneNamespaceId(int64 namespace_id, IPC::Message* reply_msg); void OnStorageAreaId(int64 namespace_id, const string16& origin, IPC::Message* reply_msg); diff --git a/chrome/browser/in_process_webkit/storage_namespace.cc b/chrome/browser/in_process_webkit/storage_namespace.cc index 25548c3..fa2c74a 100644 --- a/chrome/browser/in_process_webkit/storage_namespace.cc +++ b/chrome/browser/in_process_webkit/storage_namespace.cc @@ -26,7 +26,7 @@ StorageNamespace* StorageNamespace::CreateLocalStorageNamespace( WebStorageNamespace* web_storage_namespace = WebStorageNamespace::createLocalStorageNamespace(path); return new StorageNamespace(dom_storage_context, web_storage_namespace, id, - true); + DOM_STORAGE_LOCAL); } /* static */ @@ -37,16 +37,16 @@ StorageNamespace* StorageNamespace::CreateSessionStorageNamespace( WebStorageNamespace* web_storage_namespace = WebStorageNamespace::createSessionStorageNamespace(); return new StorageNamespace(dom_storage_context, web_storage_namespace, id, - false); + DOM_STORAGE_SESSION); } StorageNamespace::StorageNamespace(DOMStorageContext* dom_storage_context, WebStorageNamespace* storage_namespace, - int64 id, bool is_local_storage) + int64 id, DOMStorageType storage_type) : dom_storage_context_(dom_storage_context), storage_namespace_(storage_namespace), id_(id), - is_local_storage_(is_local_storage) { + storage_type_(storage_type) { DCHECK(dom_storage_context_); DCHECK(storage_namespace_); dom_storage_context_->RegisterStorageNamespace(this); @@ -82,12 +82,12 @@ StorageArea* StorageNamespace::GetStorageArea(const string16& origin) { } StorageNamespace* StorageNamespace::Copy() { - DCHECK(!is_local_storage_); + DCHECK(storage_type_ == DOM_STORAGE_SESSION); int64 id = dom_storage_context_->AllocateStorageNamespaceId(); DCHECK(!dom_storage_context_->GetStorageNamespace(id)); WebStorageNamespace* new_storage_namespace = storage_namespace_->copy(); return new StorageNamespace(dom_storage_context_, new_storage_namespace, id, - is_local_storage_); + storage_type_); } void StorageNamespace::Close() { diff --git a/chrome/browser/in_process_webkit/storage_namespace.h b/chrome/browser/in_process_webkit/storage_namespace.h index 4018f8f..91e0ae6 100644 --- a/chrome/browser/in_process_webkit/storage_namespace.h +++ b/chrome/browser/in_process_webkit/storage_namespace.h @@ -7,6 +7,7 @@ #include "base/string16.h" #include "base/hash_tables.h" +#include "chrome/common/dom_storage_type.h" class DOMStorageContext; class FilePath; @@ -36,7 +37,7 @@ class StorageNamespace { // Called by the static factory methods above. StorageNamespace(DOMStorageContext* dom_storage_context, WebKit::WebStorageNamespace* web_storage_namespace, - int64 id, bool is_local_storage); + int64 id, DOMStorageType storage_type); // All the storage areas we own. typedef base::hash_map<string16, StorageArea*> OriginToStorageAreaMap; @@ -51,8 +52,8 @@ class StorageNamespace { // Our id. Unique to our parent WebKitContext class. int64 id_; - // Is this a local storage namespace. - bool is_local_storage_; + // SessionStorage vs. LocalStorage. + const DOMStorageType storage_type_; DISALLOW_IMPLICIT_CONSTRUCTORS(StorageNamespace); }; diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp index 64df5f4..ecb026f 100644 --- a/chrome/chrome.gyp +++ b/chrome/chrome.gyp @@ -485,6 +485,7 @@ 'common/debug_flags.h', 'common/devtools_messages.h', 'common/devtools_messages_internal.h', + 'common/dom_storage_type.h', 'common/env_vars.cc', 'common/env_vars.h', 'common/filter_policy.h', diff --git a/chrome/common/dom_storage_type.h b/chrome/common/dom_storage_type.h new file mode 100644 index 0000000..0049fc4 --- /dev/null +++ b/chrome/common/dom_storage_type.h @@ -0,0 +1,13 @@ +// Copyright (c) 2009 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 CHROME_COMMON_DOM_STORAGE_TYPE_H_ +#define CHROME_COMMON_DOM_STORAGE_TYPE_H_ + +enum DOMStorageType { + DOM_STORAGE_LOCAL = 0, + DOM_STORAGE_SESSION +}; + +#endif // CHROME_COMMON_DOM_STORAGE_TYPE_H_ diff --git a/chrome/common/render_messages.h b/chrome/common/render_messages.h index 752c208..8bc8405 100644 --- a/chrome/common/render_messages.h +++ b/chrome/common/render_messages.h @@ -17,6 +17,7 @@ #include "chrome/browser/renderer_host/resource_handler.h" #include "chrome/common/common_param_traits.h" #include "chrome/common/css_colors.h" +#include "chrome/common/dom_storage_type.h" #include "chrome/common/edit_command.h" #include "chrome/common/extensions/update_manifest.h" #include "chrome/common/extensions/url_pattern.h" @@ -501,22 +502,22 @@ struct ParamTraits<ResourceType::Type> { switch (p) { case ResourceType::MAIN_FRAME: type = L"MAIN_FRAME"; - break; - case ResourceType::SUB_FRAME: - type = L"SUB_FRAME"; - break; - case ResourceType::SUB_RESOURCE: - type = L"SUB_RESOURCE"; - break; - case ResourceType::OBJECT: - type = L"OBJECT"; - break; - case ResourceType::MEDIA: - type = L"MEDIA"; - break; - default: - type = L"UNKNOWN"; - break; + break; + case ResourceType::SUB_FRAME: + type = L"SUB_FRAME"; + break; + case ResourceType::SUB_RESOURCE: + type = L"SUB_RESOURCE"; + break; + case ResourceType::OBJECT: + type = L"OBJECT"; + break; + case ResourceType::MEDIA: + type = L"MEDIA"; + break; + default: + type = L"UNKNOWN"; + break; } LogParam(type, l); @@ -688,18 +689,18 @@ struct ParamTraits<ViewHostMsg_ImeControl> { static void Log(const param_type& p, std::wstring* l) { std::wstring control; switch (p) { - case IME_DISABLE: - control = L"IME_DISABLE"; - break; - case IME_MOVE_WINDOWS: - control = L"IME_MOVE_WINDOWS"; - break; - case IME_COMPLETE_COMPOSITION: - control = L"IME_COMPLETE_COMPOSITION"; - break; - default: - control = L"UNKNOWN"; - break; + case IME_DISABLE: + control = L"IME_DISABLE"; + break; + case IME_MOVE_WINDOWS: + control = L"IME_MOVE_WINDOWS"; + break; + case IME_COMPLETE_COMPOSITION: + control = L"IME_COMPLETE_COMPOSITION"; + break; + default: + control = L"UNKNOWN"; + break; } LogParam(control, l); @@ -1872,8 +1873,8 @@ struct ParamTraits<ViewMsg_AudioStreamState> { state = L"ViewMsg_AudioStreamState::kError"; break; default: - state = L"UNKNOWN"; - break; + state = L"UNKNOWN"; + break; } LogParam(state, l); } @@ -1922,27 +1923,27 @@ struct ParamTraits<appcache::Status> { static void Log(const param_type& p, std::wstring* l) { std::wstring state; switch (p) { - case appcache::UNCACHED: - state = L"UNCACHED"; - break; - case appcache::IDLE: - state = L"IDLE"; - break; - case appcache::CHECKING: - state = L"CHECKING"; - break; - case appcache::DOWNLOADING: - state = L"DOWNLOADING"; - break; - case appcache::UPDATE_READY: - state = L"UPDATE_READY"; - break; - case appcache::OBSOLETE: - state = L"OBSOLETE"; - break; - default: - state = L"InvalidStatusValue"; - break; + case appcache::UNCACHED: + state = L"UNCACHED"; + break; + case appcache::IDLE: + state = L"IDLE"; + break; + case appcache::CHECKING: + state = L"CHECKING"; + break; + case appcache::DOWNLOADING: + state = L"DOWNLOADING"; + break; + case appcache::UPDATE_READY: + state = L"UPDATE_READY"; + break; + case appcache::OBSOLETE: + state = L"OBSOLETE"; + break; + default: + state = L"InvalidStatusValue"; + break; } LogParam(state, l); @@ -1965,33 +1966,33 @@ struct ParamTraits<appcache::EventID> { static void Log(const param_type& p, std::wstring* l) { std::wstring state; switch (p) { - case appcache::CHECKING_EVENT: - state = L"CHECKING_EVENT"; - break; - case appcache::ERROR_EVENT: - state = L"ERROR_EVENT"; - break; - case appcache::NO_UPDATE_EVENT: - state = L"NO_UPDATE_EVENT"; - break; - case appcache::DOWNLOADING_EVENT: - state = L"DOWNLOADING_EVENT"; - break; - case appcache::PROGRESS_EVENT: - state = L"PROGRESS_EVENT"; - break; - case appcache::UPDATE_READY_EVENT: - state = L"UPDATE_READY_EVENT"; - break; - case appcache::CACHED_EVENT: - state = L"CACHED_EVENT"; - break; - case appcache::OBSOLETE_EVENT: - state = L"OBSOLETE_EVENT"; - break; - default: - state = L"InvalidEventValue"; - break; + case appcache::CHECKING_EVENT: + state = L"CHECKING_EVENT"; + break; + case appcache::ERROR_EVENT: + state = L"ERROR_EVENT"; + break; + case appcache::NO_UPDATE_EVENT: + state = L"NO_UPDATE_EVENT"; + break; + case appcache::DOWNLOADING_EVENT: + state = L"DOWNLOADING_EVENT"; + break; + case appcache::PROGRESS_EVENT: + state = L"PROGRESS_EVENT"; + break; + case appcache::UPDATE_READY_EVENT: + state = L"UPDATE_READY_EVENT"; + break; + case appcache::CACHED_EVENT: + state = L"CACHED_EVENT"; + break; + case appcache::OBSOLETE_EVENT: + state = L"OBSOLETE_EVENT"; + break; + default: + state = L"InvalidEventValue"; + break; } LogParam(state, l); @@ -2230,6 +2231,38 @@ struct ParamTraits<EditCommand> { } }; +// Traits for DOMStorageType enum. +template <> +struct ParamTraits<DOMStorageType> { + typedef DOMStorageType param_type; + static void Write(Message* m, const param_type& p) { + m->WriteInt(p); + } + static bool Read(const Message* m, void** iter, param_type* p) { + int type; + if (!m->ReadInt(iter, &type)) + return false; + *p = static_cast<param_type>(type); + return true; + } + static void Log(const param_type& p, std::wstring* l) { + std::wstring control; + switch (p) { + case DOM_STORAGE_LOCAL: + control = L"DOM_STORAGE_LOCAL"; + break; + case DOM_STORAGE_SESSION: + control = L"DOM_STORAGE_SESSION"; + break; + default: + NOTIMPLEMENTED(); + control = L"UNKNOWN"; + break; + } + LogParam(control, l); + } +}; + } // namespace IPC diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h index 9cfdf77..6259636 100644 --- a/chrome/common/render_messages_internal.h +++ b/chrome/common/render_messages_internal.h @@ -1643,7 +1643,7 @@ IPC_BEGIN_MESSAGES(ViewHost) // There's one LocalStorage namespace per profile and one SessionStorage // namespace per tab. This will find or create the proper namespace. IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_DOMStorageNamespaceId, - bool /* is_local_storage */, + DOMStorageType /* storage_type */, int64 /* new_namespace_id */) // Used by SessionStorage to clone a namespace per the spec. diff --git a/chrome/renderer/renderer_webkitclient_impl.cc b/chrome/renderer/renderer_webkitclient_impl.cc index b6f3228..3907b53 100644 --- a/chrome/renderer/renderer_webkitclient_impl.cc +++ b/chrome/renderer/renderer_webkitclient_impl.cc @@ -142,13 +142,13 @@ WebStorageNamespace* RendererWebKitClientImpl::createLocalStorageNamespace( if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess)) return WebStorageNamespace::createLocalStorageNamespace(path); // The browser process decides the path, so ignore that param. - return new RendererWebStorageNamespaceImpl(true); + return new RendererWebStorageNamespaceImpl(DOM_STORAGE_LOCAL); } WebStorageNamespace* RendererWebKitClientImpl::createSessionStorageNamespace() { if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess)) return WebStorageNamespace::createSessionStorageNamespace(); - return new RendererWebStorageNamespaceImpl(false); + return new RendererWebStorageNamespaceImpl(DOM_STORAGE_SESSION); } WebApplicationCacheHost* RendererWebKitClientImpl::createApplicationCacheHost( diff --git a/chrome/renderer/renderer_webstoragenamespace_impl.cc b/chrome/renderer/renderer_webstoragenamespace_impl.cc index 0457207..c63d6da 100644 --- a/chrome/renderer/renderer_webstoragenamespace_impl.cc +++ b/chrome/renderer/renderer_webstoragenamespace_impl.cc @@ -9,14 +9,14 @@ #include "chrome/renderer/renderer_webstoragearea_impl.h" RendererWebStorageNamespaceImpl::RendererWebStorageNamespaceImpl( - bool is_local_storage) - : is_local_storage_(is_local_storage), + DOMStorageType storage_type) + : storage_type_(storage_type), namespace_id_(kUninitializedNamespaceId) { } RendererWebStorageNamespaceImpl::RendererWebStorageNamespaceImpl( - bool is_local_storage, int64 namespace_id) - : is_local_storage_(is_local_storage), + DOMStorageType storage_type, int64 namespace_id) + : storage_type_(storage_type), namespace_id_(namespace_id) { DCHECK(namespace_id_ != kUninitializedNamespaceId); } @@ -31,7 +31,7 @@ WebKit::WebStorageArea* RendererWebStorageNamespaceImpl::createStorageArea( // whether it's worth the complexity. if (namespace_id_ == kUninitializedNamespaceId) { RenderThread::current()->Send( - new ViewHostMsg_DOMStorageNamespaceId(is_local_storage_, + new ViewHostMsg_DOMStorageNamespaceId(storage_type_, &namespace_id_)); DCHECK(namespace_id_ != kUninitializedNamespaceId); } @@ -45,14 +45,14 @@ WebKit::WebStorageArea* RendererWebStorageNamespaceImpl::createStorageArea( WebKit::WebStorageNamespace* RendererWebStorageNamespaceImpl::copy() { // If we haven't been used yet, we might as well start out fresh (and lazy). if (namespace_id_ == kUninitializedNamespaceId) - return new RendererWebStorageNamespaceImpl(is_local_storage_); + return new RendererWebStorageNamespaceImpl(storage_type_); // This cannot easily be differed because we need a snapshot in time. int64 new_namespace_id; RenderThread::current()->Send( new ViewHostMsg_DOMStorageCloneNamespaceId(namespace_id_, &new_namespace_id)); - return new RendererWebStorageNamespaceImpl(is_local_storage_, + return new RendererWebStorageNamespaceImpl(storage_type_, new_namespace_id); } diff --git a/chrome/renderer/renderer_webstoragenamespace_impl.h b/chrome/renderer/renderer_webstoragenamespace_impl.h index 7478a67..c5a6dfb7 100644 --- a/chrome/renderer/renderer_webstoragenamespace_impl.h +++ b/chrome/renderer/renderer_webstoragenamespace_impl.h @@ -6,12 +6,14 @@ #define CHROME_RENDERER_RENDERER_WEBSTORAGENAMESPACE_IMPL_H_ #include "base/basictypes.h" +#include "chrome/common/dom_storage_type.h" #include "webkit/api/public/WebStorageNamespace.h" class RendererWebStorageNamespaceImpl : public WebKit::WebStorageNamespace { public: - explicit RendererWebStorageNamespaceImpl(bool is_local_storage); - RendererWebStorageNamespaceImpl(bool is_local_storage, int64 namespace_id); + explicit RendererWebStorageNamespaceImpl(DOMStorageType storage_type); + RendererWebStorageNamespaceImpl( + DOMStorageType storage_type, int64 namespace_id); // See WebStorageNamespace.h for documentation on these functions. virtual ~RendererWebStorageNamespaceImpl(); @@ -21,9 +23,8 @@ class RendererWebStorageNamespaceImpl : public WebKit::WebStorageNamespace { virtual void close(); private: - // Are we local storage (as opposed to session storage). Used during lazy - // initialization of namespace_id_. - bool is_local_storage_; + // Used during lazy initialization of namespace_id_. + const DOMStorageType storage_type_; // Our namespace ID. Lazily initialized. int64 namespace_id_; |