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

Unified Diff: components/sync/driver/non_ui_data_type_controller.h

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/driver/non_ui_data_type_controller.h
diff --git a/components/sync/driver/non_ui_data_type_controller.h b/components/sync/driver/non_ui_data_type_controller.h
index 7b0f367175704494060c2cf5fa9a94dab334e897..80d859ca45bb1a34eba9bad410809433384ec480 100644
--- a/components/sync/driver/non_ui_data_type_controller.h
+++ b/components/sync/driver/non_ui_data_type_controller.h
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_SYNC_DRIVER_NON_UI_DATA_TYPE_CONTROLLER_H_
#define COMPONENTS_SYNC_DRIVER_NON_UI_DATA_TYPE_CONTROLLER_H_
+#include <memory>
#include <string>
#include "base/compiler_specific.h"
@@ -24,28 +25,24 @@ class SyncClient;
class NonUIDataTypeController : public DirectoryDataTypeController {
public:
- NonUIDataTypeController(
- const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread,
- const base::Closure& error_callback,
- SyncClient* sync_client);
+ // |dump_stack| is called when an unrecoverable error occurs.
+ NonUIDataTypeController(syncer::ModelType type,
+ const base::Closure& dump_stack,
+ SyncClient* sync_client);
+ ~NonUIDataTypeController() override;
// DataTypeController interface.
void LoadModels(const ModelLoadCallback& model_load_callback) override;
void StartAssociating(const StartCallback& start_callback) override;
void Stop() override;
- syncer::ModelType type() const override = 0;
syncer::ModelSafeGroup model_safe_group() const override = 0;
ChangeProcessor* GetChangeProcessor() const override;
std::string name() const override;
State state() const override;
- void OnSingleDataTypeUnrecoverableError(
- const syncer::SyncError& error) override;
protected:
// For testing only.
NonUIDataTypeController();
- // DataTypeController is RefCounted.
- ~NonUIDataTypeController() override;
// Start any dependent services that need to be running before we can
// associate models. The default implementation is a no-op.
@@ -88,6 +85,8 @@ class NonUIDataTypeController : public DirectoryDataTypeController {
// us know that it is safe to start associating.
void OnModelLoaded();
+ std::unique_ptr<syncer::DataTypeErrorHandler> CreateErrorHandler() override;
+
private:
// Posted on the backend thread by StartAssociationAsync().
void StartAssociationWithSharedChangeProcessor(
@@ -132,8 +131,6 @@ class NonUIDataTypeController : public DirectoryDataTypeController {
// since we call Disconnect() before releasing the UI thread
// reference).
scoped_refptr<SharedChangeProcessor> shared_change_processor_;
-
- scoped_refptr<base::SingleThreadTaskRunner> ui_thread_;
};
} // namespace sync_driver

Powered by Google App Engine
This is Rietveld 408576698