| Index: chrome/browser/sync/sessions/session_data_type_controller.h
|
| diff --git a/chrome/browser/sync/sessions/session_data_type_controller.h b/chrome/browser/sync/sessions/session_data_type_controller.h
|
| index d5ede141b661db68f2759a702abe97d4f4c63572..846c23f79b12269afcca4d52b3bd130f008ade9a 100644
|
| --- a/chrome/browser/sync/sessions/session_data_type_controller.h
|
| +++ b/chrome/browser/sync/sessions/session_data_type_controller.h
|
| @@ -5,6 +5,7 @@
|
| #ifndef CHROME_BROWSER_SYNC_SESSIONS_SESSION_DATA_TYPE_CONTROLLER_H_
|
| #define CHROME_BROWSER_SYNC_SESSIONS_SESSION_DATA_TYPE_CONTROLLER_H_
|
|
|
| +#include "chrome/browser/sync/glue/local_device_info_provider.h"
|
| #include "components/sync_driver/ui_data_type_controller.h"
|
| #include "content/public/browser/notification_observer.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| @@ -13,13 +14,18 @@ class Profile;
|
|
|
| namespace browser_sync {
|
|
|
| +class SyncedWindowDelegatesGetter;
|
| +
|
| // Overrides StartModels to avoid sync contention with sessions during
|
| -// a session restore operation at startup.
|
| +// a session restore operation at startup and to wait for the local
|
| +// device info to become available.
|
| class SessionDataTypeController : public UIDataTypeController,
|
| public content::NotificationObserver {
|
| public:
|
| SessionDataTypeController(SyncApiComponentFactory* factory,
|
| Profile* profile,
|
| + SyncedWindowDelegatesGetter* synced_window_getter,
|
| + LocalDeviceInfoProvider* local_device,
|
| const DisableTypeCallback& disable_callback);
|
|
|
| // NotificationObserver interface.
|
| @@ -33,8 +39,22 @@ class SessionDataTypeController : public UIDataTypeController,
|
| virtual void StopModels() OVERRIDE;
|
|
|
| private:
|
| + bool IsWaiting();
|
| + void MaybeCompleteLoading();
|
| + void OnLocalDeviceInfoInitialized();
|
| +
|
| Profile* const profile_;
|
| +
|
| + SyncedWindowDelegatesGetter* synced_window_getter_;
|
| content::NotificationRegistrar notification_registrar_;
|
| +
|
| + LocalDeviceInfoProvider* const local_device_;
|
| + scoped_ptr<LocalDeviceInfoProvider::Subscription> subscription_;
|
| +
|
| + // Flags that indicate the reason for pending loading models.
|
| + bool waiting_on_session_restore_;
|
| + bool waiting_on_local_device_info_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(SessionDataTypeController);
|
| };
|
|
|
|
|