summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorsatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-12 11:14:39 +0000
committersatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-12 11:14:39 +0000
commit68c50e5a858c0ec0c06abebaef0fca939f76861d (patch)
treeccefd2c06ff694b78ff42d4ef2d9e2940ebc4fa7 /chrome
parent380e8ec681277f2297e2b72b85b2bde8ddb9eabf (diff)
downloadchromium_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.cc6
-rw-r--r--chrome/browser/in_process_webkit/dom_storage_namespace.h3
-rw-r--r--chrome/browser/in_process_webkit/dom_storage_uitest.cc2
-rw-r--r--chrome/renderer/render_view.cc4
-rw-r--r--chrome/renderer/render_view.h3
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);