| Index: chrome/browser/sync_file_system/drive_backend/sync_worker.h
|
| diff --git a/chrome/browser/sync_file_system/drive_backend/sync_worker.h b/chrome/browser/sync_file_system/drive_backend/sync_worker.h
|
| index 752cfc603ac3995e3751278d3cabe06a54ec4692..28544e12c6761d77b61c909fc59fa56402915fb7 100644
|
| --- a/chrome/browser/sync_file_system/drive_backend/sync_worker.h
|
| +++ b/chrome/browser/sync_file_system/drive_backend/sync_worker.h
|
| @@ -50,6 +50,14 @@ class SyncEngineInitializer;
|
|
|
| class SyncWorker : public SyncTaskManager::Client {
|
| public:
|
| + enum AppStatus {
|
| + APP_STATUS_ENABLED,
|
| + APP_STATUS_DISABLED,
|
| + APP_STATUS_UNINSTALLED,
|
| + };
|
| +
|
| + typedef base::hash_map<std::string, AppStatus> AppStatusMap;
|
| +
|
| class Observer {
|
| public:
|
| virtual void OnPendingFileListUpdated(int item_count) = 0;
|
| @@ -67,7 +75,7 @@ class SyncWorker : public SyncTaskManager::Client {
|
| static scoped_ptr<SyncWorker> CreateOnWorker(
|
| const base::FilePath& base_dir,
|
| Observer* observer,
|
| - ExtensionServiceInterface* extension_service,
|
| + const base::WeakPtr<ExtensionServiceInterface>& extension_service,
|
| scoped_ptr<SyncEngineContext> sync_engine_context,
|
| leveldb::Env* env_override);
|
|
|
| @@ -130,7 +138,7 @@ class SyncWorker : public SyncTaskManager::Client {
|
| friend class SyncEngineTest;
|
|
|
| SyncWorker(const base::FilePath& base_dir,
|
| - ExtensionServiceInterface* extension_service,
|
| + const base::WeakPtr<ExtensionServiceInterface>& extension_service,
|
| scoped_ptr<SyncEngineContext> sync_engine_context,
|
| leveldb::Env* env_override);
|
|
|
| @@ -143,6 +151,7 @@ class SyncWorker : public SyncTaskManager::Client {
|
| void DidInitialize(SyncEngineInitializer* initializer,
|
| SyncStatusCode status);
|
| void UpdateRegisteredApp();
|
| + void DidQueryAppStatus(const AppStatusMap* app_status);
|
| void DidProcessRemoteChange(RemoteToLocalSyncer* syncer,
|
| const SyncFileCallback& callback,
|
| SyncStatusCode status);
|
| @@ -178,9 +187,7 @@ class SyncWorker : public SyncTaskManager::Client {
|
|
|
| scoped_ptr<SyncTaskManager> task_manager_;
|
|
|
| - // TODO(tzik): Add a proxy class for ExtensionServiceInterface to cross
|
| - // thread, and hold its instance as WeakPtr here.
|
| - ExtensionServiceInterface* extension_service_;
|
| + base::WeakPtr<ExtensionServiceInterface> extension_service_;
|
|
|
| scoped_ptr<SyncEngineContext> context_;
|
| ObserverList<Observer> observers_;
|
|
|