Index: chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc |
diff --git a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc |
index b8ccbd8fbbaff98432cb699efaba80a3df5a7d9d..b9992f01112dac9f9d970c12473405aee81faaad 100644 |
--- a/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc |
+++ b/chrome/browser/ui/views/tab_contents/chrome_web_contents_view_delegate_views.cc |
@@ -9,7 +9,8 @@ |
#include "chrome/browser/ui/tab_contents/chrome_web_contents_view_delegate.h" |
#include "chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.h" |
#include "chrome/browser/ui/views/sad_tab_view.h" |
-#include "components/web_modal/popup_manager.h" |
+#include "chrome/common/chrome_switches.h" |
+#include "components/web_modal/web_contents_modal_dialog_manager.h" |
#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/render_widget_host_view.h" |
@@ -21,6 +22,8 @@ |
#include "ui/views/focus/view_storage.h" |
#include "ui/views/widget/widget.h" |
+using web_modal::WebContentsModalDialogManager; |
+ |
ChromeWebContentsViewDelegateViews::ChromeWebContentsViewDelegateViews( |
content::WebContents* web_contents) |
: ContextMenuDelegate(web_contents), |
@@ -57,10 +60,17 @@ bool ChromeWebContentsViewDelegateViews::Focus() { |
} |
} |
- web_modal::PopupManager* popup_manager = |
- web_modal::PopupManager::FromWebContents(web_contents_); |
- if (popup_manager) |
- popup_manager->WasFocused(web_contents_); |
+ WebContentsModalDialogManager* web_contents_modal_dialog_manager = |
+ WebContentsModalDialogManager::FromWebContents(web_contents_); |
+ if (web_contents_modal_dialog_manager) { |
+ // TODO(erg): WebContents used to own web contents modal dialogs, which is |
+ // why this is here. Eventually this should be ported to a containing view |
+ // specializing in web contents modal dialog management. |
+ if (web_contents_modal_dialog_manager->IsDialogActive()) { |
+ web_contents_modal_dialog_manager->FocusTopmostDialog(); |
+ return true; |
+ } |
+ } |
return false; |
} |