| Index: chrome/browser/signin/signin_global_error.cc
|
| diff --git a/chrome/browser/signin/signin_global_error.cc b/chrome/browser/signin/signin_global_error.cc
|
| index 40ae3aa5b3ef9ab2b1b325a2566df36470524e26..81d40773073a7346ff222f11a892b22d9ab95283 100644
|
| --- a/chrome/browser/signin/signin_global_error.cc
|
| +++ b/chrome/browser/signin/signin_global_error.cc
|
| @@ -10,6 +10,7 @@
|
| #include "chrome/browser/signin/signin_manager_factory.h"
|
| #include "chrome/browser/signin/signin_promo.h"
|
| #include "chrome/browser/ui/browser_commands.h"
|
| +#include "chrome/browser/ui/browser_window.h"
|
| #include "chrome/browser/ui/chrome_pages.h"
|
| #include "chrome/browser/ui/global_error/global_error_service.h"
|
| #include "chrome/browser/ui/global_error/global_error_service_factory.h"
|
| @@ -18,6 +19,7 @@
|
| #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
|
| #include "chrome/common/url_constants.h"
|
| #include "components/signin/core/browser/signin_manager.h"
|
| +#include "components/signin/core/common/profile_management_switches.h"
|
| #include "grit/chromium_strings.h"
|
| #include "grit/generated_resources.h"
|
| #include "net/base/url_util.h"
|
| @@ -29,7 +31,6 @@ SigninGlobalError::SigninGlobalError(
|
| : profile_(profile),
|
| error_controller_(error_controller) {
|
| error_controller_->AddObserver(this);
|
| - GlobalErrorServiceFactory::GetForProfile(profile_)->AddGlobalError(this);
|
| }
|
|
|
| SigninGlobalError::~SigninGlobalError() {
|
| @@ -37,6 +38,17 @@ SigninGlobalError::~SigninGlobalError() {
|
| << "SigninGlobalError::Shutdown() was not called";
|
| }
|
|
|
| +bool SigninGlobalError::HasError() {
|
| + return HasMenuItem();
|
| +}
|
| +
|
| +void SigninGlobalError::AttemptToFixError(Browser* browser) {
|
| + if (!HasError())
|
| + return;
|
| +
|
| + ExecuteMenuItem(browser);
|
| +}
|
| +
|
| void SigninGlobalError::Shutdown() {
|
| GlobalErrorServiceFactory::GetForProfile(profile_)->RemoveGlobalError(this);
|
| error_controller_->RemoveObserver(this);
|
| @@ -77,9 +89,14 @@ void SigninGlobalError::ExecuteMenuItem(Browser* browser) {
|
| return;
|
| }
|
|
|
| - chrome::ShowSingletonTab(
|
| - browser,
|
| - signin::GetReauthURL(profile_, error_controller_->error_account_id()));
|
| + if (switches::IsNewProfileManagement()) {
|
| + browser->window()->ShowAvatarBubbleFromAvatarButton(
|
| + BrowserWindow::AVATAR_BUBBLE_MODE_REAUTH);
|
| + } else {
|
| + chrome::ShowSingletonTab(
|
| + browser,
|
| + signin::GetReauthURL(profile_, error_controller_->error_account_id()));
|
| + }
|
| #endif
|
| }
|
|
|
|
|