summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/browser_accessibility_qt.cpp7
-rw-r--r--src/core/browser_accessibility_qt.h1
-rw-r--r--src/core/client_cert_select_controller.cpp12
-rw-r--r--src/core/color_chooser_controller.cpp3
-rw-r--r--src/core/color_chooser_controller.h3
-rw-r--r--src/core/compositor/chromium_gpu_helper.cpp10
-rw-r--r--src/core/compositor/chromium_gpu_helper.h7
-rw-r--r--src/core/compositor/compositor.cpp7
-rw-r--r--src/core/compositor/compositor.h8
-rw-r--r--src/core/compositor/delegated_frame_node.cpp4
-rw-r--r--src/core/compositor/delegated_frame_node.h5
-rw-r--r--src/core/content_browser_client_qt.cpp10
-rw-r--r--src/core/content_browser_client_qt.h4
-rw-r--r--src/core/devtools_frontend_qt.cpp12
-rw-r--r--src/core/locked_ptr.h2
-rw-r--r--src/core/login_delegate_qt.cpp20
-rw-r--r--src/core/login_delegate_qt.h5
-rw-r--r--src/core/media_capture_devices_dispatcher.cpp31
-rw-r--r--src/core/media_capture_devices_dispatcher.h6
-rw-r--r--src/core/net/proxy_config_service_qt.h2
-rw-r--r--src/core/net/webui_controller_factory_qt.cpp3
-rw-r--r--src/core/ozone/ozone_platform_qt.cpp1
-rw-r--r--src/core/ozone/platform_window_qt.h3
-rw-r--r--src/core/permission_manager_qt.cpp4
-rw-r--r--src/core/permission_manager_qt.h2
-rw-r--r--src/core/printing/print_view_manager_base_qt.cpp6
-rw-r--r--src/core/printing/print_view_manager_qt.cpp8
-rw-r--r--src/core/profile_io_data_qt.cpp51
-rw-r--r--src/core/profile_qt.cpp11
-rw-r--r--src/core/profile_qt.h1
-rw-r--r--src/core/qtwebengine.gni5
-rw-r--r--src/core/qtwebengine_sources.gni13
-rw-r--r--src/core/render_widget_host_view_qt.cpp24
-rw-r--r--src/core/render_widget_host_view_qt.h2
-rw-r--r--src/core/renderer/content_renderer_client_qt.cpp3
-rw-r--r--src/core/type_conversion.cpp13
-rw-r--r--src/core/type_conversion.h14
-rw-r--r--src/core/web_contents_adapter.cpp19
-rw-r--r--src/core/web_engine_context.cpp6
-rw-r--r--src/core/web_engine_library_info.cpp1
-rwxr-xr-xtools/scripts/take_snapshot.py3
-rw-r--r--tools/scripts/version_resolver.py4
42 files changed, 196 insertions, 160 deletions
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp
index a672ccc06..c906071f2 100644
--- a/src/core/browser_accessibility_qt.cpp
+++ b/src/core/browser_accessibility_qt.cpp
@@ -61,6 +61,11 @@ const BrowserAccessibilityQt *ToBrowserAccessibilityQt(const BrowserAccessibilit
return static_cast<const BrowserAccessibilityQt *>(obj);
}
+QAccessibleInterface *toQAccessibleInterface(BrowserAccessibility *obj)
+{
+ return static_cast<BrowserAccessibilityQt *>(obj);
+}
+
BrowserAccessibilityQt::BrowserAccessibilityQt()
{
QAccessible::registerAccessibleInterface(this);
@@ -356,6 +361,8 @@ QAccessible::Role BrowserAccessibilityQt::role() const
return QAccessible::EditableText;
case ax::mojom::Role::kInputTime:
return QAccessible::SpinBox;
+ case ax::mojom::Role::kKeyboard:
+ return QAccessible::NoRole; // FIXME
case ax::mojom::Role::kLabelText:
return QAccessible::StaticText;
case ax::mojom::Role::kLayoutTable:
diff --git a/src/core/browser_accessibility_qt.h b/src/core/browser_accessibility_qt.h
index 345ee9862..decfc1e9d 100644
--- a/src/core/browser_accessibility_qt.h
+++ b/src/core/browser_accessibility_qt.h
@@ -146,6 +146,7 @@ public:
};
const BrowserAccessibilityQt *ToBrowserAccessibilityQt(const BrowserAccessibility *obj);
+QAccessibleInterface *toQAccessibleInterface(BrowserAccessibility *acc);
} // namespace content
diff --git a/src/core/client_cert_select_controller.cpp b/src/core/client_cert_select_controller.cpp
index 580dae826..2ff598445 100644
--- a/src/core/client_cert_select_controller.cpp
+++ b/src/core/client_cert_select_controller.cpp
@@ -76,7 +76,7 @@ ClientCertSelectController::~ClientCertSelectController()
void ClientCertSelectController::selectNone()
{
if (m_selected) {
- qWarning() << "ClientCertSelectController::selectNone() certificate already selected";
+ LOG(WARNING) << "ClientCertSelectController::selectNone() certificate already selected";
return;
}
m_selected = true;
@@ -86,7 +86,7 @@ void ClientCertSelectController::selectNone()
void ClientCertSelectController::select(int index)
{
if (m_selected) {
- qWarning() << "ClientCertSelectController::select() certificate already selected";
+ LOG(WARNING) << "ClientCertSelectController::select() certificate already selected";
return;
}
for (auto &certInfo : m_clientCerts) {
@@ -103,13 +103,13 @@ void ClientCertSelectController::select(int index)
if (certInfo->certificate()->GetPEMEncodedChain(&pem_encoded))
--index;
}
- qWarning() << "ClientCertSelectController::select() index out of range:" << index;
+ LOG(WARNING) << "ClientCertSelectController::select() index out of range:" << index;
}
void ClientCertSelectController::select(const QSslCertificate &certificate)
{
if (m_selected) {
- qWarning() << "ClientCertSelectController::select() certificate already selected";
+ LOG(WARNING) << "ClientCertSelectController::select() certificate already selected";
return;
}
QByteArray derCertificate = certificate.toDer();
@@ -126,8 +126,8 @@ void ClientCertSelectController::select(const QSslCertificate &certificate)
return;
}
}
- qWarning() << "ClientCertSelectController::select() - selected client certificate not recognized."
- << " Selected certificate needs to be one of the offered";
+ LOG(WARNING) << "ClientCertSelectController::select() - selected client certificate not recognized."
+ << " Selected certificate needs to be one of the offered";
}
QVector<QSslCertificate> ClientCertSelectController::certificates() const
diff --git a/src/core/color_chooser_controller.cpp b/src/core/color_chooser_controller.cpp
index 26d675908..361ff93ba 100644
--- a/src/core/color_chooser_controller.cpp
+++ b/src/core/color_chooser_controller.cpp
@@ -43,6 +43,9 @@
#include "color_chooser_controller_p.h"
#include "type_conversion.h"
+#include <QColor>
+#include <QVariant>
+
namespace QtWebEngineCore {
ColorChooserControllerPrivate::ColorChooserControllerPrivate(content::WebContents *content, const QColor &color)
diff --git a/src/core/color_chooser_controller.h b/src/core/color_chooser_controller.h
index 4c1b81a9a..e5daa09a8 100644
--- a/src/core/color_chooser_controller.h
+++ b/src/core/color_chooser_controller.h
@@ -55,6 +55,9 @@
#include <QObject>
+QT_FORWARD_DECLARE_CLASS(QColor)
+QT_FORWARD_DECLARE_CLASS(QVariant)
+
namespace QtWebEngineCore {
class ColorChooserControllerPrivate;
diff --git a/src/core/compositor/chromium_gpu_helper.cpp b/src/core/compositor/chromium_gpu_helper.cpp
index 2164f434f..71d0f3687 100644
--- a/src/core/compositor/chromium_gpu_helper.cpp
+++ b/src/core/compositor/chromium_gpu_helper.cpp
@@ -43,6 +43,11 @@
#include "chromium_gpu_helper.h"
+// Some headers include the namespace ws, and can not coexist with
+// Qt headers that include QTextStream, which includes most QSG headers
+// via QMatrix4x4.
+#include "content/browser/renderer_host/render_widget_host_impl.h"
+
// Including gpu/command_buffer headers before content/gpu headers makes sure that
// guards are defined to prevent duplicate definition errors with forward declared
// GL typedefs cascading through content header includes.
@@ -78,6 +83,11 @@ unsigned int service_id(gpu::TextureBase *tex)
return tex->service_id();
}
+void ProgressFlingIfNeeded(content::RenderWidgetHost *host, const base::TimeTicks &current_time)
+{
+ content::RenderWidgetHostImpl::From(host)->ProgressFlingIfNeeded(current_time);
+}
+
#ifdef Q_OS_QNX
EGLStreamData eglstream_connect_consumer(gpu::Texture *tex)
{
diff --git a/src/core/compositor/chromium_gpu_helper.h b/src/core/compositor/chromium_gpu_helper.h
index c2799204b..4086d12ab 100644
--- a/src/core/compositor/chromium_gpu_helper.h
+++ b/src/core/compositor/chromium_gpu_helper.h
@@ -46,6 +46,11 @@
namespace base {
class SingleThreadTaskRunner;
+class TimeTicks;
+}
+
+namespace content {
+class RenderWidgetHost;
}
namespace gpu {
@@ -65,6 +70,8 @@ gpu::MailboxManager *mailbox_manager();
gpu::TextureBase* ConsumeTexture(gpu::MailboxManager *mailboxManager, unsigned target, const gpu::Mailbox& mailbox);
unsigned int service_id(gpu::TextureBase *tex);
+void ProgressFlingIfNeeded(content::RenderWidgetHost *host, const base::TimeTicks &current_time);
+
#ifdef Q_OS_QNX
typedef void* EGLDisplay;
typedef void* EGLStreamKHR;
diff --git a/src/core/compositor/compositor.cpp b/src/core/compositor/compositor.cpp
index 77a973748..258fb47b4 100644
--- a/src/core/compositor/compositor.cpp
+++ b/src/core/compositor/compositor.cpp
@@ -41,7 +41,6 @@
#include "compositor_resource_tracker.h"
#include "delegated_frame_node.h"
-#include "render_widget_host_view_qt.h"
#include "components/viz/common/resources/returned_resource.h"
#include "content/public/browser/browser_thread.h"
@@ -49,9 +48,9 @@
namespace QtWebEngineCore {
-Compositor::Compositor(RenderWidgetHostViewQt *hostView)
+Compositor::Compositor(content::RenderWidgetHost *host)
: m_resourceTracker(new CompositorResourceTracker)
- , m_view(hostView)
+ , m_host(host)
{
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
@@ -171,7 +170,7 @@ bool Compositor::OnBeginFrameDerivedImpl(const viz::BeginFrameArgs &args)
{
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- m_view->OnBeginFrame(args.frame_time);
+ ProgressFlingIfNeeded(m_host, args.frame_time);
m_beginFrameSource->OnUpdateVSyncParameters(args.frame_time, args.interval);
if (m_frameSinkClient)
m_frameSinkClient->OnBeginFrame(args);
diff --git a/src/core/compositor/compositor.h b/src/core/compositor/compositor.h
index b025f901d..5efe419cc 100644
--- a/src/core/compositor/compositor.h
+++ b/src/core/compositor/compositor.h
@@ -54,6 +54,9 @@ QT_BEGIN_NAMESPACE
class QSGNode;
QT_END_NAMESPACE
+namespace content {
+class RenderWidgetHost;
+}
namespace viz {
struct ReturnedResource;
namespace mojom {
@@ -64,7 +67,6 @@ class CompositorFrameSinkClient;
namespace QtWebEngineCore {
class CompositorResourceTracker;
-class RenderWidgetHostViewQt;
class RenderWidgetHostViewQtDelegate;
// Receives viz::CompositorFrames from child compositors and provides QSGNodes
@@ -88,7 +90,7 @@ class RenderWidgetHostViewQtDelegate;
class Compositor final : private viz::BeginFrameObserverBase
{
public:
- explicit Compositor(RenderWidgetHostViewQt *hostView);
+ explicit Compositor(content::RenderWidgetHost *host);
~Compositor() override;
void setFrameSinkClient(viz::mojom::CompositorFrameSinkClient *frameSinkClient);
@@ -110,7 +112,7 @@ private:
viz::CompositorFrame m_pendingFrame;
base::OnceClosure m_submitCallback;
std::unique_ptr<CompositorResourceTracker> m_resourceTracker;
- RenderWidgetHostViewQt *m_view;
+ content::RenderWidgetHost *m_host;
std::unique_ptr<viz::SyntheticBeginFrameSource> m_beginFrameSource;
viz::mojom::CompositorFrameSinkClient *m_frameSinkClient = nullptr;
bool m_updatePaintNodeShouldCommit = false;
diff --git a/src/core/compositor/delegated_frame_node.cpp b/src/core/compositor/delegated_frame_node.cpp
index 49e3577de..a4fcf8daf 100644
--- a/src/core/compositor/delegated_frame_node.cpp
+++ b/src/core/compositor/delegated_frame_node.cpp
@@ -411,7 +411,9 @@ static QSGNode *buildLayerChain(QSGNode *chainParent, const viz::SharedQuadState
}
if (!layerState->quad_to_target_transform.IsIdentity()) {
QSGTransformNode *transformNode = new QSGTransformNode;
- transformNode->setMatrix(toQt(layerState->quad_to_target_transform.matrix()));
+ QMatrix4x4 qMatrix;
+ convertToQt(layerState->quad_to_target_transform.matrix(), qMatrix);
+ transformNode->setMatrix(qMatrix);
layerChain->appendChildNode(transformNode);
layerChain = transformNode;
}
diff --git a/src/core/compositor/delegated_frame_node.h b/src/core/compositor/delegated_frame_node.h
index a39ae864b..34e4ba029 100644
--- a/src/core/compositor/delegated_frame_node.h
+++ b/src/core/compositor/delegated_frame_node.h
@@ -43,9 +43,10 @@
#include "base/containers/circular_deque.h"
#include "components/viz/common/quads/compositor_frame.h"
#include "components/viz/common/quads/render_pass.h"
-#include <QSGNode>
-#include <QSharedPointer>
+
+#include <QtCore/QSharedPointer>
#include <QtGui/QOffscreenSurface>
+#include <QtQuick/QSGTransformNode>
#include "chromium_gpu_helper.h"
#include "render_widget_host_view_qt_delegate.h"
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index b5b2ca0fd..3fbea5a9f 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -650,7 +650,7 @@ bool ContentBrowserClientQt::AllowServiceWorker(const GURL &scope,
// We control worker access to FS and indexed-db using cookie permissions, this is mirroring Chromium's logic.
void ContentBrowserClientQt::AllowWorkerFileSystem(const GURL &url,
content::ResourceContext *context,
- const std::vector<std::pair<int, int> > &/*render_frames*/,
+ const std::vector<content::GlobalFrameRoutingId> &/*render_frames*/,
base::Callback<void(bool)> callback)
{
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
@@ -661,7 +661,7 @@ void ContentBrowserClientQt::AllowWorkerFileSystem(const GURL &url,
bool ContentBrowserClientQt::AllowWorkerIndexedDB(const GURL &url,
const base::string16 &/*name*/,
content::ResourceContext *context,
- const std::vector<std::pair<int, int> > &/*render_frames*/)
+ const std::vector<content::GlobalFrameRoutingId> &/*render_frames*/)
{
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
NetworkDelegateQt *networkDelegate = static_cast<NetworkDelegateQt *>(context->GetRequestContext()->network_delegate());
@@ -716,9 +716,9 @@ scoped_refptr<content::LoginDelegate> ContentBrowserClientQt::CreateLoginDelegat
bool first_auth_attempt,
LoginAuthRequiredCallback auth_required_callback)
{
- return base::MakeRefCounted<LoginDelegateQt>(authInfo, web_contents_getter, url, first_auth_attempt, std::move(auth_required_callback));
+ auto loginDelegate = base::MakeRefCounted<LoginDelegateQt>(authInfo, web_contents_getter, url, first_auth_attempt, std::move(auth_required_callback));
+ loginDelegate->triggerDialog();
+ return loginDelegate;
}
} // namespace QtWebEngineCore
-
-DEFINE_WEB_CONTENTS_USER_DATA_KEY(QtWebEngineCore::ServiceDriver);
diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h
index b2761b311..4a192818b 100644
--- a/src/core/content_browser_client_qt.h
+++ b/src/core/content_browser_client_qt.h
@@ -161,13 +161,13 @@ public:
void AllowWorkerFileSystem(const GURL &url,
content::ResourceContext *context,
- const std::vector<std::pair<int, int> > &render_frames,
+ const std::vector<content::GlobalFrameRoutingId> &render_frames,
base::Callback<void(bool)> callback) override;
bool AllowWorkerIndexedDB(const GURL &url,
const base::string16 &name,
content::ResourceContext *context,
- const std::vector<std::pair<int, int> > &render_frames) override;
+ const std::vector<content::GlobalFrameRoutingId> &render_frames) override;
#if QT_CONFIG(webengine_geolocation)
std::unique_ptr<device::LocationProvider> OverrideSystemLocationProvider() override;
diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp
index bd9e0ebe7..7a6635f17 100644
--- a/src/core/devtools_frontend_qt.cpp
+++ b/src/core/devtools_frontend_qt.cpp
@@ -109,9 +109,9 @@ public:
~ResponseWriter() override;
// URLFetcherResponseWriter overrides:
- int Initialize(const net::CompletionCallback &callback) override;
- int Write(net::IOBuffer *buffer, int num_bytes, const net::CompletionCallback &callback) override;
- int Finish(int net_error, const net::CompletionCallback &callback) override;
+ int Initialize(net::CompletionOnceCallback callback) override;
+ int Write(net::IOBuffer *buffer, int num_bytes, net::CompletionOnceCallback callback) override;
+ int Finish(int net_error, net::CompletionOnceCallback callback) override;
private:
base::WeakPtr<DevToolsFrontendQt> shell_devtools_;
@@ -126,12 +126,12 @@ ResponseWriter::ResponseWriter(base::WeakPtr<DevToolsFrontendQt> shell_devtools,
ResponseWriter::~ResponseWriter() {}
-int ResponseWriter::Initialize(const net::CompletionCallback& callback)
+int ResponseWriter::Initialize(net::CompletionOnceCallback callback)
{
return net::OK;
}
-int ResponseWriter::Write(net::IOBuffer *buffer, int num_bytes, const net::CompletionCallback &callback)
+int ResponseWriter::Write(net::IOBuffer *buffer, int num_bytes, net::CompletionOnceCallback callback)
{
std::string chunk = std::string(buffer->data(), num_bytes);
if (!base::IsStringUTF8(chunk))
@@ -148,7 +148,7 @@ int ResponseWriter::Write(net::IOBuffer *buffer, int num_bytes, const net::Compl
return num_bytes;
}
-int ResponseWriter::Finish(int net_error, const net::CompletionCallback &callback)
+int ResponseWriter::Finish(int net_error, net::CompletionOnceCallback callback)
{
return net::OK;
}
diff --git a/src/core/locked_ptr.h b/src/core/locked_ptr.h
index 73495435b..46d89819b 100644
--- a/src/core/locked_ptr.h
+++ b/src/core/locked_ptr.h
@@ -172,6 +172,8 @@ public:
T *operator->() const { return get(); }
explicit operator bool() const { return get(); }
+ bool MaybeValid() const { return m_core; }
+
static LockedPtr create(T *value)
{
return new LockedPtrCore(reinterpret_cast<uintptr_t>(value));
diff --git a/src/core/login_delegate_qt.cpp b/src/core/login_delegate_qt.cpp
index 9659b354a..31824ca71 100644
--- a/src/core/login_delegate_qt.cpp
+++ b/src/core/login_delegate_qt.cpp
@@ -43,7 +43,9 @@
#include "login_delegate_qt.h"
+#include "base/task/post_task.h"
#include "content/browser/web_contents/web_contents_impl.h"
+#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/resource_dispatcher_host.h"
@@ -66,14 +68,9 @@ LoginDelegateQt::LoginDelegateQt(
: m_authInfo(authInfo)
, m_url(url)
, m_auth_required_callback(std::move(auth_required_callback))
+ , m_webContentsGetter(web_contents_getter)
{
Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
-
- content::BrowserThread::PostTask(
- content::BrowserThread::UI, FROM_HERE,
- base::Bind(&LoginDelegateQt::triggerDialog,
- this,
- web_contents_getter));
}
LoginDelegateQt::~LoginDelegateQt()
@@ -81,6 +78,13 @@ LoginDelegateQt::~LoginDelegateQt()
Q_ASSERT(m_dialogController.isNull());
}
+void LoginDelegateQt::triggerDialog()
+{
+ base::PostTaskWithTraits(
+ FROM_HERE, { content::BrowserThread::UI },
+ base::BindOnce(&LoginDelegateQt::triggerDialogOnUI, this));
+}
+
void LoginDelegateQt::OnRequestCancelled()
{
destroy();
@@ -107,11 +111,11 @@ bool LoginDelegateQt::isProxy() const
return m_authInfo->is_proxy;
}
-void LoginDelegateQt::triggerDialog(const content::ResourceRequestInfo::WebContentsGetter &webContentsGetter)
+void LoginDelegateQt::triggerDialogOnUI()
{
Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
content::WebContentsImpl *webContents =
- static_cast<content::WebContentsImpl *>(webContentsGetter.Run());
+ static_cast<content::WebContentsImpl *>(m_webContentsGetter.Run());
if (!webContents)
return;
WebContentsAdapterClient *client = WebContentsViewQt::from(webContents->GetView())->client();
diff --git a/src/core/login_delegate_qt.h b/src/core/login_delegate_qt.h
index 9ce5df843..ccd1f7322 100644
--- a/src/core/login_delegate_qt.h
+++ b/src/core/login_delegate_qt.h
@@ -66,6 +66,8 @@ public:
~LoginDelegateQt();
+ void triggerDialog();
+
// LoginDelegate implementation
void OnRequestCancelled() override;
@@ -77,13 +79,14 @@ public:
void sendAuthToRequester(bool success, const QString &user, const QString &password);
private:
- void triggerDialog(const content::ResourceRequestInfo::WebContentsGetter &);
+ void triggerDialogOnUI();
void destroy();
scoped_refptr<net::AuthChallengeInfo> m_authInfo;
GURL m_url;
LoginAuthRequiredCallback m_auth_required_callback;
+ content::ResourceRequestInfo::WebContentsGetter m_webContentsGetter;
// This member is used to keep authentication dialog controller alive until
// authorization is sent or cancelled.
diff --git a/src/core/media_capture_devices_dispatcher.cpp b/src/core/media_capture_devices_dispatcher.cpp
index 2bac62084..4dd933753 100644
--- a/src/core/media_capture_devices_dispatcher.cpp
+++ b/src/core/media_capture_devices_dispatcher.cpp
@@ -49,10 +49,10 @@
#include "web_engine_settings.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/media/webrtc/desktop_streams_registry.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/desktop_media_id.h"
+#include "content/public/browser/desktop_streams_registry.h"
#include "content/public/browser/media_capture_devices.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h"
@@ -95,16 +95,16 @@ void getDevicesForDesktopCapture(content::MediaStreamDevices *devices, content::
DCHECK_CURRENTLY_ON(BrowserThread::UI);
// Add selected desktop source to the list.
- devices->push_back(content::MediaStreamDevice(content::MEDIA_DESKTOP_VIDEO_CAPTURE, mediaId.ToString(), "Screen"));
+ devices->push_back(content::MediaStreamDevice(content::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE, mediaId.ToString(), "Screen"));
if (captureAudio) {
if (mediaId.type == content::DesktopMediaID::TYPE_WEB_CONTENTS) {
devices->push_back(
- content::MediaStreamDevice(content::MEDIA_DESKTOP_AUDIO_CAPTURE,
+ content::MediaStreamDevice(content::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE,
mediaId.ToString(), "Tab audio"));
} else {
// Use the special loopback device ID for system audio capture.
devices->push_back(content::MediaStreamDevice(
- content::MEDIA_DESKTOP_AUDIO_CAPTURE,
+ content::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE,
media::AudioDeviceDescription::kLoopbackInputDeviceId,
"System Audio"));
}
@@ -157,12 +157,12 @@ WebContentsAdapterClient::MediaRequestFlags mediaRequestFlagsForRequest(const co
if (request.audio_type == content::MEDIA_DEVICE_AUDIO_CAPTURE)
requestFlags |= WebContentsAdapterClient::MediaAudioCapture;
- else if (request.audio_type == content::MEDIA_DESKTOP_AUDIO_CAPTURE)
+ else if (request.audio_type == content::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE)
requestFlags |= WebContentsAdapterClient::MediaDesktopAudioCapture;
if (request.video_type == content::MEDIA_DEVICE_VIDEO_CAPTURE)
requestFlags |= WebContentsAdapterClient::MediaVideoCapture;
- else if (request.video_type == content::MEDIA_DESKTOP_VIDEO_CAPTURE)
+ else if (request.video_type == content::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE)
requestFlags |= WebContentsAdapterClient::MediaDesktopVideoCapture;
return requestFlags;
@@ -275,12 +275,12 @@ void MediaCaptureDevicesDispatcher::processMediaAccessRequest(WebContentsAdapter
DCHECK_CURRENTLY_ON(BrowserThread::UI);
// Let's not support tab capture for now.
- if (request.video_type == content::MEDIA_TAB_VIDEO_CAPTURE || request.audio_type == content::MEDIA_TAB_AUDIO_CAPTURE) {
+ if (request.video_type == content::MEDIA_GUM_TAB_VIDEO_CAPTURE || request.audio_type == content::MEDIA_GUM_TAB_AUDIO_CAPTURE) {
std::move(callback).Run(content::MediaStreamDevices(), content::MEDIA_DEVICE_NOT_SUPPORTED, std::unique_ptr<content::MediaStreamUI>());
return;
}
- if (request.video_type == content::MEDIA_DESKTOP_VIDEO_CAPTURE || request.audio_type == content::MEDIA_DESKTOP_AUDIO_CAPTURE) {
+ if (request.video_type == content::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE || request.audio_type == content::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE) {
const bool screenCaptureEnabled =
adapterClient->webEngineSettings()->testAttribute(WebEngineSettings::ScreenCaptureEnabled);
const bool originIsSecure = content::IsOriginSecure(request.security_origin);
@@ -305,7 +305,7 @@ void MediaCaptureDevicesDispatcher::processDesktopCaptureAccessRequest(content::
{
content::MediaStreamDevices devices;
- if (request.video_type != content::MEDIA_DESKTOP_VIDEO_CAPTURE || request.requested_video_device_id.empty()) {
+ if (request.video_type != content::MEDIA_GUM_DESKTOP_VIDEO_CAPTURE || request.requested_video_device_id.empty()) {
std::move(callback).Run(devices, content::MEDIA_DEVICE_INVALID_STATE, std::unique_ptr<content::MediaStreamUI>());
return;
}
@@ -319,10 +319,10 @@ void MediaCaptureDevicesDispatcher::processDesktopCaptureAccessRequest(content::
// The extension name that the stream is registered with.
std::string originalExtensionName;
// Resolve DesktopMediaID for the specified device id.
- mediaId = getDesktopStreamsRegistry()->RequestMediaForStreamId(
+ mediaId = content::DesktopStreamsRegistry::GetInstance()->RequestMediaForStreamId(
request.requested_video_device_id, main_frame->GetProcess()->GetID(),
main_frame->GetRoutingID(), request.security_origin,
- &originalExtensionName);
+ &originalExtensionName, content::kRegistryStreamTypeDesktop);
}
// Received invalid device id.
@@ -332,7 +332,7 @@ void MediaCaptureDevicesDispatcher::processDesktopCaptureAccessRequest(content::
}
// Audio is only supported for screen capture streams.
- bool capture_audio = (mediaId.type == content::DesktopMediaID::TYPE_SCREEN && request.audio_type == content::MEDIA_DESKTOP_AUDIO_CAPTURE);
+ bool capture_audio = (mediaId.type == content::DesktopMediaID::TYPE_SCREEN && request.audio_type == content::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE);
getDevicesForDesktopCapture(&devices, mediaId, capture_audio);
@@ -390,13 +390,6 @@ void MediaCaptureDevicesDispatcher::getDefaultDevices(const std::string &audioDe
}
}
-DesktopStreamsRegistry *MediaCaptureDevicesDispatcher::getDesktopStreamsRegistry()
-{
- if (!m_desktopStreamsRegistry)
- m_desktopStreamsRegistry.reset(new DesktopStreamsRegistry());
- return m_desktopStreamsRegistry.get();
-}
-
void MediaCaptureDevicesDispatcher::OnMediaRequestStateChanged(int render_process_id, int render_frame_id, int page_request_id, const GURL &security_origin, content::MediaStreamType stream_type, content::MediaRequestState state)
{
DCHECK_CURRENTLY_ON(BrowserThread::IO);
diff --git a/src/core/media_capture_devices_dispatcher.h b/src/core/media_capture_devices_dispatcher.h
index 0e5aa38be..cc6e60ede 100644
--- a/src/core/media_capture_devices_dispatcher.h
+++ b/src/core/media_capture_devices_dispatcher.h
@@ -57,8 +57,6 @@
#include "content/public/browser/web_contents_delegate.h"
#include "content/public/common/media_stream_request.h"
-class DesktopStreamsRegistry;
-
namespace QtWebEngineCore {
// This singleton is used to receive updates about media events from the content
@@ -94,8 +92,6 @@ private:
content::MediaStreamType /*stream_type*/,
bool /*is_secure*/) override {}
- DesktopStreamsRegistry *getDesktopStreamsRegistry();
-
friend struct base::DefaultSingletonTraits<MediaCaptureDevicesDispatcher>;
typedef base::RepeatingCallback<void(const content::MediaStreamDevices &devices,
@@ -129,8 +125,6 @@ private:
RequestsQueues m_pendingRequests;
- std::unique_ptr<DesktopStreamsRegistry> m_desktopStreamsRegistry;
-
content::NotificationRegistrar m_notificationsRegistrar;
DISALLOW_COPY_AND_ASSIGN(MediaCaptureDevicesDispatcher);
diff --git a/src/core/net/proxy_config_service_qt.h b/src/core/net/proxy_config_service_qt.h
index dcd303894..961927b89 100644
--- a/src/core/net/proxy_config_service_qt.h
+++ b/src/core/net/proxy_config_service_qt.h
@@ -76,7 +76,7 @@ private:
void RegisterObserver();
std::unique_ptr<net::ProxyConfigService> m_baseService;
- base::ObserverList<net::ProxyConfigService::Observer, true> m_observers;
+ base::ObserverList<net::ProxyConfigService::Observer, true>::Unchecked m_observers;
// Keep the last state around.
bool m_usesSystemConfiguration;
diff --git a/src/core/net/webui_controller_factory_qt.cpp b/src/core/net/webui_controller_factory_qt.cpp
index 918500b58..ec36e70d9 100644
--- a/src/core/net/webui_controller_factory_qt.cpp
+++ b/src/core/net/webui_controller_factory_qt.cpp
@@ -48,6 +48,7 @@
#include "base/location.h"
#include "base/threading/thread_task_runner_handle.h"
#include "build/build_config.h"
+#include "chrome/browser/accessibility/accessibility_ui.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/devtools_ui.h"
#include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
@@ -136,6 +137,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI *web_ui, Profile *profile, co
// return nullptr;
return &NewWebUI<DevToolsUI>;
}
+ if (url.host() == chrome::kChromeUIAccessibilityHost)
+ return &NewWebUI<AccessibilityUI>;
// if (url.host_piece() == chrome::kChromeUIUserActionsHost)
// return &NewWebUI<UserActionsUI>;
diff --git a/src/core/ozone/ozone_platform_qt.cpp b/src/core/ozone/ozone_platform_qt.cpp
index 905e8f403..1115f3fac 100644
--- a/src/core/ozone/ozone_platform_qt.cpp
+++ b/src/core/ozone/ozone_platform_qt.cpp
@@ -43,6 +43,7 @@
#include "ozone/surface_factory_qt.h"
#include "ozone/platform_window_qt.h"
#include "ui/display/types/native_display_delegate.h"
+#include "ui/events/system_input_injector.h"
#include "ui/ozone/common/stub_client_native_pixmap_factory.h"
#include "ui/ozone/common/stub_overlay_manager.h"
#include "ui/ozone/public/cursor_factory_ozone.h"
diff --git a/src/core/ozone/platform_window_qt.h b/src/core/ozone/platform_window_qt.h
index b712b706a..bb2fc714b 100644
--- a/src/core/ozone/platform_window_qt.h
+++ b/src/core/ozone/platform_window_qt.h
@@ -75,6 +75,9 @@ public:
void MoveCursorTo(const gfx::Point&) override { }
void ConfineCursorToBounds(const gfx::Rect&) override { }
PlatformImeController* GetPlatformImeController() override { return nullptr; }
+ void SetRestoredBoundsInPixels(const gfx::Rect& bounds) override { }
+ gfx::Rect GetRestoredBoundsInPixels() const override { return gfx::Rect(); }
+
// PlatformEventDispatcher:
bool CanDispatchEvent(const PlatformEvent& event) override;
uint32_t DispatchEvent(const PlatformEvent& event) override;
diff --git a/src/core/permission_manager_qt.cpp b/src/core/permission_manager_qt.cpp
index 2fa42bf10..895fe89e6 100644
--- a/src/core/permission_manager_qt.cpp
+++ b/src/core/permission_manager_qt.cpp
@@ -261,8 +261,8 @@ void PermissionManagerQt::ResetPermission(
int PermissionManagerQt::SubscribePermissionStatusChange(
content::PermissionType permission,
+ content::RenderFrameHost * /* render_frame_host */,
const GURL& requesting_origin,
- const GURL& /*embedding_origin*/,
const base::Callback<void(blink::mojom::PermissionStatus)>& callback)
{
int subscriber_id = ++m_subscriberIdCount;
@@ -278,7 +278,7 @@ int PermissionManagerQt::SubscribePermissionStatusChange(
void PermissionManagerQt::UnsubscribePermissionStatusChange(int subscription_id)
{
if (!m_subscribers.remove(subscription_id))
- qWarning() << "PermissionManagerQt::UnsubscribePermissionStatusChange called on unknown subscription id" << subscription_id;
+ LOG(WARNING) << "PermissionManagerQt::UnsubscribePermissionStatusChange called on unknown subscription id" << subscription_id;
}
} // namespace QtWebEngineCore
diff --git a/src/core/permission_manager_qt.h b/src/core/permission_manager_qt.h
index b3bd3dc7a..89eb6cf85 100644
--- a/src/core/permission_manager_qt.h
+++ b/src/core/permission_manager_qt.h
@@ -92,8 +92,8 @@ public:
int SubscribePermissionStatusChange(
content::PermissionType permission,
+ content::RenderFrameHost* render_frame_host,
const GURL& requesting_origin,
- const GURL& embedding_origin,
const base::Callback<void(blink::mojom::PermissionStatus)>& callback) override;
void UnsubscribePermissionStatusChange(int subscription_id) override;
diff --git a/src/core/printing/print_view_manager_base_qt.cpp b/src/core/printing/print_view_manager_base_qt.cpp
index 0e7239ef8..625ec3a49 100644
--- a/src/core/printing/print_view_manager_base_qt.cpp
+++ b/src/core/printing/print_view_manager_base_qt.cpp
@@ -64,7 +64,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h"
-#include "printing/pdf_metafile_skia.h"
+#include "printing/metafile_skia.h"
#include "printing/print_job_constants.h"
#include "printing/printed_document.h"
@@ -123,8 +123,8 @@ void PrintViewManagerBaseQt::PrintDocument(printing::PrintedDocument *document,
const gfx::Rect &content_area,
const gfx::Point &offsets)
{
- std::unique_ptr<printing::PdfMetafileSkia> metafile =
- std::make_unique<printing::PdfMetafileSkia>();
+ std::unique_ptr<printing::MetafileSkia> metafile =
+ std::make_unique<printing::MetafileSkia>();
CHECK(metafile->InitFromData(print_data->front(), print_data->size()));
// Update the rendered document. It will send notifications to the listener.
diff --git a/src/core/printing/print_view_manager_qt.cpp b/src/core/printing/print_view_manager_qt.cpp
index b9b491e41..61be7f0f6 100644
--- a/src/core/printing/print_view_manager_qt.cpp
+++ b/src/core/printing/print_view_manager_qt.cpp
@@ -53,7 +53,7 @@
#include "base/values.h"
#include "base/memory/ref_counted_memory.h"
-#include "base/task_scheduler/post_task.h"
+#include "base/task/post_task.h"
#include "chrome/browser/printing/print_job_manager.h"
#include "chrome/browser/printing/printer_query.h"
#include "components/printing/common/print_messages.h"
@@ -62,12 +62,10 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/common/web_preferences.h"
-#include "printing/pdf_metafile_skia.h"
+#include "printing/metafile_skia.h"
#include "printing/print_job_constants.h"
#include "printing/units.h"
-DEFINE_WEB_CONTENTS_USER_DATA_KEY(QtWebEngineCore::PrintViewManagerQt);
-
namespace {
static const qreal kMicronsToMillimeter = 1000.0f;
@@ -108,7 +106,7 @@ static void SavePdfFile(scoped_refptr<base::RefCountedBytes> data,
base::AssertBlockingAllowed();
DCHECK_GT(data->size(), 0U);
- printing::PdfMetafileSkia metafile;
+ printing::MetafileSkia metafile;
metafile.InitFromData(static_cast<const void*>(data->front()), data->size());
base::File file(path,
diff --git a/src/core/profile_io_data_qt.cpp b/src/core/profile_io_data_qt.cpp
index 89d690e9e..ef9c67b78 100644
--- a/src/core/profile_io_data_qt.cpp
+++ b/src/core/profile_io_data_qt.cpp
@@ -39,7 +39,7 @@
#include "profile_io_data_qt.h"
-#include "base/task_scheduler/post_task.h"
+#include "base/task/post_task.h"
#include "components/certificate_transparency/ct_known_logs.h"
#include "components/network_session_configurator/common/network_features.h"
#include "content/public/browser/browser_thread.h"
@@ -161,7 +161,6 @@ static net::HttpNetworkSession::Params generateNetworkSessionParams(bool ignoreC
{
net::HttpNetworkSession::Params network_session_params;
network_session_params.ignore_certificate_errors = ignoreCertificateErrors;
- network_session_params.enable_token_binding = base::FeatureList::IsEnabled(features::kTokenBinding);
network_session_params.enable_channel_id = base::FeatureList::IsEnabled(features::kChannelID);
return network_session_params;
}
@@ -274,26 +273,6 @@ void ProfileIODataQt::generateAllStorage()
m_updateAllStorage = false;
}
-class SSLConfigServiceQt : public net::SSLConfigService {
-public:
- SSLConfigServiceQt()
- {
- // Enable revocation checking:
- m_defaultConfig.rev_checking_enabled = true;
- // Mirroring Android WebView (we have no beef with Symantec, and our users might use them):
- m_defaultConfig.symantec_enforcement_disabled = true;
- }
- ~SSLConfigServiceQt() override = default;
-
- void GetSSLConfig(net::SSLConfig* config) override
- {
- *config = m_defaultConfig;
- }
-
-private:
- net::SSLConfig m_defaultConfig;
-};
-
void ProfileIODataQt::generateStorage()
{
Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
@@ -315,7 +294,15 @@ void ProfileIODataQt::generateStorage()
net::ProxyConfigService *proxyConfigService = m_proxyConfigService.fetchAndStoreAcquire(0);
Q_ASSERT(proxyConfigService);
- m_storage->set_cert_verifier(net::CertVerifier::CreateDefault());
+ std::unique_ptr<net::CertVerifier> cert_verifier = net::CertVerifier::CreateDefault();
+ net::CertVerifier::Config config;
+ // Enable revocation checking:
+ config.enable_rev_checking = true;
+ // Mirroring Android WebView (we have no beef with Symantec, and our users might use them):
+ config.disable_symantec_enforcement = true;
+ cert_verifier->SetConfig(config);
+
+ m_storage->set_cert_verifier(std::move(cert_verifier));
std::unique_ptr<net::MultiLogCTVerifier> ct_verifier(new net::MultiLogCTVerifier());
// FIXME:
// ct_verifier->AddLogs(net::ct::CreateLogVerifiersForKnownLogs());
@@ -339,7 +326,7 @@ void ProfileIODataQt::generateStorage()
nullptr /* NetLog */,
m_networkDelegate.get()));
- m_storage->set_ssl_config_service(std::make_unique<SSLConfigServiceQt>());
+ m_storage->set_ssl_config_service(std::make_unique<net::SSLConfigServiceDefaults>());
m_storage->set_transport_security_state(std::make_unique<net::TransportSecurityState>());
if (!m_dataPath.isEmpty()) {
@@ -386,7 +373,7 @@ void ProfileIODataQt::generateCookieStore()
channel_id_db = new net::SQLiteChannelIDStore(
toFilePath(m_channelIdPath),
base::CreateSequencedTaskRunnerWithTraits(
- {base::MayBlock(), base::TaskPriority::BACKGROUND}));
+ {base::MayBlock(), base::TaskPriority::BEST_EFFORT}));
}
m_storage->set_channel_id_service(
@@ -406,8 +393,8 @@ void ProfileIODataQt::generateCookieStore()
base::FilePath(),
false,
false,
- nullptr)
- );
+ nullptr),
+ nullptr);
break;
case ProfileAdapter::AllowPersistentCookies:
cookieStore = content::CreateCookieStore(
@@ -415,8 +402,8 @@ void ProfileIODataQt::generateCookieStore()
toFilePath(m_cookiesPath),
false,
true,
- nullptr)
- );
+ nullptr),
+ nullptr);
break;
case ProfileAdapter::ForcePersistentCookies:
cookieStore = content::CreateCookieStore(
@@ -424,8 +411,8 @@ void ProfileIODataQt::generateCookieStore()
toFilePath(m_cookiesPath),
true,
true,
- nullptr)
- );
+ nullptr),
+ nullptr);
break;
}
@@ -533,7 +520,7 @@ void ProfileIODataQt::generateJobFactory()
std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(
new net::DataProtocolHandler()));
scoped_refptr<base::TaskRunner> taskRunner(base::CreateTaskRunnerWithTraits({base::MayBlock(),
- base::TaskPriority::BACKGROUND,
+ base::TaskPriority::BEST_EFFORT,
base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}));
jobFactory->SetProtocolHandler(url::kFileScheme,
std::make_unique<net::FileProtocolHandler>(taskRunner));
diff --git a/src/core/profile_qt.cpp b/src/core/profile_qt.cpp
index df05d891e..e4698c677 100644
--- a/src/core/profile_qt.cpp
+++ b/src/core/profile_qt.cpp
@@ -87,6 +87,8 @@ ProfileQt::ProfileQt(ProfileAdapter *profileAdapter)
registry->RegisterBooleanPref(spellcheck::prefs::kSpellCheckEnable, false);
registry->RegisterBooleanPref(spellcheck::prefs::kSpellCheckUseSpellingService, false);
#endif // QT_CONFIG(webengine_spellchecker)
+ registry->RegisterBooleanPref(prefs::kShowInternalAccessibilityTree, false);
+
m_prefService = factory.Create(registry);
user_prefs::UserPrefs::Set(this, m_prefService.get());
@@ -123,6 +125,11 @@ base::FilePath ProfileQt::GetPath() const
return toFilePath(m_profileAdapter->dataPath());
}
+base::FilePath ProfileQt::GetCachePath() const
+{
+ return toFilePath(m_profileAdapter->cachePath());
+}
+
bool ProfileQt::IsOffTheRecord() const
{
return m_profileAdapter->isOffTheRecord();
@@ -229,8 +236,8 @@ net::URLRequestContextGetter *ProfileQt::CreateRequestContextForStoragePartition
void ProfileQt::FailedToLoadDictionary(const std::string &language)
{
Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
- qWarning() << "Could not load dictionary for:" << toQt(language) << endl
- << "Make sure that correct bdic file is in:" << toQt(WebEngineLibraryInfo::getPath(base::DIR_APP_DICTIONARIES).value());
+ LOG(WARNING) << "Could not load dictionary for:" << language;
+ LOG(INFO) << "Make sure that correct bdic file is in:" << WebEngineLibraryInfo::getPath(base::DIR_APP_DICTIONARIES);
}
void ProfileQt::setSpellCheckLanguages(const QStringList &languages)
diff --git a/src/core/profile_qt.h b/src/core/profile_qt.h
index 00119c053..8641646b1 100644
--- a/src/core/profile_qt.h
+++ b/src/core/profile_qt.h
@@ -68,6 +68,7 @@ public:
// BrowserContext implementation:
base::FilePath GetPath() const override;
+ base::FilePath GetCachePath() const override;
bool IsOffTheRecord() const override;
net::URLRequestContextGetter *CreateMediaRequestContext() override;
diff --git a/src/core/qtwebengine.gni b/src/core/qtwebengine.gni
index 57dfbec40..e4b165c6d 100644
--- a/src/core/qtwebengine.gni
+++ b/src/core/qtwebengine.gni
@@ -27,15 +27,12 @@ deps = [
"//components/web_cache/renderer",
"//components/spellcheck:buildflags",
"//content/public/app:browser",
- "//content/public/browser",
- "//content/public/common",
- "//content/public/renderer",
+ "//content",
"//media:media_buildflags",
"//net:net_with_v8",
"//services/proxy_resolver:lib",
"//skia",
"//third_party/blink/public:blink",
- "//third_party/mesa:mesa_headers",
"//ui/accessibility",
"//qtwebengine/browser:interfaces",
":qtwebengine_sources",
diff --git a/src/core/qtwebengine_sources.gni b/src/core/qtwebengine_sources.gni
index b1361e727..aa9d12480 100644
--- a/src/core/qtwebengine_sources.gni
+++ b/src/core/qtwebengine_sources.gni
@@ -47,15 +47,13 @@ source_set("qtwebengine_sources") {
"//third_party/blink/public/mojom:mojom_platform",
]
sources = [
- "//chrome/common/custom_handlers/protocol_handler.cc",
- "//chrome/common/custom_handlers/protocol_handler.h",
+ "//chrome/browser/accessibility/accessibility_ui.cc",
+ "//chrome/browser/accessibility/accessibility_ui.h",
"//chrome/browser/custom_handlers/protocol_handler_registry.cc",
"//chrome/browser/custom_handlers/protocol_handler_registry.h",
"//chrome/browser/custom_handlers/protocol_handler_registry_factory.cc",
"//chrome/browser/custom_handlers/protocol_handler_registry_factory.h",
"//chrome/browser/media/webrtc/desktop_media_list.h",
- "//chrome/browser/media/webrtc/desktop_streams_registry.cc",
- "//chrome/browser/media/webrtc/desktop_streams_registry.h",
"//chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc",
"//chrome/browser/net/chrome_mojo_proxy_resolver_factory.h",
"//chrome/browser/profiles/profile.cc",
@@ -72,6 +70,8 @@ source_set("qtwebengine_sources") {
"//chrome/browser/ui/webui/quota_internals/quota_internals_ui.h",
"//chrome/browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui.cc",
"//chrome/browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui.h",
+ "//chrome/common/custom_handlers/protocol_handler.cc",
+ "//chrome/common/custom_handlers/protocol_handler.h",
"//chrome/common/chrome_switches.cc",
"//chrome/common/chrome_switches.h",
"//chrome/common/pref_names.cc",
@@ -109,11 +109,6 @@ source_set("qtwebengine_sources") {
"//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc",
"//chrome/renderer/pepper/pepper_shared_memory_message_filter.h",
]
-
- deps += [
- # Need to depend on //content/ppapi_plugin, which is private, thus depending on parent.
- "//content",
- ]
}
if (enable_basic_printing || enable_print_preview) {
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 61b1e2a09..3c7a63bb6 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -82,7 +82,6 @@
#include <QFocusEvent>
#include <QGuiApplication>
#include <QInputMethodEvent>
-#include <QLoggingCategory>
#include <QTextFormat>
#include <QKeyEvent>
#include <QMouseEvent>
@@ -223,6 +222,8 @@ public:
float GetPressure(size_t pointer_index) const override { return touchPoints.at(pointer_index).pressure(); }
float GetTiltX(size_t pointer_index) const override { return 0; }
float GetTiltY(size_t pointer_index) const override { return 0; }
+ float GetTwist(size_t) const override { return 0; }
+ float GetTangentialPressure(size_t) const override { return 0; }
base::TimeTicks GetEventTime() const override { return eventTime; }
size_t GetHistorySize() const override { return 0; }
@@ -248,7 +249,7 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost *widget
, m_gestureProvider(QtGestureProviderConfig(), this)
, m_sendMotionActionDown(false)
, m_touchMotionStarted(false)
- , m_compositor(new Compositor(this))
+ , m_compositor(new Compositor(widget))
, m_loadVisuallyCommittedState(NotCommitted)
, m_adapterClient(0)
, m_imeInProgress(false)
@@ -657,9 +658,9 @@ void RenderWidgetHostViewQt::DidCreateNewRendererCompositorFrameSink(viz::mojom:
void RenderWidgetHostViewQt::SubmitCompositorFrame(const viz::LocalSurfaceId &local_surface_id, viz::CompositorFrame frame, base::Optional<viz::HitTestRegionList>)
{
bool scrollOffsetChanged = (m_lastScrollOffset != frame.metadata.root_scroll_offset);
- bool contentsSizeChanged = (m_lastContentsSize != frame.metadata.root_layer_size);
+ bool contentsSizeChanged = (m_lastContentsSize != frame.metadata.scrollable_viewport_size);
m_lastScrollOffset = frame.metadata.root_scroll_offset;
- m_lastContentsSize = frame.metadata.root_layer_size;
+ m_lastContentsSize = frame.metadata.scrollable_viewport_size;
// Force to process swap messages
uint32_t frame_token = frame.metadata.frame_token;
@@ -1426,9 +1427,6 @@ void RenderWidgetHostViewQt::handleGestureEvent(QNativeGestureEvent *ev)
}
#endif
-Q_DECLARE_LOGGING_CATEGORY(QWEBENGINE_TOUCH_HANDLING);
-Q_LOGGING_CATEGORY(QWEBENGINE_TOUCH_HANDLING, "qt.webengine.touch");
-
void RenderWidgetHostViewQt::handleTouchEvent(QTouchEvent *ev)
{
// On macOS instead of handling touch events, we use the OS provided QNativeGestureEvents.
@@ -1436,7 +1434,7 @@ void RenderWidgetHostViewQt::handleTouchEvent(QTouchEvent *ev)
if (ev->spontaneous()) {
return;
} else {
- qCWarning(QWEBENGINE_TOUCH_HANDLING)
+ VLOG(1)
<< "Sending simulated touch events to Chromium does not work properly on macOS. "
"Consider using QNativeGestureEvents or QMouseEvents.";
}
@@ -1621,11 +1619,6 @@ void RenderWidgetHostViewQt::SetNeedsBeginFrames(bool needs_begin_frames)
m_compositor->setNeedsBeginFrames(needs_begin_frames);
}
-void RenderWidgetHostViewQt::OnBeginFrame(base::TimeTicks frame_time)
-{
- host()->ProgressFlingIfNeeded(frame_time);
-}
-
content::RenderFrameHost *RenderWidgetHostViewQt::getFocusedFrameHost()
{
content::RenderViewHostImpl *viewHost = content::RenderViewHostImpl::From(host());
@@ -1687,4 +1680,9 @@ uint32_t RenderWidgetHostViewQt::GetCaptureSequenceNumber() const
return m_latestCaptureSequenceNumber;
}
+void RenderWidgetHostViewQt::ResetFallbackToFirstNavigationSurface()
+{
+ Q_UNIMPLEMENTED();
+}
+
} // namespace QtWebEngineCore
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index 3d51731d2..caafba430 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -108,7 +108,6 @@ public:
RenderWidgetHostViewQtDelegate *delegate() { return m_delegate.get(); }
void setDelegate(RenderWidgetHostViewQtDelegate *delegate);
void setAdapterClient(WebContentsAdapterClient *adapterClient);
- void OnBeginFrame(base::TimeTicks frame_time);
void InitAsChild(gfx::NativeView) override;
void InitAsPopup(content::RenderWidgetHostView*, const gfx::Rect&) override;
@@ -159,6 +158,7 @@ public:
void TakeFallbackContentFrom(content::RenderWidgetHostView *view) override;
void EnsureSurfaceSynchronizedForLayoutTest() override;
uint32_t GetCaptureSequenceNumber() const override;
+ void ResetFallbackToFirstNavigationSurface() override;
// Overridden from ui::GestureProviderClient.
void OnGestureEvent(const ui::GestureEventData& gesture) override;
diff --git a/src/core/renderer/content_renderer_client_qt.cpp b/src/core/renderer/content_renderer_client_qt.cpp
index 403448b91..35fc47eb0 100644
--- a/src/core/renderer/content_renderer_client_qt.cpp
+++ b/src/core/renderer/content_renderer_client_qt.cpp
@@ -137,7 +137,7 @@ void ContentRendererClientQt::RenderThreadStarted()
// Allow XMLHttpRequests from qrc to file.
blink::WebURL qrc(blink::KURL("qrc:"));
blink::WebString file(blink::WebString::FromASCII("file"));
- blink::WebSecurityPolicy::AddOriginAccessWhitelistEntry(qrc, file, blink::WebString(), true);
+ blink::WebSecurityPolicy::AddOriginAccessAllowListEntry(qrc, file, blink::WebString(), true);
}
void ContentRendererClientQt::RenderViewCreated(content::RenderView* render_view)
@@ -230,6 +230,7 @@ void ContentRendererClientQt::GetNavigationErrorStringsInternal(content::RenderF
error_page::LocalizedError::GetStrings(
error.reason(), error.domain(), error.url(), isPost,
error.stale_copy_in_cache(), false, false,
+ error_page::LocalizedError::OfflineContentOnNetErrorFeatureState::kDisabled,
locale, std::unique_ptr<error_page::ErrorPageParams>(), &errorStrings);
resourceId = IDR_NET_ERROR_HTML;
diff --git a/src/core/type_conversion.cpp b/src/core/type_conversion.cpp
index d35426ac3..16960f8a0 100644
--- a/src/core/type_conversion.cpp
+++ b/src/core/type_conversion.cpp
@@ -42,7 +42,9 @@
#include <content/public/common/favicon_url.h>
#include <ui/events/event_constants.h>
#include <ui/gfx/image/image_skia.h>
+
#include <QtCore/qcoreapplication.h>
+#include <QtGui/qmatrix4x4.h>
namespace QtWebEngineCore {
@@ -243,4 +245,15 @@ FaviconInfo toFaviconInfo(const content::FaviconURL &favicon_url)
return info;
}
+void convertToQt(const SkMatrix44 &m, QMatrix4x4 &c)
+{
+ QMatrix4x4 qtMatrix(
+ m.get(0, 0), m.get(0, 1), m.get(0, 2), m.get(0, 3),
+ m.get(1, 0), m.get(1, 1), m.get(1, 2), m.get(1, 3),
+ m.get(2, 0), m.get(2, 1), m.get(2, 2), m.get(2, 3),
+ m.get(3, 0), m.get(3, 1), m.get(3, 2), m.get(3, 3));
+ qtMatrix.optimize();
+ c = qtMatrix;
+}
+
} // namespace QtWebEngineCore
diff --git a/src/core/type_conversion.h b/src/core/type_conversion.h
index afc3c3336..96b4ecadc 100644
--- a/src/core/type_conversion.h
+++ b/src/core/type_conversion.h
@@ -45,7 +45,6 @@
#include <QDir>
#include <QIcon>
#include <QImage>
-#include <QMatrix4x4>
#include <QNetworkCookie>
#include <QRect>
#include <QString>
@@ -64,6 +63,8 @@
#include "ui/gfx/geometry/rect_f.h"
#include "url/gurl.h"
+QT_FORWARD_DECLARE_CLASS(QMatrix4x4)
+
namespace content {
struct FaviconURL;
}
@@ -198,16 +199,7 @@ SkBitmap toSkBitmap(const QImage &image);
QIcon toQIcon(const std::vector<SkBitmap> &bitmaps);
-inline QMatrix4x4 toQt(const SkMatrix44 &m)
-{
- QMatrix4x4 qtMatrix(
- m.get(0, 0), m.get(0, 1), m.get(0, 2), m.get(0, 3),
- m.get(1, 0), m.get(1, 1), m.get(1, 2), m.get(1, 3),
- m.get(2, 0), m.get(2, 1), m.get(2, 2), m.get(2, 3),
- m.get(3, 0), m.get(3, 1), m.get(3, 2), m.get(3, 3));
- qtMatrix.optimize();
- return qtMatrix;
-}
+void convertToQt(const SkMatrix44 &m, QMatrix4x4 &c);
inline QDateTime toQt(base::Time time)
{
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 0c29b3525..3cf9c0be9 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -43,15 +43,14 @@
#include "web_contents_adapter.h"
-#include "browser_accessibility_qt.h"
-#include "profile_adapter_client.h"
-#include "profile_adapter.h"
#include "devtools_frontend_qt.h"
#include "download_manager_delegate_qt.h"
#include "media_capture_devices_dispatcher.h"
#if QT_CONFIG(webengine_printing_and_pdf)
#include "printing/print_view_manager_qt.h"
#endif
+#include "profile_adapter_client.h"
+#include "profile_adapter.h"
#include "profile_qt.h"
#include "qwebenginecallback_p.h"
#include "render_view_observer_host_qt.h"
@@ -105,10 +104,14 @@
#include <QtCore/qelapsedtimer.h>
#include <QtCore/qmimedata.h>
#include <QtCore/qtemporarydir.h>
-#include <QtGui/qaccessible.h>
#include <QtGui/qdrag.h>
#include <QtGui/qpixmap.h>
+// Can't include headers as qaccessible.h conflicts with Chromium headers.
+namespace content {
+extern QAccessibleInterface *toQAccessibleInterface(BrowserAccessibility *acc);
+}
+
namespace QtWebEngineCore {
#define CHECK_INITIALIZED(return_value) \
@@ -117,7 +120,7 @@ namespace QtWebEngineCore {
#define CHECK_VALID_RENDER_WIDGET_HOST_VIEW(render_view_host) \
if (!render_view_host->IsRenderViewLive() && render_view_host->GetWidget()->GetView()) { \
- qWarning("Ignore navigation due to terminated render process with invalid RenderWidgetHostView."); \
+ LOG(WARNING) << "Ignore navigation due to terminated render process with invalid RenderWidgetHostView."; \
return; \
}
@@ -190,7 +193,7 @@ static QVariant fromJSValue(const base::Value *result)
}
case base::Value::Type::BINARY:
{
- QByteArray data(result->GetBlob().data(), result->GetBlob().size());
+ QByteArray data(reinterpret_cast<const char *>(result->GetBlob().data()), result->GetBlob().size());
ret.setValue(data);
break;
}
@@ -932,8 +935,8 @@ QAccessibleInterface *WebContentsAdapter::browserAccessible()
if (!manager) // FIXME!
return nullptr;
content::BrowserAccessibility *acc = manager->GetRoot();
- content::BrowserAccessibilityQt *accQt = static_cast<content::BrowserAccessibilityQt*>(acc);
- return accQt;
+
+ return content::toQAccessibleInterface(acc);
}
#endif // QT_NO_ACCESSIBILITY
diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
index 1ad18b3ea..f0aef72ee 100644
--- a/src/core/web_engine_context.cpp
+++ b/src/core/web_engine_context.cpp
@@ -46,6 +46,7 @@
#include "base/files/file_path.h"
#include "base/message_loop/message_loop.h"
#include "base/run_loop.h"
+#include "base/task/post_task.h"
#include "base/threading/thread_restrictions.h"
#include "cc/base/switches.h"
#if QT_CONFIG(webengine_printing_and_pdf)
@@ -53,10 +54,12 @@
#endif
#include "components/viz/common/features.h"
#include "components/web_cache/browser/web_cache_manager.h"
+#include "content/browser/browser_thread_impl.h"
#include "content/browser/devtools/devtools_http_handler.h"
#include "content/public/app/content_main.h"
#include "content/public/app/content_main_runner.h"
#include "content/public/browser/browser_main_runner.h"
+#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/plugin_service.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
@@ -355,6 +358,7 @@ WebEngineContext::WebEngineContext()
void WebEngineContext::initialize()
{
base::TaskScheduler::Create("Browser");
+ content::BrowserThreadImpl::CreateTaskExecutor();
m_contentRunner.reset(content::ContentMainRunner::Create());
m_browserRunner.reset(content::BrowserMainRunner::Create());
#ifdef Q_OS_LINUX
@@ -467,8 +471,6 @@ void WebEngineContext::initialize()
appendToFeatureSwitch(parsedCommandLine, switches::kDisableFeatures, features::kEnableSurfaceSynchronization.name);
// The video-capture service is not functioning at this moment (since 69)
appendToFeatureSwitch(parsedCommandLine, switches::kDisableFeatures, features::kMojoVideoCapture.name);
- // We do not yet support the internal video capture API.
- appendToFeatureSwitch(parsedCommandLine, switches::kDisableFeatures, features::kUseVideoCaptureApiForDevToolsSnapshots.name);
if (useEmbeddedSwitches) {
// embedded switches are based on the switches for Android, see content/browser/android/content_startup_flags.cc
diff --git a/src/core/web_engine_library_info.cpp b/src/core/web_engine_library_info.cpp
index 3899ced25..12ffd91e6 100644
--- a/src/core/web_engine_library_info.cpp
+++ b/src/core/web_engine_library_info.cpp
@@ -54,6 +54,7 @@
#include <QDir>
#include <QFileInfo>
#include <QLibraryInfo>
+#include <QLocale>
#include <QStandardPaths>
#include <QString>
diff --git a/tools/scripts/take_snapshot.py b/tools/scripts/take_snapshot.py
index 4bf4381cb..38915f2e5 100755
--- a/tools/scripts/take_snapshot.py
+++ b/tools/scripts/take_snapshot.py
@@ -72,6 +72,7 @@ def isInChromiumBlacklist(file_path):
not file_path.endswith('perftimer.h') and
not file_path.endswith('test-torque.tq') and
not 'ozone' in file_path and
+ not 'clang_coverage' in file_path and
not 'fontconfig_util_linux' in file_path and
not 'core/mojo/test/' in file_path and
not file_path.startswith('extensions/browser/'))
@@ -98,6 +99,7 @@ def isInChromiumBlacklist(file_path):
not 'media/webrtc/desktop_media_list.h' in file_path and
not 'media/webrtc/desktop_streams_registry.' in file_path and
not 'browser/net/chrome_mojo_proxy_resolver_factory.' in file_path and
+ not '/browser/accessibility/' in file_path and
not '/browser/custom_handlers/' in file_path and
not '/browser/devtools/' in file_path and
not '/browser/ui/webui/' in file_path and
@@ -342,6 +344,7 @@ def exportChromium():
files = listFilesInCurrentRepository()
# Add LASTCHANGE files which are not tracked by git.
files.append('build/util/LASTCHANGE')
+ files.append('build/util/LASTCHANGE.committime')
files.append('skia/ext/skia_commit_hash.h')
files.append('gpu/config/gpu_lists_version.h')
print 'copying files to ' + third_party_chromium
diff --git a/tools/scripts/version_resolver.py b/tools/scripts/version_resolver.py
index 27062fbcf..824c9412b 100644
--- a/tools/scripts/version_resolver.py
+++ b/tools/scripts/version_resolver.py
@@ -38,8 +38,8 @@ import json
import urllib2
import git_submodule as GitSubmodule
-chromium_version = '69.0.3497.113'
-chromium_branch = '3497'
+chromium_version = '70.0.3538.78'
+chromium_branch = '3538'
ninja_version = 'v1.8.2'
json_url = 'http://omahaproxy.appspot.com/all.json'