| 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 c678d982b30cf12dc9657e266abf10ba4f0dc0f6..e0fa1a53e58536c5a231ec00eddcf01e4d6c2912 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"
|
| @@ -27,9 +29,12 @@ SigninGlobalError::SigninGlobalError(
|
| SigninErrorController* error_controller,
|
| Profile* profile)
|
| : profile_(profile),
|
| - error_controller_(error_controller) {
|
| + error_controller_(error_controller),
|
| + is_added_to_global_error_service_(false) {
|
| error_controller_->AddObserver(this);
|
| - GlobalErrorServiceFactory::GetForProfile(profile_)->AddGlobalError(this);
|
| + is_added_to_global_error_service_ = !switches::IsNewProfileManagement();
|
| + if (is_added_to_global_error_service_)
|
| + GlobalErrorServiceFactory::GetForProfile(profile_)->AddGlobalError(this);
|
| }
|
|
|
| SigninGlobalError::~SigninGlobalError() {
|
| @@ -49,7 +54,11 @@ void SigninGlobalError::AttemptToFixError(Browser* browser) {
|
| }
|
|
|
| void SigninGlobalError::Shutdown() {
|
| - GlobalErrorServiceFactory::GetForProfile(profile_)->RemoveGlobalError(this);
|
| + if (is_added_to_global_error_service_) {
|
| + GlobalErrorServiceFactory::GetForProfile(profile_)->RemoveGlobalError(this);
|
| + is_added_to_global_error_service_ = false;
|
| + }
|
| +
|
| error_controller_->RemoveObserver(this);
|
| error_controller_ = NULL;
|
| }
|
| @@ -88,9 +97,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
|
| }
|
|
|
|
|