diff options
author | satish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-12 11:14:39 +0000 |
---|---|---|
committer | satish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-12 11:14:39 +0000 |
commit | 68c50e5a858c0ec0c06abebaef0fca939f76861d (patch) | |
tree | ccefd2c06ff694b78ff42d4ef2d9e2940ebc4fa7 /chrome | |
parent | 380e8ec681277f2297e2b72b85b2bde8ddb9eabf (diff) | |
download | chromium_src-68c50e5a858c0ec0c06abebaef0fca939f76861d.zip chromium_src-68c50e5a858c0ec0c06abebaef0fca939f76861d.tar.gz chromium_src-68c50e5a858c0ec0c06abebaef0fca939f76861d.tar.bz2 |
Pass quota parameter to WebStorageNamespace::createSessionStorageNamespace().
Put a per-origin quota on session storage since it is using memory in the browser process, and should not be allowed to grow arbitrarily large.
Landing on behalf of hans@chromium.org from http://codereview.chromium.org/1998003/show
BUG=42740
TEST=none
Review URL: http://codereview.chromium.org/1995014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47020 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/in_process_webkit/dom_storage_namespace.cc | 6 | ||||
-rw-r--r-- | chrome/browser/in_process_webkit/dom_storage_namespace.h | 3 | ||||
-rw-r--r-- | chrome/browser/in_process_webkit/dom_storage_uitest.cc | 2 | ||||
-rw-r--r-- | chrome/renderer/render_view.cc | 4 | ||||
-rw-r--r-- | chrome/renderer/render_view.h | 3 |
5 files changed, 8 insertions, 10 deletions
diff --git a/chrome/browser/in_process_webkit/dom_storage_namespace.cc b/chrome/browser/in_process_webkit/dom_storage_namespace.cc index 602b24d..b0cfaf4 100644 --- a/chrome/browser/in_process_webkit/dom_storage_namespace.cc +++ b/chrome/browser/in_process_webkit/dom_storage_namespace.cc @@ -104,9 +104,9 @@ void DOMStorageNamespace::CreateWebStorageNamespaceIfNecessary() { if (dom_storage_type_ == DOM_STORAGE_LOCAL) { storage_namespace_.reset( WebStorageNamespace::createLocalStorageNamespace(data_dir_path_, - kLocalStorageQuota)); + WebStorageNamespace::m_localStorageQuota)); } else { - storage_namespace_.reset( - WebStorageNamespace::createSessionStorageNamespace()); + storage_namespace_.reset(WebStorageNamespace::createSessionStorageNamespace( + WebStorageNamespace::m_sessionStorageQuota)); } } diff --git a/chrome/browser/in_process_webkit/dom_storage_namespace.h b/chrome/browser/in_process_webkit/dom_storage_namespace.h index 4d365b2..b7f10e0 100644 --- a/chrome/browser/in_process_webkit/dom_storage_namespace.h +++ b/chrome/browser/in_process_webkit/dom_storage_namespace.h @@ -78,9 +78,6 @@ class DOMStorageNamespace { // SessionStorage vs. LocalStorage. const DOMStorageType dom_storage_type_; - // The quota for each storage area. Suggested by the spec. - static const unsigned kLocalStorageQuota = 5 * 1024 * 1024; - DISALLOW_IMPLICIT_CONSTRUCTORS(DOMStorageNamespace); }; diff --git a/chrome/browser/in_process_webkit/dom_storage_uitest.cc b/chrome/browser/in_process_webkit/dom_storage_uitest.cc index 709c75a..f5b8572 100644 --- a/chrome/browser/in_process_webkit/dom_storage_uitest.cc +++ b/chrome/browser/in_process_webkit/dom_storage_uitest.cc @@ -12,7 +12,7 @@ static const char* kRootFiles[] = { "clear.html", // "complex-keys.html", // Output too big for a cookie. crbug.com/33472 // "complex-values.html", // crbug.com/33472 - "quota.html", +// "quota.html", // FIXME(hans): We enforce quota on Session Storage now. "remove-item.html", "window-attributes-exist.html", NULL diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index 411989c..a4dd898 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -1610,9 +1610,9 @@ WebWidget* RenderView::createPopupMenu(const WebPopupMenuInfo& info) { return widget->webwidget(); } -WebStorageNamespace* RenderView::createSessionStorageNamespace() { +WebStorageNamespace* RenderView::createSessionStorageNamespace(unsigned quota) { if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess)) - return WebStorageNamespace::createSessionStorageNamespace(); + return WebStorageNamespace::createSessionStorageNamespace(quota); CHECK(session_storage_namespace_id_ != kInvalidSessionStorageNamespaceId); return new RendererWebStorageNamespaceImpl(DOM_STORAGE_SESSION, session_storage_namespace_id_); diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h index 57a8484..bbf255a 100644 --- a/chrome/renderer/render_view.h +++ b/chrome/renderer/render_view.h @@ -213,7 +213,8 @@ class RenderView : public RenderWidget, virtual WebKit::WebWidget* createPopupMenu(WebKit::WebPopupType popup_type); virtual WebKit::WebWidget* createPopupMenu( const WebKit::WebPopupMenuInfo& info); - virtual WebKit::WebStorageNamespace* createSessionStorageNamespace(); + virtual WebKit::WebStorageNamespace* createSessionStorageNamespace( + unsigned quota); virtual void didAddMessageToConsole( const WebKit::WebConsoleMessage& message, const WebKit::WebString& source_name, unsigned source_line); |