summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-10-24 17:14:28 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-10-24 17:14:28 +0200
commit5907f31e472b04553eb44cbec54c98bd06c3fee9 (patch)
tree218417007620698bc48f75c9bab9bd56b4385c10 /src
parent0de715dec80620482f051f7f29cf6844c0bbf008 (diff)
parentbcf346057daa0ababa322c0fe657619bf238d77c (diff)
Merge remote-tracking branch 'origin/5.14' into 5.15
Diffstat (limited to 'src')
m---------src/3rdparty0
-rw-r--r--src/buildtools/config/common.pri2
-rw-r--r--src/buildtools/configure.json4
-rw-r--r--src/core/api/qtwebenginecoreglobal.cpp2
-rw-r--r--src/core/api/qwebenginefindtextresult.cpp24
-rw-r--r--src/core/api/qwebenginefindtextresult.h6
-rw-r--r--src/core/browser_message_filter_qt.cpp23
-rw-r--r--src/core/browser_message_filter_qt.h4
-rw-r--r--src/core/certificate_error_controller.cpp6
-rw-r--r--src/core/certificate_error_controller.h2
-rw-r--r--src/core/certificate_error_controller_p.h2
-rw-r--r--src/core/compositor/delegated_frame_node.cpp14
-rw-r--r--src/core/content_browser_client_qt.cpp2
-rw-r--r--src/core/find_text_helper.cpp4
-rw-r--r--src/core/find_text_helper.h2
-rw-r--r--src/core/net/url_request_custom_job.cpp26
-rw-r--r--src/core/render_widget_host_view_qt.cpp9
-rw-r--r--src/core/type_conversion.h2
-rw-r--r--src/core/web_engine_settings.cpp46
-rw-r--r--src/webengine/api/qquickwebenginedownloaditem_p.h12
-rw-r--r--src/webengine/api/qquickwebengineview_p.h10
-rw-r--r--src/webengine/api/qtwebengineglobal.cpp15
-rw-r--r--src/webengine/doc/src/webengineview_lgpl.qdoc4
-rw-r--r--src/webengine/plugin/plugin.cpp5
-rw-r--r--src/webengine/plugin/plugins.qmltypes365
-rw-r--r--src/webenginewidgets/api/qwebenginecertificateerror.cpp8
-rw-r--r--src/webenginewidgets/api/qwebenginecertificateerror.h2
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp9
28 files changed, 511 insertions, 99 deletions
diff --git a/src/3rdparty b/src/3rdparty
-Subproject dc5221146d665f5634fab11fb4c9b5515c1ab07
+Subproject 88a931558e2e960eacccb32483713fcc4bbaf43
diff --git a/src/buildtools/config/common.pri b/src/buildtools/config/common.pri
index 23a134774..97d39535c 100644
--- a/src/buildtools/config/common.pri
+++ b/src/buildtools/config/common.pri
@@ -137,3 +137,5 @@ qtConfig(webengine-kerberos) {
ccache {
gn_args += cc_wrapper=\"ccache\"
}
+
+qtConfig(force_asserts): gn_args += dcheck_always_on=true
diff --git a/src/buildtools/configure.json b/src/buildtools/configure.json
index 535d8358b..a36d05320 100644
--- a/src/buildtools/configure.json
+++ b/src/buildtools/configure.json
@@ -150,9 +150,9 @@
]
},
"webengine-icu": {
- "label": "icu >= 63",
+ "label": "icu >= 64",
"sources": [
- { "type": "pkgConfig", "args": "icu-uc >= 63 icu-i18n >= 63" }
+ { "type": "pkgConfig", "args": "icu-uc >= 64 icu-i18n >= 64" }
]
},
"webengine-webp": {
diff --git a/src/core/api/qtwebenginecoreglobal.cpp b/src/core/api/qtwebenginecoreglobal.cpp
index 0fddacb15..b27de4c23 100644
--- a/src/core/api/qtwebenginecoreglobal.cpp
+++ b/src/core/api/qtwebenginecoreglobal.cpp
@@ -108,7 +108,7 @@ Q_WEBENGINECORE_PRIVATE_EXPORT void initialize()
QCoreApplication *app = QCoreApplication::instance();
if (!app) {
- qFatal("QtWebEngine::initialize() must be called after the construction of the application object.");
+ qFatal("QtWebEngine::initialize() but no core application instance.");
return;
}
diff --git a/src/core/api/qwebenginefindtextresult.cpp b/src/core/api/qwebenginefindtextresult.cpp
index ce1be359e..c0adc6177 100644
--- a/src/core/api/qwebenginefindtextresult.cpp
+++ b/src/core/api/qwebenginefindtextresult.cpp
@@ -44,7 +44,7 @@ QT_BEGIN_NAMESPACE
class QWebEngineFindTextResultPrivate : public QSharedData {
public:
int numberOfMatches = 0;
- int activeMatchOrdinal = 0;
+ int activeMatch = 0;
};
/*!
@@ -54,6 +54,18 @@ public:
\inmodule QtWebEngineCore
+ The string search can be initiated by the \l QWebEnginePage::findText() or
+ \l{WebEngineView::findText()}{WebEngineView.findText()} method. The results of the search
+ are highlighted in the view. The details of this result are passed as a
+ QWebEngineFindTextResult object that can be used to show a status message,
+ such as "2 of 2 matches". For example:
+
+ \code
+ QObject::connect(view.page(), &QWebEnginePage::findTextFinished, [](const QWebEngineFindTextResult &result) {
+ qInfo() << result.activeMatch() << "of" << result.numberOfMatches() << "matches";
+ });
+ \endcode
+
Results are passed to the user in the
\l QWebEnginePage::findTextFinished() and
\l{WebEngineView::findTextFinished()}{WebEngineView.findTextFinished()} signals.
@@ -67,11 +79,11 @@ QWebEngineFindTextResult::QWebEngineFindTextResult()
/*! \internal
*/
-QWebEngineFindTextResult::QWebEngineFindTextResult(int numberOfMatches, int activeMatchOrdinal)
+QWebEngineFindTextResult::QWebEngineFindTextResult(int numberOfMatches, int activeMatch)
: d(new QWebEngineFindTextResultPrivate)
{
d->numberOfMatches = numberOfMatches;
- d->activeMatchOrdinal = activeMatchOrdinal;
+ d->activeMatch = activeMatch;
}
/*! \internal
@@ -103,12 +115,12 @@ int QWebEngineFindTextResult::numberOfMatches() const
}
/*!
- \property QWebEngineFindTextResult::activeMatchOrdinal
+ \property QWebEngineFindTextResult::activeMatch
\brief The index of the currently highlighted match.
*/
-int QWebEngineFindTextResult::activeMatchOrdinal() const
+int QWebEngineFindTextResult::activeMatch() const
{
- return d->activeMatchOrdinal;
+ return d->activeMatch;
}
QT_END_NAMESPACE
diff --git a/src/core/api/qwebenginefindtextresult.h b/src/core/api/qwebenginefindtextresult.h
index 073a8135f..246e689c3 100644
--- a/src/core/api/qwebenginefindtextresult.h
+++ b/src/core/api/qwebenginefindtextresult.h
@@ -55,11 +55,11 @@ class QWebEngineFindTextResultPrivate;
class Q_WEBENGINECORE_EXPORT QWebEngineFindTextResult {
Q_GADGET
Q_PROPERTY(int numberOfMatches READ numberOfMatches CONSTANT FINAL)
- Q_PROPERTY(int activeMatchOrdinal READ activeMatchOrdinal CONSTANT FINAL)
+ Q_PROPERTY(int activeMatch READ activeMatch CONSTANT FINAL)
public:
int numberOfMatches() const;
- int activeMatchOrdinal() const;
+ int activeMatch() const;
QWebEngineFindTextResult();
QWebEngineFindTextResult(const QWebEngineFindTextResult &other);
@@ -67,7 +67,7 @@ public:
~QWebEngineFindTextResult();
private:
- QWebEngineFindTextResult(int numberOfMatches, int activeMatchOrdinal);
+ QWebEngineFindTextResult(int numberOfMatches, int activeMatch);
QSharedDataPointer<QWebEngineFindTextResultPrivate> d;
diff --git a/src/core/browser_message_filter_qt.cpp b/src/core/browser_message_filter_qt.cpp
index c8fc88017..a4b75f075 100644
--- a/src/core/browser_message_filter_qt.cpp
+++ b/src/core/browser_message_filter_qt.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtWebEngine module of the Qt Toolkit.
@@ -40,19 +40,19 @@
#include "browser_message_filter_qt.h"
#include "chrome/browser/profiles/profile.h"
-#include "common/qt_messages.h"
#include "content/public/browser/plugin_service.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
-#include "type_conversion.h"
-#include "net/network_delegate_qt.h"
+#include "common/qt_messages.h"
+#include "profile_io_data_qt.h"
+#include "type_conversion.h"
namespace QtWebEngineCore {
BrowserMessageFilterQt::BrowserMessageFilterQt(int /*render_process_id*/, Profile *profile)
: BrowserMessageFilter(QtMsgStart)
- , m_profile(profile)
+ , m_profileData(ProfileIODataQt::FromBrowserContext(profile))
{
}
@@ -81,8 +81,7 @@ void BrowserMessageFilterQt::OnAllowDatabase(int /*render_frame_id*/,
const GURL &top_origin_url,
bool* allowed)
{
- NetworkDelegateQt *networkDelegate = static_cast<NetworkDelegateQt *>(m_profile->GetRequestContext()->GetURLRequestContext()->network_delegate());
- *allowed = networkDelegate->canGetCookies(top_origin_url, origin_url);
+ *allowed = m_profileData->canGetCookies(toQt(top_origin_url), toQt(origin_url));
}
void BrowserMessageFilterQt::OnAllowDOMStorage(int /*render_frame_id*/,
@@ -91,8 +90,7 @@ void BrowserMessageFilterQt::OnAllowDOMStorage(int /*render_frame_id*/,
bool /*local*/,
bool *allowed)
{
- NetworkDelegateQt *networkDelegate = static_cast<NetworkDelegateQt *>(m_profile->GetRequestContext()->GetURLRequestContext()->network_delegate());
- *allowed = networkDelegate->canGetCookies(top_origin_url, origin_url);
+ *allowed = m_profileData->canGetCookies(toQt(top_origin_url), toQt(origin_url));
}
void BrowserMessageFilterQt::OnAllowIndexedDB(int /*render_frame_id*/,
@@ -100,8 +98,7 @@ void BrowserMessageFilterQt::OnAllowIndexedDB(int /*render_frame_id*/,
const GURL &top_origin_url,
bool *allowed)
{
- NetworkDelegateQt *networkDelegate = static_cast<NetworkDelegateQt *>(m_profile->GetRequestContext()->GetURLRequestContext()->network_delegate());
- *allowed = networkDelegate->canGetCookies(top_origin_url, origin_url);
+ *allowed = m_profileData->canGetCookies(toQt(top_origin_url), toQt(origin_url));
}
void BrowserMessageFilterQt::OnRequestFileSystemAccessSync(int render_frame_id,
@@ -153,9 +150,7 @@ void BrowserMessageFilterQt::OnRequestFileSystemAccess(int /*render_frame_id*/,
base::Callback<void(bool)> callback)
{
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-
- NetworkDelegateQt *networkDelegate = static_cast<NetworkDelegateQt *>(m_profile->GetRequestContext()->GetURLRequestContext()->network_delegate());
- bool allowed = networkDelegate->canGetCookies(top_origin_url, origin_url);
+ bool allowed = m_profileData->canGetCookies(toQt(top_origin_url), toQt(origin_url));
callback.Run(allowed);
}
diff --git a/src/core/browser_message_filter_qt.h b/src/core/browser_message_filter_qt.h
index 3963fb9d5..4abc612f8 100644
--- a/src/core/browser_message_filter_qt.h
+++ b/src/core/browser_message_filter_qt.h
@@ -49,6 +49,8 @@ class Profile;
namespace QtWebEngineCore {
+class ProfileIODataQt;
+
class BrowserMessageFilterQt : public content::BrowserMessageFilter
{
public:
@@ -91,7 +93,7 @@ private:
const GURL &top_origin_url,
base::Callback<void(bool)> callback);
- Profile *m_profile;
+ ProfileIODataQt *m_profileData;
};
} // namespace QtWebEngineCore
diff --git a/src/core/certificate_error_controller.cpp b/src/core/certificate_error_controller.cpp
index bc83ed802..f3b16357b 100644
--- a/src/core/certificate_error_controller.cpp
+++ b/src/core/certificate_error_controller.cpp
@@ -93,7 +93,7 @@ CertificateErrorControllerPrivate::CertificateErrorControllerPrivate(int cert_er
if (auto cert = ssl_info.cert.get()) {
validStart = toQt(cert->valid_start());
validExpiry = toQt(cert->valid_expiry());
- chain = toCertificateChain(cert);
+ certificateChain = toCertificateChain(cert);
}
}
@@ -187,9 +187,9 @@ QString CertificateErrorController::errorString() const
return getQStringForMessageId(IDS_CERT_ERROR_UNKNOWN_ERROR_DESCRIPTION);
}
-QList<QSslCertificate> CertificateErrorController::chain() const
+QList<QSslCertificate> CertificateErrorController::certificateChain() const
{
- return d->chain;
+ return d->certificateChain;
}
QT_END_NAMESPACE
diff --git a/src/core/certificate_error_controller.h b/src/core/certificate_error_controller.h
index 7f5300dc8..d7e057adf 100644
--- a/src/core/certificate_error_controller.h
+++ b/src/core/certificate_error_controller.h
@@ -96,7 +96,7 @@ public:
QString errorString() const;
QDateTime validStart() const;
QDateTime validExpiry() const;
- QList<QSslCertificate> chain() const;
+ QList<QSslCertificate> certificateChain() const;
void accept(bool);
diff --git a/src/core/certificate_error_controller_p.h b/src/core/certificate_error_controller_p.h
index a11f2b6f0..ceae99853 100644
--- a/src/core/certificate_error_controller_p.h
+++ b/src/core/certificate_error_controller_p.h
@@ -71,7 +71,7 @@ public:
bool fatalError;
bool strictEnforcement;
const base::Callback<void(content::CertificateRequestResultType)> callback;
- QList<QSslCertificate> chain;
+ QList<QSslCertificate> certificateChain;
};
QT_END_NAMESPACE
diff --git a/src/core/compositor/delegated_frame_node.cpp b/src/core/compositor/delegated_frame_node.cpp
index 2a0df3acd..4d74937d9 100644
--- a/src/core/compositor/delegated_frame_node.cpp
+++ b/src/core/compositor/delegated_frame_node.cpp
@@ -858,7 +858,7 @@ void DelegatedFrameNode::handleQuad(
const viz::TextureDrawQuad *tquad = viz::TextureDrawQuad::MaterialCast(quad);
const CompositorResource *resource = findAndHoldResource(tquad->resource_id(), resourceTracker);
QSGTexture *texture =
- initAndHoldTexture(resource, quad->ShouldDrawWithBlending(), apiDelegate);
+ initAndHoldTexture(resource, quad->ShouldDrawWithBlending(true), apiDelegate);
QSizeF textureSize;
if (texture)
textureSize = texture->textureSize();
@@ -909,7 +909,7 @@ void DelegatedFrameNode::handleQuad(
const viz::TileDrawQuad *tquad = viz::TileDrawQuad::MaterialCast(quad);
const CompositorResource *resource = findAndHoldResource(tquad->resource_id(), resourceTracker);
nodeHandler->setupTextureContentNode(
- initAndHoldTexture(resource, quad->ShouldDrawWithBlending(), apiDelegate),
+ initAndHoldTexture(resource, quad->ShouldDrawWithBlending(true), apiDelegate),
toQt(quad->rect), toQt(tquad->tex_coord_rect),
QSGImageNode::NoTransform, currentLayerChain);
break;
@@ -930,10 +930,10 @@ void DelegatedFrameNode::handleQuad(
aResource = findAndHoldResource(vquad->a_plane_resource_id(), resourceTracker);
nodeHandler->setupYUVVideoNode(
- initAndHoldTexture(yResource, quad->ShouldDrawWithBlending()),
- initAndHoldTexture(uResource, quad->ShouldDrawWithBlending()),
- initAndHoldTexture(vResource, quad->ShouldDrawWithBlending()),
- aResource ? initAndHoldTexture(aResource, quad->ShouldDrawWithBlending()) : 0,
+ initAndHoldTexture(yResource, quad->ShouldDrawWithBlending(true)),
+ initAndHoldTexture(uResource, quad->ShouldDrawWithBlending(true)),
+ initAndHoldTexture(vResource, quad->ShouldDrawWithBlending(true)),
+ aResource ? initAndHoldTexture(aResource, quad->ShouldDrawWithBlending(true)) : 0,
toQt(vquad->ya_tex_coord_rect), toQt(vquad->uv_tex_coord_rect),
toQt(vquad->ya_tex_size), toQt(vquad->uv_tex_size), vquad->video_color_space,
vquad->resource_multiplier, vquad->resource_offset, toQt(quad->rect),
@@ -945,7 +945,7 @@ void DelegatedFrameNode::handleQuad(
const viz::StreamVideoDrawQuad *squad = viz::StreamVideoDrawQuad::MaterialCast(quad);
const CompositorResource *resource = findAndHoldResource(squad->resource_id(), resourceTracker);
MailboxTexture *texture = static_cast<MailboxTexture *>(
- initAndHoldTexture(resource, quad->ShouldDrawWithBlending(), apiDelegate, GL_TEXTURE_EXTERNAL_OES));
+ initAndHoldTexture(resource, quad->ShouldDrawWithBlending(true), apiDelegate, GL_TEXTURE_EXTERNAL_OES));
QMatrix4x4 qMatrix;
// convertToQt(squad->matrix.matrix(), qMatrix);
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index 6fcd9ad5b..29b6e09ed 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -252,7 +252,7 @@ void ShareGroupQtQuick::AboutToAddFirstContext()
// This currently has to be setup by ::main in all applications using QQuickWebEngineView with delegated rendering.
QOpenGLContext *shareContext = qt_gl_global_share_context();
if (!shareContext) {
- qFatal("QWebEngine: OpenGL resource sharing is not set up in QtQuick. Please make sure to call QtWebEngine::initialize() in your main() function.");
+ qFatal("QWebEngine: OpenGL resource sharing is not set up in QtQuick. Please make sure to call QtWebEngine::initialize() in your main() function before QCoreApplication is created.");
}
m_shareContextQtQuick = new QtShareGLContext(shareContext);
#endif
diff --git a/src/core/find_text_helper.cpp b/src/core/find_text_helper.cpp
index effda529f..065fed38f 100644
--- a/src/core/find_text_helper.cpp
+++ b/src/core/find_text_helper.cpp
@@ -135,7 +135,7 @@ bool FindTextHelper::isFindTextInProgress() const
}
void FindTextHelper::handleFindReply(content::WebContents *source, int requestId, int numberOfMatches,
- const gfx::Rect &selectionRect, int activeMatchOrdinal, bool finalUpdate)
+ const gfx::Rect &selectionRect, int activeMatch, bool finalUpdate)
{
Q_UNUSED(selectionRect);
@@ -146,7 +146,7 @@ void FindTextHelper::handleFindReply(content::WebContents *source, int requestId
Q_ASSERT(m_currentFindRequestId == requestId);
m_lastCompletedFindRequestId = requestId;
- m_viewClient->findTextFinished(QWebEngineFindTextResult(numberOfMatches, activeMatchOrdinal));
+ m_viewClient->findTextFinished(QWebEngineFindTextResult(numberOfMatches, activeMatch));
invokeResultCallback(requestId, numberOfMatches);
}
diff --git a/src/core/find_text_helper.h b/src/core/find_text_helper.h
index e8f186272..9843dc8b5 100644
--- a/src/core/find_text_helper.h
+++ b/src/core/find_text_helper.h
@@ -78,7 +78,7 @@ public:
void startFinding(const QString &findText, bool caseSensitively, bool findBackward);
void stopFinding();
bool isFindTextInProgress() const;
- void handleFindReply(content::WebContents *source, int requestId, int numberOfMatches, const gfx::Rect &selectionRect, int activeMatchOrdinal, bool finalUpdate);
+ void handleFindReply(content::WebContents *source, int requestId, int numberOfMatches, const gfx::Rect &selectionRect, int activeMatch, bool finalUpdate);
void handleLoadCommitted();
private:
diff --git a/src/core/net/url_request_custom_job.cpp b/src/core/net/url_request_custom_job.cpp
index 56ba79f35..8f0fada57 100644
--- a/src/core/net/url_request_custom_job.cpp
+++ b/src/core/net/url_request_custom_job.cpp
@@ -41,6 +41,7 @@
#include "url_request_custom_job_proxy.h"
#include "api/qwebengineurlscheme.h"
+
#include "base/strings/stringprintf.h"
#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
@@ -146,17 +147,28 @@ void URLRequestCustomJob::GetResponseInfo(HttpResponseInfo* info)
{
// Based on net::URLRequestRedirectJob::StartAsync()
- if (!m_corsEnabled)
+ if (m_error)
return;
std::string headers;
- headers += base::StringPrintf("HTTP/1.1 %i OK\n", m_httpStatusCode);
- if (m_redirect.is_valid())
+ if (m_redirect.is_valid()) {
+ headers += "HTTP/1.1 303 See Other\n";
headers += base::StringPrintf("Location: %s\n", m_redirect.spec().c_str());
- std::string origin;
- if (request_->extra_request_headers().GetHeader("Origin", &origin)) {
- headers += base::StringPrintf("Access-Control-Allow-Origin: %s\n", origin.c_str());
- headers += "Access-Control-Allow-Credentials: true\n";
+ } else {
+ headers += base::StringPrintf("HTTP/1.1 %i OK\n", m_httpStatusCode);
+ if (m_mimeType.size() > 0) {
+ headers += base::StringPrintf("Content-Type: %s", m_mimeType.c_str());
+ if (m_charset.size() > 0)
+ headers += base::StringPrintf("; charset=%s", m_charset.c_str());
+ headers += "\n";
+ }
+ }
+ if (m_corsEnabled) {
+ std::string origin;
+ if (request_->extra_request_headers().GetHeader("Origin", &origin)) {
+ headers += base::StringPrintf("Access-Control-Allow-Origin: %s\n", origin.c_str());
+ headers += "Access-Control-Allow-Credentials: true\n";
+ }
}
info->headers = new HttpResponseHeaders(HttpUtil::AssembleRawHeaders(headers));
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 7633aa44c..e86f05d60 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -1009,15 +1009,22 @@ QSGNode *RenderWidgetHostViewQt::updatePaintNode(QSGNode *oldNode)
void RenderWidgetHostViewQt::notifyShown()
{
if (m_enableViz) {
+ // Handle possible frame eviction:
+ if (!m_dfhLocalSurfaceIdAllocator.HasValidLocalSurfaceIdAllocation())
+ m_dfhLocalSurfaceIdAllocator.GenerateId();
if (m_visible)
return;
m_visible = true;
+ }
+
+ host()->WasShown(base::nullopt);
+
+ if (m_enableViz) {
m_delegatedFrameHost->AttachToCompositor(m_uiCompositor.get());
m_delegatedFrameHost->WasShown(GetLocalSurfaceIdAllocation().local_surface_id(),
m_viewRectInDips.size(),
base::nullopt);
}
- host()->WasShown(base::nullopt);
}
void RenderWidgetHostViewQt::notifyHidden()
diff --git a/src/core/type_conversion.h b/src/core/type_conversion.h
index dfd8e8fef..2275ae82e 100644
--- a/src/core/type_conversion.h
+++ b/src/core/type_conversion.h
@@ -217,7 +217,7 @@ inline QDateTime toQt(base::Time time)
}
inline base::Time toTime(const QDateTime &dateTime) {
- return base::Time::FromInternalValue(dateTime.toMSecsSinceEpoch());
+ return base::Time::FromJavaTime(dateTime.toMSecsSinceEpoch());
}
inline QNetworkCookie toQt(const net::CanonicalCookie & cookie)
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index 9bc1279ba..49006ec20 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -53,7 +53,9 @@
#include "content/public/common/webrtc_ip_handling_policy.h"
#include "media/base/media_switches.h"
#include "third_party/blink/public/mojom/renderer_preferences.mojom.h"
+#include "ui/base/ui_base_switches.h"
#include "ui/events/event_switches.h"
+#include "ui/native_theme/native_theme.h"
#include <QFont>
#include <QTimer>
@@ -399,6 +401,50 @@ void WebEngineSettings::applySettingsToWebPreferences(content::WebPreferences *p
prefs->minimum_font_size = fontSize(MinimumFontSize);
prefs->minimum_logical_font_size = fontSize(MinimumLogicalFontSize);
prefs->default_encoding = defaultTextEncoding().toStdString();
+
+ // Set the theme colors. Based on chrome_content_browser_client.cc:
+ const ui::NativeTheme *webTheme = ui::NativeTheme::GetInstanceForWeb();
+ if (webTheme) {
+#if !defined(OS_MACOSX)
+ // Mac has a concept of high contrast that does not relate to forced colors.
+ prefs->forced_colors = webTheme->UsesHighContrastColors()
+ ? blink::ForcedColors::kActive
+ : blink::ForcedColors::kNone;
+#endif // !defined(OS_MACOSX)
+ switch (webTheme->GetPreferredColorScheme()) {
+ case ui::NativeTheme::PreferredColorScheme::kDark:
+ prefs->preferred_color_scheme = blink::PreferredColorScheme::kDark;
+ break;
+ case ui::NativeTheme::PreferredColorScheme::kLight:
+ prefs->preferred_color_scheme = blink::PreferredColorScheme::kLight;
+ break;
+ case ui::NativeTheme::PreferredColorScheme::kNoPreference:
+ prefs->preferred_color_scheme = blink::PreferredColorScheme::kNoPreference;
+ }
+ }
+
+ // Apply native CaptionStyle parameters.
+ base::Optional<ui::CaptionStyle> style;
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kForceCaptionStyle)) {
+ style = ui::CaptionStyle::FromSpec(
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kForceCaptionStyle));
+ }
+
+ // Apply system caption style.
+ if (!style && webTheme)
+ style = webTheme->GetSystemCaptionStyle();
+
+ if (style) {
+ prefs->text_track_background_color = style->background_color;
+ prefs->text_track_text_color = style->text_color;
+ prefs->text_track_text_size = style->text_size;
+ prefs->text_track_text_shadow = style->text_shadow;
+ prefs->text_track_font_family = style->font_family;
+ prefs->text_track_font_variant = style->font_variant;
+ prefs->text_track_window_color = style->window_color;
+ prefs->text_track_window_padding = style->window_padding;
+ prefs->text_track_window_radius = style->window_radius;
+ }
}
bool WebEngineSettings::applySettingsToRendererPreferences(blink::mojom::RendererPreferences *prefs)
diff --git a/src/webengine/api/qquickwebenginedownloaditem_p.h b/src/webengine/api/qquickwebenginedownloaditem_p.h
index 96ef0daf0..beb359622 100644
--- a/src/webengine/api/qquickwebenginedownloaditem_p.h
+++ b/src/webengine/api/qquickwebenginedownloaditem_p.h
@@ -137,10 +137,10 @@ public:
Q_PROPERTY(bool isPaused READ isPaused NOTIFY isPausedChanged REVISION 5 FINAL)
Q_PROPERTY(bool isSavePageDownload READ isSavePageDownload CONSTANT REVISION 6 FINAL)
Q_PROPERTY(QQuickWebEngineView *view READ view CONSTANT REVISION 7 FINAL)
- Q_PROPERTY(QUrl url READ url CONSTANT REVISION 8 FINAL)
- Q_PROPERTY(QString suggestedFileName READ suggestedFileName CONSTANT REVISION 8 FINAL)
- Q_PROPERTY(QString downloadDirectory READ downloadDirectory WRITE setDownloadDirectory NOTIFY downloadDirectoryChanged REVISION 8 FINAL)
- Q_PROPERTY(QString downloadFileName READ downloadFileName WRITE setDownloadFileName NOTIFY downloadFileNameChanged REVISION 8 FINAL)
+ Q_PROPERTY(QUrl url READ url CONSTANT REVISION 10 FINAL)
+ Q_PROPERTY(QString suggestedFileName READ suggestedFileName CONSTANT REVISION 10 FINAL)
+ Q_PROPERTY(QString downloadDirectory READ downloadDirectory WRITE setDownloadDirectory NOTIFY downloadDirectoryChanged REVISION 10 FINAL)
+ Q_PROPERTY(QString downloadFileName READ downloadFileName WRITE setDownloadFileName NOTIFY downloadFileNameChanged REVISION 10 FINAL)
Q_INVOKABLE void accept();
Q_INVOKABLE void cancel();
@@ -181,8 +181,8 @@ Q_SIGNALS:
Q_REVISION(4) void interruptReasonChanged();
Q_REVISION(5) void isFinishedChanged();
Q_REVISION(5) void isPausedChanged();
- Q_REVISION(8) void downloadDirectoryChanged();
- Q_REVISION(8) void downloadFileNameChanged();
+ Q_REVISION(10) void downloadDirectoryChanged();
+ Q_REVISION(10) void downloadFileNameChanged();
private:
QQuickWebEngineDownloadItem(QQuickWebEngineDownloadItemPrivate*, QObject *parent = 0);
diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h
index 4a88e3c28..618f9407e 100644
--- a/src/webengine/api/qquickwebengineview_p.h
+++ b/src/webengine/api/qquickwebengineview_p.h
@@ -139,8 +139,8 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineView : public QQuickItem {
Q_PROPERTY(QQuickWebEngineTestSupport *testSupport READ testSupport WRITE setTestSupport NOTIFY testSupportChanged FINAL)
#endif
- Q_PROPERTY(LifecycleState lifecycleState READ lifecycleState WRITE setLifecycleState NOTIFY lifecycleStateChanged REVISION 11 FINAL)
- Q_PROPERTY(LifecycleState recommendedState READ recommendedState NOTIFY recommendedStateChanged REVISION 11 FINAL)
+ Q_PROPERTY(LifecycleState lifecycleState READ lifecycleState WRITE setLifecycleState NOTIFY lifecycleStateChanged REVISION 10 FINAL)
+ Q_PROPERTY(LifecycleState recommendedState READ recommendedState NOTIFY recommendedStateChanged REVISION 10 FINAL)
public:
QQuickWebEngineView(QQuickItem *parent = 0);
@@ -573,9 +573,9 @@ Q_SIGNALS:
Q_REVISION(8) void printRequested();
Q_REVISION(9) void selectClientCertificate(QQuickWebEngineClientCertificateSelection *clientCertSelection);
Q_REVISION(10) void tooltipRequested(QQuickWebEngineTooltipRequest *request);
- Q_REVISION(11) void lifecycleStateChanged(LifecycleState state);
- Q_REVISION(11) void recommendedStateChanged(LifecycleState state);
- Q_REVISION(11) void findTextFinished(const QWebEngineFindTextResult &result);
+ Q_REVISION(10) void lifecycleStateChanged(LifecycleState state);
+ Q_REVISION(10) void recommendedStateChanged(LifecycleState state);
+ Q_REVISION(10) void findTextFinished(const QWebEngineFindTextResult &result);
#if QT_CONFIG(webengine_testsupport)
void testSupportChanged();
diff --git a/src/webengine/api/qtwebengineglobal.cpp b/src/webengine/api/qtwebengineglobal.cpp
index a11618dba..4346832c9 100644
--- a/src/webengine/api/qtwebengineglobal.cpp
+++ b/src/webengine/api/qtwebengineglobal.cpp
@@ -38,6 +38,7 @@
****************************************************************************/
#include "qtwebengineglobal.h"
+#include <QCoreApplication>
namespace QtWebEngineCore
{
@@ -62,8 +63,8 @@ namespace QtWebEngine {
/*!
\fn QtWebEngine::initialize()
- Sets up an OpenGL Context that can be shared between threads. This has to be done after
- QGuiApplication is created, but before a Qt Quick window is created.
+ Sets up an OpenGL Context that can be shared between threads. This has to be done before
+ QGuiApplication is created and before window's QPlatformOpenGLContext is created.
This has the same effect as setting the Qt::AA_ShareOpenGLContexts
attribute with QCoreApplication::setAttribute before constructing
@@ -71,7 +72,15 @@ namespace QtWebEngine {
*/
void initialize()
{
- QtWebEngineCore::initialize();
+ QCoreApplication *app = QCoreApplication::instance();
+ if (app) {
+ qWarning("QtWebEngine::initialize() called with QCoreApplication object already created and should be call before. "\
+ "This is depreciated and may fail in the future.");
+ QtWebEngineCore::initialize();
+ return;
+ }
+ // call initialize the same way as widgets do
+ qAddPreRoutine(QtWebEngineCore::initialize);
}
} // namespace QtWebEngine
diff --git a/src/webengine/doc/src/webengineview_lgpl.qdoc b/src/webengine/doc/src/webengineview_lgpl.qdoc
index 3a7717bd2..df956f03e 100644
--- a/src/webengine/doc/src/webengineview_lgpl.qdoc
+++ b/src/webengine/doc/src/webengineview_lgpl.qdoc
@@ -1599,7 +1599,7 @@
*/
/*!
- \qmlproperty int FindTextResult::activeMatchOrdinal
+ \qmlproperty int FindTextResult::activeMatch
\readonly
\brief The index of the currently highlighted match.
@@ -1607,7 +1607,7 @@
/*!
\qmlsignal WebEngineView::findTextFinished(FindTextResult result)
- \since QtWebEngine 1.11
+ \since QtWebEngine 1.10
This signal is emitted when a string search on a page is completed. \a result is
the result of the string search.
diff --git a/src/webengine/plugin/plugin.cpp b/src/webengine/plugin/plugin.cpp
index 5fb48d867..3acf7d058 100644
--- a/src/webengine/plugin/plugin.cpp
+++ b/src/webengine/plugin/plugin.cpp
@@ -97,7 +97,6 @@ public:
qmlRegisterType<QQuickWebEngineView, 8>(uri, 1, 8, "WebEngineView");
qmlRegisterType<QQuickWebEngineView, 9>(uri, 1, 9, "WebEngineView");
qmlRegisterType<QQuickWebEngineView, 10>(uri, 1, 10, "WebEngineView");
- qmlRegisterType<QQuickWebEngineView, 11>(uri, 1, 11, "WebEngineView");
qmlRegisterType<QQuickWebEngineProfile>(uri, 1, 1, "WebEngineProfile");
qmlRegisterType<QQuickWebEngineProfile, 1>(uri, 1, 2, "WebEngineProfile");
qmlRegisterType<QQuickWebEngineProfile, 2>(uri, 1, 3, "WebEngineProfile");
@@ -122,7 +121,7 @@ public:
msgUncreatableType("WebEngineDownloadItem"));
qmlRegisterUncreatableType<QQuickWebEngineDownloadItem, 7>(uri, 1, 8, "WebEngineDownloadItem",
msgUncreatableType("WebEngineDownloadItem"));
- qmlRegisterUncreatableType<QQuickWebEngineDownloadItem, 8>(uri, 1, 10, "WebEngineDownloadItem",
+ qmlRegisterUncreatableType<QQuickWebEngineDownloadItem, 10>(uri, 1, 10, "WebEngineDownloadItem",
msgUncreatableType("WebEngineDownloadItem"));
qmlRegisterUncreatableType<QQuickWebEngineNewViewRequest>(uri, 1, 1, "WebEngineNewViewRequest", msgUncreatableType("WebEngineNewViewRequest"));
qmlRegisterUncreatableType<QQuickWebEngineNewViewRequest, 1>(uri, 1, 5, "WebEngineNewViewRequest", tr("Cannot create separate instance of WebEngineNewViewRequest"));
@@ -174,7 +173,7 @@ public:
qmlRegisterUncreatableType<QQuickWebEngineTooltipRequest>(uri, 1, 10, "TooltipRequest",
msgUncreatableType("TooltipRequest"));
qRegisterMetaType<QWebEngineFindTextResult>();
- qmlRegisterUncreatableType<QWebEngineFindTextResult>(uri, 1, 11, "FindTextResult", msgUncreatableType("FindTextResult"));
+ qmlRegisterUncreatableType<QWebEngineFindTextResult>(uri, 1, 10, "FindTextResult", msgUncreatableType("FindTextResult"));
}
private:
diff --git a/src/webengine/plugin/plugins.qmltypes b/src/webengine/plugin/plugins.qmltypes
index 0037861e5..a23d1c3c0 100644
--- a/src/webengine/plugin/plugins.qmltypes
+++ b/src/webengine/plugin/plugins.qmltypes
@@ -4,11 +4,285 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable -defaultplatform -dependencies dependencies.json QtWebEngine 1.9'
+// 'qmlplugindump -nonrelocatable -defaultplatform -dependencies dependencies.json QtWebEngine 1.10'
Module {
dependencies: ["QtQuick 2.8"]
Component {
+ name: "QAbstractItemModel"
+ prototype: "QObject"
+ Enum {
+ name: "LayoutChangeHint"
+ values: {
+ "NoLayoutChangeHint": 0,
+ "VerticalSortHint": 1,
+ "HorizontalSortHint": 2
+ }
+ }
+ Enum {
+ name: "CheckIndexOption"
+ values: {
+ "NoOption": 0,
+ "IndexIsValid": 1,
+ "DoNotUseParent": 2,
+ "ParentIsInvalid": 4
+ }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ Parameter { name: "roles"; type: "QVector<int>" }
+ }
+ Signal {
+ name: "dataChanged"
+ Parameter { name: "topLeft"; type: "QModelIndex" }
+ Parameter { name: "bottomRight"; type: "QModelIndex" }
+ }
+ Signal {
+ name: "headerDataChanged"
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutChanged"
+ Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
+ }
+ Signal { name: "layoutChanged" }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
+ Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
+ }
+ Signal {
+ name: "layoutAboutToBeChanged"
+ Parameter { name: "parents"; type: "QList<QPersistentModelIndex>" }
+ }
+ Signal { name: "layoutAboutToBeChanged" }
+ Signal {
+ name: "rowsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "rowsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsInserted"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal {
+ name: "columnsRemoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "first"; type: "int" }
+ Parameter { name: "last"; type: "int" }
+ }
+ Signal { name: "modelAboutToBeReset" }
+ Signal { name: "modelReset" }
+ Signal {
+ name: "rowsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationRow"; type: "int" }
+ }
+ Signal {
+ name: "rowsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "row"; type: "int" }
+ }
+ Signal {
+ name: "columnsAboutToBeMoved"
+ Parameter { name: "sourceParent"; type: "QModelIndex" }
+ Parameter { name: "sourceStart"; type: "int" }
+ Parameter { name: "sourceEnd"; type: "int" }
+ Parameter { name: "destinationParent"; type: "QModelIndex" }
+ Parameter { name: "destinationColumn"; type: "int" }
+ }
+ Signal {
+ name: "columnsMoved"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "end"; type: "int" }
+ Parameter { name: "destination"; type: "QModelIndex" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method { name: "submit"; type: "bool" }
+ Method { name: "revert" }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "hasIndex"
+ type: "bool"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "index"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ }
+ Method {
+ name: "parent"
+ type: "QModelIndex"
+ Parameter { name: "child"; type: "QModelIndex" }
+ }
+ Method {
+ name: "sibling"
+ type: "QModelIndex"
+ Parameter { name: "row"; type: "int" }
+ Parameter { name: "column"; type: "int" }
+ Parameter { name: "idx"; type: "QModelIndex" }
+ }
+ Method {
+ name: "rowCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "rowCount"; type: "int" }
+ Method {
+ name: "columnCount"
+ type: "int"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "columnCount"; type: "int" }
+ Method {
+ name: "hasChildren"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method { name: "hasChildren"; type: "bool" }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "data"
+ type: "QVariant"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "setData"
+ type: "bool"
+ Parameter { name: "index"; type: "QModelIndex" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ Parameter { name: "role"; type: "int" }
+ }
+ Method {
+ name: "headerData"
+ type: "QVariant"
+ Parameter { name: "section"; type: "int" }
+ Parameter { name: "orientation"; type: "Qt::Orientation" }
+ }
+ Method {
+ name: "fetchMore"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "canFetchMore"
+ type: "bool"
+ Parameter { name: "parent"; type: "QModelIndex" }
+ }
+ Method {
+ name: "flags"
+ type: "Qt::ItemFlags"
+ Parameter { name: "index"; type: "QModelIndex" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ Parameter { name: "flags"; type: "Qt::MatchFlags" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "hits"; type: "int" }
+ }
+ Method {
+ name: "match"
+ type: "QModelIndexList"
+ Parameter { name: "start"; type: "QModelIndex" }
+ Parameter { name: "role"; type: "int" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ }
+ Component { name: "QAbstractListModel"; prototype: "QAbstractItemModel" }
+ Component {
name: "QQuickWebEngineAction"
prototype: "QObject"
exports: ["QtWebEngine/WebEngineAction 1.8"]
@@ -202,6 +476,7 @@ Module {
prototype: "QObject"
exports: [
"QtWebEngine/WebEngineDownloadItem 1.1",
+ "QtWebEngine/WebEngineDownloadItem 1.10",
"QtWebEngine/WebEngineDownloadItem 1.2",
"QtWebEngine/WebEngineDownloadItem 1.3",
"QtWebEngine/WebEngineDownloadItem 1.4",
@@ -211,7 +486,7 @@ Module {
"QtWebEngine/WebEngineDownloadItem 1.8"
]
isCreatable: false
- exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5, 6, 7]
+ exportMetaObjectRevisions: [0, 10, 1, 2, 3, 4, 5, 6, 7]
Enum {
name: "DownloadState"
values: {
@@ -294,12 +569,18 @@ Module {
isReadonly: true
isPointer: true
}
+ Property { name: "url"; revision: 10; type: "QUrl"; isReadonly: true }
+ Property { name: "suggestedFileName"; revision: 10; type: "string"; isReadonly: true }
+ Property { name: "downloadDirectory"; revision: 10; type: "string" }
+ Property { name: "downloadFileName"; revision: 10; type: "string" }
Signal { name: "savePageFormatChanged"; revision: 2 }
Signal { name: "mimeTypeChanged"; revision: 1 }
Signal { name: "typeChanged"; revision: 3 }
Signal { name: "interruptReasonChanged"; revision: 4 }
Signal { name: "isFinishedChanged"; revision: 5 }
Signal { name: "isPausedChanged"; revision: 5 }
+ Signal { name: "downloadDirectoryChanged"; revision: 10 }
+ Signal { name: "downloadFileNameChanged"; revision: 10 }
Method { name: "accept" }
Method { name: "cancel" }
Method { name: "pause" }
@@ -625,10 +906,11 @@ Module {
"QtWebEngine/WebEngineSettings 1.5",
"QtWebEngine/WebEngineSettings 1.6",
"QtWebEngine/WebEngineSettings 1.7",
- "QtWebEngine/WebEngineSettings 1.8"
+ "QtWebEngine/WebEngineSettings 1.8",
+ "QtWebEngine/WebEngineSettings 1.9"
]
isCreatable: false
- exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5, 6, 7]
+ exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5, 6, 7, 8]
Enum {
name: "UnknownUrlSchemePolicy"
values: {
@@ -704,12 +986,32 @@ Module {
}
}
Component {
+ name: "QQuickWebEngineTooltipRequest"
+ prototype: "QObject"
+ exports: ["QtWebEngine/TooltipRequest 1.10"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Enum {
+ name: "RequestType"
+ values: {
+ "Show": 0,
+ "Hide": 1
+ }
+ }
+ Property { name: "x"; type: "int"; isReadonly: true }
+ Property { name: "y"; type: "int"; isReadonly: true }
+ Property { name: "text"; type: "string"; isReadonly: true }
+ Property { name: "type"; type: "RequestType"; isReadonly: true }
+ Property { name: "accepted"; type: "bool" }
+ }
+ Component {
name: "QQuickWebEngineView"
defaultProperty: "data"
prototype: "QQuickItem"
exports: [
"QtWebEngine/WebEngineView 1.0",
"QtWebEngine/WebEngineView 1.1",
+ "QtWebEngine/WebEngineView 1.10",
"QtWebEngine/WebEngineView 1.2",
"QtWebEngine/WebEngineView 1.3",
"QtWebEngine/WebEngineView 1.4",
@@ -719,7 +1021,7 @@ Module {
"QtWebEngine/WebEngineView 1.8",
"QtWebEngine/WebEngineView 1.9"
]
- exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
+ exportMetaObjectRevisions: [0, 1, 10, 2, 3, 4, 5, 6, 7, 8, 9]
Enum {
name: "NavigationRequestAction"
values: {
@@ -735,7 +1037,8 @@ Module {
"FormSubmittedNavigation": 2,
"BackForwardNavigation": 3,
"ReloadNavigation": 4,
- "OtherNavigation": 5
+ "OtherNavigation": 5,
+ "RedirectNavigation": 6
}
}
Enum {
@@ -994,6 +1297,14 @@ Module {
"Landscape": 1
}
}
+ Enum {
+ name: "LifecycleState"
+ values: {
+ "Active": 0,
+ "Frozen": 1,
+ "Discarded": 2
+ }
+ }
Property { name: "url"; type: "QUrl" }
Property { name: "icon"; type: "QUrl"; isReadonly: true }
Property { name: "loading"; type: "bool"; isReadonly: true }
@@ -1035,7 +1346,8 @@ Module {
Property { name: "webChannelWorld"; revision: 3; type: "uint" }
Property { name: "inspectedView"; revision: 7; type: "QQuickWebEngineView"; isPointer: true }
Property { name: "devToolsView"; revision: 7; type: "QQuickWebEngineView"; isPointer: true }
- Property { name: "testSupport"; type: "QQuickWebEngineTestSupport"; isPointer: true }
+ Property { name: "lifecycleState"; revision: 10; type: "LifecycleState" }
+ Property { name: "recommendedState"; revision: 10; type: "LifecycleState"; isReadonly: true }
Signal {
name: "loadingChanged"
Parameter { name: "loadRequest"; type: "QQuickWebEngineLoadRequest"; isPointer: true }
@@ -1194,6 +1506,26 @@ Module {
isPointer: true
}
}
+ Signal {
+ name: "tooltipRequested"
+ revision: 10
+ Parameter { name: "request"; type: "QQuickWebEngineTooltipRequest"; isPointer: true }
+ }
+ Signal {
+ name: "lifecycleStateChanged"
+ revision: 10
+ Parameter { name: "state"; type: "LifecycleState" }
+ }
+ Signal {
+ name: "recommendedStateChanged"
+ revision: 10
+ Parameter { name: "state"; type: "LifecycleState" }
+ }
+ Signal {
+ name: "findTextFinished"
+ revision: 10
+ Parameter { name: "result"; type: "QWebEngineFindTextResult" }
+ }
Method {
name: "runJavaScript"
Parameter { type: "string" }
@@ -1320,26 +1652,25 @@ Module {
}
}
Component {
+ name: "QWebEngineFindTextResult"
+ exports: ["QtWebEngine/FindTextResult 1.10"]
+ isCreatable: false
+ exportMetaObjectRevisions: [0]
+ Property { name: "numberOfMatches"; type: "int"; isReadonly: true }
+ Property { name: "activeMatchOrdinal"; type: "int"; isReadonly: true }
+ }
+ Component {
name: "QWebEngineNotification"
prototype: "QObject"
exports: ["QtWebEngine/WebEngineNotification 1.9"]
isCreatable: false
exportMetaObjectRevisions: [0]
- Enum {
- name: "Direction"
- values: {
- "LeftToRight": 0,
- "RightToLeft": 1,
- "DirectionAuto": 2
- }
- }
Property { name: "origin"; type: "QUrl"; isReadonly: true }
- Property { name: "icon"; type: "QIcon"; isReadonly: true }
Property { name: "title"; type: "string"; isReadonly: true }
Property { name: "message"; type: "string"; isReadonly: true }
Property { name: "tag"; type: "string"; isReadonly: true }
Property { name: "language"; type: "string"; isReadonly: true }
- Property { name: "direction"; type: "Direction"; isReadonly: true }
+ Property { name: "direction"; type: "Qt::LayoutDirection"; isReadonly: true }
Signal { name: "closed" }
Method { name: "show" }
Method { name: "click" }
diff --git a/src/webenginewidgets/api/qwebenginecertificateerror.cpp b/src/webenginewidgets/api/qwebenginecertificateerror.cpp
index 45277e19d..3f20b6483 100644
--- a/src/webenginewidgets/api/qwebenginecertificateerror.cpp
+++ b/src/webenginewidgets/api/qwebenginecertificateerror.cpp
@@ -79,7 +79,7 @@ public:
QUrl url;
bool overridable;
QString errorDescription;
- QList<QSslCertificate> chain;
+ QList<QSslCertificate> certificateChain;
bool answered = false, deferred = false;
QWeakPointer<CertificateErrorController> controller;
@@ -107,7 +107,7 @@ QWebEngineCertificateError::QWebEngineCertificateError(const QSharedPointer<Cert
controller->overridable(), controller->errorString()))
{
d->controller = controller;
- d->chain = controller->chain();
+ d->certificateChain = controller->certificateChain();
}
QWebEngineCertificateError::QWebEngineCertificateError(const QWebEngineCertificateError &) = default;
@@ -255,9 +255,9 @@ bool QWebEngineCertificateError::answered() const
Chain starts with the peer's immediate certificate and ending with the CA's certificate.
*/
-QList<QSslCertificate> QWebEngineCertificateError::chain() const
+QList<QSslCertificate> QWebEngineCertificateError::certificateChain() const
{
- return d->chain;
+ return d->certificateChain;
}
QT_END_NAMESPACE
diff --git a/src/webenginewidgets/api/qwebenginecertificateerror.h b/src/webenginewidgets/api/qwebenginecertificateerror.h
index b2dd65a9f..d3a19edfc 100644
--- a/src/webenginewidgets/api/qwebenginecertificateerror.h
+++ b/src/webenginewidgets/api/qwebenginecertificateerror.h
@@ -90,7 +90,7 @@ public:
void ignoreCertificateError();
bool answered() const;
- QList<QSslCertificate> chain() const;
+ QList<QSslCertificate> certificateChain() const;
private:
friend class QWebEnginePagePrivate;
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index db3efa521..524df0425 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -2671,16 +2671,13 @@ void QContextMenuBuilder::addMenuItem(ContextMenuItem menuItem)
switch (menuItem) {
case ContextMenuItem::Back:
- action = new QAction(QIcon::fromTheme(QStringLiteral("go-previous")), QWebEnginePage::tr("&Back"), m_menu);
- QObject::connect(action, &QAction::triggered, thisRef->d_ptr->view, &QWebEngineView::back);
+ action = thisRef->action(QWebEnginePage::Back);
break;
case ContextMenuItem::Forward:
- action = new QAction(QIcon::fromTheme(QStringLiteral("go-next")), QWebEnginePage::tr("&Forward"), m_menu);
- QObject::connect(action, &QAction::triggered, thisRef->d_ptr->view, &QWebEngineView::forward);
+ action = thisRef->action(QWebEnginePage::Forward);
break;
case ContextMenuItem::Reload:
- action = new QAction(QIcon::fromTheme(QStringLiteral("view-refresh")), QWebEnginePage::tr("&Reload"), m_menu);
- QObject::connect(action, &QAction::triggered, thisRef->d_ptr->view, &QWebEngineView::reload);
+ action = thisRef->action(QWebEnginePage::Reload);
break;
case ContextMenuItem::Cut:
action = thisRef->action(QWebEnginePage::Cut);