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

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

Issue 2330563002: [Merge-M54] arc: Make Play Store item persistent in app list. (Closed)
Patch Set: 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_default_app_list.cc
diff --git a/chrome/browser/ui/app_list/arc/arc_default_app_list.cc b/chrome/browser/ui/app_list/arc/arc_default_app_list.cc
index 60bc650a26432d74d2592012163aaf51e9753fe1..37d2e96a204dc8a9c4f0682f91589d1c965072a2 100644
--- a/chrome/browser/ui/app_list/arc/arc_default_app_list.cc
+++ b/chrome/browser/ui/app_list/arc/arc_default_app_list.cc
@@ -8,9 +8,13 @@
#include "base/json/json_file_value_serializer.h"
#include "base/path_service.h"
#include "base/task_runner_util.h"
+#include "chrome/browser/chromeos/arc/arc_support_host.h"
+#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
+#include "chrome/browser/ui/app_list/arc/arc_app_utils.h"
#include "chrome/common/chrome_paths.h"
#include "content/public/browser/browser_thread.h"
+#include "extensions/browser/extension_system.h"
namespace {
@@ -119,8 +123,9 @@ void ArcDefaultAppList::UseTestAppsDirectory() {
use_test_apps_directory = true;
}
-ArcDefaultAppList::ArcDefaultAppList(Delegate* delegate)
- : delegate_(delegate), weak_ptr_factory_(this) {
+ArcDefaultAppList::ArcDefaultAppList(Delegate* delegate,
+ content::BrowserContext* context)
+ : delegate_(delegate), context_(context), weak_ptr_factory_(this) {
CHECK(delegate_);
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
@@ -139,6 +144,25 @@ void ArcDefaultAppList::OnAppsReady(std::unique_ptr<AppInfoMap> apps) {
apps_.swap(*apps.get());
+ // Register Play Store as default app. Some services and ArcSupportHost may
+ // not be available in tests.
+ ExtensionService* service =
+ extensions::ExtensionSystem::Get(context_)->extension_service();
+ const extensions::Extension* arc_host = service ?
+ service->GetInstalledExtension(ArcSupportHost::kHostAppId) : nullptr;
+ if (arc_host) {
+ std::unique_ptr<ArcDefaultAppList::AppInfo> play_store_app(
+ new ArcDefaultAppList::AppInfo(arc_host->name(),
+ arc::kPlayStorePackage,
+ arc::kPlayStoreActivity,
+ false /* oem */,
+ base::FilePath() /* app_path */));
+ apps_.insert(
+ std::pair<std::string,
+ std::unique_ptr<ArcDefaultAppList::AppInfo>>(
+ arc::kPlayStoreAppId, std::move(play_store_app)));
+ }
+
// Initially consider packages are installed.
for (const auto& app : apps_)
packages_[app.second->package_name] = false;

Powered by Google App Engine
This is Rietveld 408576698