Index: chrome/browser/sessions/session_restore_observer.cc |
diff --git a/chrome/browser/sessions/session_restore_observer.cc b/chrome/browser/sessions/session_restore_observer.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a9b85b8a2f036d313402ac039bfa3a1b9e5468b6 |
--- /dev/null |
+++ b/chrome/browser/sessions/session_restore_observer.cc |
@@ -0,0 +1,33 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/sessions/session_restore_observer.h" |
+ |
+#include <algorithm> |
+ |
+#include "base/logging.h" |
+ |
+// static |
+base::ObserverList<SessionRestoreObserver>& |
+SessionRestoreObserver::observers() { |
+ if (!observers_) |
+ observers_ = new base::ObserverList<SessionRestoreObserver>(); |
+ return *observers_; |
+} |
+ |
+// static |
+void SessionRestoreObserver::AddObserver(SessionRestoreObserver* observer) { |
+ DCHECK(!observers().HasObserver(observer)) << "Duplicate registration"; |
sky
2017/06/26 15:34:10
There is no need for this DCHECK, it's in Observer
ducbui
2017/06/26 19:59:26
Done.
|
+ observers().AddObserver(observer); |
+} |
+ |
+// static |
+void SessionRestoreObserver::RemoveObserver(SessionRestoreObserver* observer) { |
+ DCHECK(observers().HasObserver(observer)); |
sky
2017/06/26 15:34:11
Remove DCHECK.
ducbui
2017/06/26 19:59:26
Done.
|
+ observers().RemoveObserver(observer); |
+} |
+ |
+// static |
+base::ObserverList<SessionRestoreObserver>* SessionRestoreObserver::observers_ = |
+ nullptr; |