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

Unified Diff: chrome/browser/chromeos/arc/arc_session_manager.h

Issue 2507073002: Split ArcSessionManager from ArcAuthService. (Closed)
Patch Set: Fix rebase mistake Created 4 years, 1 month 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/chromeos/arc/arc_session_manager.h
diff --git a/chrome/browser/chromeos/arc/arc_auth_service.h b/chrome/browser/chromeos/arc/arc_session_manager.h
similarity index 72%
copy from chrome/browser/chromeos/arc/arc_auth_service.h
copy to chrome/browser/chromeos/arc/arc_session_manager.h
index 5a192fc3ff57cf64f1244c3810dd2e27f23c2de2..d4a8a9d749bc7524407dd1a1ae29100728dea55d 100644
--- a/chrome/browser/chromeos/arc/arc_auth_service.h
+++ b/chrome/browser/chromeos/arc/arc_session_manager.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_CHROMEOS_ARC_ARC_AUTH_SERVICE_H_
-#define CHROME_BROWSER_CHROMEOS_ARC_ARC_AUTH_SERVICE_H_
+#ifndef CHROME_BROWSER_CHROMEOS_ARC_ARC_SESSION_MANAGER_H_
+#define CHROME_BROWSER_CHROMEOS_ARC_ARC_SESSION_MANAGER_H_
#include <memory>
#include <ostream>
@@ -18,8 +18,6 @@
#include "chrome/browser/chromeos/policy/android_management_client.h"
#include "components/arc/arc_bridge_service.h"
#include "components/arc/arc_service.h"
-#include "components/arc/common/auth.mojom.h"
-#include "components/arc/instance_holder.h"
#include "components/prefs/pref_change_registrar.h"
#include "components/sync_preferences/pref_service_syncable_observer.h"
#include "components/sync_preferences/synced_pref_observer.h"
@@ -47,14 +45,12 @@ enum class ProvisioningResult : int;
// This class proxies the request from the client to fetch an auth code from
// LSO. It lives on the UI thread.
-class ArcAuthService : public ArcService,
- public mojom::AuthHost,
- public ArcBridgeService::Observer,
- public InstanceHolder<mojom::AuthInstance>::Observer,
- public ArcSupportHost::Observer,
- public ArcOptInPreferenceHandlerObserver,
- public sync_preferences::PrefServiceSyncableObserver,
- public sync_preferences::SyncedPrefObserver {
+class ArcSessionManager : public ArcService,
+ public ArcBridgeService::Observer,
+ public ArcSupportHost::Observer,
+ public ArcOptInPreferenceHandlerObserver,
+ public sync_preferences::PrefServiceSyncableObserver,
+ public sync_preferences::SyncedPrefObserver {
public:
// Represents each State of ARC session.
// NOT_INITIALIZED: represents the state that the Profile is not yet ready
@@ -118,10 +114,10 @@ class ArcAuthService : public ArcService,
virtual void OnInitialStart() {}
};
- explicit ArcAuthService(ArcBridgeService* bridge_service);
- ~ArcAuthService() override;
+ explicit ArcSessionManager(ArcBridgeService* bridge_service);
+ ~ArcSessionManager() override;
- static ArcAuthService* Get();
+ static ArcSessionManager* Get();
// It is called from chrome/browser/prefs/browser_prefs.cc.
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
@@ -137,6 +133,9 @@ class ArcAuthService : public ArcService,
// Returns true if Arc is allowed to run for the given profile.
static bool IsAllowedForProfile(const Profile* profile);
+ // Returns true if ARC should run under Kiosk mode.
+ static bool IsArcKioskMode();
+
// Returns true if Arc is allowed to run for the current session.
bool IsAllowed() const;
@@ -155,28 +154,6 @@ class ArcAuthService : public ArcService,
// ArcBridgeService::Observer:
void OnBridgeStopped(ArcBridgeService::StopReason reason) override;
- // InstanceHolder<mojom::AuthInstance>::Observer:
- void OnInstanceReady() override;
-
- // AuthHost:
- void OnSignInComplete() override;
- void OnSignInFailed(mojom::ArcSignInFailureReason reason) override;
- void RequestAccountInfo() override;
-
- // Deprecated methods:
- // For security reason this code can be used only once and exists for specific
- // period of time.
- void GetAuthCodeDeprecated0(
- const GetAuthCodeDeprecated0Callback& callback) override;
- void GetAuthCodeDeprecated(
- const GetAuthCodeDeprecatedCallback& callback) override;
- void GetAuthCodeAndAccountTypeDeprecated(
- const GetAuthCodeAndAccountTypeDeprecatedCallback& callback) override;
- // Callback is called with a bool that indicates the management status of the
- // user.
- void GetIsAccountManagedDeprecated(
- const GetIsAccountManagedDeprecatedCallback& callback) override;
-
// Called from Arc support platform app when user cancels signing.
void CancelAuthCode();
@@ -202,11 +179,10 @@ class ArcAuthService : public ArcService,
void OnTermsAgreed(bool is_metrics_enabled,
bool is_backup_and_restore_enabled,
bool is_location_service_enabled) override;
- void OnAuthSucceeded(const std::string& auth_code) override;
void OnRetryClicked() override;
void OnSendFeedbackClicked() override;
- // arc::ArcOptInPreferenceHandlerObserver:
+ // ArcOptInPreferenceHandlerObserver:
void OnMetricsModeChanged(bool enabled, bool managed) override;
void OnBackupAndRestoreModeChanged(bool enabled, bool managed) override;
void OnLocationServicesModeChanged(bool enabled, bool managed) override;
@@ -225,14 +201,15 @@ class ArcAuthService : public ArcService,
ArcSupportHost* support_host() { return support_host_.get(); }
+ // TODO(hidehiko): Get rid of the getter by migration between ArcAuthContext
+ // and ArcAuthCodeFetcher.
+ ArcAuthContext* auth_context() { return context_.get(); }
+
void StartArc();
void OnProvisioningFinished(ProvisioningResult result);
private:
- using AccountInfoCallback = base::Callback<void(mojom::AccountInfoPtr)>;
- class AccountInfoNotifier;
-
// TODO(hidehiko): move UI methods/fields to ArcSupportHost.
void SetState(State state);
void ShutdownBridge();
@@ -243,20 +220,6 @@ class ArcAuthService : public ArcService,
void OnArcSignInTimeout();
void FetchAuthCode();
void PrepareContextForAuthCodeRequest();
- void RequestAccountInfoInternal(
- std::unique_ptr<AccountInfoNotifier> account_info_notifier);
- void OnAccountInfoReady(mojom::AccountInfoPtr account_info);
-
- // Callback for Robot auth in Kiosk mode.
- void OnRobotAuthCodeFetched(const std::string& auth_code);
-
- // Callback for automatic auth code fetching when --arc-user-auth-endpoint
- // flag is set.
- void OnAuthCodeFetched(const std::string& auth_code);
-
- // Common procedure across LSO auth code fetching, automatic auth code
- // fetching, and Robot auth.
- void OnAuthCodeObtained(const std::string& auth_code);
void StartArcAndroidManagementCheck();
@@ -270,16 +233,12 @@ class ArcAuthService : public ArcService,
void OnBackgroundAndroidManagementChecked(
policy::AndroidManagementClient::Result result);
- // Called when HTTP context is prepared.
- void OnContextPrepared(net::URLRequestContextGetter* request_context_getter);
-
// Unowned pointer. Keeps current profile.
Profile* profile_ = nullptr;
// Registrar used to monitor ARC enabled state.
PrefChangeRegistrar pref_change_registrar_;
- mojo::Binding<AuthHost> binding_;
State state_ = State::NOT_INITIALIZED;
base::ObserverList<Observer> observer_list_;
std::unique_ptr<ArcAppLauncher> playstore_launcher_;
@@ -287,31 +246,27 @@ class ArcAuthService : public ArcService,
bool reenable_arc_ = false;
base::OneShotTimer arc_sign_in_timer_;
- // Notifies the correct callback whenever the auth_code is ready.
- std::unique_ptr<AccountInfoNotifier> account_info_notifier_;
-
// Temporarily keeps the ArcSupportHost instance.
// This should be moved to ArcSessionManager when the refactoring is
// done.
std::unique_ptr<ArcSupportHost> support_host_;
// Handles preferences and metrics mode.
- std::unique_ptr<arc::ArcOptInPreferenceHandler> preference_handler_;
+ std::unique_ptr<ArcOptInPreferenceHandler> preference_handler_;
std::unique_ptr<ArcAuthContext> context_;
- std::unique_ptr<ArcAuthCodeFetcher> auth_code_fetcher_;
std::unique_ptr<ArcAndroidManagementChecker> android_management_checker_;
- std::unique_ptr<ArcRobotAuth> arc_robot_auth_;
base::Time sign_in_time_;
- base::WeakPtrFactory<ArcAuthService> weak_ptr_factory_;
+ base::WeakPtrFactory<ArcSessionManager> weak_ptr_factory_;
- DISALLOW_COPY_AND_ASSIGN(ArcAuthService);
+ DISALLOW_COPY_AND_ASSIGN(ArcSessionManager);
};
// Outputs the stringified |state| to |os|. This is only for logging purposes.
-std::ostream& operator<<(std::ostream& os, const ArcAuthService::State& state);
+std::ostream& operator<<(std::ostream& os,
+ const ArcSessionManager::State& state);
} // namespace arc
-#endif // CHROME_BROWSER_CHROMEOS_ARC_ARC_AUTH_SERVICE_H_
+#endif // CHROME_BROWSER_CHROMEOS_ARC_ARC_SESSION_MANAGER_H_
« no previous file with comments | « chrome/browser/chromeos/arc/arc_service_launcher.cc ('k') | chrome/browser/chromeos/arc/arc_session_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698