summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-04-07 14:00:35 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-04-15 17:03:28 +0200
commit84ced937a0f9f2874e32e16c4c6ebf72b46904c9 (patch)
treed78373210638476d0e0ee67e398dca7a1630544b /src
parentfc55f57e6cbbcd0027493d0bbea8161a814aaff2 (diff)
Replace uses of QWebEngineFrame with a security origin URL
This changes implemented methods. The rest of the references will go away with the public headers cleanup. Change-Id: I82340cd7a4488c4b463489ae98cd9c16de4e7487 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/javascript_dialog_controller.cpp9
-rw-r--r--src/core/javascript_dialog_controller.h1
-rw-r--r--src/core/javascript_dialog_controller_p.h4
-rw-r--r--src/core/javascript_dialog_manager_qt.cpp3
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp18
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h6
-rw-r--r--src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc12
7 files changed, 31 insertions, 22 deletions
diff --git a/src/core/javascript_dialog_controller.cpp b/src/core/javascript_dialog_controller.cpp
index ed0431084..973fa89b7 100644
--- a/src/core/javascript_dialog_controller.cpp
+++ b/src/core/javascript_dialog_controller.cpp
@@ -54,10 +54,12 @@ void JavaScriptDialogControllerPrivate::dialogFinished(bool accepted, const base
}
JavaScriptDialogControllerPrivate::JavaScriptDialogControllerPrivate(WebContentsAdapterClient::JavascriptDialogType t, const QString &msg, const QString &prompt
- , const content::JavaScriptDialogManager::DialogClosedCallback &cb, content::WebContents *c)
+ , const QUrl &securityOrigin, const content::JavaScriptDialogManager::DialogClosedCallback &cb
+ , content::WebContents *c)
: type(t)
, message(msg)
, defaultPrompt(prompt)
+ , securityOrigin(securityOrigin)
, callback(cb)
, contents(c)
{
@@ -82,6 +84,11 @@ WebContentsAdapterClient::JavascriptDialogType JavaScriptDialogController::type(
return d->type;
}
+QUrl JavaScriptDialogController::securityOrigin() const
+{
+ return d->securityOrigin;
+}
+
void JavaScriptDialogController::textProvided(const QString &text)
{
d->userInput = text;
diff --git a/src/core/javascript_dialog_controller.h b/src/core/javascript_dialog_controller.h
index b0d598afa..755a2712b 100644
--- a/src/core/javascript_dialog_controller.h
+++ b/src/core/javascript_dialog_controller.h
@@ -55,6 +55,7 @@ public:
QString message() const;
QString defaultPrompt() const;
WebContentsAdapterClient::JavascriptDialogType type() const;
+ QUrl securityOrigin() const;
public Q_SLOTS:
void textProvided(const QString &text);
diff --git a/src/core/javascript_dialog_controller_p.h b/src/core/javascript_dialog_controller_p.h
index 9e84b31a0..0d7552ce2 100644
--- a/src/core/javascript_dialog_controller_p.h
+++ b/src/core/javascript_dialog_controller_p.h
@@ -55,11 +55,13 @@ class JavaScriptDialogControllerPrivate {
public:
void dialogFinished(bool accepted, const base::string16 &promptValue);
JavaScriptDialogControllerPrivate(WebContentsAdapterClient::JavascriptDialogType, const QString &message, const QString &prompt
- , const content::JavaScriptDialogManager::DialogClosedCallback &, content::WebContents *);
+ , const QUrl &securityOrigin, const content::JavaScriptDialogManager::DialogClosedCallback &
+ , content::WebContents *);
WebContentsAdapterClient::JavascriptDialogType type;
QString message;
QString defaultPrompt;
+ QUrl securityOrigin;
QString userInput;
content::JavaScriptDialogManager::DialogClosedCallback callback;
content::WebContents *contents;
diff --git a/src/core/javascript_dialog_manager_qt.cpp b/src/core/javascript_dialog_manager_qt.cpp
index 1cde76a8f..1e37481b6 100644
--- a/src/core/javascript_dialog_manager_qt.cpp
+++ b/src/core/javascript_dialog_manager_qt.cpp
@@ -58,7 +58,6 @@ JavaScriptDialogManagerQt *JavaScriptDialogManagerQt::GetInstance()
void JavaScriptDialogManagerQt::RunJavaScriptDialog(content::WebContents *webContents, const GURL &originUrl, const std::string &acceptLang, content::JavaScriptMessageType javascriptMessageType, const base::string16 &messageText, const base::string16 &defaultPromptText, const content::JavaScriptDialogManager::DialogClosedCallback &callback, bool *didSuppressMessage)
{
- Q_UNUSED(originUrl);
Q_UNUSED(acceptLang);
WebContentsAdapterClient *client = WebContentsViewQt::from(webContents->GetView())->client();
@@ -69,7 +68,7 @@ void JavaScriptDialogManagerQt::RunJavaScriptDialog(content::WebContents *webCon
WebContentsAdapterClient::JavascriptDialogType dialogType = static_cast<WebContentsAdapterClient::JavascriptDialogType>(javascriptMessageType);
JavaScriptDialogControllerPrivate *dialogData = new JavaScriptDialogControllerPrivate(dialogType, toQt(messageText).toHtmlEscaped()
- , toQt(defaultPromptText).toHtmlEscaped(), callback, webContents);
+ , toQt(defaultPromptText).toHtmlEscaped(), toQt(originUrl), callback, webContents);
QSharedPointer<JavaScriptDialogController> dialog(new JavaScriptDialogController(dialogData));
// We shouldn't get new dialogs for a given WebContents until we gave back a result.
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 80f780dde..6fcababbf 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -583,14 +583,14 @@ void QWebEnginePagePrivate::javascriptDialog(QSharedPointer<JavaScriptDialogCont
QString promptResult;
switch (controller->type()) {
case AlertDialog:
- q->javaScriptAlert(0, controller->message());
+ q->javaScriptAlert(controller->securityOrigin(), controller->message());
accepted = true;
break;
case ConfirmDialog:
- accepted = q->javaScriptConfirm(0, controller->message());
+ accepted = q->javaScriptConfirm(controller->securityOrigin(), controller->message());
break;
case PromptDialog:
- accepted = q->javaScriptPrompt(0, controller->message(), controller->defaultPrompt(), &promptResult);
+ accepted = q->javaScriptPrompt(controller->securityOrigin(), controller->message(), controller->defaultPrompt(), &promptResult);
if (accepted)
controller->textProvided(promptResult);
break;
@@ -810,21 +810,21 @@ QStringList QWebEnginePage::chooseFiles(FileSelectionMode mode, const QStringLis
return ret;
}
-void QWebEnginePage::javaScriptAlert(QWebEngineFrame *originatingFrame, const QString &msg)
+void QWebEnginePage::javaScriptAlert(const QUrl &securityOrigin, const QString &msg)
{
- Q_UNUSED(originatingFrame);
+ Q_UNUSED(securityOrigin);
QMessageBox::information(view(), QStringLiteral("Javascript Alert - %1").arg(url().toString()), msg);
}
-bool QWebEnginePage::javaScriptConfirm(QWebEngineFrame *originatingFrame, const QString &msg)
+bool QWebEnginePage::javaScriptConfirm(const QUrl &securityOrigin, const QString &msg)
{
- Q_UNUSED(originatingFrame);
+ Q_UNUSED(securityOrigin);
return (QMessageBox::information(view(), QStringLiteral("Javascript Confirm - %1").arg(url().toString()), msg, QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok);
}
-bool QWebEnginePage::javaScriptPrompt(QWebEngineFrame *originatingFrame, const QString &msg, const QString &defaultValue, QString *result)
+bool QWebEnginePage::javaScriptPrompt(const QUrl &securityOrigin, const QString &msg, const QString &defaultValue, QString *result)
{
- Q_UNUSED(originatingFrame);
+ Q_UNUSED(securityOrigin);
bool ret = false;
if (result)
*result = QInputDialog::getText(view(), QStringLiteral("Javascript Prompt - %1").arg(url().toString()), msg, QLineEdit::Normal, defaultValue, &ret);
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index eea7b52d2..29ba140bc 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -574,9 +574,9 @@ protected:
virtual bool acceptNavigationRequest(QWebEngineFrame *frame, const QNetworkRequest &request, NavigationType type) { Q_UNUSED(frame); Q_UNUSED(&request); Q_UNUSED(type); Q_UNREACHABLE(); return false; }
virtual QStringList chooseFiles(FileSelectionMode mode, const QStringList &oldFiles, const QStringList &acceptedMimeTypes);
- virtual void javaScriptAlert(QWebEngineFrame *originatingFrame, const QString& msg);
- virtual bool javaScriptConfirm(QWebEngineFrame *originatingFrame, const QString& msg);
- virtual bool javaScriptPrompt(QWebEngineFrame *originatingFrame, const QString& msg, const QString& defaultValue, QString* result);
+ virtual void javaScriptAlert(const QUrl &securityOrigin, const QString& msg);
+ virtual bool javaScriptConfirm(const QUrl &securityOrigin, const QString& msg);
+ virtual bool javaScriptPrompt(const QUrl &securityOrigin, const QString& msg, const QString& defaultValue, QString* result);
virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID);
virtual QString userAgentForUrl(const QUrl& url) const { Q_UNUSED(url); Q_UNREACHABLE(); return QString(); }
diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
index 225ad5a48..a32406264 100644
--- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
@@ -416,24 +416,24 @@
*/
/*!
- \fn void QWebEnginePage::javaScriptAlert(QWebEngineFrame *frame, const QString& msg)
- This function is called whenever a JavaScript program running inside \a frame calls the alert() function with
+ \fn void QWebEnginePage::javaScriptAlert(const QUrl &securityOrigin, const QString& msg)
+ This function is called whenever a JavaScript program running in a frame affiliated with \a securityOrigin calls the alert() function with
the message \a msg.
The default implementation shows the message, \a msg, with QMessageBox::information.
*/
/*!
- \fn bool QWebEnginePage::javaScriptConfirm(QWebEngineFrame *frame, const QString& msg)
- This function is called whenever a JavaScript program running inside \a frame calls the confirm() function
+ \fn bool QWebEnginePage::javaScriptConfirm(const QUrl &securityOrigin, const QString& msg)
+ This function is called whenever a JavaScript program running in a frame affiliated with \a securityOrigin calls the confirm() function
with the message, \a msg. Returns true if the user confirms the message; otherwise returns false.
The default implementation executes the query using QMessageBox::information with QMessageBox::Ok and QMessageBox::Cancel buttons.
*/
/*!
- \fn bool QWebEnginePage::javaScriptPrompt(QWebEngineFrame *frame, const QString& msg, const QString& defaultValue, QString* result)
- This function is called whenever a JavaScript program running inside \a frame tries to prompt the user for input.
+ \fn bool QWebEnginePage::javaScriptPrompt(const QUrl &securityOrigin, const QString& msg, const QString& defaultValue, QString* result)
+ This function is called whenever a JavaScript program running in a frame affiliated with \a securityOrigin tries to prompt the user for input.
The program may provide an optional message, \a msg, as well as a default value for the input in \a defaultValue.
If the prompt was cancelled by the user the implementation should return false; otherwise the