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

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

Issue 10928088: Factory reset screen is added (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: update Created 8 years, 3 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
Index: chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc
diff --git a/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc
new file mode 100644
index 0000000000000000000000000000000000000000..b78ff85cd694aecacf724abcc68f2ace2896c941
--- /dev/null
+++ b/chrome/browser/ui/webui/chromeos/login/reset_screen_handler.cc
@@ -0,0 +1,98 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/chromeos/login/reset_screen_handler.h"
+
+#include <string>
+
+#include "base/bind.h"
+#include "base/values.h"
+#include "chromeos/dbus/dbus_thread_manager.h"
+#include "chromeos/dbus/session_manager_client.h"
+#include "grit/browser_resources.h"
+#include "grit/chromium_strings.h"
+#include "grit/generated_resources.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace {
+
+// Reset screen id.
+const char kResetScreen[] = "reset";
+
+} // namespace
+
+namespace chromeos {
+
+ResetScreenHandler::ResetScreenHandler()
+ : delegate_(NULL), show_on_init_(false) {
+}
+
+ResetScreenHandler::~ResetScreenHandler() {
+ if (delegate_)
+ delegate_->OnActorDestroyed(this);
+}
+
+void ResetScreenHandler::PrepareToShow() {
+}
+
+void ResetScreenHandler::Show() {
+ if (!page_is_ready()) {
+ show_on_init_ = true;
+ return;
+ }
+ ShowScreen(kResetScreen, NULL);
+}
+
+void ResetScreenHandler::Hide() {
+}
+
+void ResetScreenHandler::SetDelegate(Delegate* delegate) {
+ delegate_ = delegate;
+ if (page_is_ready())
+ Initialize();
+}
+
+void ResetScreenHandler::GetLocalizedStrings(
+ base::DictionaryValue* localized_strings) {
+ localized_strings->SetString("resetScreenTitle",
+ l10n_util::GetStringUTF16(IDS_RESET_SCREEN_TITLE));
+ localized_strings->SetString("resetWarningText",
+ l10n_util::GetStringUTF16(IDS_RESET_SCREEN_WARNING_MSG));
+ localized_strings->SetString("resetWarningDetails",
+ l10n_util::GetStringUTF16(IDS_RESET_SCREEN_WARNING_DETAILS));
+ localized_strings->SetString("cancelButton",
+ l10n_util::GetStringUTF16(IDS_CANCEL));
+ localized_strings->SetString("resetButton",
+ l10n_util::GetStringUTF16(IDS_RESET_SCREEN_RESET));
+}
+
+void ResetScreenHandler::Initialize() {
+ if (!page_is_ready() || !delegate_)
+ return;
+
+ if (show_on_init_) {
+ Show();
+ show_on_init_ = false;
+ }
+}
+
+void ResetScreenHandler::RegisterMessages() {
+ web_ui()->RegisterMessageCallback("resetOnCancel",
+ base::Bind(&ResetScreenHandler::HandleOnCancel, base::Unretained(this)));
+ web_ui()->RegisterMessageCallback("resetOnReset",
+ base::Bind(&ResetScreenHandler::HandleOnReset, base::Unretained(this)));
+}
+
+void ResetScreenHandler::HandleOnCancel(const base::ListValue* args) {
+ if (delegate_)
+ delegate_->OnExit();
+}
+
+void ResetScreenHandler::HandleOnReset(const base::ListValue* args) {
+ chromeos::SessionManagerClient* session_manager =
+ chromeos::DBusThreadManager::Get()->GetSessionManagerClient();
+ session_manager->StartDeviceWipe();
+}
+
+} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698