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

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

Issue 2613383002: arc: Use ARC_GET_INSTANCE_FOR_METHOD for getting app instance (Closed)
Patch Set: review Created 3 years, 11 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/app_list/arc/arc_app_utils.cc
diff --git a/chrome/browser/ui/app_list/arc/arc_app_utils.cc b/chrome/browser/ui/app_list/arc/arc_app_utils.cc
index ce019539c6e167145576cf944019a785dc2b0880..52d2401bb4b9a0fddd6a001326af9518f30b0cf0 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_utils.cc
+++ b/chrome/browser/ui/app_list/arc/arc_app_utils.cc
@@ -27,6 +27,23 @@
#include "ui/display/screen.h"
#include "ui/events/event_constants.h"
+// Helper macro which returns the AppInstance.
+#define GET_APP_INSTANCE(method_name) \
+ (arc::ArcServiceManager::Get() \
+ ? ARC_GET_INSTANCE_FOR_METHOD( \
+ arc::ArcServiceManager::Get()->arc_bridge_service()->app(), \
+ method_name) \
+ : nullptr)
+
+// Helper function which returns the IntentHelperInstance.
+#define GET_INTENT_HELPER_INSTANCE(method_name) \
+ (arc::ArcServiceManager::Get() \
+ ? ARC_GET_INSTANCE_FOR_METHOD(arc::ArcServiceManager::Get() \
+ ->arc_bridge_service() \
+ ->intent_helper(), \
+ method_name) \
+ : nullptr)
+
namespace arc {
namespace {
@@ -37,68 +54,15 @@ constexpr int kNexus7Height = 600;
constexpr int kNexus5Width = 410;
constexpr int kNexus5Height = 690;
-// Minimum required versions.
-constexpr uint32_t kMinVersion = 0;
-constexpr uint32_t kCanHandleResolutionMinVersion = 1;
-constexpr uint32_t kSendBroadcastMinVersion = 1;
-constexpr uint32_t kUninstallPackageMinVersion = 2;
-constexpr uint32_t kTaskSupportMinVersion = 3;
-constexpr uint32_t kShowPackageInfoMinVersion = 5;
-constexpr uint32_t kRemoveIconMinVersion = 9;
-constexpr uint32_t kShowPackageInfoOnPageMinVersion = 10;
-
-// Service name strings.
-constexpr char kCanHandleResolutionStr[] = "get resolution capability";
-constexpr char kCloseTaskStr[] = "close task";
-constexpr char kLaunchAppStr[] = "launch app";
-constexpr char kRemoveIconStr[] = "remove icon";
-constexpr char kSetActiveTaskStr[] = "set active task";
-constexpr char kShowPackageInfoStr[] = "show package info";
-constexpr char kUninstallPackageStr[] = "uninstall package";
-
// Intent helper strings.
constexpr char kIntentHelperClassName[] =
"org.chromium.arc.intent_helper.SettingsReceiver";
constexpr char kIntentHelperPackageName[] = "org.chromium.arc.intent_helper";
-constexpr char kSendBroadcastStr[] = "SendBroadcast";
constexpr char kSetInTouchModeIntent[] =
"org.chromium.arc.intent_helper.SET_IN_TOUCH_MODE";
constexpr char kShowTalkbackSettingsIntent[] =
"org.chromium.arc.intent_helper.SHOW_TALKBACK_SETTINGS";
-// Helper function which returns the AppInstance. Create related logs when error
-// happens.
-arc::mojom::AppInstance* GetAppInstance(uint32_t required_version,
- const std::string& service_name) {
- auto* arc_service_manager = arc::ArcServiceManager::Get();
- if (!arc_service_manager) {
- VLOG(2) << "Request to " << service_name
- << " when bridge service is not ready.";
- return nullptr;
- }
-
- return arc_service_manager->arc_bridge_service()
- ->app()
- ->GetInstanceForVersion(required_version, service_name.c_str());
-}
-
-// Helper function which returns the IntentHelperInstance. Create related logs
-// when error happens.
-arc::mojom::IntentHelperInstance* GetIntentHelperInstance(
- uint32_t required_version,
- const std::string& service_name) {
- auto* arc_service_manager = arc::ArcServiceManager::Get();
- if (!arc_service_manager) {
- VLOG(2) << "Request to " << service_name
- << " when bridge service is not ready.";
- return nullptr;
- }
-
- return arc_service_manager->arc_bridge_service()
- ->intent_helper()
- ->GetInstanceForVersion(required_version, service_name.c_str());
-}
-
void PrioritizeArcInstanceCallback(bool success) {
VLOG(2) << "Finished prioritizing the instance: result=" << success;
if (!success)
@@ -243,13 +207,12 @@ bool LaunchAppWithRect(content::BrowserContext* context,
return false;
}
- arc::mojom::AppInstance* app_instance =
- GetAppInstance(kMinVersion, kLaunchAppStr);
+ arc::mojom::AppInstance* app_instance = GET_APP_INSTANCE(LaunchApp);
if (!app_instance)
return false;
arc::mojom::IntentHelperInstance* intent_helper_instance =
- GetIntentHelperInstance(kSendBroadcastMinVersion, kSendBroadcastStr);
+ GET_INTENT_HELPER_INSTANCE(SendBroadcast);
if (intent_helper_instance) {
base::DictionaryValue extras;
extras.SetBoolean("inTouchMode", IsMouseOrTouchEventFromFlags(event_flags));
@@ -261,6 +224,10 @@ bool LaunchAppWithRect(content::BrowserContext* context,
}
if (app_info->shortcut) {
+ // Before calling LaunchIntent, check if the interface is supported. Reusing
+ // the same |app_instance| for LaunchIntent is allowed.
+ if (!GET_APP_INSTANCE(LaunchIntent))
+ return false;
app_instance->LaunchIntent(app_info->intent_uri, target_rect);
} else {
app_instance->LaunchApp(app_info->package_name, app_info->activity,
@@ -342,16 +309,14 @@ bool LaunchApp(content::BrowserContext* context,
}
void SetTaskActive(int task_id) {
- arc::mojom::AppInstance* app_instance =
- GetAppInstance(kTaskSupportMinVersion, kSetActiveTaskStr);
+ arc::mojom::AppInstance* app_instance = GET_APP_INSTANCE(SetTaskActive);
if (!app_instance)
return;
app_instance->SetTaskActive(task_id);
}
void CloseTask(int task_id) {
- arc::mojom::AppInstance* app_instance =
- GetAppInstance(kTaskSupportMinVersion, kCloseTaskStr);
+ arc::mojom::AppInstance* app_instance = GET_APP_INSTANCE(CloseTask);
if (!app_instance)
return;
app_instance->CloseTask(task_id);
@@ -359,7 +324,7 @@ void CloseTask(int task_id) {
void ShowTalkBackSettings() {
arc::mojom::IntentHelperInstance* intent_helper_instance =
- GetIntentHelperInstance(kSendBroadcastMinVersion, kSendBroadcastStr);
+ GET_INTENT_HELPER_INSTANCE(SendBroadcast);
if (!intent_helper_instance)
return;
@@ -381,8 +346,7 @@ bool CanHandleResolution(content::BrowserContext* context,
return false;
}
- arc::mojom::AppInstance* app_instance =
- GetAppInstance(kCanHandleResolutionMinVersion, kCanHandleResolutionStr);
+ arc::mojom::AppInstance* app_instance = GET_APP_INSTANCE(CanHandleResolution);
if (!app_instance)
return false;
@@ -394,8 +358,7 @@ bool CanHandleResolution(content::BrowserContext* context,
void UninstallPackage(const std::string& package_name) {
VLOG(2) << "Uninstalling " << package_name;
- arc::mojom::AppInstance* app_instance =
- GetAppInstance(kUninstallPackageMinVersion, kUninstallPackageStr);
+ arc::mojom::AppInstance* app_instance = GET_APP_INSTANCE(UninstallPackage);
if (!app_instance)
return;
@@ -421,8 +384,7 @@ void UninstallArcApp(const std::string& app_id, Profile* profile) {
void RemoveCachedIcon(const std::string& icon_resource_id) {
VLOG(2) << "Removing icon " << icon_resource_id;
- arc::mojom::AppInstance* app_instance =
- GetAppInstance(kRemoveIconMinVersion, kRemoveIconStr);
+ arc::mojom::AppInstance* app_instance = GET_APP_INSTANCE(RemoveCachedIcon);
if (!app_instance)
return;
@@ -434,7 +396,7 @@ bool ShowPackageInfo(const std::string& package_name) {
VLOG(2) << "Showing package info for " << package_name;
arc::mojom::AppInstance* app_instance =
- GetAppInstance(kShowPackageInfoMinVersion, kShowPackageInfoStr);
+ GET_APP_INSTANCE(ShowPackageInfoDeprecated);
if (!app_instance)
return false;
@@ -448,7 +410,7 @@ bool ShowPackageInfoOnPage(const std::string& package_name,
VLOG(2) << "Showing package info for " << package_name;
arc::mojom::AppInstance* app_instance =
- GetAppInstance(kShowPackageInfoOnPageMinVersion, kShowPackageInfoStr);
+ GET_APP_INSTANCE(ShowPackageInfoOnPage);
if (!app_instance)
return false;
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698