summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/in_process_webkit/dom_storage_dispatcher_host.cc6
-rw-r--r--chrome/browser/in_process_webkit/dom_storage_dispatcher_host.h3
-rw-r--r--chrome/browser/in_process_webkit/storage_namespace.cc12
-rw-r--r--chrome/browser/in_process_webkit/storage_namespace.h7
-rw-r--r--chrome/chrome.gyp1
-rw-r--r--chrome/common/dom_storage_type.h13
-rw-r--r--chrome/common/render_messages.h189
-rw-r--r--chrome/common/render_messages_internal.h2
-rw-r--r--chrome/renderer/renderer_webkitclient_impl.cc4
-rw-r--r--chrome/renderer/renderer_webstoragenamespace_impl.cc14
-rw-r--r--chrome/renderer/renderer_webstoragenamespace_impl.h11
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_;