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

Side by Side Diff: chrome/browser/chromeos/arc/arc_session_manager.cc

Issue 2702893002: Revert of Skip ARC initial screen when everything is set up by policy (Closed)
Patch Set: Created 3 years, 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/chromeos/arc/arc_session_manager_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/arc/arc_session_manager.h" 5 #include "chrome/browser/chromeos/arc/arc_session_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "ash/common/shelf/shelf_delegate.h" 9 #include "ash/common/shelf/shelf_delegate.h"
10 #include "ash/common/wm_shell.h" 10 #include "ash/common/wm_shell.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 111
112 // static 112 // static
113 void ArcSessionManager::RegisterProfilePrefs( 113 void ArcSessionManager::RegisterProfilePrefs(
114 user_prefs::PrefRegistrySyncable* registry) { 114 user_prefs::PrefRegistrySyncable* registry) {
115 // TODO(dspaid): Implement a mechanism to allow this to sync on first boot 115 // TODO(dspaid): Implement a mechanism to allow this to sync on first boot
116 // only. 116 // only.
117 registry->RegisterBooleanPref(prefs::kArcDataRemoveRequested, false); 117 registry->RegisterBooleanPref(prefs::kArcDataRemoveRequested, false);
118 registry->RegisterBooleanPref(prefs::kArcEnabled, false); 118 registry->RegisterBooleanPref(prefs::kArcEnabled, false);
119 registry->RegisterBooleanPref(prefs::kArcSignedIn, false); 119 registry->RegisterBooleanPref(prefs::kArcSignedIn, false);
120 registry->RegisterBooleanPref(prefs::kArcTermsAccepted, false); 120 registry->RegisterBooleanPref(prefs::kArcTermsAccepted, false);
121 // Note that ArcBackupRestoreEnabled and ArcLocationServiceEnabled prefs have 121 registry->RegisterBooleanPref(prefs::kArcBackupRestoreEnabled, true);
122 // to be off by default, until an explicit gesture from the user to enable 122 registry->RegisterBooleanPref(prefs::kArcLocationServiceEnabled, true);
123 // them is received. This is crucial in the cases when these prefs transition
124 // from a previous managed state to the unmanaged.
125 registry->RegisterBooleanPref(prefs::kArcBackupRestoreEnabled, false);
126 registry->RegisterBooleanPref(prefs::kArcLocationServiceEnabled, false);
127 } 123 }
128 124
129 // static 125 // static
130 bool ArcSessionManager::IsOobeOptInActive() { 126 bool ArcSessionManager::IsOobeOptInActive() {
131 // ARC OOBE OptIn is optional for now. Test if it exists and login host is 127 // ARC OOBE OptIn is optional for now. Test if it exists and login host is
132 // active. 128 // active.
133 if (!user_manager::UserManager::Get()->IsCurrentUserNew()) 129 if (!user_manager::UserManager::Get()->IsCurrentUserNew())
134 return false; 130 return false;
135 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( 131 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
136 chromeos::switches::kEnableArcOOBEOptIn)) 132 chromeos::switches::kEnableArcOOBEOptIn))
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 DCHECK(profile_); 699 DCHECK(profile_);
704 DCHECK_NE(state_, State::ACTIVE); 700 DCHECK_NE(state_, State::ACTIVE);
705 701
706 if (state_ == State::REMOVING_DATA_DIR) { 702 if (state_ == State::REMOVING_DATA_DIR) {
707 // Data removal request is in progress. Set flag to re-enable ARC once it 703 // Data removal request is in progress. Set flag to re-enable ARC once it
708 // is finished. 704 // is finished.
709 reenable_arc_ = true; 705 reenable_arc_ = true;
710 return; 706 return;
711 } 707 }
712 708
713 PrefService* const prefs = profile_->GetPrefs();
714
715 // For ARC Kiosk we skip ToS because it is very likely that near the device 709 // For ARC Kiosk we skip ToS because it is very likely that near the device
716 // there will be no one who is eligible to accept them. 710 // there will be no one who is eligible to accept them.
717 // TODO(poromov): Move to more Kiosk dedicated set-up phase. 711 // TODO(poromov): Move to more Kiosk dedicated set-up phase.
718 if (IsArcKioskMode()) 712 if (IsArcKioskMode())
719 prefs->SetBoolean(prefs::kArcTermsAccepted, true); 713 profile_->GetPrefs()->SetBoolean(prefs::kArcTermsAccepted, true);
720
721 // Skip to show UI asking users to enable/disable their preference for
722 // backup-restore and location-service, if both are managed by the admin
723 // policy. Note that the ToS agreement is anyway not shown in the case of the
724 // managed ARC.
725 if (IsArcManaged() &&
726 prefs->IsManagedPreference(prefs::kArcBackupRestoreEnabled) &&
727 prefs->IsManagedPreference(prefs::kArcLocationServiceEnabled)) {
728 prefs->SetBoolean(prefs::kArcTermsAccepted, true);
729 }
730 714
731 // If it is marked that sign in has been successfully done, then directly 715 // If it is marked that sign in has been successfully done, then directly
732 // start ARC. 716 // start ARC.
733 // For testing, and for Kiosk mode, we also skip ToS negotiation procedure. 717 // For testing, and for Kisok mode, we also skip ToS negotiation procedure.
734 // For backward compatibility, this check needs to be prior to the 718 // For backward compatibility, this check needs to be prior to the
735 // kArcTermsAccepted check below. 719 // kArcTermsAccepted check below.
736 if (prefs->GetBoolean(prefs::kArcSignedIn) || 720 if (profile_->GetPrefs()->GetBoolean(prefs::kArcSignedIn) ||
737 IsArcOptInVerificationDisabled() || IsArcKioskMode()) { 721 IsArcOptInVerificationDisabled() || IsArcKioskMode()) {
738 StartArc(); 722 StartArc();
739 723
740 // Skip Android management check for testing. 724 // Skip Android management check for testing.
741 // We also skip if Android management check for Kiosk mode, 725 // We also skip if Android management check for Kiosk mode,
742 // because there are no managed human users for Kiosk exist. 726 // because there are no managed human users for Kiosk exist.
743 if (IsArcOptInVerificationDisabled() || IsArcKioskMode() || 727 if (IsArcOptInVerificationDisabled() || IsArcKioskMode() ||
744 (g_disable_ui_for_testing && 728 (g_disable_ui_for_testing &&
745 !g_enable_check_android_management_for_testing)) { 729 !g_enable_check_android_management_for_testing)) {
746 return; 730 return;
(...skipping 13 matching lines...) Expand all
760 return; 744 return;
761 } 745 }
762 746
763 // If it is marked that the Terms of service is accepted already, 747 // If it is marked that the Terms of service is accepted already,
764 // just skip the negotiation with user, and start Android management 748 // just skip the negotiation with user, and start Android management
765 // check directly. 749 // check directly.
766 // This happens, e.g., when; 750 // This happens, e.g., when;
767 // 1) User accepted the Terms of service on OOBE flow. 751 // 1) User accepted the Terms of service on OOBE flow.
768 // 2) User accepted the Terms of service on Opt-in flow, but logged out 752 // 2) User accepted the Terms of service on Opt-in flow, but logged out
769 // before ARC sign in procedure was done. Then, logs in again. 753 // before ARC sign in procedure was done. Then, logs in again.
770 if (prefs->GetBoolean(prefs::kArcTermsAccepted)) { 754 if (profile_->GetPrefs()->GetBoolean(prefs::kArcTermsAccepted)) {
771 // Don't show UI for this progress if it was not shown. 755 // Don't show UI for this progress if it was not shown.
772 if (support_host_ && 756 if (support_host_->ui_page() != ArcSupportHost::UIPage::NO_PAGE)
773 support_host_->ui_page() != ArcSupportHost::UIPage::NO_PAGE) {
774 support_host_->ShowArcLoading(); 757 support_host_->ShowArcLoading();
775 }
776 StartArcAndroidManagementCheck(); 758 StartArcAndroidManagementCheck();
777 return; 759 return;
778 } 760 }
779 761
780 StartTermsOfServiceNegotiation(); 762 StartTermsOfServiceNegotiation();
781 } 763 }
782 764
783 void ArcSessionManager::RequestDisable() { 765 void ArcSessionManager::RequestDisable() {
784 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 766 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
785 DCHECK(profile_); 767 DCHECK(profile_);
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
1008 990
1009 #undef MAP_STATE 991 #undef MAP_STATE
1010 992
1011 // Some compilers report an error even if all values of an enum-class are 993 // Some compilers report an error even if all values of an enum-class are
1012 // covered exhaustively in a switch statement. 994 // covered exhaustively in a switch statement.
1013 NOTREACHED() << "Invalid value " << static_cast<int>(state); 995 NOTREACHED() << "Invalid value " << static_cast<int>(state);
1014 return os; 996 return os;
1015 } 997 }
1016 998
1017 } // namespace arc 999 } // namespace arc
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/arc/arc_session_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698