Index: chrome/browser/ui/views/constrained_window_views.cc |
diff --git a/chrome/browser/ui/views/constrained_window_views.cc b/chrome/browser/ui/views/constrained_window_views.cc |
index 2bde83cc768448f4463c391648606cdec0c6e695..7a9a3f22053a3f09d7460092725d4cdd572ccf01 100644 |
--- a/chrome/browser/ui/views/constrained_window_views.cc |
+++ b/chrome/browser/ui/views/constrained_window_views.cc |
@@ -8,6 +8,8 @@ |
#include "chrome/browser/ui/browser_finder.h" |
#include "components/web_modal/web_contents_modal_dialog_host.h" |
+#include "components/web_modal/web_contents_modal_dialog_manager.h" |
+#include "components/web_modal/web_contents_modal_dialog_manager_delegate.h" |
#include "ui/views/border.h" |
#include "ui/views/widget/widget.h" |
#include "ui/views/widget/widget_observer.h" |
@@ -118,6 +120,24 @@ void UpdateBrowserModalDialogPosition(views::Widget* widget, |
widget->GetRootView()->GetPreferredSize()); |
} |
+views::Widget* ShowWebModalDialogViews(views::WidgetDelegate* dialog, |
+ content::WebContents* web_contents) { |
+ views::Widget* widget = CreateWebModalDialogViews(dialog, web_contents); |
+ web_modal::WebContentsModalDialogManager::FromWebContents(web_contents)-> |
+ ShowModalDialog(widget->GetNativeWindow()); |
+ return widget; |
+} |
+ |
+views::Widget* CreateWebModalDialogViews(views::WidgetDelegate* dialog, |
+ content::WebContents* web_contents) { |
+ DCHECK_EQ(ui::MODAL_TYPE_CHILD, dialog->GetModalType()); |
+ web_modal::WebContentsModalDialogManager* manager = |
+ web_modal::WebContentsModalDialogManager::FromWebContents(web_contents); |
+ const gfx::NativeWindow parent = |
+ manager->delegate()->GetWebContentsModalDialogHost()->GetHostView(); |
+ return views::DialogDelegate::CreateDialogWidget(dialog, NULL, parent); |
+} |
+ |
views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog, |
gfx::NativeWindow parent) { |
views::Widget* widget = |