Index: chrome/browser/chromeos/arc/arc_session_manager.h |
diff --git a/chrome/browser/chromeos/arc/arc_session_manager.h b/chrome/browser/chromeos/arc/arc_session_manager.h |
index b2c8379f9ebde550d1099b9f5cdb9a80fa0a768d..9aa0ca8a679e8747799534a09fcd9e48fc1422e3 100644 |
--- a/chrome/browser/chromeos/arc/arc_session_manager.h |
+++ b/chrome/browser/chromeos/arc/arc_session_manager.h |
@@ -42,8 +42,14 @@ class ArcSessionManager : public ArcSessionRunner::Observer, |
// so that this service is not yet initialized, or Chrome is being shut |
// down so that this is destroyed. |
// STOPPED: ARC session is not running, or being terminated. |
- // SHOWING_TERMS_OF_SERVICE: "Terms Of Service" page is shown on ARC support |
- // Chrome app. |
+ // NEGOTIATING_TERMS_OF_SERVICE: Negotiating Google Play Store "Terms of |
+ // Service" with a user. There are several ways for the negotiation, |
+ // including opt-in flow, which shows "Terms of Service" page on ARC |
+ // support app, and OOBE flow, which shows "Terms of Service" page as a |
+ // part of Chrome OOBE flow. |
+ // If user does not accept the Terms of Service, disables Google Play |
+ // Store, which triggers RequestDisable() and the state will be set to |
+ // STOPPED, then. |
// CHECKING_ANDROID_MANAGEMENT: Checking Android management status. Note that |
// the status is checked for each ARC session starting, but this is the |
// state only for the first boot case (= opt-in case). The second time and |
@@ -60,9 +66,9 @@ class ArcSessionManager : public ArcSessionRunner::Observer, |
// ...(any)... -> STOPPED: on error. |
// |
// In the first boot case: |
- // STOPPED -> SHOWING_TERMS_OF_SERVICE: when arc.enabled preference is set. |
- // SHOWING_TERMS_OF_SERVICE -> CHECKING_ANDROID_MANAGEMENT: when a user |
- // agree with "Terms Of Service" |
+ // STOPPED -> NEGOTIATING_TERMS_OF_SERVICE: On request to enable. |
+ // NEGOTIATING_TERMS_OF_SERVICE -> CHECKING_ANDROID_MANAGEMENT: when a user |
+ // accepts "Terms Of Service" |
// CHECKING_ANDROID_MANAGEMENT -> ACTIVE: when the auth token is |
// successfully fetched. |
// |
@@ -75,7 +81,7 @@ class ArcSessionManager : public ArcSessionRunner::Observer, |
enum class State { |
NOT_INITIALIZED, |
STOPPED, |
- SHOWING_TERMS_OF_SERVICE, |
+ NEGOTIATING_TERMS_OF_SERVICE, |
CHECKING_ANDROID_MANAGEMENT, |
REMOVING_DATA_DIR, |
ACTIVE, |
@@ -230,6 +236,11 @@ class ArcSessionManager : public ArcSessionRunner::Observer, |
void StartTermsOfServiceNegotiation(); |
void OnTermsOfServiceNegotiated(bool accepted); |
+ // Returns true if Terms of Service negotiation is needed. Otherwise false. |
+ // TODO(crbug.com/698418): Write unittest for this utility after extracting |
+ // ToS related code from ArcSessionManager into a dedicated class. |
+ bool IsArcTermsOfServiceNegotiationNeeded() const; |
+ |
void SetState(State state); |
void ShutdownSession(); |
void OnArcDataRemoved(bool success); |