| Index: chrome/browser/sessions/session_restore.cc
|
| diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc
|
| index 98708651d0277a09c6280b2421149f3345f1250c..43b9aacedfd32543d26918e40688129de177fa4f 100644
|
| --- a/chrome/browser/sessions/session_restore.cc
|
| +++ b/chrome/browser/sessions/session_restore.cc
|
| @@ -732,7 +732,11 @@ class SessionRestoreImpl : public content::NotificationObserver {
|
| 100);
|
|
|
| if (windows->empty()) {
|
| - // Restore was unsuccessful.
|
| + // Restore was unsuccessful. The DOM storage system can also delete its
|
| + // data, since no session restore will happen at a later point in time.
|
| + content::DOMStorageContext* dom_storage_context =
|
| + content::BrowserContext::GetDOMStorageContext(profile_);
|
| + dom_storage_context->StartScavengingUnusedSessionStorage();
|
| return FinishedTabCreation(false, false);
|
| }
|
|
|
| @@ -821,6 +825,13 @@ class SessionRestoreImpl : public content::NotificationObserver {
|
| Browser* finished_browser = FinishedTabCreation(true, has_tabbed_browser);
|
| if (finished_browser)
|
| last_browser = finished_browser;
|
| +
|
| + // sessionStorages needed for the session restore have now been recreated
|
| + // by RestoreTab. Now it's safe for the DOM storage system to start
|
| + // deleting leftover data.
|
| + content::DOMStorageContext* dom_storage_context =
|
| + content::BrowserContext::GetDOMStorageContext(profile_);
|
| + dom_storage_context->StartScavengingUnusedSessionStorage();
|
| return last_browser;
|
| }
|
|
|
|
|