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 62c274d33fdcbd521e626fa88e56641163238376..dad1c6169c289317ec2b46355ad298c0d188f808 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()); |