Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3222)

Unified Diff: components/sync_sessions/session_data_type_controller.cc

Issue 2289143003: [Sync] Convert DTCs to be not RefCounted and NonThreadSafe. (Closed)
Patch Set: Rebase. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698