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

Unified Diff: chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h

Issue 2353213002: arc: Fix Android App resurrected by sync. (Closed)
Patch Set: Remove redundant pref observer. 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: chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h
diff --git a/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h b/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h
index 9f6c9b7c9b5a3b204e22d7c3fb60d4b75ef85c95..84e69c2221a9627c736735bb1981dee83709bd85 100644
--- a/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h
+++ b/chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.h
@@ -6,6 +6,8 @@
#define CHROME_BROWSER_UI_APP_LIST_ARC_ARC_PACKAGE_SYNC_DATA_TYPE_CONTROLLER_H_
#include "base/macros.h"
+#include "components/arc/common/app.mojom.h"
+#include "components/arc/instance_holder.h"
#include "components/prefs/pref_change_registrar.h"
#include "components/sync/driver/data_type_controller.h"
#include "components/sync/driver/ui_data_type_controller.h"
@@ -19,7 +21,8 @@ class Profile;
// A UIDataTypeController for arc package sync datatypes, which enables or
// disables these types based on whether ArcAppInstance is ready.
class ArcPackageSyncDataTypeController
- : public sync_driver::UIDataTypeController {
+ : public sync_driver::UIDataTypeController,
+ public arc::InstanceHolder<arc::mojom::AppInstance>::Observer {
public:
// |dump_stack| is called when an unrecoverable error occurs.
ArcPackageSyncDataTypeController(syncer::ModelType type,
@@ -28,13 +31,22 @@ class ArcPackageSyncDataTypeController
Profile* profile);
~ArcPackageSyncDataTypeController() override;
+ // UIDataTypeController override:
bool ReadyForStart() const override;
+ bool StartModels() override;
private:
- void OnArcAppsSyncPrefChanged();
+ // arc::InstanceHolder<arc::mojom::AppInstance>::Observer:
+ void OnInstanceReady() override;
void OnArcEnabledPrefChanged();
+ void EnableDataType();
+
+ bool ShouldSyncArc() const;
+
+ bool model_normal_start_ = true;
+
Profile* const profile_;
sync_driver::SyncClient* sync_client_;

Powered by Google App Engine
This is Rietveld 408576698