| Index: chrome/browser/sessions/session_restore.cc
|
| diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc
|
| index 5298b08da7e3da8ecf9ad7d3e31b42b19b1d741f..73515443fa5fc7e50af3468bd79127a6e3ab2aea 100644
|
| --- a/chrome/browser/sessions/session_restore.cc
|
| +++ b/chrome/browser/sessions/session_restore.cc
|
| @@ -733,7 +733,10 @@ 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::BrowserContext::GetDefaultDOMStorageContext(profile_)->
|
| + StartScavengingUnusedSessionStorage();
|
| return FinishedTabCreation(false, false);
|
| }
|
|
|
| @@ -822,6 +825,12 @@ 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::BrowserContext::GetDefaultDOMStorageContext(profile_)->
|
| + StartScavengingUnusedSessionStorage();
|
| return last_browser;
|
| }
|
|
|
|
|