diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-01-17 12:51:21 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-01-17 12:51:21 +0100 |
commit | 2c6e6b86ef0a6c63297f9d5daa41c294aaf31a9b (patch) | |
tree | a8bcb1c7cb5aaf8194eab09f8bc56b2659f13ea5 /src/webengine | |
parent | aa527a2e553bea0514bc088bfc09105703fe87ba (diff) | |
parent | 819e00f71e37f5230b9b2c2ff756db4cc4cfda5e (diff) |
Merge remote-tracking branch 'origin/5.10' into dev
Conflicts:
.qmake.conf
src/webengine/api/qquickwebengineview_p_p.h
src/webenginewidgets/api/qwebenginepage_p.h
tests/auto/quick/qmltests/data/TestWebEngineView.qml
Change-Id: Id2acc92e8d0364bdaaf5a63ea2d2cb9cd533ade3
Diffstat (limited to 'src/webengine')
-rw-r--r-- | src/webengine/api/qquickwebengineprofile.cpp | 20 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineprofile_p.h | 7 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 7 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p_p.h | 5 | ||||
-rw-r--r-- | src/webengine/ui_delegates_manager.cpp | 5 | ||||
-rw-r--r-- | src/webengine/webengine.pro | 2 |
6 files changed, 27 insertions, 19 deletions
diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp index f966f2dc6..728f0b4a4 100644 --- a/src/webengine/api/qquickwebengineprofile.cpp +++ b/src/webengine/api/qquickwebengineprofile.cpp @@ -142,9 +142,8 @@ ASSERT_ENUMS_MATCH(QQuickWebEngineDownloadItem::MimeHtmlSaveFormat, QtWebEngineC QQuickWebEngineProfilePrivate::QQuickWebEngineProfilePrivate(QSharedPointer<BrowserContextAdapter> browserContext) : m_settings(new QQuickWebEngineSettings()) - , m_browserContextRef(browserContext) + , m_browserContext(new QWebEngineBrowserContext(browserContext, this)) { - m_browserContextRef->addClient(this); m_settings->d_ptr->initDefaults(); // Fullscreen API was implemented before the supported setting, so we must // make it default true to avoid change in default API behavior. @@ -153,21 +152,26 @@ QQuickWebEngineProfilePrivate::QQuickWebEngineProfilePrivate(QSharedPointer<Brow QQuickWebEngineProfilePrivate::~QQuickWebEngineProfilePrivate() { - m_browserContextRef->setRequestInterceptor(nullptr); - - m_browserContextRef->removeClient(this); - - Q_FOREACH (QQuickWebEngineDownloadItem* download, m_ongoingDownloads) { + Q_FOREACH (QQuickWebEngineDownloadItem *download, m_ongoingDownloads) { if (download) download->cancel(); } m_ongoingDownloads.clear(); + + if (m_browserContext) + m_browserContext->shutdown(); +} + +QSharedPointer<QtWebEngineCore::BrowserContextAdapter> QQuickWebEngineProfilePrivate::browserContext() const +{ + return m_browserContext ? m_browserContext->browserContextRef : nullptr; } void QQuickWebEngineProfilePrivate::cancelDownload(quint32 downloadId) { - browserContext()->cancelDownload(downloadId); + if (m_browserContext) + m_browserContext->browserContextRef->cancelDownload(downloadId); } void QQuickWebEngineProfilePrivate::downloadDestroyed(quint32 downloadId) diff --git a/src/webengine/api/qquickwebengineprofile_p.h b/src/webengine/api/qquickwebengineprofile_p.h index 5be82a4f5..61968bf77 100644 --- a/src/webengine/api/qquickwebengineprofile_p.h +++ b/src/webengine/api/qquickwebengineprofile_p.h @@ -52,8 +52,9 @@ // #include "browser_context_adapter_client.h" -#include "qquickwebengineprofile_p.h" #include "browser_context_adapter.h" +#include "qwebenginebrowsercontext_p.h" +#include "qquickwebengineprofile_p.h" #include <QExplicitlySharedDataPointer> #include <QMap> @@ -71,7 +72,7 @@ public: QQuickWebEngineProfilePrivate(QSharedPointer<QtWebEngineCore::BrowserContextAdapter> browserContext); ~QQuickWebEngineProfilePrivate(); - QSharedPointer<QtWebEngineCore::BrowserContextAdapter> browserContext() const { return m_browserContextRef; } + QSharedPointer<QtWebEngineCore::BrowserContextAdapter> browserContext() const; QQuickWebEngineSettings *settings() const { return m_settings.data(); } void cancelDownload(quint32 downloadId); @@ -90,7 +91,7 @@ private: friend class QQuickWebEngineViewPrivate; QQuickWebEngineProfile *q_ptr; QScopedPointer<QQuickWebEngineSettings> m_settings; - QSharedPointer<QtWebEngineCore::BrowserContextAdapter> m_browserContextRef; + QPointer<QWebEngineBrowserContext> m_browserContext; QMap<quint32, QPointer<QQuickWebEngineDownloadItem> > m_ongoingDownloads; QList<QQuickWebEngineScript *> m_userScripts; }; diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 2721039ae..2c30627ad 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -183,7 +183,7 @@ RenderWidgetHostViewQtDelegate *QQuickWebEngineViewPrivate::CreateRenderWidgetHo return quickDelegate; } -bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenuData &data) +void QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenuData &data) { Q_Q(QQuickWebEngineView); @@ -195,13 +195,13 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu Q_EMIT q->contextMenuRequested(request); if (request->isAccepted()) - return true; + return; // Assign the WebEngineView as the parent of the menu, so mouse events are properly propagated // on OSX. QObject *menu = ui()->addMenu(q, QString(), data.position()); if (!menu) - return false; + return; // Populate our menu MenuItemHandler *item = 0; @@ -329,7 +329,6 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu // Now fire the popup() method on the top level menu ui()->showMenu(menu); - return true; } void QQuickWebEngineViewPrivate::navigationRequested(int navigationType, const QUrl &url, int &navigationRequestAction, bool isMainFrame) diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index a30614b2f..baa89718d 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -114,7 +114,7 @@ public: void windowCloseRejected() override; void requestFullScreenMode(const QUrl &origin, bool fullscreen) override; bool isFullScreenMode() const override; - bool contextMenuRequested(const QtWebEngineCore::WebEngineContextMenuData &) override; + void contextMenuRequested(const QtWebEngineCore::WebEngineContextMenuData &) override; void navigationRequested(int navigationType, const QUrl &url, int &navigationRequestAction, bool isMainFrame) override; void javascriptDialog(QSharedPointer<QtWebEngineCore::JavaScriptDialogController>) override; void runFileChooser(QSharedPointer<QtWebEngineCore::FilePickerController>) override; @@ -138,8 +138,7 @@ public: void showValidationMessage(const QRect &anchor, const QString &mainText, const QString &subText) override; void hideValidationMessage() override; void moveValidationMessage(const QRect &anchor) override; - virtual void renderProcessTerminated(RenderProcessTerminationStatus terminationStatus, - int exitCode) override; + void renderProcessTerminated(RenderProcessTerminationStatus terminationStatus, int exitCode) override; void requestGeometryChange(const QRect &geometry, const QRect &frameGeometry) override; void updateScrollPosition(const QPointF &position) override; void updateContentsSize(const QSizeF &size) override; diff --git a/src/webengine/ui_delegates_manager.cpp b/src/webengine/ui_delegates_manager.cpp index fb23f5db7..046affbf4 100644 --- a/src/webengine/ui_delegates_manager.cpp +++ b/src/webengine/ui_delegates_manager.cpp @@ -504,7 +504,12 @@ public: if (pos.isNull() || !item->contains(pos)) return; const QPoint oldPos = QCursor::pos(); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)) const QPoint globalPos = item->mapToGlobal(QPointF(pos)).toPoint(); +#else + const QPoint posInWindow = item->mapToItem(item->window()->contentItem(), QPointF(pos)).toPoint(); + const QPoint globalPos = item->window()->mapToGlobal(posInWindow); +#endif if (oldPos == globalPos) return; m_oldCursorPos = oldPos; diff --git a/src/webengine/webengine.pro b/src/webengine/webengine.pro index 58e1263a7..570f41866 100644 --- a/src/webengine/webengine.pro +++ b/src/webengine/webengine.pro @@ -59,7 +59,7 @@ HEADERS = \ ui_delegates_manager.h qtConfig(webengine-testsupport) { - QT += testlib + QT_PRIVATE += testlib SOURCES += api/qquickwebenginetestsupport.cpp HEADERS += api/qquickwebenginetestsupport_p.h |