summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-12-19 12:37:02 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-25 14:41:06 +0000
commitf4a8ce98bd371acf1ca1eb2c58a8403e8795a670 (patch)
tree1f2305261b605aae31e5f8737ffcb275986baf1e
parent448478729cfdf5098dd24a6a870bacdbcd8cf9a7 (diff)
Adaptations for Chromium 63
Change-Id: I551c7091bbc0463bed94180313eb2bfe92f0ad84 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
-rw-r--r--config.tests/winversion/winversion.cpp4
-rw-r--r--mkspecs/features/platform.prf6
-rw-r--r--src/core/api/core_api.pro2
-rw-r--r--src/core/browser_accessibility_qt.cpp4
-rw-r--r--src/core/browser_context_qt.cpp5
-rw-r--r--src/core/browser_context_qt.h1
-rw-r--r--src/core/config/linux.pri7
-rw-r--r--src/core/content_browser_client_qt.cpp26
-rw-r--r--src/core/content_browser_client_qt.h18
-rw-r--r--src/core/core_project.pro1
-rw-r--r--src/core/delegated_frame_node.cpp120
-rw-r--r--src/core/delegated_frame_node.h32
-rw-r--r--src/core/devtools_frontend_qt.cpp16
-rw-r--r--src/core/javascript_dialog_controller.cpp8
-rw-r--r--src/core/javascript_dialog_controller_p.h5
-rw-r--r--src/core/javascript_dialog_manager_qt.cpp12
-rw-r--r--src/core/javascript_dialog_manager_qt.h8
-rw-r--r--src/core/native_web_keyboard_event_qt.cpp6
-rw-r--r--src/core/network_delegate_qt.cpp35
-rw-r--r--src/core/network_delegate_qt.h19
-rw-r--r--src/core/ozone_platform_qt.cpp1
-rw-r--r--src/core/print_view_manager_base_qt.cpp67
-rw-r--r--src/core/print_view_manager_base_qt.h11
-rw-r--r--src/core/print_view_manager_qt.cpp17
-rw-r--r--src/core/print_view_manager_qt.h2
-rw-r--r--src/core/qtwebengine_sources.gni6
-rw-r--r--src/core/render_view_observer_host_qt.cpp10
-rw-r--r--src/core/render_widget_host_view_qt.cpp4
-rw-r--r--src/core/render_widget_host_view_qt.h2
-rw-r--r--src/core/renderer_host/user_resource_controller_host.cpp18
-rw-r--r--src/core/renderer_host/web_channel_ipc_transport_host.cpp22
-rw-r--r--src/core/url_request_context_getter_qt.cpp26
-rw-r--r--src/core/web_contents_adapter.cpp10
-rw-r--r--src/core/web_contents_delegate_qt.cpp12
-rw-r--r--src/core/web_engine_context.cpp1
-rw-r--r--src/core/web_engine_settings.cpp4
-rw-r--r--src/core/yuv_video_node.cpp4
-rw-r--r--src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro3
-rw-r--r--src/webengine/api/qquickwebengineview.cpp10
-rw-r--r--tests/auto/widgets/qwebenginefaviconmanager/tst_qwebenginefaviconmanager.cpp2
-rwxr-xr-xtools/scripts/take_snapshot.py8
-rw-r--r--tools/scripts/version_resolver.py4
42 files changed, 307 insertions, 272 deletions
diff --git a/config.tests/winversion/winversion.cpp b/config.tests/winversion/winversion.cpp
index 3a7b67212..32748e02c 100644
--- a/config.tests/winversion/winversion.cpp
+++ b/config.tests/winversion/winversion.cpp
@@ -26,8 +26,8 @@
**
****************************************************************************/
-#if !defined(_MSC_FULL_VER) || _MSC_FULL_VER < 190024213
-#error VS 2015 Update 3 with Cumulative Servicing Release or higher is required
+#if !defined(__clang__) && _MSC_FULL_VER < 191125507
+#error VS 2017 Update 3.2 or higher is required
#endif
int main(int, char **)
diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
index bb171f753..7f6cc2e3e 100644
--- a/mkspecs/features/platform.prf
+++ b/mkspecs/features/platform.prf
@@ -34,7 +34,7 @@ defineTest(isPlatformSupported) {
return(false)
}
!qtConfig(webengine-winversion) {
- skipBuild("Needs VS 2015 Update 3 with Cumulative Servicing Release or higher")
+ skipBuild("Needs VS 2017 Update 3.2 with Cumulative Servicing Release or higher")
return(false)
}
} else:osx {
@@ -88,11 +88,9 @@ defineTest(isArchSupported) {
}
defineTest(isGCCVersionSupported) {
- # The below will work for gcc 4.7 and up and also match gcc 5
- greaterThan(QT_GCC_MINOR_VERSION, 6):return(true)
greaterThan(QT_GCC_MAJOR_VERSION, 4):return(true)
- skipBuild("Using gcc version "$$QT_GCC_MAJOR_VERSION"."$$QT_GCC_MINOR_VERSION", but at least gcc version 4.7 is required to build Qt WebEngine.")
+ skipBuild("Using gcc version "$$QT_GCC_MAJOR_VERSION"."$$QT_GCC_MINOR_VERSION", but at least gcc version 5 is required to build Qt WebEngine.")
return(false)
}
diff --git a/src/core/api/core_api.pro b/src/core/api/core_api.pro
index 0fea312f4..3763fb391 100644
--- a/src/core/api/core_api.pro
+++ b/src/core/api/core_api.pro
@@ -3,7 +3,7 @@ DESTDIR = $$OUT_PWD/$$getConfigDir()
TEMPLATE = lib
-CONFIG += staticlib c++11
+CONFIG += staticlib c++14
QT += network core-private
QT_PRIVATE += webenginecoreheaders-private
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp
index 1c96ac538..8441fdad5 100644
--- a/src/core/browser_accessibility_qt.cpp
+++ b/src/core/browser_accessibility_qt.cpp
@@ -462,8 +462,6 @@ QAccessible::State BrowserAccessibilityQt::state() const
state.linked = true;
if (s & (1 << ui::AX_STATE_MULTISELECTABLE))
state.multiSelectable = true;
- if (s & (1 << ui::AX_STATE_OFFSCREEN))
- state.offscreen = true;
if (s & (1 << ui::AX_STATE_PROTECTED))
{} // FIXME
if (s & (1 << ui::AX_STATE_REQUIRED))
@@ -479,6 +477,8 @@ QAccessible::State BrowserAccessibilityQt::state() const
if (s & (1 << ui::AX_STATE_VISITED))
{} // FIXME
+ if (IsOffscreen())
+ state.offscreen = true;
if (manager()->GetFocus() == this)
state.focused = true;
if (GetBoolAttribute(ui::AX_ATTR_BUSY))
diff --git a/src/core/browser_context_qt.cpp b/src/core/browser_context_qt.cpp
index 8b8fbf69e..af8655b83 100644
--- a/src/core/browser_context_qt.cpp
+++ b/src/core/browser_context_qt.cpp
@@ -177,6 +177,11 @@ std::unique_ptr<content::ZoomLevelDelegate> BrowserContextQt::CreateZoomLevelDel
return nullptr;
}
+content::BackgroundFetchDelegate* BrowserContextQt::GetBackgroundFetchDelegate()
+{
+ return nullptr;
+}
+
content::BackgroundSyncController* BrowserContextQt::GetBackgroundSyncController()
{
return nullptr;
diff --git a/src/core/browser_context_qt.h b/src/core/browser_context_qt.h
index e7002c012..58bc75d5b 100644
--- a/src/core/browser_context_qt.h
+++ b/src/core/browser_context_qt.h
@@ -90,6 +90,7 @@ public:
content::URLRequestInterceptorScopedVector request_interceptors) override;
std::unique_ptr<content::ZoomLevelDelegate> CreateZoomLevelDelegate(const base::FilePath& partition_path) override;
content::PermissionManager *GetPermissionManager() override;
+ content::BackgroundFetchDelegate* GetBackgroundFetchDelegate() override;
content::BackgroundSyncController* GetBackgroundSyncController() override;
content::BrowsingDataRemoverDelegate *GetBrowsingDataRemoverDelegate() override;
diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
index 6f7b27f10..cdb723b79 100644
--- a/src/core/config/linux.pri
+++ b/src/core/config/linux.pri
@@ -8,9 +8,7 @@ gn_args += \
use_gio=false \
use_gnome_keyring=false \
use_kerberos=false \
- linux_use_bundled_binutils=false \
- use_nss_certs=true \
- use_openssl_certs=false
+ linux_use_bundled_binutils=false
gcc:!clang: greaterThan(QT_GCC_MAJOR_VERSION, 5): gn_args += no_delete_null_pointer_checks=true
@@ -95,7 +93,6 @@ host_build {
gn_args += host_cpu=\"$$GN_HOST_CPU\"
# Don't bother trying to use system libraries in this case
gn_args += use_glib=false
- gn_args += use_system_libffi=false
} else {
gn_args += custom_toolchain=\"$$QTWEBENGINE_OUT_ROOT/src/toolchain:target\"
gn_args += host_toolchain=\"$$QTWEBENGINE_OUT_ROOT/src/toolchain:host\"
@@ -136,8 +133,6 @@ host_build {
} else {
gn_args += use_alsa=false
}
- packagesExist(libffi): gn_args += use_system_libffi=true
- else: gn_args += use_system_libffi=false
!packagesExist(libpci): gn_args += use_libpci=false
!packagesExist(xscrnsaver): gn_args += use_xscrnsaver=false
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index 7a53e28c7..446764f19 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -50,6 +50,7 @@
#endif
#endif
#include "content/browser/renderer_host/render_view_host_delegate.h"
+#include "content/common/url_schemes.h"
#include "content/public/browser/browser_main_parts.h"
#include "content/public/browser/child_process_security_policy.h"
#include "content/public/browser/client_certificate_delegate.h"
@@ -388,7 +389,7 @@ void ShareGroupQtQuick::AboutToAddFirstContext()
if (!shareContext) {
qFatal("QWebEngine: OpenGL resource sharing is not set up in QtQuick. Please make sure to call QtWebEngine::initialize() in your main() function.");
}
- m_shareContextQtQuick = make_scoped_refptr(new QtShareGLContext(shareContext));
+ m_shareContextQtQuick = new QtShareGLContext(shareContext);
#endif
}
@@ -472,18 +473,17 @@ void ContentBrowserClientQt::GetQuotaSettings(content::BrowserContext* context,
}
void ContentBrowserClientQt::AllowCertificateError(content::WebContents *webContents,
- int cert_error,
- const net::SSLInfo& ssl_info,
- const GURL& request_url,
- content::ResourceType resource_type,
- bool overridable,
- bool strict_enforcement,
- bool expired_previous_decision,
- const base::Callback<void(content::CertificateRequestResultType)>& callback)
+ int cert_error,
+ const net::SSLInfo &ssl_info,
+ const GURL &request_url,
+ content::ResourceType resource_type,
+ bool strict_enforcement,
+ bool expired_previous_decision,
+ const base::Callback<void(content::CertificateRequestResultType)> &callback)
{
WebContentsDelegateQt* contentsDelegate = static_cast<WebContentsDelegateQt*>(webContents->GetDelegate());
- QSharedPointer<CertificateErrorController> errorController(new CertificateErrorController(new CertificateErrorControllerPrivate(cert_error, ssl_info, request_url, resource_type, overridable, strict_enforcement, callback)));
+ QSharedPointer<CertificateErrorController> errorController(new CertificateErrorController(new CertificateErrorControllerPrivate(cert_error, ssl_info, request_url, resource_type, strict_enforcement, strict_enforcement, callback)));
contentsDelegate->allowCertificateError(errorController);
}
@@ -514,8 +514,14 @@ void ContentBrowserClientQt::AppendExtraCommandLineSwitches(base::CommandLine* c
command_line->AppendSwitchASCII(switches::kLang, GetApplicationLocale());
}
+void ContentBrowserClientQt::GetAdditionalWebUISchemes(std::vector<std::string>* additional_schemes)
+{
+ additional_schemes->push_back(content::kChromeDevToolsScheme);
+}
+
void ContentBrowserClientQt::GetAdditionalViewSourceSchemes(std::vector<std::string>* additional_schemes)
{
+ GetAdditionalWebUISchemes(additional_schemes);
additional_schemes->push_back(kQrcSchemeQt);
}
diff --git a/src/core/content_browser_client_qt.h b/src/core/content_browser_client_qt.h
index 736519036..094ad6549 100644
--- a/src/core/content_browser_client_qt.h
+++ b/src/core/content_browser_client_qt.h
@@ -95,15 +95,14 @@ public:
content::StoragePartition *partition,
storage::OptionalQuotaSettingsCallback callback) override;
void OverrideWebkitPrefs(content::RenderViewHost *, content::WebPreferences *) override;
- void AllowCertificateError(content::WebContents* web_contents,
- int cert_error,
- const net::SSLInfo& ssl_info,
- const GURL& request_url,
- content::ResourceType resource_type,
- bool overridable,
- bool strict_enforcement,
- bool expired_previous_decision,
- const base::Callback<void(content::CertificateRequestResultType)>& callback) override;
+ void AllowCertificateError(content::WebContents *web_contents,
+ int cert_error,
+ const net::SSLInfo &ssl_info,
+ const GURL &request_url,
+ content::ResourceType resource_type,
+ bool strict_enforcement,
+ bool expired_previous_decision,
+ const base::Callback<void(content::CertificateRequestResultType)> &callback) override;
void SelectClientCertificate(content::WebContents* web_contents,
net::SSLCertRequestInfo* cert_request_info,
net::ClientCertIdentityList client_certs,
@@ -114,6 +113,7 @@ public:
std::string GetAcceptLangs(content::BrowserContext* context) override;
void AppendExtraCommandLineSwitches(base::CommandLine* command_line, int child_process_id) override;
void GetAdditionalViewSourceSchemes(std::vector<std::string>* additional_schemes) override;
+ void GetAdditionalWebUISchemes(std::vector<std::string>* additional_schemes) override;
void BindInterfaceRequestFromFrame(content::RenderFrameHost* render_frame_host,
const std::string& interface_name,
diff --git a/src/core/core_project.pro b/src/core/core_project.pro
index c046ce1ff..2d2bef60d 100644
--- a/src/core/core_project.pro
+++ b/src/core/core_project.pro
@@ -11,6 +11,7 @@ linking_pri = $$OUT_PWD/$$getConfigDir()/$${TARGET}.pri
CHROMIUM_SRC_DIR = $$QTWEBENGINE_ROOT/$$getChromiumSrcDir()
INCLUDEPATH += $$CHROMIUM_SRC_DIR \
+ $$CHROMIUM_SRC_DIR/third_party/WebKit/Source \
$$OUT_PWD/$$getConfigDir()/gen
SOURCES += $$NINJA_SOURCES
diff --git a/src/core/delegated_frame_node.cpp b/src/core/delegated_frame_node.cpp
index 8d400882d..149bd3b5e 100644
--- a/src/core/delegated_frame_node.cpp
+++ b/src/core/delegated_frame_node.cpp
@@ -58,19 +58,19 @@
#include "base/message_loop/message_loop.h"
#include "base/threading/thread_task_runner_handle.h"
#include "cc/base/math_util.h"
-#include "cc/output/bsp_tree.h"
-#include "cc/output/compositor_frame.h"
-#include "cc/output/compositor_frame_metadata.h"
-#include "cc/quads/debug_border_draw_quad.h"
-#include "cc/quads/draw_quad.h"
-#include "cc/quads/render_pass_draw_quad.h"
-#include "cc/quads/solid_color_draw_quad.h"
-#include "cc/quads/stream_video_draw_quad.h"
-#include "cc/quads/texture_draw_quad.h"
-#include "cc/quads/tile_draw_quad.h"
-#include "cc/quads/yuv_video_draw_quad.h"
+#include "components/viz/common/quads/compositor_frame.h"
+#include "components/viz/common/quads/compositor_frame_metadata.h"
+#include "components/viz/common/quads/debug_border_draw_quad.h"
+#include "components/viz/common/quads/draw_quad.h"
+#include "components/viz/common/quads/render_pass_draw_quad.h"
+#include "components/viz/common/quads/solid_color_draw_quad.h"
+#include "components/viz/common/quads/stream_video_draw_quad.h"
+#include "components/viz/common/quads/texture_draw_quad.h"
+#include "components/viz/common/quads/tile_draw_quad.h"
+#include "components/viz/common/quads/yuv_video_draw_quad.h"
#include "components/viz/common/resources/returned_resource.h"
#include "components/viz/common/resources/transferable_resource.h"
+#include "components/viz/service/display/bsp_tree.h"
#include "components/viz/service/display_embedder/server_shared_bitmap_manager.h"
#include "gpu/command_buffer/service/mailbox_manager.h"
#include "ui/gl/gl_context.h"
@@ -751,14 +751,14 @@ void DelegatedFrameNode::preprocess()
}
}
-static YUVVideoMaterial::ColorSpace toQt(cc::YUVVideoDrawQuad::ColorSpace color_space)
+static YUVVideoMaterial::ColorSpace toQt(viz::YUVVideoDrawQuad::ColorSpace color_space)
{
switch (color_space) {
- case cc::YUVVideoDrawQuad::REC_601:
+ case viz::YUVVideoDrawQuad::REC_601:
return YUVVideoMaterial::REC_601;
- case cc::YUVVideoDrawQuad::REC_709:
+ case viz::YUVVideoDrawQuad::REC_709:
return YUVVideoMaterial::REC_709;
- case cc::YUVVideoDrawQuad::JPEG:
+ case viz::YUVVideoDrawQuad::JPEG:
return YUVVideoMaterial::JPEG;
}
Q_UNREACHABLE();
@@ -779,8 +779,8 @@ static bool areSharedQuadStatesEqual(const viz::SharedQuadState *layerState,
// Compares if the frame data that we got from the Chromium Compositor is
// *structurally* equivalent to the one of the previous frame.
// If it is, we will just reuse and update the old nodes where necessary.
-static bool areRenderPassStructuresEqual(cc::CompositorFrame *frameData,
- cc::CompositorFrame *previousFrameData)
+static bool areRenderPassStructuresEqual(viz::CompositorFrame *frameData,
+ viz::CompositorFrame *previousFrameData)
{
if (!previousFrameData)
return false;
@@ -789,8 +789,8 @@ static bool areRenderPassStructuresEqual(cc::CompositorFrame *frameData,
return false;
for (unsigned i = 0; i < frameData->render_pass_list.size(); ++i) {
- cc::RenderPass *newPass = frameData->render_pass_list.at(i).get();
- cc::RenderPass *prevPass = previousFrameData->render_pass_list.at(i).get();
+ viz::RenderPass *newPass = frameData->render_pass_list.at(i).get();
+ viz::RenderPass *prevPass = previousFrameData->render_pass_list.at(i).get();
if (newPass->id != prevPass->id)
return false;
@@ -798,22 +798,22 @@ static bool areRenderPassStructuresEqual(cc::CompositorFrame *frameData,
if (newPass->quad_list.size() != prevPass->quad_list.size())
return false;
- cc::QuadList::ConstBackToFrontIterator it = newPass->quad_list.BackToFrontBegin();
- cc::QuadList::ConstBackToFrontIterator end = newPass->quad_list.BackToFrontEnd();
- cc::QuadList::ConstBackToFrontIterator prevIt = prevPass->quad_list.BackToFrontBegin();
- cc::QuadList::ConstBackToFrontIterator prevEnd = prevPass->quad_list.BackToFrontEnd();
+ viz::QuadList::ConstBackToFrontIterator it = newPass->quad_list.BackToFrontBegin();
+ viz::QuadList::ConstBackToFrontIterator end = newPass->quad_list.BackToFrontEnd();
+ viz::QuadList::ConstBackToFrontIterator prevIt = prevPass->quad_list.BackToFrontBegin();
+ viz::QuadList::ConstBackToFrontIterator prevEnd = prevPass->quad_list.BackToFrontEnd();
for (; it != end && prevIt != prevEnd; ++it, ++prevIt) {
- const cc::DrawQuad *quad = *it;
- const cc::DrawQuad *prevQuad = *prevIt;
+ const viz::DrawQuad *quad = *it;
+ const viz::DrawQuad *prevQuad = *prevIt;
if (!areSharedQuadStatesEqual(quad->shared_quad_state, prevQuad->shared_quad_state))
return false;
if (quad->material != prevQuad->material)
return false;
#ifndef QT_NO_OPENGL
- if (quad->material == cc::DrawQuad::YUV_VIDEO_CONTENT)
+ if (quad->material == viz::DrawQuad::YUV_VIDEO_CONTENT)
return false;
#ifdef GL_OES_EGL_image_external
- if (quad->material == cc::DrawQuad::STREAM_VIDEO_CONTENT)
+ if (quad->material == viz::DrawQuad::STREAM_VIDEO_CONTENT)
return false;
#endif // GL_OES_EGL_image_external
#endif // QT_NO_OPENGL
@@ -828,7 +828,7 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData,
RenderWidgetHostViewQtDelegate *apiDelegate)
{
m_chromiumCompositorData = chromiumCompositorData;
- cc::CompositorFrame* frameData = &m_chromiumCompositorData->frameData;
+ viz::CompositorFrame* frameData = &m_chromiumCompositorData->frameData;
if (frameData->render_pass_list.empty())
return;
@@ -873,7 +873,7 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData,
m_sceneGraphNodes.empty() ||
viewportSize != m_previousViewportSize;
- m_chromiumCompositorData->previousFrameData = cc::CompositorFrame();
+ m_chromiumCompositorData->previousFrameData = viz::CompositorFrame();
SGObjects previousSGObjects;
QVector<QSharedPointer<QSGTexture> > textureStrongRefs;
if (buildNewTree) {
@@ -897,11 +897,11 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData,
// parent, with the last one in the list being the root RenderPass, the one
// that we displayed to the user.
// All RenderPasses except the last one are rendered to an FBO.
- cc::RenderPass *rootRenderPass = frameData->render_pass_list.back().get();
+ viz::RenderPass *rootRenderPass = frameData->render_pass_list.back().get();
gfx::Rect viewportRect(toGfx(viewportSize));
for (unsigned i = 0; i < frameData->render_pass_list.size(); ++i) {
- cc::RenderPass *pass = frameData->render_pass_list.at(i).get();
+ viz::RenderPass *pass = frameData->render_pass_list.at(i).get();
QSGNode *renderPassParent = 0;
gfx::Rect scissorRect;
@@ -944,7 +944,7 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData,
if (buildNewTree)
renderPassChain = buildRenderPassChain(renderPassParent);
- std::deque<std::unique_ptr<cc::DrawPolygon>> polygonQueue;
+ base::circular_deque<std::unique_ptr<viz::DrawPolygon>> polygonQueue;
int nextPolygonId = 0;
int currentSortingContextId = 0;
const viz::SharedQuadState *currentLayerState = nullptr;
@@ -952,7 +952,7 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData,
const auto quadListBegin = pass->quad_list.BackToFrontBegin();
const auto quadListEnd = pass->quad_list.BackToFrontEnd();
for (auto it = quadListBegin; it != quadListEnd; ++it) {
- const cc::DrawQuad *quad = *it;
+ const viz::DrawQuad *quad = *it;
const viz::SharedQuadState *quadState = quad->shared_quad_state;
gfx::Rect targetRect =
@@ -973,8 +973,8 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData,
}
if (currentSortingContextId != 0) {
- std::unique_ptr<cc::DrawPolygon> polygon(
- new cc::DrawPolygon(
+ std::unique_ptr<viz::DrawPolygon> polygon(
+ new viz::DrawPolygon(
quad,
gfx::RectF(quad->visible_rect),
quadState->quad_to_target_transform,
@@ -1008,7 +1008,7 @@ void DelegatedFrameNode::commit(ChromiumCompositorData *chromiumCompositorData,
}
void DelegatedFrameNode::flushPolygons(
- std::deque<std::unique_ptr<cc::DrawPolygon>> *polygonQueue,
+ base::circular_deque<std::unique_ptr<viz::DrawPolygon>> *polygonQueue,
QSGNode *renderPassChain,
DelegatedNodeTreeHandler *nodeHandler,
QHash<unsigned, QSharedPointer<ResourceHolder> > &resourceCandidates,
@@ -1017,8 +1017,8 @@ void DelegatedFrameNode::flushPolygons(
if (polygonQueue->empty())
return;
- const auto actionHandler = [&](cc::DrawPolygon *polygon) {
- const cc::DrawQuad *quad = polygon->original_ref();
+ const auto actionHandler = [&](viz::DrawPolygon *polygon) {
+ const viz::DrawQuad *quad = polygon->original_ref();
const viz::SharedQuadState *quadState = quad->shared_quad_state;
QSGNode *currentLayerChain = nullptr;
@@ -1034,17 +1034,17 @@ void DelegatedFrameNode::flushPolygons(
nodeHandler, resourceCandidates, apiDelegate);
};
- cc::BspTree(polygonQueue).TraverseWithActionHandler(&actionHandler);
+ viz::BspTree(polygonQueue).TraverseWithActionHandler(&actionHandler);
}
void DelegatedFrameNode::handlePolygon(
- const cc::DrawPolygon *polygon,
+ const viz::DrawPolygon *polygon,
QSGNode *currentLayerChain,
DelegatedNodeTreeHandler *nodeHandler,
QHash<unsigned, QSharedPointer<ResourceHolder> > &resourceCandidates,
RenderWidgetHostViewQtDelegate *apiDelegate)
{
- const cc::DrawQuad *quad = polygon->original_ref();
+ const viz::DrawQuad *quad = polygon->original_ref();
if (!polygon->is_split()) {
handleQuad(quad, currentLayerChain,
@@ -1059,7 +1059,7 @@ void DelegatedFrameNode::handlePolygon(
}
void DelegatedFrameNode::handleClippedQuad(
- const cc::DrawQuad *quad,
+ const viz::DrawQuad *quad,
const gfx::QuadF &clipRegion,
QSGNode *currentLayerChain,
DelegatedNodeTreeHandler *nodeHandler,
@@ -1085,15 +1085,15 @@ void DelegatedFrameNode::handleClippedQuad(
}
void DelegatedFrameNode::handleQuad(
- const cc::DrawQuad *quad,
+ const viz::DrawQuad *quad,
QSGNode *currentLayerChain,
DelegatedNodeTreeHandler *nodeHandler,
QHash<unsigned, QSharedPointer<ResourceHolder> > &resourceCandidates,
RenderWidgetHostViewQtDelegate *apiDelegate)
{
switch (quad->material) {
- case cc::DrawQuad::RENDER_PASS: {
- const cc::RenderPassDrawQuad *renderPassQuad = cc::RenderPassDrawQuad::MaterialCast(quad);
+ case viz::DrawQuad::RENDER_PASS: {
+ const viz::RenderPassDrawQuad *renderPassQuad = viz::RenderPassDrawQuad::MaterialCast(quad);
QSGTexture *layer =
findRenderPassLayer(renderPassQuad->render_pass_id, m_sgObjects.renderPassLayers).data();
@@ -1101,8 +1101,8 @@ void DelegatedFrameNode::handleQuad(
nodeHandler->setupRenderPassNode(layer, toQt(quad->rect), currentLayerChain);
break;
}
- case cc::DrawQuad::TEXTURE_CONTENT: {
- const cc::TextureDrawQuad *tquad = cc::TextureDrawQuad::MaterialCast(quad);
+ case viz::DrawQuad::TEXTURE_CONTENT: {
+ const viz::TextureDrawQuad *tquad = viz::TextureDrawQuad::MaterialCast(quad);
ResourceHolder *resource = findAndHoldResource(tquad->resource_id(), resourceCandidates);
QSGTexture *texture =
initAndHoldTexture(resource, quad->ShouldDrawWithBlending(), apiDelegate);
@@ -1121,8 +1121,8 @@ void DelegatedFrameNode::handleQuad(
currentLayerChain);
break;
}
- case cc::DrawQuad::SOLID_COLOR: {
- const cc::SolidColorDrawQuad *scquad = cc::SolidColorDrawQuad::MaterialCast(quad);
+ case viz::DrawQuad::SOLID_COLOR: {
+ const viz::SolidColorDrawQuad *scquad = viz::SolidColorDrawQuad::MaterialCast(quad);
// Qt only supports MSAA and this flag shouldn't be needed.
// If we ever want to use QSGRectangleNode::setAntialiasing for this we should
// try to see if we can do something similar for tile quads first.
@@ -1131,8 +1131,8 @@ void DelegatedFrameNode::handleQuad(
break;
#ifndef QT_NO_OPENGL
}
- case cc::DrawQuad::DEBUG_BORDER: {
- const cc::DebugBorderDrawQuad *dbquad = cc::DebugBorderDrawQuad::MaterialCast(quad);
+ case viz::DrawQuad::DEBUG_BORDER: {
+ const viz::DebugBorderDrawQuad *dbquad = viz::DebugBorderDrawQuad::MaterialCast(quad);
QSGGeometry *geometry = new QSGGeometry(QSGGeometry::defaultAttributes_Point2D(), 4);
geometry->setDrawingMode(GL_LINE_LOOP);
@@ -1154,8 +1154,8 @@ void DelegatedFrameNode::handleQuad(
break;
#endif
}
- case cc::DrawQuad::TILED_CONTENT: {
- const cc::TileDrawQuad *tquad = cc::TileDrawQuad::MaterialCast(quad);
+ case viz::DrawQuad::TILED_CONTENT: {
+ const viz::TileDrawQuad *tquad = viz::TileDrawQuad::MaterialCast(quad);
ResourceHolder *resource = findAndHoldResource(tquad->resource_id(), resourceCandidates);
nodeHandler->setupTiledContentNode(
initAndHoldTexture(resource, quad->ShouldDrawWithBlending(), apiDelegate),
@@ -1166,8 +1166,8 @@ void DelegatedFrameNode::handleQuad(
break;
#ifndef QT_NO_OPENGL
}
- case cc::DrawQuad::YUV_VIDEO_CONTENT: {
- const cc::YUVVideoDrawQuad *vquad = cc::YUVVideoDrawQuad::MaterialCast(quad);
+ case viz::DrawQuad::YUV_VIDEO_CONTENT: {
+ const viz::YUVVideoDrawQuad *vquad = viz::YUVVideoDrawQuad::MaterialCast(quad);
ResourceHolder *yResource =
findAndHoldResource(vquad->y_plane_resource_id(), resourceCandidates);
ResourceHolder *uResource =
@@ -1192,8 +1192,8 @@ void DelegatedFrameNode::handleQuad(
break;
#ifdef GL_OES_EGL_image_external
}
- case cc::DrawQuad::STREAM_VIDEO_CONTENT: {
- const cc::StreamVideoDrawQuad *squad = cc::StreamVideoDrawQuad::MaterialCast(quad);
+ case viz::DrawQuad::STREAM_VIDEO_CONTENT: {
+ const viz::StreamVideoDrawQuad *squad = viz::StreamVideoDrawQuad::MaterialCast(quad);
ResourceHolder *resource = findAndHoldResource(squad->resource_id(), resourceCandidates);
MailboxTexture *texture = static_cast<MailboxTexture *>(
initAndHoldTexture(resource, quad->ShouldDrawWithBlending()));
@@ -1206,7 +1206,7 @@ void DelegatedFrameNode::handleQuad(
#endif // GL_OES_EGL_image_external
#endif // QT_NO_OPENGL
}
- case cc::DrawQuad::SURFACE_CONTENT:
+ case viz::DrawQuad::SURFACE_CONTENT:
Q_UNREACHABLE();
default:
qWarning("Unimplemented quad material: %d", quad->material);
@@ -1223,13 +1223,13 @@ ResourceHolder *DelegatedFrameNode::findAndHoldResource(unsigned resourceId, QHa
return resource.data();
}
-void DelegatedFrameNode::holdResources(const cc::DrawQuad *quad, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates)
+void DelegatedFrameNode::holdResources(const viz::DrawQuad *quad, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates)
{
for (auto resource : quad->resources)
findAndHoldResource(resource, candidates);
}
-void DelegatedFrameNode::holdResources(const cc::RenderPass *pass, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates)
+void DelegatedFrameNode::holdResources(const viz::RenderPass *pass, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates)
{
for (const auto &quad : pass->quad_list)
holdResources(quad, candidates);
diff --git a/src/core/delegated_frame_node.h b/src/core/delegated_frame_node.h
index 21670e40f..5d967841d 100644
--- a/src/core/delegated_frame_node.h
+++ b/src/core/delegated_frame_node.h
@@ -40,8 +40,9 @@
#ifndef DELEGATED_FRAME_NODE_H
#define DELEGATED_FRAME_NODE_H
-#include "cc/output/compositor_frame.h"
-#include "cc/quads/render_pass.h"
+#include "base/containers/circular_deque.h"
+#include "components/viz/common/quads/compositor_frame.h"
+#include "components/viz/common/quads/render_pass.h"
#include "components/viz/common/resources/transferable_resource.h"
#include "gpu/command_buffer/service/sync_point_manager.h"
#include "ui/gl/gl_fence.h"
@@ -59,16 +60,16 @@ QT_BEGIN_NAMESPACE
class QSGLayer;
QT_END_NAMESPACE
-namespace cc {
+namespace gfx {
+class QuadF;
+}
+
+namespace viz {
class DelegatedFrameData;
class DrawQuad;
class DrawPolygon;
}
-namespace gfx {
-class QuadF;
-}
-
namespace QtWebEngineCore {
class DelegatedNodeTreeHandler;
@@ -81,8 +82,8 @@ class ChromiumCompositorData : public QSharedData {
public:
ChromiumCompositorData() : frameDevicePixelRatio(1) { }
QHash<unsigned, QSharedPointer<ResourceHolder> > resourceHolders;
- cc::CompositorFrame frameData;
- cc::CompositorFrame previousFrameData;
+ viz::CompositorFrame frameData;
+ viz::CompositorFrame previousFrameData;
qreal frameDevicePixelRatio;
};
@@ -94,27 +95,26 @@ public:
void commit(ChromiumCompositorData *chromiumCompositorData, std::vector<viz::ReturnedResource> *resourcesToRelease, RenderWidgetHostViewQtDelegate *apiDelegate);
private:
- void flushPolygons(
- std::deque<std::unique_ptr<cc::DrawPolygon>> *polygonQueue,
+ void flushPolygons(base::circular_deque<std::unique_ptr<viz::DrawPolygon> > *polygonQueue,
QSGNode *renderPassChain,
DelegatedNodeTreeHandler *nodeHandler,
QHash<unsigned, QSharedPointer<ResourceHolder> > &resourceCandidates,
RenderWidgetHostViewQtDelegate *apiDelegate);
void handlePolygon(
- const cc::DrawPolygon *polygon,
+ const viz::DrawPolygon *polygon,
QSGNode *currentLayerChain,
DelegatedNodeTreeHandler *nodeHandler,
QHash<unsigned, QSharedPointer<ResourceHolder> > &resourceCandidates,
RenderWidgetHostViewQtDelegate *apiDelegate);
void handleClippedQuad(
- const cc::DrawQuad *quad,
+ const viz::DrawQuad *quad,
const gfx::QuadF &clipRegion,
QSGNode *currentLayerChain,
DelegatedNodeTreeHandler *nodeHandler,
QHash<unsigned, QSharedPointer<ResourceHolder> > &resourceCandidates,
RenderWidgetHostViewQtDelegate *apiDelegate);
void handleQuad(
- const cc::DrawQuad *quad,
+ const viz::DrawQuad *quad,
QSGNode *currentLayerChain,
DelegatedNodeTreeHandler *nodeHandler,
QHash<unsigned, QSharedPointer<ResourceHolder> > &resourceCandidates,
@@ -128,8 +128,8 @@ private:
static void unlockQt(DelegatedFrameNode *frameNode);
ResourceHolder *findAndHoldResource(unsigned resourceId, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates);
- void holdResources(const cc::DrawQuad *quad, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates);
- void holdResources(const cc::RenderPass *pass, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates);
+ void holdResources(const viz::DrawQuad *quad, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates);
+ void holdResources(const viz::RenderPass *pass, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates);
QSGTexture *initAndHoldTexture(ResourceHolder *resource, bool quadIsAllOpaque, RenderWidgetHostViewQtDelegate *apiDelegate = 0);
QExplicitlySharedDataPointer<ChromiumCompositorData> m_chromiumCompositorData;
diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp
index 7330090e7..f715eefbf 100644
--- a/src/core/devtools_frontend_qt.cpp
+++ b/src/core/devtools_frontend_qt.cpp
@@ -123,9 +123,9 @@ int ResponseWriter::Write(net::IOBuffer *buffer, int num_bytes, const net::Compl
content::BrowserThread::PostTask(
content::BrowserThread::UI, FROM_HERE,
- base::Bind(&DevToolsFrontendQt::CallClientFunction, shell_devtools_,
- "DevToolsAPI.streamWrite", base::Owned(id),
- base::Owned(chunkValue), nullptr));
+ base::BindOnce(&DevToolsFrontendQt::CallClientFunction,
+ shell_devtools_, "DevToolsAPI.streamWrite",
+ base::Owned(id), base::Owned(chunkValue), nullptr));
return num_bytes;
}
@@ -259,6 +259,8 @@ void DevToolsFrontendQt::DocumentAvailableInMainFrame()
scoped_refptr<content::DevToolsAgentHost> agent_host =
content::DevToolsAgentHost::GetOrCreateFor(m_inspectedContents);
if (agent_host != m_agentHost) {
+ if (m_agentHost)
+ m_agentHost->DetachClient(this);
m_agentHost = agent_host;
m_agentHost->AttachClient(this);
if (m_inspect_element_at_x != -1) {
@@ -274,8 +276,10 @@ void DevToolsFrontendQt::WebContentsDestroyed()
if (m_inspectedContents)
static_cast<WebContentsDelegateQt *>(m_inspectedContents->GetDelegate())->webContentsAdapter()->devToolsFrontendDestroyed(this);
- if (m_agentHost)
+ if (m_agentHost) {
m_agentHost->DetachClient(this);
+ m_agentHost = nullptr;
+ }
delete this;
}
@@ -327,8 +331,6 @@ void DevToolsFrontendQt::HandleMessageFromDevToolsFrontend(const std::string &me
dict->GetList("params", &params);
if (method == "dispatchProtocolMessage" && params && params->GetSize() == 1) {
- if (!m_agentHost || !m_agentHost->IsAttached())
- return;
std::string protocol_message;
if (!params->GetString(0, &protocol_message))
return;
@@ -386,7 +388,7 @@ void DevToolsFrontendQt::HandleMessageFromDevToolsFrontend(const std::string &me
fetcher->Start();
return;
} else if (method == "getPreferences") {
- m_preferences = *m_prefStore->GetValues();
+ m_preferences = std::move(*m_prefStore->GetValues());
SendMessageAck(request_id, &m_preferences);
return;
} else if (method == "setPreference") {
diff --git a/src/core/javascript_dialog_controller.cpp b/src/core/javascript_dialog_controller.cpp
index 5b695b6cf..86f5b9795 100644
--- a/src/core/javascript_dialog_controller.cpp
+++ b/src/core/javascript_dialog_controller.cpp
@@ -40,7 +40,7 @@
#include "javascript_dialog_controller.h"
#include "javascript_dialog_controller_p.h"
-#include"javascript_dialog_manager_qt.h"
+#include "javascript_dialog_manager_qt.h"
#include "type_conversion.h"
namespace QtWebEngineCore {
@@ -51,18 +51,18 @@ void JavaScriptDialogControllerPrivate::dialogFinished(bool accepted, const base
// but hold a shared pointer so the dialog does not get deleted prematurely when running in-process.
QSharedPointer<JavaScriptDialogController> dialog = JavaScriptDialogManagerQt::GetInstance()->takeDialogForContents(contents);
- callback.Run(accepted, promptValue);
+ std::move(callback).Run(accepted, promptValue);
}
JavaScriptDialogControllerPrivate::JavaScriptDialogControllerPrivate(WebContentsAdapterClient::JavascriptDialogType t, const QString &msg, const QString &prompt
, const QString &title, const QUrl &securityOrigin
- , const content::JavaScriptDialogManager::DialogClosedCallback &cb, content::WebContents *c)
+ , content::JavaScriptDialogManager::DialogClosedCallback &&cb, content::WebContents *c)
: type(t)
, message(msg)
, defaultPrompt(prompt)
, securityOrigin(securityOrigin)
, title(title)
- , callback(cb)
+ , callback(std::move(cb))
, contents(c)
{
}
diff --git a/src/core/javascript_dialog_controller_p.h b/src/core/javascript_dialog_controller_p.h
index 45c5a9fdd..ab7b09268 100644
--- a/src/core/javascript_dialog_controller_p.h
+++ b/src/core/javascript_dialog_controller_p.h
@@ -51,8 +51,11 @@
// We mean it.
//
+#include "base/callback.h"
#include "content/public/browser/javascript_dialog_manager.h"
+
#include "web_contents_adapter_client.h"
+
#include <QString>
namespace content {
@@ -67,7 +70,7 @@ public:
void dialogFinished(bool accepted, const base::string16 &promptValue);
JavaScriptDialogControllerPrivate(WebContentsAdapterClient::JavascriptDialogType, const QString &message, const QString &prompt
, const QString& title, const QUrl &securityOrigin
- , const content::JavaScriptDialogManager::DialogClosedCallback &, content::WebContents *);
+ , content::JavaScriptDialogManager::DialogClosedCallback &&, content::WebContents *);
WebContentsAdapterClient::JavascriptDialogType type;
QString message;
diff --git a/src/core/javascript_dialog_manager_qt.cpp b/src/core/javascript_dialog_manager_qt.cpp
index a1a8604a4..1e6327545 100644
--- a/src/core/javascript_dialog_manager_qt.cpp
+++ b/src/core/javascript_dialog_manager_qt.cpp
@@ -58,7 +58,7 @@ JavaScriptDialogManagerQt *JavaScriptDialogManagerQt::GetInstance()
return base::Singleton<JavaScriptDialogManagerQt>::get();
}
-void JavaScriptDialogManagerQt::RunJavaScriptDialog(content::WebContents *webContents, const GURL &originUrl, content::JavaScriptDialogType dialog_type, const base::string16 &messageText, const base::string16 &defaultPromptText, const content::JavaScriptDialogManager::DialogClosedCallback &callback, bool *didSuppressMessage)
+void JavaScriptDialogManagerQt::RunJavaScriptDialog(content::WebContents *webContents, const GURL &originUrl, content::JavaScriptDialogType dialog_type, const base::string16 &messageText, const base::string16 &defaultPromptText, content::JavaScriptDialogManager::DialogClosedCallback callback, bool *didSuppressMessage)
{
WebContentsAdapterClient *client = WebContentsViewQt::from(static_cast<content::WebContentsImpl*>(webContents)->GetView())->client();
if (!client) {
@@ -68,13 +68,13 @@ void JavaScriptDialogManagerQt::RunJavaScriptDialog(content::WebContents *webCon
}
WebContentsAdapterClient::JavascriptDialogType dialogType = static_cast<WebContentsAdapterClient::JavascriptDialogType>(dialog_type);
- runDialogForContents(webContents, dialogType, toQt(messageText).toHtmlEscaped(), toQt(defaultPromptText).toHtmlEscaped(), toQt(originUrl.GetOrigin()), callback);
+ runDialogForContents(webContents, dialogType, toQt(messageText).toHtmlEscaped(), toQt(defaultPromptText).toHtmlEscaped(), toQt(originUrl.GetOrigin()), std::move(callback));
}
void JavaScriptDialogManagerQt::RunBeforeUnloadDialog(content::WebContents *webContents, bool isReload,
- const content::JavaScriptDialogManager::DialogClosedCallback &callback) {
+ content::JavaScriptDialogManager::DialogClosedCallback callback) {
Q_UNUSED(isReload);
- runDialogForContents(webContents, WebContentsAdapterClient::UnloadDialog, QString(), QString(), QUrl(), callback);
+ runDialogForContents(webContents, WebContentsAdapterClient::UnloadDialog, QString(), QString(), QUrl(), std::move(callback));
}
bool JavaScriptDialogManagerQt::HandleJavaScriptDialog(content::WebContents *contents, bool accept, const base::string16 *promptOverride)
@@ -89,13 +89,13 @@ bool JavaScriptDialogManagerQt::HandleJavaScriptDialog(content::WebContents *con
void JavaScriptDialogManagerQt::runDialogForContents(content::WebContents *webContents, WebContentsAdapterClient::JavascriptDialogType type
, const QString &messageText, const QString &defaultPrompt, const QUrl &origin
- , const content::JavaScriptDialogManager::DialogClosedCallback &callback, const QString &title)
+ , content::JavaScriptDialogManager::DialogClosedCallback &&callback, const QString &title)
{
WebContentsAdapterClient *client = WebContentsViewQt::from(static_cast<content::WebContentsImpl*>(webContents)->GetView())->client();
if (!client)
return;
- JavaScriptDialogControllerPrivate *dialogData = new JavaScriptDialogControllerPrivate(type, messageText, defaultPrompt, title, origin, callback, webContents);
+ JavaScriptDialogControllerPrivate *dialogData = new JavaScriptDialogControllerPrivate(type, messageText, defaultPrompt, title, origin, std::move(callback), webContents);
QSharedPointer<JavaScriptDialogController> dialog(new JavaScriptDialogController(dialogData));
// We shouldn't get new dialogs for a given WebContents until we gave back a result.
diff --git a/src/core/javascript_dialog_manager_qt.h b/src/core/javascript_dialog_manager_qt.h
index 291f027a9..2856b30f0 100644
--- a/src/core/javascript_dialog_manager_qt.h
+++ b/src/core/javascript_dialog_manager_qt.h
@@ -39,6 +39,7 @@
#ifndef JAVASCRIPT_DIALOG_MANAGER_QT_H
#define JAVASCRIPT_DIALOG_MANAGER_QT_H
+#include "base/callback.h"
#include "content/public/browser/javascript_dialog_manager.h"
#include "web_contents_adapter_client.h"
@@ -61,11 +62,10 @@ public:
void RunJavaScriptDialog(content::WebContents *, const GURL &, content::JavaScriptDialogType dialog_type,
const base::string16 &messageText, const base::string16 &defaultPromptText,
- const content::JavaScriptDialogManager::DialogClosedCallback &callback,
+ DialogClosedCallback callback,
bool *didSuppressMessage) override;
-
void RunBeforeUnloadDialog(content::WebContents *, bool isReload,
- const content::JavaScriptDialogManager::DialogClosedCallback &callback) override;
+ content::JavaScriptDialogManager::DialogClosedCallback callback) override;
bool HandleJavaScriptDialog(content::WebContents *, bool accept, const base::string16 *promptOverride) override;
void CancelDialogs(content::WebContents *contents, bool /*reset_state*/) override
{
@@ -73,7 +73,7 @@ public:
}
void runDialogForContents(content::WebContents *, WebContentsAdapterClient::JavascriptDialogType, const QString &messageText, const QString &defaultPrompt
- , const QUrl &,const content::JavaScriptDialogManager::DialogClosedCallback &callback, const QString &title = QString());
+ , const QUrl &, DialogClosedCallback &&callback, const QString &title = QString());
QSharedPointer<JavaScriptDialogController> takeDialogForContents(content::WebContents *);
private:
diff --git a/src/core/native_web_keyboard_event_qt.cpp b/src/core/native_web_keyboard_event_qt.cpp
index 9eb613e25..b2e857aaf 100644
--- a/src/core/native_web_keyboard_event_qt.cpp
+++ b/src/core/native_web_keyboard_event_qt.cpp
@@ -66,6 +66,12 @@ using blink::WebKeyboardEvent;
namespace content {
+NativeWebKeyboardEvent::NativeWebKeyboardEvent(blink::WebKeyboardEvent const&, gfx::NativeView)
+ : os_event(0)
+ , skip_in_browser(false)
+{
+}
+
NativeWebKeyboardEvent::NativeWebKeyboardEvent(blink::WebInputEvent::Type, int, base::TimeTicks)
: os_event(0)
, skip_in_browser(false)
diff --git a/src/core/network_delegate_qt.cpp b/src/core/network_delegate_qt.cpp
index 968b3df3f..0a7d1f2b4 100644
--- a/src/core/network_delegate_qt.cpp
+++ b/src/core/network_delegate_qt.cpp
@@ -144,10 +144,9 @@ int NetworkDelegateQt::OnBeforeURLRequest(net::URLRequest *request, const net::C
if (!resourceInfo)
return net::OK;
- int renderProcessId;
- int renderFrameId;
+ int frameTreeNodeId = resourceInfo->GetFrameTreeNodeId();
// Only intercept MAIN_FRAME and SUB_FRAME with an associated render frame.
- if (!content::IsResourceTypeFrame(resourceType) || !resourceInfo->GetRenderFrameForRequest(request, &renderProcessId, &renderFrameId))
+ if (!content::IsResourceTypeFrame(resourceType) || frameTreeNodeId == -1)
return net::OK;
// Track active requests since |callback| and |new_url| are valid
@@ -157,9 +156,7 @@ int NetworkDelegateQt::OnBeforeURLRequest(net::URLRequest *request, const net::C
RequestParams params = {
qUrl,
resourceInfo->IsMainFrame(),
- navigationType,
- renderProcessId,
- renderFrameId
+ navigationType
};
content::BrowserThread::PostTask(
@@ -169,6 +166,7 @@ int NetworkDelegateQt::OnBeforeURLRequest(net::URLRequest *request, const net::C
base::Unretained(this),
request,
params,
+ frameTreeNodeId,
callback)
);
@@ -181,6 +179,10 @@ void NetworkDelegateQt::OnURLRequestDestroyed(net::URLRequest* request)
m_activeRequests.remove(request);
}
+void NetworkDelegateQt::OnCompleted(net::URLRequest */*request*/, bool /*started*/, int /*net_error*/)
+{
+}
+
void NetworkDelegateQt::CompleteURLRequestOnIOThread(net::URLRequest *request,
int navigationRequestAction,
const net::CompletionCallback &callback)
@@ -209,15 +211,14 @@ void NetworkDelegateQt::CompleteURLRequestOnIOThread(net::URLRequest *request,
void NetworkDelegateQt::NotifyNavigationRequestedOnUIThread(net::URLRequest *request,
RequestParams params,
+ int frameTreeNodeId,
const net::CompletionCallback &callback)
{
Q_ASSERT(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
int navigationRequestAction = WebContentsAdapterClient::AcceptRequest;
- content::RenderFrameHost *rfh = content::RenderFrameHost::FromID(params.renderProcessId, params.renderFrameId);
-
- if (rfh) {
- content::WebContents *webContents = content::WebContents::FromRenderViewHost(rfh->GetRenderViewHost());
+ content::WebContents *webContents = content::WebContents::FromFrameTreeNodeId(frameTreeNodeId);
+ if (webContents) {
WebContentsAdapterClient *client = WebContentsViewQt::from(static_cast<content::WebContentsImpl*>(webContents)->GetView())->client();
client->navigationRequested(params.navigationType, params.url, navigationRequestAction, params.isMainFrameRequest);
}
@@ -246,6 +247,11 @@ bool NetworkDelegateQt::OnCanGetCookies(const net::URLRequest& request, const ne
return canGetCookies(request.site_for_cookies(), request.url());
}
+bool NetworkDelegateQt::OnCanEnablePrivacyMode(const GURL &url, const GURL &site_for_cookies) const
+{
+ return !canGetCookies(site_for_cookies, url);
+}
+
bool NetworkDelegateQt::canSetCookies(const GURL &first_party, const GURL &url, const std::string &cookie_line) const
{
Q_ASSERT(m_requestContextGetter);
@@ -293,10 +299,6 @@ void NetworkDelegateQt::OnNetworkBytesSent(net::URLRequest*, int64_t)
{
}
-void NetworkDelegateQt::OnCompleted(net::URLRequest*, bool)
-{
-}
-
void NetworkDelegateQt::OnPACScriptError(int, const base::string16&)
{
}
@@ -311,11 +313,6 @@ bool NetworkDelegateQt::OnCanAccessFile(const net::URLRequest&, const base::File
return true;
}
-bool NetworkDelegateQt::OnCanEnablePrivacyMode(const GURL&, const GURL&) const
-{
- return false;
-}
-
bool NetworkDelegateQt::OnAreExperimentalCookieFeaturesEnabled() const
{
return false;
diff --git a/src/core/network_delegate_qt.h b/src/core/network_delegate_qt.h
index 452d1dd77..44cf96d5b 100644
--- a/src/core/network_delegate_qt.h
+++ b/src/core/network_delegate_qt.h
@@ -46,6 +46,10 @@
#include <QUrl>
#include <QSet>
+namespace content {
+class WebContents;
+}
+
namespace QtWebEngineCore {
class URLRequestContextGetterQt;
@@ -60,12 +64,11 @@ public:
QUrl url;
bool isMainFrameRequest;
int navigationType;
- int renderProcessId;
- int renderFrameId;
};
void NotifyNavigationRequestedOnUIThread(net::URLRequest *request,
RequestParams params,
+ int frameTreeNodeId,
const net::CompletionCallback &callback);
void CompleteURLRequestOnIOThread(net::URLRequest *request,
@@ -77,15 +80,15 @@ public:
void OnURLRequestDestroyed(net::URLRequest* request) override;
bool OnCanSetCookie(const net::URLRequest&, const std::string&, net::CookieOptions*) override;
int OnBeforeStartTransaction(net::URLRequest *request, const net::CompletionCallback &callback, net::HttpRequestHeaders *headers) override;
- virtual void OnBeforeSendHeaders(net::URLRequest* request, const net::ProxyInfo& proxy_info,
- const net::ProxyRetryInfoMap& proxy_retry_info, net::HttpRequestHeaders* headers) override;
+ void OnBeforeSendHeaders(net::URLRequest* request, const net::ProxyInfo& proxy_info,
+ const net::ProxyRetryInfoMap& proxy_retry_info, net::HttpRequestHeaders* headers) override;
void OnStartTransaction(net::URLRequest *request, const net::HttpRequestHeaders &headers) override;
int OnHeadersReceived(net::URLRequest*, const net::CompletionCallback&, const net::HttpResponseHeaders*, scoped_refptr<net::HttpResponseHeaders>*, GURL*) override;
void OnBeforeRedirect(net::URLRequest*, const GURL&) override;
void OnResponseStarted(net::URLRequest*) override;
void OnNetworkBytesReceived(net::URLRequest*, int64_t) override;
void OnNetworkBytesSent(net::URLRequest *, int64_t) override;
- void OnCompleted(net::URLRequest*, bool) override;
+ void OnCompleted(net::URLRequest *request, bool started, int net_error) override;
void OnPACScriptError(int, const base::string16&) override;
net::NetworkDelegate::AuthRequiredResponse OnAuthRequired(net::URLRequest*, const net::AuthChallengeInfo&, const AuthCallback&, net::AuthCredentials*) override;
bool OnCanGetCookies(const net::URLRequest&, const net::CookieList&) override;
@@ -96,10 +99,8 @@ public:
bool OnCanQueueReportingReport(const url::Origin& origin) const override;
bool OnCanSendReportingReport(const url::Origin& origin) const override;
- virtual bool OnCanSetReportingClient(const url::Origin& origin,
- const GURL& endpoint) const override;
- virtual bool OnCanUseReportingClient(const url::Origin& origin,
- const GURL& endpoint) const override;
+ bool OnCanSetReportingClient(const url::Origin& origin, const GURL& endpoint) const override;
+ bool OnCanUseReportingClient(const url::Origin& origin, const GURL& endpoint) const override;
bool canSetCookies(const GURL &first_party, const GURL &url, const std::string &cookie_line) const;
bool canGetCookies(const GURL &first_party, const GURL &url) const;
diff --git a/src/core/ozone_platform_qt.cpp b/src/core/ozone_platform_qt.cpp
index e165239bd..cf44fa456 100644
--- a/src/core/ozone_platform_qt.cpp
+++ b/src/core/ozone_platform_qt.cpp
@@ -53,7 +53,6 @@
#include "ui/ozone/public/cursor_factory_ozone.h"
#include "ui/ozone/public/gpu_platform_support_host.h"
#include "ui/ozone/public/input_controller.h"
-#include "ui/ozone/public/system_input_injector.h"
#include "ui/platform_window/platform_window.h"
#include "ui/platform_window/platform_window_delegate.h"
diff --git a/src/core/print_view_manager_base_qt.cpp b/src/core/print_view_manager_base_qt.cpp
index 5edf9e9a5..abae38160 100644
--- a/src/core/print_view_manager_base_qt.cpp
+++ b/src/core/print_view_manager_base_qt.cpp
@@ -105,24 +105,6 @@ void PrintViewManagerBaseQt::NavigationStopped()
TerminatePrintJob(true);
}
- // Terminates or cancels the print job if one was pending.
-void PrintViewManagerBaseQt::RenderProcessGone(base::TerminationStatus status)
-{
- PrintManager::RenderProcessGone(status);
- ReleasePrinterQuery();
-
- if (!m_printJob.get())
- return;
-
- scoped_refptr<printing::PrintedDocument> document(m_printJob->document());
- if (document.get()) {
- // If IsComplete() returns false, the document isn't completely rendered.
- // Since our renderer is gone, there's nothing to do, cancel it. Otherwise,
- // the print job may finish without problem.
- TerminatePrintJob(!document->IsComplete());
- }
-}
-
base::string16 PrintViewManagerBaseQt::RenderSourceName()
{
return toString16(QLatin1String(""));
@@ -210,6 +192,28 @@ void PrintViewManagerBaseQt::OnShowInvalidPrinterSettingsError()
void PrintViewManagerBaseQt::DidStartLoading()
{
+ UpdatePrintingEnabled();
+}
+
+void PrintViewManagerBaseQt::RenderFrameDeleted(content::RenderFrameHost *render_frame_host)
+{
+ // Terminates or cancels the print job if one was pending.
+ if (render_frame_host != web_contents()->GetMainFrame())
+ return;
+
+ PrintManager::PrintingRenderFrameDeleted();
+ ReleasePrinterQuery();
+
+ if (!m_printJob.get())
+ return;
+
+ scoped_refptr<printing::PrintedDocument> document(m_printJob->document());
+ if (document.get()) {
+ // If IsComplete() returns false, the document isn't completely rendered.
+ // Since our renderer is gone, there's nothing to do, cancel it. Otherwise,
+ // the print job may finish without problem.
+ TerminatePrintJob(!document->IsComplete());
+ }
}
bool PrintViewManagerBaseQt::OnMessageReceived(const IPC::Message& message, content::RenderFrameHost* render_frame_host)
@@ -217,8 +221,7 @@ bool PrintViewManagerBaseQt::OnMessageReceived(const IPC::Message& message, cont
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(PrintViewManagerBaseQt, message)
IPC_MESSAGE_HANDLER(PrintHostMsg_DidPrintPage, OnDidPrintPage)
- IPC_MESSAGE_HANDLER(PrintHostMsg_ShowInvalidPrinterSettingsError,
- OnShowInvalidPrinterSettingsError);
+ IPC_MESSAGE_HANDLER(PrintHostMsg_ShowInvalidPrinterSettingsError, OnShowInvalidPrinterSettingsError);
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled || PrintManager::OnMessageReceived(message, render_frame_host);
@@ -337,7 +340,7 @@ bool PrintViewManagerBaseQt::CreateNewPrintJob(printing::PrintJobWorkerOwner* jo
{
DCHECK(!m_isInsideInnerMessageLoop);
- // Disconnect the current print_job_.
+ // Disconnect the current |m_printJob|.
DisconnectFromCurrentPrintJob();
// We can't print if there is no renderer.
@@ -354,7 +357,7 @@ bool PrintViewManagerBaseQt::CreateNewPrintJob(printing::PrintJobWorkerOwner* jo
return false;
m_printJob = new printing::PrintJob();
- m_printJob->Initialize(job, this, number_pages_);
+ m_printJob->Initialize(job, RenderSourceName(), number_pages_);
m_registrar.Add(this, chrome::NOTIFICATION_PRINT_JOB_EVENT,
content::Source<printing::PrintJob>(m_printJob.get()));
m_didPrintingSucceed = false;
@@ -383,13 +386,6 @@ void PrintViewManagerBaseQt::DisconnectFromCurrentPrintJob()
#endif
}
-void PrintViewManagerBaseQt::PrintingDone(bool success)
-{
- if (!m_printJob.get())
- return;
- Send(new PrintMsg_PrintingDone(routing_id(), success));
-}
-
void PrintViewManagerBaseQt::TerminatePrintJob(bool cancel)
{
if (!m_printJob.get())
@@ -413,16 +409,18 @@ void PrintViewManagerBaseQt::TerminatePrintJob(bool cancel)
void PrintViewManagerBaseQt::ReleasePrintJob()
{
+ content::RenderFrameHost *rfh = web_contents() ? web_contents()->GetMainFrame() : nullptr;
+
if (!m_printJob.get())
return;
- PrintingDone(m_didPrintingSucceed);
+ if (rfh)
+ rfh->Send(new PrintMsg_PrintingDone(rfh->GetRoutingID(), m_didPrintingSucceed));
m_registrar.Remove(this, chrome::NOTIFICATION_PRINT_JOB_EVENT,
content::Source<printing::PrintJob>(m_printJob.get()));
- m_printJob->DisconnectSource();
// Don't close the worker thread.
- m_printJob = NULL;
+ m_printJob = nullptr;
}
@@ -514,7 +512,7 @@ void PrintViewManagerBaseQt::ReleasePrinterQuery()
return;
content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE,
- base::Bind(&printing::PrinterQuery::StopWorker, printerQuery.get()));
+ base::BindOnce(&printing::PrinterQuery::StopWorker, printerQuery.get()));
}
// Originally from print_preview_message_handler.cc:
@@ -525,8 +523,7 @@ void PrintViewManagerBaseQt::StopWorker(int documentCookie) {
m_printerQueriesQueue->PopPrinterQuery(documentCookie);
if (printer_query.get()) {
content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE,
- base::Bind(&printing::PrinterQuery::StopWorker,
- printer_query));
+ base::BindOnce(&printing::PrinterQuery::StopWorker, printer_query));
}
}
diff --git a/src/core/print_view_manager_base_qt.h b/src/core/print_view_manager_base_qt.h
index 4e4c8bde2..c55e970e5 100644
--- a/src/core/print_view_manager_base_qt.h
+++ b/src/core/print_view_manager_base_qt.h
@@ -50,11 +50,11 @@
#include "components/printing/browser/print_manager.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
-#include "printing/printed_pages_source.h"
struct PrintHostMsg_DidPrintPage_Params;
namespace content {
+class RenderFrameHost;
class RenderViewHost;
}
@@ -70,7 +70,6 @@ namespace QtWebEngineCore {
class PrintViewManagerBaseQt
: public content::NotificationObserver
, public printing::PrintManager
- , public printing::PrintedPagesSource
{
public:
~PrintViewManagerBaseQt() override;
@@ -78,8 +77,7 @@ public:
// Whether printing is enabled or not.
void UpdatePrintingEnabled();
- // PrintedPagesSource implementation.
- base::string16 RenderSourceName() override;
+ virtual base::string16 RenderSourceName();
protected:
explicit PrintViewManagerBaseQt(content::WebContents*);
@@ -88,10 +86,8 @@ protected:
// Cancels the print job.
void NavigationStopped() override;
- // Terminates or cancels the print job if one was pending.
- void RenderProcessGone(base::TerminationStatus status) override;
-
// content::WebContentsObserver implementation.
+ void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override;
bool OnMessageReceived(const IPC::Message& message,
content::RenderFrameHost* render_frame_host) override;
@@ -132,7 +128,6 @@ protected:
bool RunInnerMessageLoop();
void TerminatePrintJob(bool cancel);
- void PrintingDone(bool success);
void DisconnectFromCurrentPrintJob();
bool CreateNewPrintJob(printing::PrintJobWorkerOwner* job);
diff --git a/src/core/print_view_manager_qt.cpp b/src/core/print_view_manager_qt.cpp
index 2e10a6f7d..5198985d7 100644
--- a/src/core/print_view_manager_qt.cpp
+++ b/src/core/print_view_manager_qt.cpp
@@ -249,8 +249,8 @@ bool PrintViewManagerQt::PrintToPDFInternal(const QPageLayout &pageLayout, bool
, web_contents()->GetRenderViewHost()->GetWebkitPreferences().should_print_backgrounds);
m_printSettings->SetInteger(printing::kSettingColor,
printInColor ? printing::COLOR : printing::GRAYSCALE);
- return Send(new PrintMsg_InitiatePrintPreview(
- web_contents()->GetMainFrame()->GetRoutingID(), false));
+ return web_contents()->GetMainFrame()->Send(
+ new PrintMsg_InitiatePrintPreview(web_contents()->GetMainFrame()->GetRoutingID(), false));
}
#endif // BUILDFLAG(ENABLE_BASIC_PRINTING)
@@ -273,10 +273,8 @@ bool PrintViewManagerQt::OnMessageReceived(const IPC::Message& message, content:
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(PrintViewManagerQt, message)
IPC_MESSAGE_HANDLER(PrintHostMsg_DidShowPrintDialog, OnDidShowPrintDialog)
- IPC_MESSAGE_HANDLER(PrintHostMsg_RequestPrintPreview,
- OnRequestPrintPreview)
- IPC_MESSAGE_HANDLER(PrintHostMsg_MetafileReadyForPrinting,
- OnMetafileReadyForPrinting);
+ IPC_MESSAGE_HANDLER(PrintHostMsg_RequestPrintPreview, OnRequestPrintPreview)
+ IPC_MESSAGE_HANDLER(PrintHostMsg_MetafileReadyForPrinting, OnMetafileReadyForPrinting);
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled || PrintManager::OnMessageReceived(message, render_frame_host);
@@ -293,10 +291,11 @@ void PrintViewManagerQt::resetPdfState()
// IPC handlers
void PrintViewManagerQt::OnRequestPrintPreview(
- const PrintHostMsg_RequestPrintPreview_Params& params)
+ const PrintHostMsg_RequestPrintPreview_Params &/*params*/)
{
- Send(new PrintMsg_PrintPreview(
- web_contents()->GetMainFrame()->GetRoutingID(), *m_printSettings));
+ auto *rfh = web_contents()->GetMainFrame();
+ rfh->Send(new PrintMsg_PrintPreview(rfh->GetRoutingID(), *m_printSettings));
+ rfh->Send(new PrintMsg_ClosePrintPreviewDialog(rfh->GetRoutingID()));
}
void PrintViewManagerQt::OnMetafileReadyForPrinting(
diff --git a/src/core/print_view_manager_qt.h b/src/core/print_view_manager_qt.h
index 994fc1121..2eceaa588 100644
--- a/src/core/print_view_manager_qt.h
+++ b/src/core/print_view_manager_qt.h
@@ -55,7 +55,6 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/web_contents_user_data.h"
#include "printing/features/features.h"
-#include "printing/printed_pages_source.h"
struct PrintHostMsg_RequestPrintPreview_Params;
struct PrintHostMsg_DidPreviewDocument_Params;
@@ -97,7 +96,6 @@ public:
const PrintToPDFCallback &callback);
#endif // ENABLE_BASIC_PRINTING
- // PrintedPagesSource implementation.
base::string16 RenderSourceName() override;
protected:
diff --git a/src/core/qtwebengine_sources.gni b/src/core/qtwebengine_sources.gni
index a21193ecd..6d17838a6 100644
--- a/src/core/qtwebengine_sources.gni
+++ b/src/core/qtwebengine_sources.gni
@@ -35,15 +35,19 @@ source_set("qtwebengine_spellcheck_sources") {
source_set("qtwebengine_sources") {
include_dirs = [
"//skia/config",
+ "//third_party/boringssl/src/include",
"//third_party/skia/include/core"
]
deps = [
+ "//components/nacl/common:features",
"//extensions/features:features",
]
sources = [
"//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",
"//chrome/browser/profiles/profile.h",
"//chrome/browser/ui/webui/devtools_ui.cc",
@@ -64,8 +68,6 @@ source_set("qtwebengine_sources") {
"//chrome/common/pref_names.h",
"//chrome/common/url_constants.cc",
"//chrome/common/url_constants.h",
- "//components/prefs/in_memory_pref_store.cc",
- "//components/prefs/in_memory_pref_store.h",
"//extensions/common/constants.cc",
"//extensions/common/constants.h",
"//extensions/common/url_pattern.cc",
diff --git a/src/core/render_view_observer_host_qt.cpp b/src/core/render_view_observer_host_qt.cpp
index 643eba007..c097e102d 100644
--- a/src/core/render_view_observer_host_qt.cpp
+++ b/src/core/render_view_observer_host_qt.cpp
@@ -40,7 +40,9 @@
#include "render_view_observer_host_qt.h"
#include "common/qt_messages.h"
+#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
+
#include "render_widget_host_view_qt.h"
#include "type_conversion.h"
#include "web_contents_adapter_client.h"
@@ -55,12 +57,16 @@ RenderViewObserverHostQt::RenderViewObserverHostQt(content::WebContents *webCont
void RenderViewObserverHostQt::fetchDocumentMarkup(quint64 requestId)
{
- Send(new RenderViewObserverQt_FetchDocumentMarkup(routing_id(), requestId));
+ web_contents()->GetRenderViewHost()->Send(
+ new RenderViewObserverQt_FetchDocumentMarkup(
+ web_contents()->GetRenderViewHost()->GetRoutingID(), requestId));
}
void RenderViewObserverHostQt::fetchDocumentInnerText(quint64 requestId)
{
- Send(new RenderViewObserverQt_FetchDocumentInnerText(routing_id(), requestId));
+ web_contents()->GetRenderViewHost()->Send(
+ new RenderViewObserverQt_FetchDocumentInnerText(
+ web_contents()->GetRenderViewHost()->GetRoutingID(), requestId));
}
bool RenderViewObserverHostQt::OnMessageReceived(const IPC::Message& message)
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index de9ee63ab..8986a3495 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -52,7 +52,7 @@
#include "web_event_factory.h"
#include "base/command_line.h"
-#include "cc/output/direct_renderer.h"
+#include "components/viz/service/display/direct_renderer.h"
#include "components/viz/service/frame_sinks/frame_sink_manager_impl.h"
#include "content/browser/accessibility/browser_accessibility_state_impl.h"
#include "content/browser/browser_main_loop.h"
@@ -732,7 +732,7 @@ void RenderWidgetHostViewQt::DidCreateNewRendererCompositorFrameSink(viz::mojom:
m_rendererCompositorFrameSink = frameSink;
}
-void RenderWidgetHostViewQt::SubmitCompositorFrame(const viz::LocalSurfaceId &local_surface_id, cc::CompositorFrame frame)
+void RenderWidgetHostViewQt::SubmitCompositorFrame(const viz::LocalSurfaceId &local_surface_id, viz::CompositorFrame frame)
{
bool scrollOffsetChanged = (m_lastScrollOffset != frame.metadata.root_scroll_offset);
bool contentsSizeChanged = (m_lastContentsSize != frame.metadata.root_layer_size);
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index 16b0aa573..548142c84 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -152,7 +152,7 @@ public:
void SetTooltipText(const base::string16 &tooltip_text) override;
bool HasAcceleratedSurface(const gfx::Size&) override;
void DidCreateNewRendererCompositorFrameSink(viz::mojom::CompositorFrameSinkClient* renderer_compositor_frame_sink) override;
- void SubmitCompositorFrame(const viz::LocalSurfaceId&, cc::CompositorFrame) override;
+ void SubmitCompositorFrame(const viz::LocalSurfaceId&, viz::CompositorFrame) override;
void WheelEventAck(const blink::WebMouseWheelEvent &event, content::InputEventAckState ack_result) override;
void GetScreenInfo(content::ScreenInfo* results);
diff --git a/src/core/renderer_host/user_resource_controller_host.cpp b/src/core/renderer_host/user_resource_controller_host.cpp
index 2799d5d85..a9071df8f 100644
--- a/src/core/renderer_host/user_resource_controller_host.cpp
+++ b/src/core/renderer_host/user_resource_controller_host.cpp
@@ -142,9 +142,10 @@ void UserResourceControllerHost::addUserScript(const UserScript &script, WebCont
m_perContentsScripts.insert(contents, currentScripts);
}
}
- contents->Send(new RenderFrameObserverHelper_AddScript(contents->GetRenderViewHost()->
- GetMainFrame()->GetRoutingID(),
- script.data()));
+ contents->GetRenderViewHost()->Send(
+ new RenderFrameObserverHelper_AddScript(
+ contents->GetRenderViewHost()->GetMainFrame()->GetRoutingID(),
+ script.data()));
}
}
@@ -180,9 +181,10 @@ bool UserResourceControllerHost::removeUserScript(const UserScript &script, WebC
QList<UserScript>::iterator it = std::find(list.begin(), list.end(), script);
if (it == list.end())
return false;
- contents->Send(new RenderFrameObserverHelper_RemoveScript(contents->
- GetMainFrame()->GetRoutingID(),
- (*it).data()));
+ contents->GetRenderViewHost()->Send(
+ new RenderFrameObserverHelper_RemoveScript(
+ contents->GetMainFrame()->GetRoutingID(),
+ (*it).data()));
list.erase(it);
}
return true;
@@ -198,8 +200,8 @@ void UserResourceControllerHost::clearAllScripts(WebContentsAdapter *adapter)
} else {
content::WebContents *contents = adapter->webContents();
m_perContentsScripts.remove(contents);
- contents->Send(new RenderFrameObserverHelper_ClearScripts(contents->
- GetMainFrame()->GetRoutingID()));
+ contents->GetRenderViewHost()->Send(
+ new RenderFrameObserverHelper_ClearScripts(contents->GetMainFrame()->GetRoutingID()));
}
}
diff --git a/src/core/renderer_host/web_channel_ipc_transport_host.cpp b/src/core/renderer_host/web_channel_ipc_transport_host.cpp
index c47b255b7..b624d7e45 100644
--- a/src/core/renderer_host/web_channel_ipc_transport_host.cpp
+++ b/src/core/renderer_host/web_channel_ipc_transport_host.cpp
@@ -41,6 +41,7 @@
#include "base/strings/string16.h"
#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/web_contents.h"
#include "common/qt_messages.h"
#include "type_conversion.h"
@@ -55,7 +56,10 @@ WebChannelIPCTransportHost::WebChannelIPCTransportHost(content::WebContents *con
, content::WebContentsObserver(contents)
, m_worldId(worldId)
{
- Send(new WebChannelIPCTransport_Install(routing_id(), m_worldId));
+ contents->GetRenderViewHost()->Send(
+ new WebChannelIPCTransport_Install(
+ contents->GetRenderViewHost()->GetRoutingID(),
+ m_worldId));
}
WebChannelIPCTransportHost::~WebChannelIPCTransportHost()
@@ -78,9 +82,15 @@ void WebChannelIPCTransportHost::setWorldId(uint worldId)
{
if (worldId == m_worldId)
return;
- Send(new WebChannelIPCTransport_Uninstall(routing_id(), m_worldId));
+ web_contents()->GetRenderViewHost()->Send(
+ new WebChannelIPCTransport_Uninstall(
+ web_contents()->GetRenderViewHost()->GetRoutingID(),
+ m_worldId));
m_worldId = worldId;
- Send(new WebChannelIPCTransport_Install(routing_id(), m_worldId));
+ web_contents()->GetRenderViewHost()->Send(
+ new WebChannelIPCTransport_Install(
+ web_contents()->GetRenderViewHost()->GetRoutingID(),
+ m_worldId));
}
void WebChannelIPCTransportHost::sendMessage(const QJsonObject &message)
@@ -88,7 +98,11 @@ void WebChannelIPCTransportHost::sendMessage(const QJsonObject &message)
QJsonDocument doc(message);
int size = 0;
const char *rawData = doc.rawData(&size);
- Send(new WebChannelIPCTransport_Message(routing_id(), std::vector<char>(rawData, rawData + size), m_worldId));
+ web_contents()->GetRenderViewHost()->Send(
+ new WebChannelIPCTransport_Message(
+ web_contents()->GetRenderViewHost()->GetRoutingID(),
+ std::vector<char>(rawData, rawData + size),
+ m_worldId));
}
void WebChannelIPCTransportHost::onWebChannelMessage(const std::vector<char> &message)
diff --git a/src/core/url_request_context_getter_qt.cpp b/src/core/url_request_context_getter_qt.cpp
index aeeb328dc..fd0f24735 100644
--- a/src/core/url_request_context_getter_qt.cpp
+++ b/src/core/url_request_context_getter_qt.cpp
@@ -42,8 +42,10 @@
#include "base/command_line.h"
#include "base/memory/ptr_util.h"
#include "base/strings/string_util.h"
-#include "base/threading/worker_pool.h"
+#include "base/task_scheduler/post_task.h"
#include "base/threading/sequenced_worker_pool.h"
+#include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h"
+#include "content/network/proxy_service_mojo.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/cookie_store_factory.h"
#include "content/public/common/content_features.h"
@@ -66,8 +68,6 @@
#include "net/proxy/dhcp_proxy_script_fetcher_factory.h"
#include "net/proxy/proxy_script_fetcher_impl.h"
#include "net/proxy/proxy_service.h"
-#include "net/proxy/proxy_service_v8.h"
-#include "net/proxy/proxy_resolver_v8.h"
#include "net/ssl/channel_id_service.h"
#include "net/ssl/default_channel_id_store.h"
#include "net/ssl/ssl_config_service_defaults.h"
@@ -224,12 +224,15 @@ void URLRequestContextGetterQt::generateStorage()
// We must stop all requests before deleting their backends.
if (m_storage) {
+ m_cookieDelegate->setCookieMonster(0);
+ m_storage->set_cookie_store(0);
cancelAllUrlRequests();
// we need to get rid of dangling pointer due to coming storage deletion
m_urlRequestContext->set_http_transaction_factory(0);
m_httpNetworkSession.reset();
}
+
m_storage.reset(new net::URLRequestContextStorage(m_urlRequestContext.get()));
net::ProxyConfigService *proxyConfigService = m_proxyConfigService.fetchAndStoreAcquire(0);
@@ -248,12 +251,13 @@ void URLRequestContextGetterQt::generateStorage()
if (!m_dhcpProxyScriptFetcherFactory)
m_dhcpProxyScriptFetcherFactory.reset(new net::DhcpProxyScriptFetcherFactory);
- m_storage->set_proxy_service(net::CreateProxyServiceUsingV8ProxyResolver(
+ m_storage->set_proxy_service(content::CreateProxyServiceUsingMojoFactory(
+ ChromeMojoProxyResolverFactory::GetInstance(),
std::unique_ptr<net::ProxyConfigService>(proxyConfigService),
new net::ProxyScriptFetcherImpl(m_urlRequestContext.get()),
m_dhcpProxyScriptFetcherFactory->Create(m_urlRequestContext.get()),
host_resolver.get(),
- NULL /* NetLog */,
+ nullptr /* NetLog */,
m_networkDelegate.get()));
m_storage->set_ssl_config_service(new net::SSLConfigServiceDefaults);
@@ -303,8 +307,8 @@ void URLRequestContextGetterQt::generateCookieStore()
if (!m_channelIdPath.isEmpty() && m_persistentCookiesPolicy != BrowserContextAdapter::NoPersistentCookies) {
channel_id_db = new net::SQLiteChannelIDStore(
toFilePath(m_channelIdPath),
- BrowserThread::GetBlockingPool()->GetSequencedTaskRunner(
- BrowserThread::GetBlockingPool()->GetSequenceToken()));
+ base::CreateSequencedTaskRunnerWithTraits(
+ {base::MayBlock(), base::TaskPriority::BACKGROUND}));
}
m_storage->set_channel_id_service(
@@ -554,9 +558,11 @@ void URLRequestContextGetterQt::generateJobFactory()
m_protocolHandlers.clear();
jobFactory->SetProtocolHandler(url::kDataScheme, std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(new net::DataProtocolHandler()));
- jobFactory->SetProtocolHandler(url::kFileScheme, std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(new net::FileProtocolHandler(
- content::BrowserThread::GetBlockingPool()->GetTaskRunnerWithShutdownBehavior(
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN))));
+ jobFactory->SetProtocolHandler(url::kFileScheme,
+ std::make_unique<net::FileProtocolHandler>(
+ base::CreateTaskRunnerWithTraits({base::MayBlock(),
+ base::TaskPriority::BACKGROUND,
+ base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})));
jobFactory->SetProtocolHandler(kQrcSchemeQt, std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler>(new QrcProtocolHandlerQt()));
jobFactory->SetProtocolHandler(url::kFtpScheme,
net::FtpProtocolHandler::Create(m_urlRequestContext->host_resolver()));
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 286856c71..f87cc115b 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -389,7 +389,7 @@ QSharedPointer<WebContentsAdapter> WebContentsAdapter::createFromSerializedNavig
// Set up the file access rights for the selected navigation entry.
// TODO(joth): This is duplicated from chrome/.../session_restore.cc and
// should be shared e.g. in NavigationController. http://crbug.com/68222
- const int id = newWebContents->GetRenderProcessHost()->GetID();
+ const int id = newWebContents->GetMainFrame()->GetProcess()->GetID();
const content::PageState& pageState = controller.GetActiveEntry()->GetPageState();
const std::vector<base::FilePath>& filePaths = pageState.GetReferencedFiles();
for (std::vector<base::FilePath>::const_iterator file = filePaths.begin(); file != filePaths.end(); ++file)
@@ -478,7 +478,7 @@ void WebContentsAdapter::initialize(WebContentsAdapterClient *adapterClient)
content::RenderViewHost *rvh = d->webContents->GetRenderViewHost();
Q_ASSERT(rvh);
if (!rvh->IsRenderViewLive())
- static_cast<content::WebContentsImpl*>(d->webContents.get())->CreateRenderViewForRenderManager(rvh, MSG_ROUTING_NONE, MSG_ROUTING_NONE, content::FrameReplicationState());
+ static_cast<content::WebContentsImpl*>(d->webContents.get())->CreateRenderViewForRenderManager(rvh, MSG_ROUTING_NONE, MSG_ROUTING_NONE, base::UnguessableToken::Create(), content::FrameReplicationState());
}
void WebContentsAdapter::reattachRWHV()
@@ -707,7 +707,9 @@ QString WebContentsAdapter::pageTitle() const
QString WebContentsAdapter::selectedText() const
{
Q_D(const WebContentsAdapter);
- return toQt(d->webContents->GetRenderWidgetHostView()->GetSelectedText());
+ if (auto *rwhv = d->webContents->GetRenderWidgetHostView())
+ return toQt(rwhv->GetSelectedText());
+ return QString();
}
void WebContentsAdapter::undo()
@@ -853,7 +855,7 @@ void WebContentsAdapter::setZoomFactor(qreal factor)
content::HostZoomMap *zoomMap = content::HostZoomMap::GetForWebContents(d->webContents.get());
if (zoomMap) {
- int render_process_id = d->webContents->GetRenderProcessHost()->GetID();
+ int render_process_id = d->webContents->GetMainFrame()->GetProcess()->GetID();
int render_view_id = d->webContents->GetRenderViewHost()->GetRoutingID();
zoomMap->SetTemporaryZoomLevel(render_process_id, render_view_id, zoomLevel);
}
diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp
index 51ea7eda3..5364afa94 100644
--- a/src/core/web_contents_delegate_qt.cpp
+++ b/src/core/web_contents_delegate_qt.cpp
@@ -219,16 +219,6 @@ void WebContentsDelegateQt::DidStartNavigation(content::NavigationHandle *naviga
if (!navigation_handle->IsInMainFrame())
return;
- // Suppress extra loadStarted signal for data URL with specified base URL.
- if (navigation_handle->GetURL().SchemeIs(url::kDataScheme)) {
- content::NavigationEntry *pending_entry = navigation_handle->GetWebContents()->GetController().GetPendingEntry();
-
- if (pending_entry && !pending_entry->GetBaseURLForDataURL().is_empty() &&
- navigation_handle->GetURL() == pending_entry->GetURL()) {
- return;
- }
- }
-
// Error-pages are not reported as separate started navigations.
Q_ASSERT(!navigation_handle->IsErrorPage());
@@ -459,7 +449,7 @@ void WebContentsDelegateQt::UpdateTargetURL(content::WebContents* source, const
void WebContentsDelegateQt::WasShown()
{
- web_cache::WebCacheManager::GetInstance()->ObserveActivity(web_contents()->GetRenderProcessHost()->GetID());
+ web_cache::WebCacheManager::GetInstance()->ObserveActivity(web_contents()->GetMainFrame()->GetProcess()->GetID());
}
void WebContentsDelegateQt::DidFirstVisuallyNonEmptyPaint()
diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
index 64e608b1f..e98dcd961 100644
--- a/src/core/web_engine_context.cpp
+++ b/src/core/web_engine_context.cpp
@@ -390,7 +390,6 @@ WebEngineContext::WebEngineContext()
parsedCommandLine->AppendSwitch(switches::kDisableGpuShaderDiskCache);
parsedCommandLine->AppendSwitch(switches::kDisable2dCanvasAntialiasing);
parsedCommandLine->AppendSwitch(cc::switches::kDisableCompositedAntialiasing);
- parsedCommandLine->AppendSwitchASCII(switches::kProfilerTiming, switches::kProfilerTimingDisabledValue);
}
GLContextHelper::initialize();
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index f438091c6..2a789ef91 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -278,7 +278,7 @@ void WebEngineSettings::initDefaults()
bool smoothScrolling = commandLine->HasSwitch(switches::kEnableSmoothScrolling);
bool webGL = content::GpuProcessHost::gpu_enabled() &&
!commandLine->HasSwitch(switches::kDisable3DAPIs) &&
- !commandLine->HasSwitch(switches::kDisableExperimentalWebGL);
+ !commandLine->HasSwitch(switches::kDisableWebGL);
bool accelerated2dCanvas = content::GpuProcessHost::gpu_enabled() &&
!commandLine->HasSwitch(switches::kDisableAccelerated2dCanvas);
bool allowRunningInsecureContent = commandLine->HasSwitch(switches::kAllowRunningInsecureContent);
@@ -378,7 +378,7 @@ void WebEngineSettings::applySettingsToWebPreferences(content::WebPreferences *p
prefs->plugins_enabled = testAttribute(PluginsEnabled);
prefs->fullscreen_supported = testAttribute(FullScreenSupportEnabled);
prefs->accelerated_2d_canvas_enabled = testAttribute(Accelerated2dCanvasEnabled);
- prefs->experimental_webgl_enabled = testAttribute(WebGLEnabled);
+ prefs->webgl1_enabled = prefs->webgl2_enabled = testAttribute(WebGLEnabled);
prefs->should_print_backgrounds = testAttribute(PrintElementBackgrounds);
prefs->allow_running_insecure_content = testAttribute(AllowRunningInsecureContent);
prefs->allow_geolocation_on_insecure_origins = testAttribute(AllowGeolocationOnInsecureOrigins);
diff --git a/src/core/yuv_video_node.cpp b/src/core/yuv_video_node.cpp
index 9e69130f2..81afa5674 100644
--- a/src/core/yuv_video_node.cpp
+++ b/src/core/yuv_video_node.cpp
@@ -66,7 +66,7 @@ public:
protected:
const char *vertexShader() const override {
- // Keep in sync with cc::VertexShaderPosTexYUVStretchOffset
+ // Keep in sync with logic in VertexShader in components/viz/service/display/shader.cc
const char *shader =
"attribute highp vec4 a_position;\n"
"attribute mediump vec2 a_texCoord;\n"
@@ -86,7 +86,7 @@ protected:
}
const char *fragmentShader() const override {
- // Keep in sync with cc::FragmentShaderYUVVideo
+ // Keep in sync with logic in FragmentShader in components/viz/service/display/shader.cc
static const char *shader =
"varying mediump vec2 v_yaTexCoord;\n"
"varying mediump vec2 v_uvTexCoord;\n"
diff --git a/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro b/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro
index 55b78c696..47b7d4ff7 100644
--- a/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro
+++ b/src/tools/qwebengine_convert_dict/qwebengine_convert_dict.pro
@@ -36,7 +36,8 @@ win32: QMAKE_CXXFLAGS_WARN_ON = -wd4577
win32: DEFINES += NOMINMAX
CHROMIUM_SRC_DIR = $$QTWEBENGINE_ROOT/$$getChromiumSrcDir()
-INCLUDEPATH += $$CHROMIUM_SRC_DIR
+INCLUDEPATH += $$CHROMIUM_SRC_DIR \
+ $$OUT_PWD/../../core/$$getConfigDir()/gen
SOURCES += \
main.cpp
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 2c30627ad..f49b2c6bb 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -487,8 +487,14 @@ void QQuickWebEngineViewPrivate::loadStarted(const QUrl &provisionalUrl, bool is
isLoading = true;
m_history->reset();
m_certificateErrorControllers.clear();
- QQuickWebEngineLoadRequest loadRequest(provisionalUrl, QQuickWebEngineView::LoadStartedStatus);
- Q_EMIT q->loadingChanged(&loadRequest);
+
+ QPointer<QQuickWebEngineView> pq(q);
+ QTimer::singleShot(0, [=]()
+ {
+ QQuickWebEngineLoadRequest loadRequest(provisionalUrl, QQuickWebEngineView::LoadStartedStatus);
+ if (pq)
+ pq->loadingChanged(&loadRequest);
+ });
}
void QQuickWebEngineViewPrivate::loadCommitted()
diff --git a/tests/auto/widgets/qwebenginefaviconmanager/tst_qwebenginefaviconmanager.cpp b/tests/auto/widgets/qwebenginefaviconmanager/tst_qwebenginefaviconmanager.cpp
index 0f7d590c2..83c590967 100644
--- a/tests/auto/widgets/qwebenginefaviconmanager/tst_qwebenginefaviconmanager.cpp
+++ b/tests/auto/widgets/qwebenginefaviconmanager/tst_qwebenginefaviconmanager.cpp
@@ -258,7 +258,7 @@ void tst_QWebEngineFaviconManager::errorPageDisabled()
QUrl url("http://url.invalid");
m_page->load(url);
- QTRY_COMPARE(loadFinishedSpy.count(), 1);
+ QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 1, 12000);
QCOMPARE(iconUrlChangedSpy.count(), 0);
QCOMPARE(iconChangedSpy.count(), 0);
diff --git a/tools/scripts/take_snapshot.py b/tools/scripts/take_snapshot.py
index 4abc23009..69e22d5a6 100755
--- a/tools/scripts/take_snapshot.py
+++ b/tools/scripts/take_snapshot.py
@@ -92,6 +92,7 @@ def isInChromiumBlacklist(file_path):
not 'third_party/chromevox' in file_path and
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/devtools/' in file_path and
not '/browser/ui/webui/' in file_path and
not 'common/chrome_constants.' in file_path and
@@ -143,6 +144,7 @@ def isInChromiumBlacklist(file_path):
or file_path.startswith('native_client')
or file_path.startswith('net/android/java')
or (file_path.startswith('net/data/') and '_unittest/' in file_path)
+ or file_path.startswith('net/data/fuzzer_data/')
or file_path.startswith('remoting')
or file_path.startswith('rlz')
or file_path.startswith('testing/android')
@@ -160,10 +162,11 @@ def isInChromiumBlacklist(file_path):
or file_path.startswith('third_party/ashmem')
or file_path.startswith('third_party/binutils')
or file_path.startswith('third_party/bison')
- or (file_path.startswith('third_party/cacheinvalidation') and
- not file_path.endswith('isolate'))
+ or file_path.startswith('third_party/breakpad')
or file_path.startswith('third_party/boringssl/crypto_test_data.cc')
or file_path.startswith('third_party/boringssl/src/fuzz')
+ or (file_path.startswith('third_party/cacheinvalidation') and
+ not file_path.endswith('isolate'))
or file_path.startswith('third_party/catapult')
or file_path.startswith('third_party/chromite')
or file_path.startswith('third_party/cld_2')
@@ -221,6 +224,7 @@ def isInChromiumBlacklist(file_path):
or file_path.startswith('third_party/trace-viewer')
or file_path.startswith('third_party/undoview')
or file_path.startswith('third_party/webgl')
+ or file_path.startswith('third_party/webrtc/resources/')
or file_path.startswith('tools/android')
or file_path.startswith('tools/luci_go')
or file_path.startswith('tools/metrics')
diff --git a/tools/scripts/version_resolver.py b/tools/scripts/version_resolver.py
index 597682fda..7a22765ef 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 = '62.0.3202.101'
-chromium_branch = '3202'
+chromium_version = '63.0.3239.117'
+chromium_branch = '3239'
ninja_version = 'v1.8.2'
json_url = 'http://omahaproxy.appspot.com/all.json'