1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/extensions/state_store_notification_observer.h"
6
7#include "base/logging.h"
8#include "chrome/browser/chrome_notification_types.h"
9#include "content/public/browser/notification_service.h"
10#include "extensions/browser/state_store.h"
11
12namespace extensions {
13
14StateStoreNotificationObserver::StateStoreNotificationObserver(
15    StateStore* state_store)
16    : state_store_(state_store) {
17  registrar_.Add(this,
18                 chrome::NOTIFICATION_SESSION_RESTORE_DONE,
19                 content::NotificationService::AllBrowserContextsAndSources());
20}
21
22StateStoreNotificationObserver::~StateStoreNotificationObserver() {
23}
24
25void StateStoreNotificationObserver::Observe(
26    int type,
27    const content::NotificationSource& source,
28    const content::NotificationDetails& details) {
29  DCHECK_EQ(type, chrome::NOTIFICATION_SESSION_RESTORE_DONE);
30  registrar_.RemoveAll();
31  state_store_->RequestInitAfterDelay();
32}
33
34}  // namespace extensions
35