Index: chrome/browser/ui/webui/signin/inline_login_handler.cc |
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler.cc b/chrome/browser/ui/webui/signin/inline_login_handler.cc |
index 11190a7af90fdb88ae6e0a0979c5e7ee9100a050..a116d2b52145cfc305c8b71a32db018779107b50 100644 |
--- a/chrome/browser/ui/webui/signin/inline_login_handler.cc |
+++ b/chrome/browser/ui/webui/signin/inline_login_handler.cc |
@@ -13,12 +13,16 @@ |
#include "chrome/browser/extensions/signin/gaia_auth_extension_loader.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/signin/signin_promo.h" |
+#include "chrome/browser/ui/browser_finder.h" |
#include "chrome/browser/ui/browser_navigator.h" |
+#include "chrome/browser/ui/browser_window.h" |
#include "chrome/common/pref_names.h" |
+#include "components/signin/core/common/profile_management_switches.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/browser/web_ui.h" |
#include "google_apis/gaia/gaia_urls.h" |
#include "net/base/url_util.h" |
+#include "ui/aura/window.h" |
InlineLoginHandler::InlineLoginHandler() {} |
@@ -136,5 +140,16 @@ void InlineLoginHandler::HandleSwitchToFullTabMessage( |
ui::PAGE_TRANSITION_AUTO_TOPLEVEL); |
chrome::Navigate(¶ms); |
+ signin_metrics::Source source = signin::GetSourceForPromoURL(main_frame_url); |
+ if (source == signin_metrics::SOURCE_AVATAR_BUBBLE_SIGN_IN || |
+ source == signin_metrics::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT) { |
+ // Close the singleton avatar bubble to reveal the full tab UI. |
+ Browser* browser = chrome::FindAnyBrowser( |
+ profile, false, |
+ chrome::GetHostDesktopTypeForNativeView(web_contents->GetNativeView())); |
+ if (browser != nullptr) |
+ browser->window()->CloseAvatarBubbleFromAvatarButton(); |
+ } |
+ |
web_ui()->CallJavascriptFunction("inline.login.closeDialog"); |
} |