Index: chrome/browser/chromeos/login/wizard_controller.cc |
diff --git a/chrome/browser/chromeos/login/wizard_controller.cc b/chrome/browser/chromeos/login/wizard_controller.cc |
index 51ea2b3a8d68fc266bda1564958ef8e0ac0c5d15..fa5e02ad910d7b65c671fd251047fd71c7683f81 100644 |
--- a/chrome/browser/chromeos/login/wizard_controller.cc |
+++ b/chrome/browser/chromeos/login/wizard_controller.cc |
@@ -146,6 +146,13 @@ bool IsRemoraRequisition() { |
->IsRemoraRequisition(); |
} |
+bool IsSharkRequisition() { |
+ return g_browser_process->platform_part() |
+ ->browser_policy_connector_chromeos() |
+ ->GetDeviceCloudPolicyManager() |
+ ->IsSharkRequisition(); |
+} |
+ |
// Checks if a controller device ("Master") is detected during the bootstrapping |
// or shark/remora setup process. |
bool IsControllerDetected() { |
@@ -184,11 +191,6 @@ void InitializeCrashReporter() { |
} |
#endif |
-bool UseMDOobe() { |
- return !base::CommandLine::ForCurrentProcess()->HasSwitch( |
- chromeos::switches::kDisableMdOobe); |
-} |
- |
} // namespace |
namespace chromeos { |
@@ -319,9 +321,22 @@ void WizardController::Init(const std::string& first_screen_name) { |
// an eligible controller is detected later. |
SetControllerDetectedPref(false); |
- // If flag disappeared after restart, disable. |
- if (!UseMDOobe()) |
- GetLocalState()->SetBoolean(prefs::kOobeMdMode, false); |
+ // Show Material Design unless explicitly disabled or for an untested UX, |
+ // or when resuming an OOBE that had it disabled or unset. We use an if/else |
+ // here to try and not set state when it is the default value so it can |
+ // change and affect the OOBE again. |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ chromeos::switches::kDisableMdOobe)) |
Alexander Alekseev
2016/09/18 11:50:45
Please, add {} as we have more than one branch her
|
+ SetShowMdOobe(false); |
+ else if ((screen_pref.empty() || |
+ GetLocalState()->HasPrefPath(prefs::kOobeMdMode)) || |
+ GetLocalState()->GetBoolean(prefs::kOobeMdMode)) |
+ SetShowMdOobe(true); |
+ |
+ // TODO(drcrash): Remove this after testing (http://crbug.com/647411). |
+ if (IsRemoraPairingOobe() || IsSharkRequisition() || IsRemoraRequisition()) { |
+ SetShowMdOobe(false); |
+ } |
AdvanceToScreen(first_screen_name_); |
if (!IsMachineHWIDCorrect() && !StartupUtils::IsDeviceRegistered() && |
@@ -541,6 +556,8 @@ void WizardController::ShowSupervisedUserCreationScreen() { |
void WizardController::ShowHIDDetectionScreen() { |
VLOG(1) << "Showing HID discovery screen."; |
+ // TODO(drcrash): Remove this after testing (http://crbug.com/647411). |
+ SetShowMdOobe(false); // Disable the MD OOBE from there on. |
SetStatusAreaVisible(true); |
SetCurrentScreen(GetScreen(kHIDDetectionScreenName)); |
MaybeStartListeningForSharkConnection(); |
@@ -629,11 +646,7 @@ void WizardController::OnConnectionFailed() { |
} |
void WizardController::OnUpdateCompleted() { |
- const bool is_shark = g_browser_process->platform_part() |
- ->browser_policy_connector_chromeos() |
- ->GetDeviceCloudPolicyManager() |
- ->IsSharkRequisition(); |
- if (is_shark || IsBootstrappingMaster()) { |
+ if (IsSharkRequisition() || IsBootstrappingMaster()) { |
ShowControllerPairingScreen(); |
} else if (IsControllerDetected()) { |
ShowHostPairingScreen(); |
@@ -926,6 +939,10 @@ void WizardController::SetStatusAreaVisible(bool visible) { |
host_->SetStatusAreaVisible(visible); |
} |
+void WizardController::SetShowMdOobe(bool show) { |
+ GetLocalState()->SetBoolean(prefs::kOobeMdMode, show); |
+} |
+ |
void WizardController::OnHIDScreenNecessityCheck(bool screen_needed) { |
if (!oobe_ui_) |
return; |
@@ -933,9 +950,6 @@ void WizardController::OnHIDScreenNecessityCheck(bool screen_needed) { |
if (screen_needed) { |
ShowHIDDetectionScreen(); |
} else { |
- if (UseMDOobe()) |
- GetLocalState()->SetBoolean(prefs::kOobeMdMode, true); |
- |
ShowNetworkScreen(); |
} |
} |
@@ -991,9 +1005,6 @@ void WizardController::AdvanceToScreen(const std::string& screen_name) { |
weak_factory_.GetWeakPtr()); |
oobe_ui_->GetHIDDetectionView()->CheckIsScreenRequired(on_check); |
} else { |
- if (UseMDOobe()) |
- GetLocalState()->SetBoolean(prefs::kOobeMdMode, true); |
- |
ShowNetworkScreen(); |
} |
} else { |