| Index: components/sync_sessions/session_data_type_controller.cc
|
| diff --git a/components/sync_sessions/session_data_type_controller.cc b/components/sync_sessions/session_data_type_controller.cc
|
| index b2a7abc6a751e5bc30872224a0f09a00c8e47622..5f88d4ec8a00da425846330a32ae5d42939c5792 100644
|
| --- a/components/sync_sessions/session_data_type_controller.cc
|
| +++ b/components/sync_sessions/session_data_type_controller.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "components/sync_sessions/session_data_type_controller.h"
|
|
|
| +#include <set>
|
| +
|
| #include "components/prefs/pref_service.h"
|
| #include "components/sync/driver/sync_client.h"
|
| #include "components/sync_sessions/sync_sessions_client.h"
|
| @@ -13,15 +15,11 @@
|
| namespace browser_sync {
|
|
|
| SessionDataTypeController::SessionDataTypeController(
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread,
|
| - const base::Closure& error_callback,
|
| + const base::Closure& dump_stack,
|
| sync_driver::SyncClient* sync_client,
|
| sync_driver::LocalDeviceInfoProvider* local_device,
|
| const char* history_disabled_pref_name)
|
| - : UIDataTypeController(ui_thread,
|
| - error_callback,
|
| - syncer::SESSIONS,
|
| - sync_client),
|
| + : UIDataTypeController(syncer::SESSIONS, dump_stack, sync_client),
|
| sync_client_(sync_client),
|
| local_device_(local_device),
|
| history_disabled_pref_name_(history_disabled_pref_name),
|
| @@ -32,13 +30,13 @@ SessionDataTypeController::SessionDataTypeController(
|
| pref_registrar_.Add(
|
| history_disabled_pref_name_,
|
| base::Bind(&SessionDataTypeController::OnSavingBrowserHistoryPrefChanged,
|
| - base::Unretained(this)));
|
| + base::AsWeakPtr(this)));
|
| }
|
|
|
| SessionDataTypeController::~SessionDataTypeController() {}
|
|
|
| bool SessionDataTypeController::StartModels() {
|
| - DCHECK(ui_thread()->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| browser_sync::SyncedWindowDelegatesGetter* synced_window_getter =
|
| sync_client_->GetSyncSessionsClient()->GetSyncedWindowDelegatesGetter();
|
| std::set<const browser_sync::SyncedWindowDelegate*> window =
|
| @@ -53,8 +51,9 @@ bool SessionDataTypeController::StartModels() {
|
| }
|
|
|
| if (!local_device_->GetLocalDeviceInfo()) {
|
| - subscription_ = local_device_->RegisterOnInitializedCallback(base::Bind(
|
| - &SessionDataTypeController::OnLocalDeviceInfoInitialized, this));
|
| + subscription_ = local_device_->RegisterOnInitializedCallback(
|
| + base::Bind(&SessionDataTypeController::OnLocalDeviceInfoInitialized,
|
| + base::AsWeakPtr(this)));
|
| waiting_on_local_device_info_ = true;
|
| }
|
|
|
| @@ -62,17 +61,18 @@ bool SessionDataTypeController::StartModels() {
|
| }
|
|
|
| void SessionDataTypeController::StopModels() {
|
| + DCHECK(CalledOnValidThread());
|
| subscription_.reset();
|
| }
|
|
|
| bool SessionDataTypeController::ReadyForStart() const {
|
| - DCHECK(ui_thread()->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| return !sync_client_->GetPrefService()->GetBoolean(
|
| history_disabled_pref_name_);
|
| }
|
|
|
| void SessionDataTypeController::OnSessionRestoreComplete() {
|
| - DCHECK(ui_thread()->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| waiting_on_session_restore_ = false;
|
| MaybeCompleteLoading();
|
| }
|
| @@ -88,7 +88,7 @@ void SessionDataTypeController::MaybeCompleteLoading() {
|
| }
|
|
|
| void SessionDataTypeController::OnLocalDeviceInfoInitialized() {
|
| - DCHECK(ui_thread()->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| subscription_.reset();
|
|
|
| waiting_on_local_device_info_ = false;
|
| @@ -96,7 +96,7 @@ void SessionDataTypeController::OnLocalDeviceInfoInitialized() {
|
| }
|
|
|
| void SessionDataTypeController::OnSavingBrowserHistoryPrefChanged() {
|
| - DCHECK(ui_thread()->BelongsToCurrentThread());
|
| + DCHECK(CalledOnValidThread());
|
| if (sync_client_->GetPrefService()->GetBoolean(history_disabled_pref_name_)) {
|
| // If history and tabs persistence is turned off then generate an
|
| // unrecoverable error. SESSIONS won't be a registered type on the next
|
| @@ -106,7 +106,7 @@ void SessionDataTypeController::OnSavingBrowserHistoryPrefChanged() {
|
| FROM_HERE, syncer::SyncError::DATATYPE_POLICY_ERROR,
|
| "History and tab saving is now disabled by policy.",
|
| syncer::SESSIONS);
|
| - OnSingleDataTypeUnrecoverableError(error);
|
| + CreateErrorHandler()->OnUnrecoverableError(error);
|
| }
|
| }
|
| }
|
|
|