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

Unified Diff: chrome/browser/ui/views/profiles/forced_reauthentication_dialog_view.cc

Issue 2944713003: After signin token check failed, show force reauth dialog and start window closing countdown. (Closed)
Patch Set: nit Created 3 years, 6 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/views/profiles/forced_reauthentication_dialog_view.cc
diff --git a/chrome/browser/ui/views/profiles/forced_reauthentication_dialog.cc b/chrome/browser/ui/views/profiles/forced_reauthentication_dialog_view.cc
similarity index 80%
rename from chrome/browser/ui/views/profiles/forced_reauthentication_dialog.cc
rename to chrome/browser/ui/views/profiles/forced_reauthentication_dialog_view.cc
index d02b9265849fc78e230351abdbc301786206f4d5..997d433a7ceed98bc45ea548f7880bfe4aec0677 100644
--- a/chrome/browser/ui/views/profiles/forced_reauthentication_dialog.cc
+++ b/chrome/browser/ui/views/profiles/forced_reauthentication_dialog_view.cc
@@ -2,8 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ui/views/profiles/forced_reauthentication_dialog.h"
+#include "chrome/browser/ui/views/profiles/forced_reauthentication_dialog_view.h"
+#include <map>
#include <memory>
#include <string>
#include <utility>
@@ -82,13 +83,16 @@ class PromptLabel : public views::StyledLabel {
} // namespace
-ForcedReauthenticationDialog::ForcedReauthenticationDialog(
+// ForcedReauthenticationDialogView
+
+ForcedReauthenticationDialogView::ForcedReauthenticationDialogView(
Browser* browser,
SigninManager* signin_manager,
- const base::TimeDelta& countdown_duration)
+ base::TimeDelta countdown_duration)
: browser_(browser),
signin_manager_(signin_manager),
- desired_close_time_(base::TimeTicks::Now() + countdown_duration) {
+ desired_close_time_(base::TimeTicks::Now() + countdown_duration),
+ weak_factory_(this) {
constrained_window::CreateBrowserModalDialogViews(
this, browser->window()->GetNativeWindow())
->Show();
@@ -96,13 +100,13 @@ ForcedReauthenticationDialog::ForcedReauthenticationDialog(
browser->window()->Activate();
}
-ForcedReauthenticationDialog::~ForcedReauthenticationDialog() {}
+ForcedReauthenticationDialogView::~ForcedReauthenticationDialogView() {}
// static
-ForcedReauthenticationDialog* ForcedReauthenticationDialog::ShowDialog(
+ForcedReauthenticationDialogView* ForcedReauthenticationDialogView::ShowDialog(
Profile* profile,
SigninManager* signin_manager,
- const base::TimeDelta& countdown_duration) {
+ base::TimeDelta countdown_duration) {
Browser* browser = FindBrowserWithProfile(profile);
if (browser == nullptr) { // If there is no browser, we can just sign
// out profile directly.
@@ -110,11 +114,11 @@ ForcedReauthenticationDialog* ForcedReauthenticationDialog::ShowDialog(
return nullptr;
}
- return new ForcedReauthenticationDialog(browser, signin_manager,
- countdown_duration);
+ return new ForcedReauthenticationDialogView(browser, signin_manager,
+ countdown_duration);
}
-bool ForcedReauthenticationDialog::Accept() {
+bool ForcedReauthenticationDialogView::Accept() {
if (GetTimeRemaining() < base::TimeDelta::FromSeconds(kCloseDirectlyTimer)) {
Signout(signin_manager_);
} else {
@@ -125,22 +129,22 @@ bool ForcedReauthenticationDialog::Accept() {
return true;
}
-bool ForcedReauthenticationDialog::Cancel() {
+bool ForcedReauthenticationDialogView::Cancel() {
return true;
}
-void ForcedReauthenticationDialog::WindowClosing() {
+void ForcedReauthenticationDialogView::WindowClosing() {
refresh_timer_.Stop();
}
-base::string16 ForcedReauthenticationDialog::GetWindowTitle() const {
+base::string16 ForcedReauthenticationDialogView::GetWindowTitle() const {
base::TimeDelta time_left = GetTimeRemaining();
return base::i18n::MessageFormatter::FormatWithNumberedArgs(
l10n_util::GetStringUTF16(IDS_ENTERPRISE_FORCE_SIGNOUT_TITLE),
time_left.InMinutes(), time_left.InSeconds() % 60);
}
-base::string16 ForcedReauthenticationDialog::GetDialogButtonLabel(
+base::string16 ForcedReauthenticationDialogView::GetDialogButtonLabel(
ui::DialogButton button) const {
if (button == ui::DIALOG_BUTTON_OK) {
return l10n_util::GetStringUTF16(
@@ -149,11 +153,11 @@ base::string16 ForcedReauthenticationDialog::GetDialogButtonLabel(
return l10n_util::GetStringUTF16(IDS_ENTERPRISE_FORCE_SIGNOUT_CLOSE_DELAY);
}
-ui::ModalType ForcedReauthenticationDialog::GetModalType() const {
+ui::ModalType ForcedReauthenticationDialogView::GetModalType() const {
return ui::MODAL_TYPE_WINDOW;
}
-void ForcedReauthenticationDialog::AddedToWidget() {
+void ForcedReauthenticationDialogView::AddedToWidget() {
const SkColor prompt_bar_background_color =
GetSigninConfirmationPromptBarColor(
GetNativeTheme(), ui::kSigninConfirmationPromptBarBackgroundAlpha);
@@ -231,10 +235,14 @@ void ForcedReauthenticationDialog::AddedToWidget() {
explanation_label->GetHeightForWidth(kPreferredWidth));
refresh_timer_.Start(FROM_HERE,
base::TimeDelta::FromSeconds(kRefreshTitleTimer), this,
- &ForcedReauthenticationDialog::OnCountDown);
+ &ForcedReauthenticationDialogView::OnCountDown);
+}
+
+void ForcedReauthenticationDialogView::CloseDialog() {
+ GetWidget()->Close();
}
-void ForcedReauthenticationDialog::OnCountDown() {
+void ForcedReauthenticationDialogView::OnCountDown() {
if (desired_close_time_ <= base::TimeTicks::Now()) {
Cancel();
GetWidget()->Close();
@@ -242,9 +250,34 @@ void ForcedReauthenticationDialog::OnCountDown() {
GetWidget()->UpdateWindowTitle();
}
-base::TimeDelta ForcedReauthenticationDialog::GetTimeRemaining() const {
+base::TimeDelta ForcedReauthenticationDialogView::GetTimeRemaining() const {
base::TimeTicks now = base::TimeTicks::Now();
if (desired_close_time_ <= now)
return base::TimeDelta();
return desired_close_time_ - now;
}
+
+// ForcedReauthenticationDialogImpl
+
+ForcedReauthenticationDialogImpl::ForcedReauthenticationDialogImpl() {}
+ForcedReauthenticationDialogImpl::~ForcedReauthenticationDialogImpl() {
+ if (dialog_view_)
+ dialog_view_->CloseDialog();
+}
+
+void ForcedReauthenticationDialogImpl::ShowDialog(
+ Profile* profile,
+ SigninManager* signin_manager,
+ base::TimeDelta countdown_duration) {
+ dialog_view_ = ForcedReauthenticationDialogView::ShowDialog(
+ profile, signin_manager, countdown_duration)
+ ->AsWeakPtr();
+}
+
+// ForcedReauthenticationDialog
+
+// static
+std::unique_ptr<ForcedReauthenticationDialog>
+ForcedReauthenticationDialog::Create() {
+ return base::MakeUnique<ForcedReauthenticationDialogImpl>();
+}

Powered by Google App Engine
This is Rietveld 408576698