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

Unified Diff: chrome/browser/ui/app_list/arc/arc_app_list_prefs.h

Issue 2601323002: arc: Handle default app not availble case. (Closed)
Patch Set: rebase 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 | chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc » ('j') | 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_list_prefs.h
diff --git a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h
index 4d48e18a793bb0503e5ba130a5069bfa8b5ec959..8cdcb26884a580ccca2cdb80355f5e175fce93a8 100644
--- a/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h
+++ b/chrome/browser/ui/app_list/arc/arc_app_list_prefs.h
@@ -19,6 +19,7 @@
#include "base/observer_list.h"
#include "base/optional.h"
#include "base/time/time.h"
+#include "base/timer/timer.h"
#include "chrome/browser/chromeos/arc/arc_session_manager.h"
#include "chrome/browser/ui/app_list/arc/arc_default_app_list.h"
#include "components/arc/common/app.mojom.h"
@@ -244,6 +245,7 @@ class ArcAppListPrefs
const std::string& package_name) const;
void SetDefaltAppsReadyCallback(base::Closure callback);
+ void SimulateDefaultAppAvailabilityTimeoutForTesting();
private:
friend class ChromeLauncherControllerImplTest;
@@ -288,9 +290,10 @@ class ArcAppListPrefs
void OnTaskOrientationLockRequested(
int32_t task_id,
const arc::mojom::OrientationLock orientation_lock) override;
-
- void OnInstallationStarted() override;
- void OnInstallationFinished() override;
+ void OnInstallationStarted(
+ const base::Optional<std::string>& package_name) override;
+ void OnInstallationFinished(
+ arc::mojom::InstallationResultPtr result) override;
void StartPrefs();
@@ -356,6 +359,16 @@ class ArcAppListPrefs
// and it is not scheduled to install by sync.
bool IsUnknownPackage(const std::string& package_name) const;
+ // Detects that default apps either exist or installation session is started.
+ void DetectDefaultAppAvailability();
+
+ // Performs data clean up for removed package.
+ void HandlePackageRemoved(const std::string& package_name);
+
+ // Sets timeout to wait for default app installed or installation started if
+ // some default app is not available yet.
Mr4D (OOO till 08-26) 2017/01/06 22:12:24 Eeek - this is weird. A timeout? What happens when
khmel 2017/01/06 22:19:08 Timeout is 15 seconds. In my tests install session
+ void MaybeSetDefaultAppLoadingTimeout();
+
Profile* const profile_;
// Owned by the BrowserContext.
@@ -384,6 +397,13 @@ class ArcAppListPrefs
bool apps_restored_ = false;
// True is Arc package list has been refreshed once.
bool package_list_initial_refreshed_ = false;
+ // Play Store does not have publicly available observers for default app
+ // installations. This timeout is for validating default app availability.
+ // Default apps should be either already installed or their installations
+ // should be started soon after initial app list refresh.
+ base::OneShotTimer detect_default_app_availability_timeout_;
+ // Set of currently installing default apps_.
+ std::unordered_set<std::string> default_apps_installations_;
arc::ArcPackageSyncableService* sync_service_ = nullptr;
« no previous file with comments | « no previous file | chrome/browser/ui/app_list/arc/arc_app_list_prefs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698