Chromium Code Reviews| 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) { |
|
Luis Héctor Chávez
2016/09/23 22:51:04
You should check |prefs_| before L436.
Yusuke Sato
2016/09/24 00:15:22
Done, thanks!
|
| 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) { |
|
Luis Héctor Chávez
2016/09/23 22:51:04
ditto.
Yusuke Sato
2016/09/24 00:15:22
Done.
|
| 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( |