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

Unified Diff: components/sync/driver/frontend_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/frontend_data_type_controller.h
diff --git a/components/sync/driver/frontend_data_type_controller.h b/components/sync/driver/frontend_data_type_controller.h
index 175818cda3b9d3026f0cb48a27159e80b01247b2..d8d417aa34370efc2037f43daf30e27eb66679e5 100644
--- a/components/sync/driver/frontend_data_type_controller.h
+++ b/components/sync/driver/frontend_data_type_controller.h
@@ -10,12 +10,10 @@
#include "base/compiler_specific.h"
#include "base/macros.h"
-#include "base/threading/thread_checker.h"
-#include "components/sync/core/data_type_error_handler.h"
+#include "components/sync/api/data_type_error_handler.h"
#include "components/sync/driver/directory_data_type_controller.h"
namespace base {
-class SingleThreadTaskRunner;
class TimeDelta;
}
@@ -44,30 +42,25 @@ namespace browser_sync {
class FrontendDataTypeController
: public sync_driver::DirectoryDataTypeController {
public:
- FrontendDataTypeController(
- const scoped_refptr<base::SingleThreadTaskRunner>& ui_thread,
- const base::Closure& error_callback,
- sync_driver::SyncClient* sync_client);
+ // |dump_stack| is called when an unrecoverable error occurs.
+ FrontendDataTypeController(syncer::ModelType type,
+ const base::Closure& dump_stack,
+ sync_driver::SyncClient* sync_client);
+ ~FrontendDataTypeController() 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;
std::string name() const override;
State state() const override;
- // DataTypeErrorHandler interface.
- void OnSingleDataTypeUnrecoverableError(
- const syncer::SyncError& error) override;
-
protected:
friend class FrontendDataTypeControllerMock;
// For testing only.
FrontendDataTypeController();
- ~FrontendDataTypeController() override;
// Kick off any dependent services that need to be running before we can
// associate models. The default implementation is a no-op.
@@ -100,18 +93,13 @@ class FrontendDataTypeController
sync_driver::ChangeProcessor* GetChangeProcessor() const override;
virtual void set_change_processor(sync_driver::ChangeProcessor* processor);
- // Handles the reporting of unrecoverable error. It records stuff in
- // UMA and reports to breakpad.
- // Virtual for testing purpose.
- virtual void RecordUnrecoverableError(
- const tracked_objects::Location& from_here,
- const std::string& message);
-
// If the DTC is waiting for models to load, once the models are
// loaded the datatype service will call this function on DTC to let
// us know that it is safe to start associating.
void OnModelLoaded();
+ std::unique_ptr<syncer::DataTypeErrorHandler> CreateErrorHandler() override;
+
State state_;
StartCallback start_callback_;
@@ -132,7 +120,8 @@ class FrontendDataTypeController
// to a failure or abort or stop.
void CleanUp();
- base::ThreadChecker thread_checker_;
+ // Handle an unrecoverable error.
+ void OnUnrecoverableError(const syncer::SyncError& error);
DISALLOW_COPY_AND_ASSIGN(FrontendDataTypeController);
};
« no previous file with comments | « components/sync/driver/fake_sync_service.cc ('k') | components/sync/driver/frontend_data_type_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698