Index: chrome/browser/sessions/session_restore.h |
diff --git a/chrome/browser/sessions/session_restore.h b/chrome/browser/sessions/session_restore.h |
index f756f10a0e6ae9940f161e5a749bd4630f71a451..8e7193aa462e7d6cfd0e3a03b3a690529f2dd09a 100644 |
--- a/chrome/browser/sessions/session_restore.h |
+++ b/chrome/browser/sessions/session_restore.h |
@@ -40,12 +40,12 @@ class SessionRestore { |
}; |
// Notification callback list. |
- using CallbackList = base::CallbackList<void(void)>; |
+ using CallbackList = base::CallbackList<void(int)>; |
// Used by objects calling RegisterOnSessionRestoredCallback() to de-register |
// themselves when they are destroyed. |
using CallbackSubscription = |
- scoped_ptr<base::CallbackList<void(void)>::Subscription>; |
+ scoped_ptr<base::CallbackList<void(int)>::Subscription>; |
// Restores the last session. |behavior| is a bitmask of Behaviors, see it |
// for details. If |browser| is non-null the tabs for the first window are |
@@ -92,9 +92,20 @@ class SessionRestore { |
static bool IsRestoringSynchronously(); |
// Register callbacks for session restore events. These callbacks are stored |
- // in on_session_restored_callbacks_. |
+ // in |on_session_restored_callbacks_|. |
+ // The callback is supplied an integer arg representing a tab count. The exact |
+ // meaning and timing depend upon the restore type: |
+ // - SessionRestore::SYNCHRONOUS: the parameter is the number of tabs that |
+ // were created. Additionally the callback is invoked immediately after the |
+ // tabs have been created. That is, the tabs are not necessarily loading. |
+ // - For all other restore types the parameter is the number of tabs that were |
+ // restored and is sent after all tabs have started loading. Additionally if a |
+ // request to restore tabs comes in while a previous request to restore tabs |
+ // has not yet completed (loading tabs is throttled), then the callback is |
+ // only notified once both sets of tabs have started loading and with the |
+ // total number of tabs for both restores. |
static CallbackSubscription RegisterOnSessionRestoredCallback( |
- const base::Closure& callback); |
+ const base::Callback<void(int)>& callback); |
// The max number of non-selected tabs SessionRestore loads when restoring |
// a session. A value of 0 indicates all tabs are loaded at once. |