diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-10-23 14:20:07 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-10-23 14:20:07 +0200 |
commit | dffe673c3044a6351aa72b69a5bf60429259c08c (patch) | |
tree | e0feba0056896b981a287704b2ef7383f9b95266 /src/webengine | |
parent | 9be23eb946580519b2b0600cc854ec8050b90659 (diff) | |
parent | 8f32ce028a48ddc6a7333b7af635424c78437ed7 (diff) |
Merge remote-tracking branch 'origin/5.6' into dev
Change-Id: I5d0d5f65575256673c35558e0fcbf749a1439793
Diffstat (limited to 'src/webengine')
-rw-r--r-- | src/webengine/api/qquickwebengineprofile.cpp | 10 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineprofile_p.h | 8 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 19 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p.h | 10 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p_p.h | 4 | ||||
-rw-r--r-- | src/webengine/api/qtwebengineglobal.cpp | 28 | ||||
-rw-r--r-- | src/webengine/doc/qtwebengine.qdocconf | 4 | ||||
-rw-r--r-- | src/webengine/doc/src/qtwebengine-modules.qdoc | 3 | ||||
-rw-r--r-- | src/webengine/doc/src/qtwebengine-overview.qdoc | 15 | ||||
-rw-r--r-- | src/webengine/doc/src/qtwebengine-platform-notes.qdoc | 2 | ||||
-rw-r--r-- | src/webengine/ui_delegates_manager.cpp | 2 |
11 files changed, 79 insertions, 26 deletions
diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp index b06345b83..a678fe5fa 100644 --- a/src/webengine/api/qquickwebengineprofile.cpp +++ b/src/webengine/api/qquickwebengineprofile.cpp @@ -419,16 +419,16 @@ QQuickWebEngineProfile *QQuickWebEngineProfile::defaultProfile() return profile; } -QQuickWebEngineSettings *QQuickWebEngineProfile::settings() const +QWebEngineCookieStoreClient *QQuickWebEngineProfile::cookieStoreClient() const { const Q_D(QQuickWebEngineProfile); - return d->settings(); + return d->browserContext()->cookieStoreClient(); } -void QQuickWebEngineProfile::setCookieStoreClient(QWebEngineCookieStoreClient* client) +QQuickWebEngineSettings *QQuickWebEngineProfile::settings() const { - Q_D(QQuickWebEngineProfile); - d->browserContext()->setCookieStoreClient(client); + const Q_D(QQuickWebEngineProfile); + return d->settings(); } QT_END_NAMESPACE diff --git a/src/webengine/api/qquickwebengineprofile_p.h b/src/webengine/api/qquickwebengineprofile_p.h index af5762032..b4e0d173c 100644 --- a/src/webengine/api/qquickwebengineprofile_p.h +++ b/src/webengine/api/qquickwebengineprofile_p.h @@ -75,7 +75,7 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineProfile : public QObject { Q_PROPERTY(QString cachePath READ cachePath WRITE setCachePath NOTIFY cachePathChanged FINAL) Q_PROPERTY(QString httpUserAgent READ httpUserAgent WRITE setHttpUserAgent NOTIFY httpUserAgentChanged FINAL) Q_PROPERTY(HttpCacheType httpCacheType READ httpCacheType WRITE setHttpCacheType NOTIFY httpCacheTypeChanged FINAL) - Q_PROPERTY(QString httpAcceptLanguage READ httpAcceptLanguage WRITE setHttpAcceptLanguage NOTIFY httpAcceptLanguageChanged FINAL) + Q_PROPERTY(QString httpAcceptLanguage READ httpAcceptLanguage WRITE setHttpAcceptLanguage NOTIFY httpAcceptLanguageChanged FINAL REVISION 1) Q_PROPERTY(PersistentCookiesPolicy persistentCookiesPolicy READ persistentCookiesPolicy WRITE setPersistentCookiesPolicy NOTIFY persistentCookiesPolicyChanged FINAL) Q_PROPERTY(int httpCacheMaximumSize READ httpCacheMaximumSize WRITE setHttpCacheMaximumSize NOTIFY httpCacheMaximumSizeChanged FINAL) public: @@ -117,12 +117,12 @@ public: int httpCacheMaximumSize() const; void setHttpCacheMaximumSize(int maxSize); - Q_REVISION(1) QString httpAcceptLanguage() const; - Q_REVISION(1) void setHttpAcceptLanguage(const QString &httpAcceptLanguage); + QString httpAcceptLanguage() const; + void setHttpAcceptLanguage(const QString &httpAcceptLanguage); static QQuickWebEngineProfile *defaultProfile(); - Q_REVISION(1) Q_INVOKABLE void setCookieStoreClient(QWebEngineCookieStoreClient* client); + Q_REVISION(1) Q_INVOKABLE QWebEngineCookieStoreClient *cookieStoreClient() const; signals: void storageNameChanged(); diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index d2fb7f19a..aa450003c 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -275,7 +275,7 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu QObject::connect(item, &MenuItemHandler::triggered, [q] { q->triggerWebAction(QQuickWebEngineView::InspectElement); }); ui()->addMenuItem(item, QQuickWebEngineView::tr("Inspect Element")); } - if (isFullScreen()) { + if (isFullScreenMode()) { item = new MenuItemHandler(menu); QObject::connect(item, &MenuItemHandler::triggered, [q] { q->triggerWebAction(QQuickWebEngineView::ExitFullScreen); }); ui()->addMenuItem(item, QQuickWebEngineView::tr("Exit Full Screen Mode")); @@ -519,14 +519,14 @@ void QQuickWebEngineViewPrivate::windowCloseRejected() #endif } -void QQuickWebEngineViewPrivate::requestFullScreen(bool fullScreen) +void QQuickWebEngineViewPrivate::requestFullScreenMode(const QUrl &origin, bool fullscreen) { Q_Q(QQuickWebEngineView); - QQuickWebEngineFullScreenRequest request(this, fullScreen); + QQuickWebEngineFullScreenRequest request(this, origin, fullscreen); Q_EMIT q->fullScreenRequested(request); } -bool QQuickWebEngineViewPrivate::isFullScreen() const +bool QQuickWebEngineViewPrivate::isFullScreenMode() const { return m_isFullScreen; } @@ -1392,8 +1392,9 @@ QQuickWebEngineFullScreenRequest::QQuickWebEngineFullScreenRequest() { } -QQuickWebEngineFullScreenRequest::QQuickWebEngineFullScreenRequest(QQuickWebEngineViewPrivate *viewPrivate, bool toggleOn) +QQuickWebEngineFullScreenRequest::QQuickWebEngineFullScreenRequest(QQuickWebEngineViewPrivate *viewPrivate, const QUrl &origin, bool toggleOn) : viewPrivate(viewPrivate) + , m_origin(origin) , m_toggleOn(toggleOn) { } @@ -1402,10 +1403,18 @@ void QQuickWebEngineFullScreenRequest::accept() { if (viewPrivate && viewPrivate->m_isFullScreen != m_toggleOn) { viewPrivate->m_isFullScreen = m_toggleOn; + viewPrivate->adapter->changedFullScreen(); Q_EMIT viewPrivate->q_ptr->isFullScreenChanged(); } } +void QQuickWebEngineFullScreenRequest::reject() +{ + if (viewPrivate) { + viewPrivate->adapter->changedFullScreen(); + } +} + QQuickWebEngineViewExperimental::QQuickWebEngineViewExperimental(QQuickWebEngineViewPrivate *viewPrivate) : q_ptr(0) , d_ptr(viewPrivate) diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index b0fd5cff6..d1c2e7abb 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -71,17 +71,21 @@ class QQuickWebEngineTestSupport; class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineFullScreenRequest { Q_GADGET + Q_PROPERTY(QUrl origin READ origin) Q_PROPERTY(bool toggleOn READ toggleOn) public: QQuickWebEngineFullScreenRequest(); - QQuickWebEngineFullScreenRequest(QQuickWebEngineViewPrivate *viewPrivate, bool toggleOn); + QQuickWebEngineFullScreenRequest(QQuickWebEngineViewPrivate *viewPrivate, const QUrl &origin, bool toggleOn); Q_INVOKABLE void accept(); - bool toggleOn() { return m_toggleOn; } + Q_INVOKABLE void reject(); + QUrl origin() const { return m_origin; } + bool toggleOn() const { return m_toggleOn; } private: QQuickWebEngineViewPrivate *viewPrivate; - bool m_toggleOn; + const QUrl m_origin; + const bool m_toggleOn; }; #define LATEST_WEBENGINEVIEW_REVISION 2 diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index f2924fafb..748944a69 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -144,8 +144,8 @@ public: virtual void adoptNewWindow(QtWebEngineCore::WebContentsAdapter *newWebContents, WindowOpenDisposition disposition, bool userGesture, const QRect &) Q_DECL_OVERRIDE; virtual void close() Q_DECL_OVERRIDE; virtual void windowCloseRejected() Q_DECL_OVERRIDE; - virtual void requestFullScreen(bool) Q_DECL_OVERRIDE; - virtual bool isFullScreen() const Q_DECL_OVERRIDE; + virtual void requestFullScreenMode(const QUrl &origin, bool fullscreen) Q_DECL_OVERRIDE; + virtual bool isFullScreenMode() const Q_DECL_OVERRIDE; virtual bool contextMenuRequested(const QtWebEngineCore::WebEngineContextMenuData &) Q_DECL_OVERRIDE; virtual void navigationRequested(int navigationType, const QUrl &url, int &navigationRequestAction, bool isMainFrame) Q_DECL_OVERRIDE; virtual void javascriptDialog(QSharedPointer<QtWebEngineCore::JavaScriptDialogController>) Q_DECL_OVERRIDE; diff --git a/src/webengine/api/qtwebengineglobal.cpp b/src/webengine/api/qtwebengineglobal.cpp index 1c67e710e..07561be6e 100644 --- a/src/webengine/api/qtwebengineglobal.cpp +++ b/src/webengine/api/qtwebengineglobal.cpp @@ -47,6 +47,17 @@ Q_GUI_EXPORT QOpenGLContext *qt_gl_global_share_context(); namespace QtWebEngine { +/*! + \namespace QtWebEngine + \inmodule QtWebEngine + \ingroup qtwebengine-namespaces + \keyword QtWebEngine Namespace + + \brief Helper functions for the Qt WebEngine (Qt Quick) module + + The \l[CPP]{QtWebEngine} namespace is part of the Qt WebEngine module. +*/ + static QOpenGLContext *shareContext; static void deleteShareContext() @@ -59,6 +70,16 @@ static void deleteShareContext() // QtWebEngine::initialize was introduced first and meant to be called // after the QGuiApplication creation, when AA_ShareOpenGLContexts fills // the same need but the flag has to be set earlier. + +/*! + \fn QtWebEngine::initialize() + + Sets up an OpenGL Context that can be shared between processes. This has to be done after + QGuiApplication is created, but before a Qt Quick window is created. + + This has the same effect as passing Qt::AA_ShareOpenGLContexts to the QGuiApplication + constructor. +*/ void initialize() { #ifdef Q_OS_WIN32 @@ -71,11 +92,11 @@ void initialize() QCoreApplication *app = QCoreApplication::instance(); if (!app) { - qFatal("QWebEngine(Widgets)::initialize() must be called after the construction of the application object."); + qFatal("QtWebEngine::initialize() must be called after the construction of the application object."); return; } if (app->thread() != QThread::currentThread()) { - qFatal("QWebEngine(Widgets)::initialize() must be called from the Qt gui thread."); + qFatal("QtWebEngine::initialize() must be called from the Qt gui thread."); return; } @@ -86,6 +107,9 @@ void initialize() shareContext->create(); qAddPostRoutine(deleteShareContext); qt_gl_set_global_share_context(shareContext); + + // Classes like QOpenGLWidget check for the attribute + app->setAttribute(Qt::AA_ShareOpenGLContexts); } } // namespace QtWebEngine diff --git a/src/webengine/doc/qtwebengine.qdocconf b/src/webengine/doc/qtwebengine.qdocconf index e277f4190..01485dc56 100644 --- a/src/webengine/doc/qtwebengine.qdocconf +++ b/src/webengine/doc/qtwebengine.qdocconf @@ -4,7 +4,7 @@ project = QtWebEngine description = Qt WebEngine Reference Documentation version = $QT_VERSION -examplesinstallpath = +examplesinstallpath = qtwebengine qhp.projects = QtWebEngine @@ -67,4 +67,4 @@ navigation.landingpage = "Qt WebEngine" navigation.cppclassespage = "Qt WebEngine C++ Classes" navigation.qmltypespage = "Qt WebEngine QML Types" -Cpp.ignoretokens += QWEBENGINEWIDGETS_EXPORT +Cpp.ignoretokens += Q_WEBENGINE_EXPORT QWEBENGINEWIDGETS_EXPORT diff --git a/src/webengine/doc/src/qtwebengine-modules.qdoc b/src/webengine/doc/src/qtwebengine-modules.qdoc index 2e1b4c947..8530f5d01 100644 --- a/src/webengine/doc/src/qtwebengine-modules.qdoc +++ b/src/webengine/doc/src/qtwebengine-modules.qdoc @@ -32,6 +32,9 @@ \e {Qt WebEngine} provides functionality for rendering regions of dynamic web content. + \section1 Namespaces + \annotatedlist qtwebengine-namespaces + \section1 Classes \section2 Qt WebEngineCore Module diff --git a/src/webengine/doc/src/qtwebengine-overview.qdoc b/src/webengine/doc/src/qtwebengine-overview.qdoc index 15052f6e8..fa30892d3 100644 --- a/src/webengine/doc/src/qtwebengine-overview.qdoc +++ b/src/webengine/doc/src/qtwebengine-overview.qdoc @@ -123,7 +123,20 @@ \section1 Using WebEngine Core - Qt WebEngine Core provides an API shared by Qt WebEngine and Qt WebEngine Widgets. + Qt WebEngine Core provides an API shared by Qt WebEngine and Qt WebEngine Widgets for handling + URL requests issued for the networking stack of Chromium and for accessing its HTTP cookies. + + Implementing the QWebEngineUrlRequestInterceptor interface and installing the interceptor on a + profile enables intercepting, blocking, and modifying URL requests (QWebEngineUrlRequestInfo) + before they reach the networking stack of Chromium. + + A QWebEngineUrlSchemeHandler can be registered for a profile to add support for custom URL + schemes. Requests for the scheme are then issued to QWebEngineUrlSchemeHandler::requestStarted() + as QWebEngineUrlRequestJob objects. + + The QWebEngineCookieStoreClient class provides functions for accessing HTTP cookies of Chromium. + The functions can be used to synchronize cookies with QNetworkAccessManager, as well as to set, + delete, and intercept cookies during navigation. \section1 License Information diff --git a/src/webengine/doc/src/qtwebengine-platform-notes.qdoc b/src/webengine/doc/src/qtwebengine-platform-notes.qdoc index 86cccfa3c..fdaa4f861 100644 --- a/src/webengine/doc/src/qtwebengine-platform-notes.qdoc +++ b/src/webengine/doc/src/qtwebengine-platform-notes.qdoc @@ -45,7 +45,7 @@ In addition, the following tools are required for building the \l {Qt WebEngine} module: \list - \li Windows: Visual Studio 2013 or Visual Studio 2013 Express + \li Windows: Visual Studio 2013 or Visual Studio 2015 \li Linux: Clang or GCC version 4.7 or later \li OS X: Xcode version 5.1 or later \endlist diff --git a/src/webengine/ui_delegates_manager.cpp b/src/webengine/ui_delegates_manager.cpp index 4cc64c8c7..6c4282eb3 100644 --- a/src/webengine/ui_delegates_manager.cpp +++ b/src/webengine/ui_delegates_manager.cpp @@ -60,7 +60,7 @@ namespace QtWebEngineCore { #if defined(Q_OS_WIN) #define FILE_NAME_CASE_STATEMENT(TYPE, COMPONENT) \ case UIDelegatesManager::TYPE:\ - return QStringLiteral(#TYPE L ##".qml"); + return QString::fromLatin1(#TYPE ##".qml"); #else #define FILE_NAME_CASE_STATEMENT(TYPE, COMPONENT) \ case UIDelegatesManager::TYPE:\ |