| 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..03dc8ce01559a9969b4b17fce19e575450d807fe 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,15 @@ bool ArcPackageSyncableService::DeleteSyncItemSpecifics(
 | 
|  
 | 
|  void ArcPackageSyncableService::InstallPackage(const ArcSyncItem* sync_item) {
 | 
|    DCHECK(sync_item);
 | 
| -  if (!prefs_ || !prefs_->app_instance_holder()->instance()) {
 | 
| +  if (!prefs_) {
 | 
| +    VLOG(2) << "Request to install package when bridge service is not ready: "
 | 
| +            << sync_item->package_name << ".";
 | 
| +    return;
 | 
| +  }
 | 
| +
 | 
| +  auto* instance = prefs_->app_instance_holder()->GetInstanceForMethod(
 | 
| +      "InstallPackage", kInstallPackageMinVersion);
 | 
| +  if (!instance) {
 | 
|      VLOG(2) << "Request to install package when bridge service is not ready: "
 | 
|              << sync_item->package_name << ".";
 | 
|      return;
 | 
| @@ -440,19 +453,26 @@ 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()) {
 | 
| +  if (!prefs_) {
 | 
| +    VLOG(2) << "Request to uninstall package when bridge service is not ready: "
 | 
| +            << sync_item->package_name << ".";
 | 
| +    return;
 | 
| +  }
 | 
| +
 | 
| +  auto* instance = prefs_->app_instance_holder()->GetInstanceForMethod(
 | 
| +      "UninstallPackage", kUninstallPackageMinVersion);
 | 
| +  if (!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(
 | 
| 
 |