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

Unified Diff: chrome/browser/ui/app_list/arc/arc_package_syncable_service.cc

Issue 2357053002: Always use arc::InstanceHolder<T>::GetInstanceForMethod (Closed)
Patch Set: rebase, no code change 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_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..20f75b77cf47bb20501a950fe513ee5b0710d4a7 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,31 +433,40 @@ 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)
+ return;
+
mojom::ArcPackageInfo package;
package.package_name = sync_item->package_name;
package.package_version = sync_item->package_version;
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;
}
- prefs_->app_instance_holder()->instance()->UninstallPackage(
- sync_item->package_name);
+ auto* instance = prefs_->app_instance_holder()->GetInstanceForMethod(
+ "UninstallPackage", kUninstallPackageMinVersion);
+ if (!instance)
+ return;
+
+ instance->UninstallPackage(sync_item->package_name);
}
bool ArcPackageSyncableService::ShouldSyncPackage(
« no previous file with comments | « chrome/browser/ui/app_list/arc/arc_package_sync_data_type_controller.cc ('k') | components/arc/audio/arc_audio_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698