| Index: chrome/browser/sync/glue/non_frontend_data_type_controller.h
|
| diff --git a/chrome/browser/sync/glue/non_frontend_data_type_controller.h b/chrome/browser/sync/glue/non_frontend_data_type_controller.h
|
| index f1dd235ba32662db833aacc18b5f42a24a39b9a2..55f56d95f06f878c73f4b9247c7951e9a8955a74 100644
|
| --- a/chrome/browser/sync/glue/non_frontend_data_type_controller.h
|
| +++ b/chrome/browser/sync/glue/non_frontend_data_type_controller.h
|
| @@ -9,6 +9,7 @@
|
| #include <string>
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/callback_forward.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/synchronization/waitable_event.h"
|
| @@ -32,9 +33,8 @@ class ChangeProcessor;
|
| // funtionality is implemented by default. Derived classes must implement:
|
| // type()
|
| // model_safe_group()
|
| -// StartAssociationAsync()
|
| +// PostTaskOnBackendThread()
|
| // CreateSyncComponents()
|
| -// StopAssociationAsync()
|
| // RecordUnrecoverableError(...)
|
| // RecordAssociationTime(...);
|
| // RecordStartFailure(...);
|
| @@ -71,10 +71,12 @@ class NonFrontendDataTypeController : public DataTypeController {
|
| // Note: this is performed on the frontend (UI) thread.
|
| virtual bool StartModels();
|
|
|
| - // Post the association task to the thread the datatype lives on.
|
| - // Note: this is performed on the frontend (UI) thread.
|
| - // Return value: True if task posted successfully, False otherwise.
|
| - virtual bool StartAssociationAsync() = 0;
|
| + // Posts the given task to the backend thread, i.e. the thread the
|
| + // datatype lives on. Return value: True if task posted successfully,
|
| + // false otherwise.
|
| + virtual bool PostTaskOnBackendThread(
|
| + const tracked_objects::Location& from_here,
|
| + const base::Closure& task) = 0;
|
|
|
| // Build sync components and associate models.
|
| // Note: this is performed on the datatype's thread.
|
| @@ -105,11 +107,6 @@ class NonFrontendDataTypeController : public DataTypeController {
|
| // Note: this is performed on the frontend (UI) thread.
|
| virtual void StopModels();
|
|
|
| - // Post the StopAssociation task to the thread the datatype lives on.
|
| - // Note: this is performed on the frontend (UI) thread.
|
| - // Return value: True if task posted successfully, False otherwise.
|
| - virtual bool StopAssociationAsync() = 0;
|
| -
|
| // Disassociate the models and destroy the sync components.
|
| // Note: this is performed on the datatype's thread.
|
| virtual void StopAssociation();
|
| @@ -131,6 +128,16 @@ class NonFrontendDataTypeController : public DataTypeController {
|
| // Record causes of start failure. Called on UI thread.
|
| virtual void RecordStartFailure(StartResult result) = 0;
|
|
|
| + // Post the association task to the thread the datatype lives on.
|
| + // Note: this is performed on the frontend (UI) thread.
|
| + // Return value: True if task posted successfully, False otherwise.
|
| + bool StartAssociationAsync();
|
| +
|
| + // Post the StopAssociation task to the thread the datatype lives on.
|
| + // Note: this is performed on the frontend (UI) thread.
|
| + // Return value: True if task posted successfully, False otherwise.
|
| + bool StopAssociationAsync();
|
| +
|
| // Accessors and mutators used by derived classes.
|
| ProfileSyncComponentsFactory* profile_sync_factory() const;
|
| Profile* profile() const;
|
|
|