Chromium Code Reviews| Index: chrome/browser/sessions/session_restore.h |
| diff --git a/chrome/browser/sessions/session_restore.h b/chrome/browser/sessions/session_restore.h |
| index e7ad887cf1bfc62d4bb736c9866ff433d86d15e2..10dabff112187730d77f053001e1fb8bbbfa8371 100644 |
| --- a/chrome/browser/sessions/session_restore.h |
| +++ b/chrome/browser/sessions/session_restore.h |
| @@ -12,6 +12,8 @@ |
| #include "base/callback_list.h" |
| #include "base/macros.h" |
| +#include "base/observer_list.h" |
| +#include "chrome/browser/sessions/session_restore_observer.h" |
| #include "components/history/core/browser/history_service.h" |
| #include "components/sessions/core/session_types.h" |
| #include "ui/base/window_open_disposition.h" |
| @@ -106,6 +108,18 @@ class SessionRestore { |
| static void AddURLsToOpen(const Profile* profile, |
| const std::vector<GURL>& urls); |
| + // Add/remove an observer to/from this session restore. |
| + static void AddObserver(SessionRestoreObserver* observer); |
| + static void RemoveObserver(SessionRestoreObserver* observer); |
| + |
| + // Accessor for the observer list. Create the list the first time to always |
| + // return a valid reference. |
| + static base::ObserverList<SessionRestoreObserver>& observers() { |
| + if (!observers_) |
| + observers_ = new base::ObserverList<SessionRestoreObserver>(); |
| + return *observers_; |
| + } |
| + |
| private: |
| SessionRestore(); |
| @@ -120,6 +134,9 @@ class SessionRestore { |
| // Contains all registered callbacks for session restore notifications. |
| static CallbackList* on_session_restored_callbacks_; |
| + // Contains all registered observers for session restore events. |
| + static base::ObserverList<SessionRestoreObserver>* observers_; |
|
chrisha
2017/06/27 17:09:07
Shouldn't this explicitly use a leaky lazy instanc
|
| + |
| DISALLOW_COPY_AND_ASSIGN(SessionRestore); |
| }; |