| Index: chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
|
| diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
|
| index 017ecaa23967ecdede358b9d5744db36615be9a9..969e69920d0f9212deda2162f8e0ba7c5ef69bcc 100644
|
| --- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
|
| +++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc
|
| @@ -23,6 +23,7 @@
|
| #include "chrome/common/pref_names.h"
|
| #include "chrome/grit/generated_resources.h"
|
| #include "components/arc/arc_service_manager.h"
|
| +#include "components/arc/arc_util.h"
|
| #include "components/crx_file/id_util.h"
|
| #include "components/pref_registry/pref_registry_syncable.h"
|
| #include "components/prefs/scoped_user_pref_update.h"
|
| @@ -142,6 +143,8 @@ void DeleteAppFolderFromFileThread(const base::FilePath& path) {
|
| }
|
|
|
| bool IsArcEnabled() {
|
| + if (arc::ShouldArcAlwaysStart())
|
| + return true;
|
| const auto* arc_session_manager = arc::ArcSessionManager::Get();
|
| return arc_session_manager && arc_session_manager->IsArcPlayStoreEnabled();
|
| }
|
| @@ -294,6 +297,12 @@ base::FilePath ArcAppListPrefs::GetIconPath(
|
|
|
| void ArcAppListPrefs::RequestIcon(const std::string& app_id,
|
| ui::ScaleFactor scale_factor) {
|
| + // FIXME: what's the best way/place to detect and cancel this?
|
| + // ArcSessionManager can be terminated during test tear down, before callback
|
| + // into this function.
|
| + if (arc::ArcSessionManager::Get() == nullptr)
|
| + return;
|
| +
|
| if (!IsRegistered(app_id)) {
|
| VLOG(2) << "Request to load icon for non-registered app: " << app_id << ".";
|
| return;
|
| @@ -417,7 +426,7 @@ std::unique_ptr<ArcAppListPrefs::PackageInfo> ArcAppListPrefs::GetPackage(
|
| }
|
|
|
| std::vector<std::string> ArcAppListPrefs::GetAppIds() const {
|
| - if (!IsArcEnabled()) {
|
| + if (!arc::ShouldArcAlwaysStart() && !IsArcEnabled()) {
|
| // Default ARC apps available before OptIn.
|
| std::vector<std::string> ids;
|
| for (const auto& default_app : default_apps_.app_map()) {
|
| @@ -431,7 +440,6 @@ std::vector<std::string> ArcAppListPrefs::GetAppIds() const {
|
|
|
| std::vector<std::string> ArcAppListPrefs::GetAppIdsNoArcEnabledCheck() const {
|
| std::vector<std::string> ids;
|
| -
|
| const base::DictionaryValue* apps = prefs_->GetDictionary(prefs::kArcApps);
|
| DCHECK(apps);
|
|
|
| @@ -595,6 +603,10 @@ void ArcAppListPrefs::RemoveAllApps() {
|
| void ArcAppListPrefs::OnArcPlayStoreEnabledChanged(bool enabled) {
|
| UpdateDefaultAppsHiddenState();
|
|
|
| + // TODO(victorhsieh): Implement opt-in and opt-out.
|
| + if (arc::ShouldArcAlwaysStart())
|
| + return;
|
| +
|
| if (enabled)
|
| NotifyRegisteredApps();
|
| else
|
|
|