summaryrefslogtreecommitdiffstats
path: root/content/browser/dom_storage/dom_storage_area.cc
diff options
context:
space:
mode:
authorcmumford <cmumford@chromium.org>2015-05-10 09:44:13 -0700
committerCommit bot <commit-bot@chromium.org>2015-05-10 16:45:27 +0000
commita1f8d834ce9fc89e5e409e08bb00173c37854329 (patch)
treeae54fc3b6dbc2a36c10cb1c755e858a4a7d10ac0 /content/browser/dom_storage/dom_storage_area.cc
parentf2d15970289120d1b629168d9c46245a1438f10f (diff)
downloadchromium_src-a1f8d834ce9fc89e5e409e08bb00173c37854329.zip
chromium_src-a1f8d834ce9fc89e5e409e08bb00173c37854329.tar.gz
chromium_src-a1f8d834ce9fc89e5e409e08bb00173c37854329.tar.bz2
localStorage: Aggressively flush to disk for Android WebView.
Android WebView does not save data during shutdown like Chrome does. Adding an --enable-aggressive-domstorage-flushing flag to return the DOM Storage implementation to the prior implementation which had a 1 sec. timer to flush the commit queue. BUG=479767 Review URL: https://codereview.chromium.org/1129233003 Cr-Commit-Position: refs/heads/master@{#329070}
Diffstat (limited to 'content/browser/dom_storage/dom_storage_area.cc')
-rw-r--r--content/browser/dom_storage/dom_storage_area.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/content/browser/dom_storage/dom_storage_area.cc b/content/browser/dom_storage/dom_storage_area.cc
index 56a1fd0..67c7b98 100644
--- a/content/browser/dom_storage/dom_storage_area.cc
+++ b/content/browser/dom_storage/dom_storage_area.cc
@@ -42,6 +42,8 @@ const int kMaxCommitsPerHour = 6;
} // namespace
+bool DOMStorageArea::s_aggressive_flushing_enabled_ = false;
+
DOMStorageArea::RateLimiter::RateLimiter(size_t desired_rate,
base::TimeDelta time_quantum)
: rate_(desired_rate), samples_(0), time_quantum_(time_quantum) {
@@ -90,6 +92,10 @@ GURL DOMStorageArea::OriginFromDatabaseFileName(const base::FilePath& name) {
return storage::GetOriginFromIdentifier(origin_id);
}
+void DOMStorageArea::EnableAggressiveCommitDelay() {
+ s_aggressive_flushing_enabled_ = true;
+}
+
DOMStorageArea::DOMStorageArea(const GURL& origin,
const base::FilePath& directory,
DOMStorageTaskRunner* task_runner)
@@ -388,6 +394,9 @@ void DOMStorageArea::StartCommitTimer() {
}
base::TimeDelta DOMStorageArea::ComputeCommitDelay() const {
+ if (s_aggressive_flushing_enabled_)
+ return base::TimeDelta::FromSeconds(1);
+
base::TimeDelta elapsed_time = base::TimeTicks::Now() - start_time_;
base::TimeDelta delay = std::max(
base::TimeDelta::FromSeconds(kCommitDefaultDelaySecs),