Index: components/constrained_window/constrained_window_views.cc |
diff --git a/components/constrained_window/constrained_window_views.cc b/components/constrained_window/constrained_window_views.cc |
index def5232fc9782603559d380c6499264f1c8ac6b5..bfb7f2ccc48254705713abfc060fc831c7bf83dd 100644 |
--- a/components/constrained_window/constrained_window_views.cc |
+++ b/components/constrained_window/constrained_window_views.cc |
@@ -141,11 +141,29 @@ views::Widget* ShowWebModalDialogViews( |
content::WebContents* web_contents = |
guest_view::GuestViewBase::GetTopLevelWebContents(initiator_web_contents); |
views::Widget* widget = CreateWebModalDialogViews(dialog, web_contents); |
- web_modal::WebContentsModalDialogManager::FromWebContents(web_contents) |
- ->ShowModalDialog(widget->GetNativeWindow()); |
+ web_modal::WebContentsModalDialogManager* manager = |
+ web_modal::WebContentsModalDialogManager::FromWebContents(web_contents); |
+ manager->ShowModalDialog(widget->GetNativeWindow()); |
return widget; |
} |
+#if defined(OS_MACOSX) |
+views::Widget* ShowWebModalDialogWithOverlayViews( |
+ views::WidgetDelegate* dialog, |
+ content::WebContents* initiator_web_contents) { |
+ DCHECK(constrained_window_views_client); |
+ // For embedded WebContents, use the embedder's WebContents for constrained |
+ // window. |
+ content::WebContents* web_contents = |
+ guest_view::GuestViewBase::GetTopLevelWebContents(initiator_web_contents); |
+ views::Widget* widget = CreateWebModalDialogViews(dialog, web_contents); |
+ web_modal::WebContentsModalDialogManager* manager = |
+ web_modal::WebContentsModalDialogManager::FromWebContents(web_contents); |
+ manager->ShowModalDialogWithOverlay(widget->GetNativeWindow()); |
+ return widget; |
+} |
+#endif |
+ |
views::Widget* CreateWebModalDialogViews(views::WidgetDelegate* dialog, |
content::WebContents* web_contents) { |
DCHECK_EQ(ui::MODAL_TYPE_CHILD, dialog->GetModalType()); |