Index: content/browser/dom_storage/dom_storage_namespace.cc |
diff --git a/content/browser/dom_storage/dom_storage_namespace.cc b/content/browser/dom_storage/dom_storage_namespace.cc |
index f554ac58814260442a14cdf3bd90b140ba786511..b4c9fc5243f2a7db299745e230b7b21301d8a4f1 100644 |
--- a/content/browser/dom_storage/dom_storage_namespace.cc |
+++ b/content/browser/dom_storage/dom_storage_namespace.cc |
@@ -59,7 +59,8 @@ void DOMStorageNamespace::CloseStorageArea(DOMStorageArea* area) { |
AreaHolder* holder = GetAreaHolder(area->origin()); |
DCHECK(holder); |
DCHECK_EQ(holder->area_.get(), area); |
- --(holder->open_count_); |
+ if (!--(holder->open_count_) && holder->area_->HasUncommittedChanges()) |
+ holder->area_->ScheduleImmediateCommit(); |
// TODO(michaeln): Clean up areas that aren't needed in memory anymore. |
// The in-process-webkit based impl didn't do this either, but would be nice. |
} |