| Index: chrome/browser/ui/app_list/arc/arc_package_syncable_service.cc
|
| diff --git a/chrome/browser/ui/app_list/arc/arc_package_syncable_service.cc b/chrome/browser/ui/app_list/arc/arc_package_syncable_service.cc
|
| index e4d462826d918013b88bb284bc71bd516e998c7b..a06e07f2cc3a6f905c363e187d93df1f8e24095a 100644
|
| --- a/chrome/browser/ui/app_list/arc/arc_package_syncable_service.cc
|
| +++ b/chrome/browser/ui/app_list/arc/arc_package_syncable_service.cc
|
| @@ -5,6 +5,8 @@
|
| #include "chrome/browser/ui/app_list/arc/arc_package_syncable_service.h"
|
|
|
| #include <unordered_set>
|
| +#include <utility>
|
| +#include <vector>
|
|
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/sync/profile_sync_service_factory.h"
|
| @@ -29,6 +31,9 @@ using ArcSyncItem = ArcPackageSyncableService::SyncItem;
|
|
|
| constexpr int64_t kNoAndroidID = 0;
|
|
|
| +constexpr uint32_t kUninstallPackageMinVersion = 2;
|
| +constexpr uint32_t kInstallPackageMinVersion = 8;
|
| +
|
| std::unique_ptr<ArcSyncItem> CreateSyncItemFromSyncSpecifics(
|
| const sync_pb::ArcPackageSpecifics& specifics) {
|
| return base::MakeUnique<ArcSyncItem>(
|
| @@ -428,7 +433,9 @@ bool ArcPackageSyncableService::DeleteSyncItemSpecifics(
|
|
|
| void ArcPackageSyncableService::InstallPackage(const ArcSyncItem* sync_item) {
|
| DCHECK(sync_item);
|
| - if (!prefs_ || !prefs_->app_instance_holder()->instance()) {
|
| + auto* instance = prefs_->app_instance_holder()->GetInstanceForMethod(
|
| + "InstallPackage", kInstallPackageMinVersion);
|
| + if (!prefs_ || !instance) {
|
| VLOG(2) << "Request to install package when bridge service is not ready: "
|
| << sync_item->package_name << ".";
|
| return;
|
| @@ -440,19 +447,20 @@ void ArcPackageSyncableService::InstallPackage(const ArcSyncItem* sync_item) {
|
| package.last_backup_android_id = sync_item->last_backup_android_id;
|
| package.last_backup_time = sync_item->last_backup_time;
|
| package.sync = true;
|
| - prefs_->app_instance_holder()->instance()->InstallPackage(package.Clone());
|
| + instance->InstallPackage(package.Clone());
|
| }
|
|
|
| void ArcPackageSyncableService::UninstallPackage(const ArcSyncItem* sync_item) {
|
| DCHECK(sync_item);
|
| - if (!prefs_ || !prefs_->app_instance_holder()->instance()) {
|
| + auto* instance = prefs_->app_instance_holder()->GetInstanceForMethod(
|
| + "UninstallPackage", kUninstallPackageMinVersion);
|
| + if (!prefs_ || !instance) {
|
| VLOG(2) << "Request to uninstall package when bridge service is not ready: "
|
| << sync_item->package_name << ".";
|
| return;
|
| }
|
|
|
| - prefs_->app_instance_holder()->instance()->UninstallPackage(
|
| - sync_item->package_name);
|
| + instance->UninstallPackage(sync_item->package_name);
|
| }
|
|
|
| bool ArcPackageSyncableService::ShouldSyncPackage(
|
|
|