Index: chrome/browser/chromeos/setting_level_bubble.cc |
diff --git a/chrome/browser/chromeos/setting_level_bubble.cc b/chrome/browser/chromeos/setting_level_bubble.cc |
index 0db0b7c5454e7f9f7f7b25b9b32f52016b4164dd..3b10fde3881b82421b91e6cc24fd4cbae9ba9303 100644 |
--- a/chrome/browser/chromeos/setting_level_bubble.cc |
+++ b/chrome/browser/chromeos/setting_level_bubble.cc |
@@ -7,7 +7,9 @@ |
#include <algorithm> |
#include "chrome/browser/chromeos/login/background_view.h" |
+#include "chrome/browser/chromeos/login/existing_user_controller.h" |
#include "chrome/browser/chromeos/login/login_utils.h" |
+#include "chrome/browser/chromeos/login/login_display_host.h" |
#include "chrome/browser/chromeos/login/webui_login_display.h" |
#include "chrome/browser/chromeos/setting_level_bubble_view.h" |
#include "chrome/browser/profiles/profile_manager.h" |
@@ -74,15 +76,25 @@ static views::Widget* GetToplevelWidget() { |
#else |
// Otherwise, see if there's a background window that we can use. |
BackgroundView* background = LoginUtils::Get()->GetBackgroundView(); |
- if (background) |
+ if (background) { |
window = GTK_WINDOW(background->GetNativeWindow()); |
+ } else { |
+ ExistingUserController* controller = |
+ ExistingUserController::current_controller(); |
+ if (controller) { |
+ window = |
+ GTK_WINDOW(controller->login_display_host()->GetNativeWindow()); |
+ } |
+ } |
#endif |
} |
- if (window) |
+ if (window) { |
return views::Widget::GetWidgetForNativeWindow(window); |
- else |
- return WebUILoginDisplay::GetLoginWindow(); |
+ } else { |
+ NOTREACHED(); |
+ return NULL; |
+ } |
} |
// SettingLevelBubbleDelegateView ---------------------------------------------- |