Commit 83adcdae authored by alemate's avatar alemate Committed by Commit bot

ChromeOS: Fix "continue OOBE on restart" functionality.

This CL allows polymer-based OOBE to continue on chrome restart.

BUG=604119
TEST=none

Review-Url: https://codereview.chromium.org/2289643003
Cr-Commit-Position: refs/heads/master@{#415523}
parent 3a2f1b0c
...@@ -84,6 +84,7 @@ namespace chromeos { ...@@ -84,6 +84,7 @@ namespace chromeos {
void StartupUtils::RegisterPrefs(PrefRegistrySimple* registry) { void StartupUtils::RegisterPrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(prefs::kOobeComplete, false); registry->RegisterBooleanPref(prefs::kOobeComplete, false);
registry->RegisterStringPref(prefs::kOobeScreenPending, ""); registry->RegisterStringPref(prefs::kOobeScreenPending, "");
registry->RegisterBooleanPref(prefs::kOobeMdMode, false);
registry->RegisterIntegerPref(prefs::kDeviceRegistered, -1); registry->RegisterIntegerPref(prefs::kDeviceRegistered, -1);
registry->RegisterBooleanPref(prefs::kEnrollmentRecoveryRequired, false); registry->RegisterBooleanPref(prefs::kEnrollmentRecoveryRequired, false);
registry->RegisterStringPref(prefs::kInitialLocale, "en-US"); registry->RegisterStringPref(prefs::kInitialLocale, "en-US");
......
...@@ -184,6 +184,11 @@ void InitializeCrashReporter() { ...@@ -184,6 +184,11 @@ void InitializeCrashReporter() {
} }
#endif #endif
bool UseMDOobe() {
return base::CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kEnableMdOobe);
}
} // namespace } // namespace
namespace chromeos { namespace chromeos {
...@@ -314,6 +319,10 @@ void WizardController::Init(const std::string& first_screen_name) { ...@@ -314,6 +319,10 @@ void WizardController::Init(const std::string& first_screen_name) {
// an eligible controller is detected later. // an eligible controller is detected later.
SetControllerDetectedPref(false); SetControllerDetectedPref(false);
// If flag disappeared after restart, disable.
if (!UseMDOobe())
GetLocalState()->SetBoolean(prefs::kOobeMdMode, false);
AdvanceToScreen(first_screen_name_); AdvanceToScreen(first_screen_name_);
if (!IsMachineHWIDCorrect() && !StartupUtils::IsDeviceRegistered() && if (!IsMachineHWIDCorrect() && !StartupUtils::IsDeviceRegistered() &&
first_screen_name_.empty()) first_screen_name_.empty())
...@@ -920,7 +929,9 @@ void WizardController::OnHIDScreenNecessityCheck(bool screen_needed) { ...@@ -920,7 +929,9 @@ void WizardController::OnHIDScreenNecessityCheck(bool screen_needed) {
if (screen_needed) { if (screen_needed) {
ShowHIDDetectionScreen(); ShowHIDDetectionScreen();
} else { } else {
oobe_ui_->EnableMdOobe(); if (UseMDOobe())
GetLocalState()->SetBoolean(prefs::kOobeMdMode, true);
ShowNetworkScreen(); ShowNetworkScreen();
} }
} }
...@@ -976,7 +987,9 @@ void WizardController::AdvanceToScreen(const std::string& screen_name) { ...@@ -976,7 +987,9 @@ void WizardController::AdvanceToScreen(const std::string& screen_name) {
weak_factory_.GetWeakPtr()); weak_factory_.GetWeakPtr());
oobe_ui_->GetHIDDetectionView()->CheckIsScreenRequired(on_check); oobe_ui_->GetHIDDetectionView()->CheckIsScreenRequired(on_check);
} else { } else {
oobe_ui_->EnableMdOobe(); if (UseMDOobe())
GetLocalState()->SetBoolean(prefs::kOobeMdMode, true);
ShowNetworkScreen(); ShowNetworkScreen();
} }
} else { } else {
......
...@@ -63,11 +63,13 @@ ...@@ -63,11 +63,13 @@
#include "chrome/browser/ui/webui/theme_source.h" #include "chrome/browser/ui/webui/theme_source.h"
#include "chrome/common/chrome_constants.h" #include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h" #include "chrome/common/url_constants.h"
#include "chrome/grit/browser_resources.h" #include "chrome/grit/browser_resources.h"
#include "chrome/grit/chrome_unscaled_resources.h" #include "chrome/grit/chrome_unscaled_resources.h"
#include "chromeos/chromeos_switches.h" #include "chromeos/chromeos_switches.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "components/prefs/pref_service.h"
#include "content/public/browser/web_ui.h" #include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h" #include "content/public/browser/web_ui_data_source.h"
#include "content/public/common/content_switches.h" #include "content/public/common/content_switches.h"
...@@ -182,11 +184,6 @@ std::string GetDisplayType(const GURL& url) { ...@@ -182,11 +184,6 @@ std::string GetDisplayType(const GURL& url) {
return path; return path;
} }
bool UseMDOobe() {
return base::CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kEnableMdOobe);
}
} // namespace } // namespace
// static // static
...@@ -494,7 +491,9 @@ void OobeUI::GetLocalizedStrings(base::DictionaryValue* localized_strings) { ...@@ -494,7 +491,9 @@ void OobeUI::GetLocalizedStrings(base::DictionaryValue* localized_strings) {
bool new_kiosk_ui = KioskAppMenuHandler::EnableNewKioskUI(); bool new_kiosk_ui = KioskAppMenuHandler::EnableNewKioskUI();
localized_strings->SetString("newKioskUI", new_kiosk_ui ? "on" : "off"); localized_strings->SetString("newKioskUI", new_kiosk_ui ? "on" : "off");
localized_strings->SetString( localized_strings->SetString(
"newOobeUI", (md_oobe_enabled_ && UseMDOobe()) ? "on" : "off"); "newOobeUI",
g_browser_process->local_state()->GetBoolean(prefs::kOobeMdMode) ? "on"
: "off");
} }
void OobeUI::AddScreenHandler(BaseScreenHandler* handler) { void OobeUI::AddScreenHandler(BaseScreenHandler* handler) {
...@@ -600,8 +599,4 @@ void OobeUI::OnCurrentScreenChanged(const std::string& screen) { ...@@ -600,8 +599,4 @@ void OobeUI::OnCurrentScreenChanged(const std::string& screen) {
OnCurrentScreenChanged(current_screen_, new_screen)); OnCurrentScreenChanged(current_screen_, new_screen));
} }
void OobeUI::EnableMdOobe() {
md_oobe_enabled_ = true;
}
} // namespace chromeos } // namespace chromeos
...@@ -154,9 +154,6 @@ class OobeUI : public content::WebUIController, ...@@ -154,9 +154,6 @@ class OobeUI : public content::WebUIController,
return network_state_informer_.get(); return network_state_informer_.get();
} }
// This call enables polymer-based UI.
void EnableMdOobe();
private: private:
void AddScreenHandler(BaseScreenHandler* handler); void AddScreenHandler(BaseScreenHandler* handler);
...@@ -241,9 +238,6 @@ class OobeUI : public content::WebUIController, ...@@ -241,9 +238,6 @@ class OobeUI : public content::WebUIController,
// Observer of CrosSettings watching the kRebootOnShutdown policy. // Observer of CrosSettings watching the kRebootOnShutdown policy.
std::unique_ptr<ShutdownPolicyHandler> shutdown_policy_handler_; std::unique_ptr<ShutdownPolicyHandler> shutdown_policy_handler_;
// This controls displaying of polymer-based OOBE UI.
bool md_oobe_enabled_ = false;
DISALLOW_COPY_AND_ASSIGN(OobeUI); DISALLOW_COPY_AND_ASSIGN(OobeUI);
}; };
......
...@@ -1817,6 +1817,9 @@ const char kOobeComplete[] = "OobeComplete"; ...@@ -1817,6 +1817,9 @@ const char kOobeComplete[] = "OobeComplete";
// The name of the screen that has to be shown if OOBE has been interrupted. // The name of the screen that has to be shown if OOBE has been interrupted.
const char kOobeScreenPending[] = "OobeScreenPending"; const char kOobeScreenPending[] = "OobeScreenPending";
// If material design OOBE should be selected if OOBE has been interrupted.
const char kOobeMdMode[] = "OobeMdModeEnabled";
// A boolean pref to indicate if an eligible controller (either a Chrome OS // A boolean pref to indicate if an eligible controller (either a Chrome OS
// device, or an Android device) is detected during bootstrapping or // device, or an Android device) is detected during bootstrapping or
// shark/remora setup process. A controller can help the device go through OOBE // shark/remora setup process. A controller can help the device go through OOBE
......
...@@ -641,6 +641,7 @@ extern const char kCachedMultiProfileUserBehavior[]; ...@@ -641,6 +641,7 @@ extern const char kCachedMultiProfileUserBehavior[];
extern const char kInitialLocale[]; extern const char kInitialLocale[];
extern const char kOobeComplete[]; extern const char kOobeComplete[];
extern const char kOobeScreenPending[]; extern const char kOobeScreenPending[];
extern const char kOobeMdMode[];
extern const char kOobeControllerDetected[]; extern const char kOobeControllerDetected[];
extern const char kCanShowOobeGoodiesPage[]; extern const char kCanShowOobeGoodiesPage[];
extern const char kDeviceRegistered[]; extern const char kDeviceRegistered[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment