| Index: content/browser/dom_storage/dom_storage_area.cc
|
| diff --git a/content/browser/dom_storage/dom_storage_area.cc b/content/browser/dom_storage/dom_storage_area.cc
|
| index 9ff7bfb37c4c395dcd1674223177e9acd9c09d80..9f2e833f9f3c1f4f6d889c8d0d5c273d4023c602 100644
|
| --- a/content/browser/dom_storage/dom_storage_area.cc
|
| +++ b/content/browser/dom_storage/dom_storage_area.cc
|
| @@ -41,6 +41,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) {
|
| @@ -89,6 +91,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)
|
| @@ -378,6 +384,9 @@ DOMStorageArea::CommitBatch* DOMStorageArea::CreateCommitBatchIfNeeded() {
|
| }
|
|
|
| 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),
|
|
|