summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/api/qwebenginecookiestore.h2
-rw-r--r--src/core/api/qwebengineurlrequestinterceptor.h2
-rw-r--r--src/core/api/qwebengineurlschemehandler.h2
-rw-r--r--src/core/clipboard_qt.cpp4
-rw-r--r--src/webengine/api/qquickwebengineprofile.h2
-rw-r--r--src/webengine/doc/src/webengineview.qdoc7
-rw-r--r--src/webenginewidgets/api/qwebenginedownloaditem.h2
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h8
-rw-r--r--src/webenginewidgets/api/qwebengineprofile.h6
-rw-r--r--src/webenginewidgets/api/qwebenginesettings.h2
-rw-r--r--src/webenginewidgets/api/qwebengineview.h6
-rw-r--r--src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc3
-rw-r--r--src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc6
-rw-r--r--tests/auto/widgets/qwebenginepage/resources/pasteimage.html30
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp31
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc1
16 files changed, 91 insertions, 23 deletions
diff --git a/src/core/api/qwebenginecookiestore.h b/src/core/api/qwebenginecookiestore.h
index b1d625385..eac976fae 100644
--- a/src/core/api/qwebenginecookiestore.h
+++ b/src/core/api/qwebenginecookiestore.h
@@ -70,7 +70,7 @@ Q_SIGNALS:
void cookieRemoved(const QNetworkCookie &cookie);
private:
- explicit QWebEngineCookieStore(QObject *parent = 0);
+ explicit QWebEngineCookieStore(QObject *parent = Q_NULLPTR);
friend class QtWebEngineCore::BrowserContextAdapter;
friend class QtWebEngineCore::CookieMonsterDelegateQt;
Q_DISABLE_COPY(QWebEngineCookieStore)
diff --git a/src/core/api/qwebengineurlrequestinterceptor.h b/src/core/api/qwebengineurlrequestinterceptor.h
index a3b7cf979..e9f9c8d5f 100644
--- a/src/core/api/qwebengineurlrequestinterceptor.h
+++ b/src/core/api/qwebengineurlrequestinterceptor.h
@@ -52,7 +52,7 @@ class QWEBENGINE_EXPORT QWebEngineUrlRequestInterceptor : public QObject
Q_OBJECT
Q_DISABLE_COPY(QWebEngineUrlRequestInterceptor)
public:
- explicit QWebEngineUrlRequestInterceptor(QObject *p = 0)
+ explicit QWebEngineUrlRequestInterceptor(QObject *p = Q_NULLPTR)
: QObject (p)
{
}
diff --git a/src/core/api/qwebengineurlschemehandler.h b/src/core/api/qwebengineurlschemehandler.h
index d9fc15250..738bc281b 100644
--- a/src/core/api/qwebengineurlschemehandler.h
+++ b/src/core/api/qwebengineurlschemehandler.h
@@ -52,7 +52,7 @@ class QWebEngineUrlRequestJob;
class QWEBENGINE_EXPORT QWebEngineUrlSchemeHandler : public QObject {
Q_OBJECT
public:
- QWebEngineUrlSchemeHandler(QObject *parent = 0);
+ QWebEngineUrlSchemeHandler(QObject *parent = Q_NULLPTR);
~QWebEngineUrlSchemeHandler();
virtual void requestStarted(QWebEngineUrlRequestJob*) = 0;
diff --git a/src/core/clipboard_qt.cpp b/src/core/clipboard_qt.cpp
index 9ac5c7a17..e632c5583 100644
--- a/src/core/clipboard_qt.cpp
+++ b/src/core/clipboard_qt.cpp
@@ -282,6 +282,8 @@ void ClipboardQt::ReadAvailableTypes(ui::ClipboardType type, std::vector<base::s
types->clear();
const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
+ if (mimeData->hasImage())
+ types->push_back(toString16(QStringLiteral("image/png")));
Q_FOREACH (const QString &mimeType, mimeData->formats())
types->push_back(toString16(mimeType));
*contains_filenames = false;
@@ -325,8 +327,6 @@ void ClipboardQt::ReadRTF(ui::ClipboardType type, std::string* result) const
SkBitmap ClipboardQt::ReadImage(ui::ClipboardType type) const
{
- // FIXME: Untested, pasting image data seems to only be supported through
- // FileReader.readAsDataURL in JavaScript and this isn't working down the pipe for some reason.
const QMimeData *mimeData = QGuiApplication::clipboard()->mimeData(type == ui::CLIPBOARD_TYPE_COPY_PASTE ? QClipboard::Clipboard : QClipboard::Selection);
QImage image = qvariant_cast<QImage>(mimeData->imageData());
diff --git a/src/webengine/api/qquickwebengineprofile.h b/src/webengine/api/qquickwebengineprofile.h
index 1850f52fa..1d8608e0f 100644
--- a/src/webengine/api/qquickwebengineprofile.h
+++ b/src/webengine/api/qquickwebengineprofile.h
@@ -143,7 +143,7 @@ private Q_SLOTS:
private:
Q_DECLARE_PRIVATE(QQuickWebEngineProfile)
- QQuickWebEngineProfile(QQuickWebEngineProfilePrivate *, QObject *parent = 0);
+ QQuickWebEngineProfile(QQuickWebEngineProfilePrivate *, QObject *parent = Q_NULLPTR);
QQuickWebEngineSettings *settings() const;
friend class QQuickWebEngineSettings;
diff --git a/src/webengine/doc/src/webengineview.qdoc b/src/webengine/doc/src/webengineview.qdoc
index 574b5e70f..2aeb88b26 100644
--- a/src/webengine/doc/src/webengineview.qdoc
+++ b/src/webengine/doc/src/webengineview.qdoc
@@ -47,8 +47,11 @@
\section2 Loading Web Pages
An application can load pages into the WebEngineView, using either the \l url property or the
- \l loadHtml method and navigate within the view's session history. The history is represented
- by a WebEngineHistory data model that is held by the \l navigationHistory property.
+ \l loadHtml method and navigate within the view's session history. The GET
+ method is always used to load URLs.
+
+ The history is represented by a WebEngineHistory data model that is held by
+ the \l navigationHistory property.
The following sample QML application loads a web page using the \c url property:
diff --git a/src/webenginewidgets/api/qwebenginedownloaditem.h b/src/webenginewidgets/api/qwebenginedownloaditem.h
index 886d9ab9a..648b91ec9 100644
--- a/src/webenginewidgets/api/qwebenginedownloaditem.h
+++ b/src/webenginewidgets/api/qwebenginedownloaditem.h
@@ -86,7 +86,7 @@ private:
friend class QWebEngineProfilePrivate;
- QWebEngineDownloadItem(QWebEngineDownloadItemPrivate*, QObject *parent = 0);
+ QWebEngineDownloadItem(QWebEngineDownloadItemPrivate*, QObject *parent = Q_NULLPTR);
QScopedPointer<QWebEngineDownloadItemPrivate> d_ptr;
};
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index 811003dd0..911bfe917 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -175,8 +175,8 @@ public:
KilledTerminationStatus
};
- explicit QWebEnginePage(QObject *parent = 0);
- QWebEnginePage(QWebEngineProfile *profile, QObject *parent = 0);
+ explicit QWebEnginePage(QObject *parent = Q_NULLPTR);
+ QWebEnginePage(QWebEngineProfile *profile, QObject *parent = Q_NULLPTR);
~QWebEnginePage();
QWebEngineHistory *history() const;
@@ -195,10 +195,10 @@ public:
virtual bool event(QEvent*);
#ifdef Q_QDOC
- void findText(const QString &subString, FindFlags options = 0);
+ void findText(const QString &subString, FindFlags options = FindFlags());
void findText(const QString &subString, FindFlags options, FunctorOrLambda resultCallback);
#else
- void findText(const QString &subString, FindFlags options = 0, const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>());
+ void findText(const QString &subString, FindFlags options = FindFlags(), const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>());
#endif
QMenu *createStandardContextMenu();
diff --git a/src/webenginewidgets/api/qwebengineprofile.h b/src/webenginewidgets/api/qwebengineprofile.h
index 416ef23db..be420c62f 100644
--- a/src/webenginewidgets/api/qwebengineprofile.h
+++ b/src/webenginewidgets/api/qwebengineprofile.h
@@ -60,8 +60,8 @@ class QWebEngineUrlSchemeHandler;
class QWEBENGINEWIDGETS_EXPORT QWebEngineProfile : public QObject {
Q_OBJECT
public:
- explicit QWebEngineProfile(QObject *parent = 0);
- explicit QWebEngineProfile(const QString &name, QObject *parent = 0);
+ explicit QWebEngineProfile(QObject *parent = Q_NULLPTR);
+ explicit QWebEngineProfile(const QString &name, QObject *parent = Q_NULLPTR);
virtual ~QWebEngineProfile();
enum HttpCacheType {
@@ -126,7 +126,7 @@ private Q_SLOTS:
private:
Q_DISABLE_COPY(QWebEngineProfile)
Q_DECLARE_PRIVATE(QWebEngineProfile)
- QWebEngineProfile(QWebEngineProfilePrivate *, QObject *parent = 0);
+ QWebEngineProfile(QWebEngineProfilePrivate *, QObject *parent = Q_NULLPTR);
friend class QWebEnginePagePrivate;
friend class QWebEngineUrlSchemeHandler;
diff --git a/src/webenginewidgets/api/qwebenginesettings.h b/src/webenginewidgets/api/qwebenginesettings.h
index 327fd447b..53c38ef2b 100644
--- a/src/webenginewidgets/api/qwebenginesettings.h
+++ b/src/webenginewidgets/api/qwebenginesettings.h
@@ -100,7 +100,7 @@ private:
friend class QWebEngineProfilePrivate;
~QWebEngineSettings();
- explicit QWebEngineSettings(QWebEngineSettings *parentSettings = 0);
+ explicit QWebEngineSettings(QWebEngineSettings *parentSettings = Q_NULLPTR);
};
QT_END_NAMESPACE
diff --git a/src/webenginewidgets/api/qwebengineview.h b/src/webenginewidgets/api/qwebengineview.h
index e16bbf4af..34eb6177c 100644
--- a/src/webenginewidgets/api/qwebengineview.h
+++ b/src/webenginewidgets/api/qwebengineview.h
@@ -61,7 +61,7 @@ class QWEBENGINEWIDGETS_EXPORT QWebEngineView : public QWidget {
Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor)
public:
- explicit QWebEngineView(QWidget* parent = 0);
+ explicit QWebEngineView(QWidget* parent = Q_NULLPTR);
virtual ~QWebEngineView();
QWebEnginePage* page() const;
@@ -90,10 +90,10 @@ public:
void setZoomFactor(qreal factor);
#ifdef Q_QDOC
- void findText(const QString &subString, QWebEnginePage::FindFlags options = 0);
+ void findText(const QString &subString, QWebEnginePage::FindFlags options = QWebEnginePage::FindFlags());
void findText(const QString &subString, QWebEnginePage::FindFlags options, FunctorOrLambda resultCallback);
#else
- void findText(const QString &subString, QWebEnginePage::FindFlags options = 0, const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>());
+ void findText(const QString &subString, QWebEnginePage::FindFlags options = QWebEnginePage::FindFlags(), const QWebEngineCallback<bool> &resultCallback = QWebEngineCallback<bool>());
#endif
virtual QSize sizeHint() const Q_DECL_OVERRIDE;
diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
index 9be4a25e7..50578a0e7 100644
--- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
@@ -39,7 +39,8 @@
and findText().
A page can be loaded using load() or setUrl(). Alternatively, if you have
- the HTML content readily available, you can use setHtml().
+ the HTML content readily available, you can use setHtml(). The GET method is
+ always used to load URLs.
The QWebEnginePage class also offers methods to retrieve both the URL currently
loaded by the page (see url()) as well as the URL originally requested
diff --git a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
index 976a1a924..d03d64a1c 100644
--- a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
@@ -37,8 +37,10 @@
It can be used in various applications to display web content live from the
Internet.
- A \e {web site} can be loaded to a web view with the load() function. Like all
- Qt widgets, the show() function must be invoked in order to display
+ A \e {web site} can be loaded to a web view with the load() function. The
+ GET method is always used to load URLs.
+
+ Like all Qt widgets, the show() function must be invoked in order to display
the web view. The snippet below illustrates this:
\snippet simple/main.cpp Using QWebEngineView
diff --git a/tests/auto/widgets/qwebenginepage/resources/pasteimage.html b/tests/auto/widgets/qwebenginepage/resources/pasteimage.html
new file mode 100644
index 000000000..cc37d9319
--- /dev/null
+++ b/tests/auto/widgets/qwebenginepage/resources/pasteimage.html
@@ -0,0 +1,30 @@
+<html>
+ <head>
+ <meta charset="UTF-8">
+ <script>
+ window.onload = function() {
+ document.getElementById("pasteArea").focus();
+ }
+ document.onpaste = function(event) {
+ var items = (event.clipboardData || event.originalEvent.clipboardData).items;
+ var blob = null;
+ for (var i = 0; i < items.length; ++i) {
+ if (items[i].type.indexOf("image/png") !== -1) {
+ blob = items[i].getAsFile();
+ break;
+ }
+ }
+ if (!blob)
+ return;
+ var reader = new FileReader();
+ reader.onload = function(event) {
+ window.myImageDataURL = event.target.result;
+ }
+ reader.readAsDataURL(blob);
+ };
+ </script>
+ </head>
+ <body>
+ <textarea id="pasteArea" placeholder="paste here"></textarea>
+ </body>
+</html>
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index 5d53c0468..f29b24933 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -31,6 +31,7 @@
#include <QPushButton>
#include <QStateMachine>
#include <QStyle>
+#include <QtGui/QClipboard>
#include <QtTest/QtTest>
#include <QTextCharFormat>
#include <QWebChannel>
@@ -120,6 +121,7 @@ private Q_SLOTS:
void geolocationRequestJS();
void loadFinished();
void actionStates();
+ void pasteImage();
void popupFormSubmission();
void userStyleSheet();
void userStyleSheetFromLocalFileUrl();
@@ -459,6 +461,35 @@ void tst_QWebEnginePage::actionStates()
QTRY_VERIFY(!stopAction->isEnabled());
}
+static QImage imageWithoutAlpha(const QImage &image)
+{
+ QImage result = image;
+ QPainter painter(&result);
+ painter.fillRect(result.rect(), Qt::green);
+ painter.drawImage(0, 0, image);
+ return result;
+}
+
+void tst_QWebEnginePage::pasteImage()
+{
+ // Pixels with an alpha value of 0 will have different RGB values after the
+ // test -> clipboard -> webengine -> test roundtrip.
+ // Clear the alpha channel to make QCOMPARE happy.
+ const QImage origImage = imageWithoutAlpha(QImage(":/resources/image.png"));
+ QClipboard *clipboard = QGuiApplication::clipboard();
+ clipboard->setImage(origImage);
+ QWebEnginePage *page = m_view->page();
+ page->load(QUrl("qrc:///resources/pasteimage.html"));
+ QVERIFY(waitForSignal(m_view, SIGNAL(loadFinished(bool))));
+ page->triggerAction(QWebEnginePage::Paste);
+ QTRY_VERIFY(evaluateJavaScriptSync(page,
+ "window.myImageDataURL ? window.myImageDataURL.length : 0").toInt() > 0);
+ QByteArray data = evaluateJavaScriptSync(page, "window.myImageDataURL").toByteArray();
+ data.remove(0, data.indexOf(";base64,") + 8);
+ const QImage image = QImage::fromData(QByteArray::fromBase64(data), "PNG");
+ QCOMPARE(image, origImage);
+}
+
class ConsolePage : public QWebEnginePage
{
public:
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc
index c7bffd5bb..91adeb694 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc
@@ -12,6 +12,7 @@
<file>resources/script.html</file>
<file>resources/user.css</file>
<file>resources/image.png</file>
+ <file>resources/pasteimage.html</file>
<file>resources/style.css</file>
<file>resources/test1.html</file>
<file>resources/test2.html</file>