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

Unified Diff: chrome/browser/chromeos/ui/idle_logout_dialog_view.cc

Issue 608283003: Remove retail mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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/chromeos/ui/idle_logout_dialog_view.cc
diff --git a/chrome/browser/chromeos/ui/idle_logout_dialog_view.cc b/chrome/browser/chromeos/ui/idle_logout_dialog_view.cc
deleted file mode 100644
index d804434caf448207a722e8ea994eb46850422325..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/ui/idle_logout_dialog_view.cc
+++ /dev/null
@@ -1,205 +0,0 @@
-// 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/chromeos/ui/idle_logout_dialog_view.h"
-
-#include "ash/shell.h"
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/time/time.h"
-#include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h"
-#include "chrome/browser/ui/browser_list.h"
-#include "chrome/grit/generated_resources.h"
-#include "chromeos/dbus/dbus_thread_manager.h"
-#include "chromeos/dbus/session_manager_client.h"
-#include "ui/aura/window_event_dispatcher.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/layout/grid_layout.h"
-#include "ui/views/layout/layout_constants.h"
-#include "ui/views/widget/widget.h"
-
-namespace {
-
-// Global singleton instance of our dialog class.
-chromeos::IdleLogoutDialogView* g_instance = NULL;
-
-const int kIdleLogoutDialogMaxWidth = 300;
-const int kCountdownUpdateIntervalMs = 1000;
-
-} // namespace
-
-namespace chromeos {
-
-IdleLogoutSettingsProvider* IdleLogoutDialogView::provider_ = NULL;
-
-////////////////////////////////////////////////////////////////////////////////
-// IdleLogoutSettingsProvider public methods
-IdleLogoutSettingsProvider::IdleLogoutSettingsProvider() {
-}
-
-IdleLogoutSettingsProvider::~IdleLogoutSettingsProvider() {
-}
-
-base::TimeDelta IdleLogoutSettingsProvider::GetCountdownUpdateInterval() {
- return base::TimeDelta::FromMilliseconds(kCountdownUpdateIntervalMs);
-}
-
-KioskModeSettings* IdleLogoutSettingsProvider::GetKioskModeSettings() {
- return KioskModeSettings::Get();
-}
-
-void IdleLogoutSettingsProvider::LogoutCurrentUser(IdleLogoutDialogView*) {
- DBusThreadManager::Get()->GetSessionManagerClient()->StopSession();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// IdleLogoutDialogView public static methods
-// static
-void IdleLogoutDialogView::ShowDialog() {
- // We only show the dialog if it is not already showing. We don't want two
- // countdowns on the screen for any reason. If the dialog is closed by using
- // CloseDialog, we reset g_instance so the next Show will work correctly; in
- // case the dialog is closed by the system, DeleteDelegate is guaranteed to be
- // called, in which case we reset g_instance there if not already reset.
- if (!g_instance) {
- g_instance = new IdleLogoutDialogView();
- g_instance->InitAndShow();
- }
-}
-
-// static
-void IdleLogoutDialogView::CloseDialog() {
- if (g_instance)
- g_instance->GetWidget()->Close();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// Overridden from views::DialogDelegateView
-int IdleLogoutDialogView::GetDialogButtons() const {
- return ui::DIALOG_BUTTON_NONE;
-}
-
-ui::ModalType IdleLogoutDialogView::GetModalType() const {
- return ui::MODAL_TYPE_WINDOW;
-}
-
-base::string16 IdleLogoutDialogView::GetWindowTitle() const {
- return l10n_util::GetStringUTF16(IDS_IDLE_LOGOUT_TITLE);
-}
-
-bool IdleLogoutDialogView::Close() {
- if (timer_.IsRunning())
- timer_.Stop();
-
- // We just closed our dialog. The global
- // instance is invalid now, set it to null.
- g_instance = NULL;
-
- return true;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// IdleLogoutDialog private methods
-IdleLogoutDialogView::IdleLogoutDialogView()
- : restart_label_(NULL),
- weak_ptr_factory_(this) {
- if (!IdleLogoutDialogView::provider_)
- IdleLogoutDialogView::provider_ = new IdleLogoutSettingsProvider();
-}
-
-IdleLogoutDialogView::~IdleLogoutDialogView() {
- if (this == g_instance)
- g_instance = NULL;
-}
-
-void IdleLogoutDialogView::InitAndShow() {
- KioskModeSettings* settings =
- IdleLogoutDialogView::provider_->GetKioskModeSettings();
- if (!settings->is_initialized()) {
- settings->Initialize(base::Bind(&IdleLogoutDialogView::InitAndShow,
- weak_ptr_factory_.GetWeakPtr()));
- return;
- }
-
- restart_label_ = new views::Label();
- restart_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- restart_label_->SetMultiLine(true);
-
- views::GridLayout* layout = views::GridLayout::CreatePanel(this);
- SetLayoutManager(layout);
-
- views::ColumnSet* column_set = layout->AddColumnSet(0);
- column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, 1,
- views::GridLayout::FIXED, kIdleLogoutDialogMaxWidth, 0);
- layout->StartRow(0, 0);
- layout->AddPaddingRow(0, views::kRelatedControlHorizontalSpacing);
- layout->StartRow(0, 0);
- layout->AddView(restart_label_);
- layout->AddPaddingRow(0, views::kRelatedControlHorizontalSpacing);
-
- // We're initialized, show the dialog.
- Show();
-}
-
-void IdleLogoutDialogView::Show() {
- KioskModeSettings* settings =
- IdleLogoutDialogView::provider_->GetKioskModeSettings();
-
- // Setup the countdown label before showing.
- countdown_end_time_ = base::Time::Now() +
- settings->GetIdleLogoutWarningDuration();
-
- UpdateCountdown();
-
- views::DialogDelegate::CreateDialogWidget(
- this, ash::Shell::GetPrimaryRootWindow(), NULL);
- GetWidget()->SetAlwaysOnTop(true);
- GetWidget()->Show();
-
- // Update countdown every 1 second.
- timer_.Start(FROM_HERE,
- IdleLogoutDialogView::provider_->GetCountdownUpdateInterval(),
- this,
- &IdleLogoutDialogView::UpdateCountdown);
-}
-
-void IdleLogoutDialogView::UpdateCountdown() {
- base::TimeDelta logout_warning_time = countdown_end_time_ -
- base::Time::Now();
- int64 seconds_left = (logout_warning_time.InMillisecondsF() /
- base::Time::kMillisecondsPerSecond) + 0.5;
-
- if (seconds_left > 1) {
- restart_label_->SetText(l10n_util::GetStringFUTF16(
- IDS_IDLE_LOGOUT_WARNING_RESTART,
- base::Int64ToString16(seconds_left)));
- } else if (seconds_left > 0) {
- restart_label_->SetText(l10n_util::GetStringUTF16(
- IDS_IDLE_LOGOUT_WARNING_RESTART_1S));
- } else {
- // Set the label - the logout probably won't be instant.
- restart_label_->SetText(l10n_util::GetStringUTF16(
- IDS_IDLE_LOGOUT_WARNING_RESTART_NOW));
-
- // We're done; stop the timer and logout.
- timer_.Stop();
- IdleLogoutDialogView::provider_->LogoutCurrentUser(this);
- }
-}
-
-// static
-IdleLogoutDialogView* IdleLogoutDialogView::current_instance() {
- return g_instance;
-}
-
-// static
-void IdleLogoutDialogView::set_settings_provider(
- IdleLogoutSettingsProvider* provider) {
- provider_ = provider;
-}
-
-} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698