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

Unified Diff: chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc

Issue 2561023002: arc: ARC loading progress should not be shown when started from OOBE. (Closed)
Patch Set: rebased + comments updated 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 | « chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.h ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
diff --git a/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
index a0916534bfeef859cc9cd542a1cefc330c2add8c..34363d3135a6fa1e81b79b2c8fafc0c5e7dba719 100644
--- a/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.cc
@@ -6,11 +6,14 @@
#include "base/i18n/timezone.h"
#include "chrome/browser/chromeos/arc/optin/arc_optin_preference_handler.h"
+#include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_actor_observer.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/common/pref_names.h"
#include "chrome/grit/generated_resources.h"
#include "components/login/localized_values_builder.h"
+#include "components/prefs/pref_service.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
#include "ui/base/l10n/l10n_util.h"
@@ -29,9 +32,8 @@ ArcTermsOfServiceScreenHandler::ArcTermsOfServiceScreenHandler()
ArcTermsOfServiceScreenHandler::~ArcTermsOfServiceScreenHandler() {
system::TimezoneSettings::GetInstance()->RemoveObserver(this);
-
- if (screen_)
- screen_->OnActorDestroyed(this);
+ for (auto& observer : observer_list_)
+ observer.OnActorDestroyed(this);
}
void ArcTermsOfServiceScreenHandler::RegisterMessages() {
@@ -113,8 +115,14 @@ void ArcTermsOfServiceScreenHandler::OnLocationServicesModeChanged(
CallJS("setLocationServicesMode", enabled, managed);
}
-void ArcTermsOfServiceScreenHandler::SetDelegate(Delegate* screen) {
- screen_ = screen;
+void ArcTermsOfServiceScreenHandler::AddObserver(
+ ArcTermsOfServiceScreenActorObserver* observer) {
+ observer_list_.AddObserver(observer);
+}
+
+void ArcTermsOfServiceScreenHandler::RemoveObserver(
+ ArcTermsOfServiceScreenActorObserver* observer) {
+ observer_list_.RemoveObserver(observer);
}
void ArcTermsOfServiceScreenHandler::Show() {
@@ -142,6 +150,12 @@ void ArcTermsOfServiceScreenHandler::Initialize() {
void ArcTermsOfServiceScreenHandler::DoShow() {
Profile* profile = ProfileManager::GetActiveUserProfile();
CHECK(profile);
+
+ // Enable ARC to match ArcSessionManager logic. ArcSessionManager expects that
+ // ARC is enabled (prefs::kArcEnabled = true) on showing Terms of Service. If
+ // user accepts ToS then prefs::kArcEnabled is left activated. If user skips
+ // ToS then prefs::kArcEnabled is automatically reset in ArcSessionManager.
+ profile->GetPrefs()->SetBoolean(prefs::kArcEnabled, true);
pref_handler_.reset(new arc::ArcOptInPreferenceHandler(
this, profile->GetPrefs()));
pref_handler_->Start();
@@ -153,18 +167,17 @@ void ArcTermsOfServiceScreenHandler::DoShow() {
}
void ArcTermsOfServiceScreenHandler::HandleSkip() {
- if (screen_)
- screen_->OnSkip();
+ for (auto& observer : observer_list_)
+ observer.OnSkip();
}
void ArcTermsOfServiceScreenHandler::HandleAccept(
bool enable_backup_restore,
bool enable_location_services) {
- if (screen_) {
- pref_handler_->EnableBackupRestore(enable_backup_restore);
- pref_handler_->EnableLocationService(enable_location_services);
- screen_->OnAccept();
- }
+ pref_handler_->EnableBackupRestore(enable_backup_restore);
+ pref_handler_->EnableLocationService(enable_location_services);
+ for (auto& observer : observer_list_)
+ observer.OnAccept();
}
} // namespace chromeos
« no previous file with comments | « chrome/browser/ui/webui/chromeos/login/arc_terms_of_service_screen_handler.h ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698