diff options
Diffstat (limited to 'src/core/javascript_dialog_manager_qt.cpp')
-rw-r--r-- | src/core/javascript_dialog_manager_qt.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/core/javascript_dialog_manager_qt.cpp b/src/core/javascript_dialog_manager_qt.cpp index bfa23d2a1..289947237 100644 --- a/src/core/javascript_dialog_manager_qt.cpp +++ b/src/core/javascript_dialog_manager_qt.cpp @@ -44,7 +44,9 @@ #include "web_contents_view_qt.h" #include "type_conversion.h" + #include "base/memory/singleton.h" +#include "content/browser/web_contents/web_contents_impl.h" namespace QtWebEngineCore { @@ -58,7 +60,13 @@ JavaScriptDialogManagerQt *JavaScriptDialogManagerQt::GetInstance() return base::Singleton<JavaScriptDialogManagerQt>::get(); } -void JavaScriptDialogManagerQt::RunJavaScriptDialog(content::WebContents *webContents, const GURL &originUrl, content::JavaScriptDialogType dialog_type, const base::string16 &messageText, const base::string16 &defaultPromptText, content::JavaScriptDialogManager::DialogClosedCallback callback, bool *didSuppressMessage) +void JavaScriptDialogManagerQt::RunJavaScriptDialog(content::WebContents *webContents, + content::RenderFrameHost *renderFrameHost, + content::JavaScriptDialogType dialog_type, + const base::string16 &messageText, + const base::string16 &defaultPromptText, + content::JavaScriptDialogManager::DialogClosedCallback callback, + bool *didSuppressMessage) { WebContentsAdapterClient *client = WebContentsViewQt::from(static_cast<content::WebContentsImpl*>(webContents)->GetView())->client(); if (!client) { @@ -66,16 +74,17 @@ void JavaScriptDialogManagerQt::RunJavaScriptDialog(content::WebContents *webCon *didSuppressMessage = true; return; } - + const GURL originUrl = renderFrameHost->GetLastCommittedOrigin().GetURL(); WebContentsAdapterClient::JavascriptDialogType dialogType = static_cast<WebContentsAdapterClient::JavascriptDialogType>(dialog_type); - runDialogForContents(webContents, dialogType, toQt(messageText), toQt(defaultPromptText), toQt(originUrl.GetOrigin()), std::move(callback)); + runDialogForContents(webContents, dialogType, toQt(messageText), toQt(defaultPromptText), toQt(originUrl), std::move(callback)); } -void JavaScriptDialogManagerQt::RunBeforeUnloadDialog(content::WebContents *webContents, content::RenderFrameHost */*render_frame_host*/, +void JavaScriptDialogManagerQt::RunBeforeUnloadDialog(content::WebContents *webContents, content::RenderFrameHost *renderFrameHost, bool isReload, content::JavaScriptDialogManager::DialogClosedCallback callback) { Q_UNUSED(isReload); - runDialogForContents(webContents, WebContentsAdapterClient::UnloadDialog, QString(), QString(), QUrl(), std::move(callback)); + const GURL originUrl = renderFrameHost->GetLastCommittedOrigin().GetURL(); + runDialogForContents(webContents, WebContentsAdapterClient::UnloadDialog, QString(), QString(), toQt(originUrl), std::move(callback)); } bool JavaScriptDialogManagerQt::HandleJavaScriptDialog(content::WebContents *contents, bool accept, const base::string16 *promptOverride) |