Give the JS dialog manager the alerting frame.
Back when this interface was originally designed, frames did not
have a proper type. Now that they do, plumb it through. That
allows the manager to make more intelligent decisions about
presenting the dialogs.
BUG=696454, 802007
Change-Id: I8aef92770bd80cfb00a59761ac492394b78d1953
Reviewed-on: https://chromium-review.googlesource.com/928828
Reviewed-by: Scott Violet <[email protected]>
Commit-Queue: Avi Drissman <[email protected]>
Cr-Commit-Position: refs/heads/master@{#538552}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 3db465b..94149dc 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4654,7 +4654,6 @@
void WebContentsImpl::RunJavaScriptDialog(RenderFrameHost* render_frame_host,
const base::string16& message,
const base::string16& default_prompt,
- const GURL& frame_url,
JavaScriptDialogType dialog_type,
IPC::Message* reply_msg) {
// Running a dialog causes an exit to webpage-initiated fullscreen.
@@ -4693,13 +4692,14 @@
for (auto* handler : page_handlers) {
handler->DidRunJavaScriptDialog(
- frame_url, message, default_prompt, dialog_type,
+ render_frame_host->GetLastCommittedURL(), message, default_prompt,
+ dialog_type,
base::BindOnce(&CloseDialogCallbackWrapper::Run, wrapper, false));
}
if (dialog_manager_) {
dialog_manager_->RunJavaScriptDialog(
- this, frame_url, dialog_type, message, default_prompt,
+ this, render_frame_host, dialog_type, message, default_prompt,
base::BindOnce(&CloseDialogCallbackWrapper::Run, wrapper, false),
&suppress_this_message);
}