From 551a519c00f26fcafc5d3615d55b2fe205ffbbf3 Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Wed, 20 May 2020 17:31:21 +0200 Subject: Split gn args for pdf and webengine Currently we run gn with same sets of arguments for pdf and webengine. Split those so we can make fine grain configuration and drop some requirements. Change-Id: I40890b5475dddadd0798ea091ca5e7143fd952b3 Reviewed-by: Allan Sandfeld Jensen --- src/core/config/common.pri | 44 ++++++++++++++++++++++++++++++++++++++ src/core/config/linux.pri | 51 +++++++++++++++++++++++++++++++++++++++++++++ src/core/config/mac_osx.pri | 8 +++++++ src/core/config/windows.pri | 8 +++++++ src/core/gn_run.pro | 2 +- 5 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 src/core/config/common.pri create mode 100644 src/core/config/linux.pri create mode 100644 src/core/config/mac_osx.pri create mode 100644 src/core/config/windows.pri (limited to 'src/core') diff --git a/src/core/config/common.pri b/src/core/config/common.pri new file mode 100644 index 000000000..12a46c5f8 --- /dev/null +++ b/src/core/config/common.pri @@ -0,0 +1,44 @@ + +qtConfig(webengine-printing-and-pdf) { + gn_args += enable_basic_printing=true enable_print_preview=true + gn_args += enable_pdf=true +} else { + gn_args += enable_basic_printing=false enable_print_preview=false + gn_args += enable_pdf=false +} + +qtConfig(webengine-pepper-plugins) { + gn_args += enable_plugins=true +} else { + gn_args += enable_plugins=false +} + +qtConfig(webengine-spellchecker) { + gn_args += enable_spellcheck=true +} else { + gn_args += enable_spellcheck=false +} + +qtConfig(webengine-webrtc) { + gn_args += enable_webrtc=true +} else { + gn_args += enable_webrtc=false audio_processing_in_audio_service_supported=false +} + +qtConfig(webengine-proprietary-codecs) { + gn_args += proprietary_codecs=true ffmpeg_branding=\"Chrome\" +} else { + gn_args += proprietary_codecs=false +} + +qtConfig(webengine-extensions) { + gn_args += enable_extensions=true +} else { + gn_args += enable_extensions=false +} + +qtConfig(webengine-kerberos) { + gn_args += use_kerberos=true +} else { + gn_args += use_kerberos=false +} diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri new file mode 100644 index 000000000..adde8c775 --- /dev/null +++ b/src/core/config/linux.pri @@ -0,0 +1,51 @@ +include(common.pri) + +!host_build{ + + qtConfig(webengine-system-zlib) { + qtConfig(webengine-system-minizip): gn_args += use_system_zlib=true use_system_minizip=true + qtConfig(webengine-printing-and-pdf): gn_args += pdfium_use_system_zlib=true + } + + qtConfig(webengine-system-png) { + gn_args += use_system_libpng=true + qtConfig(webengine-printing-and-pdf): gn_args += pdfium_use_system_libpng=true + } + + qtConfig(webengine-pulseaudio) { + gn_args += use_pulseaudio=true + } else { + gn_args += use_pulseaudio=false + } + + qtConfig(webengine-alsa) { + gn_args += use_alsa=true + } else { + gn_args += use_alsa=false + } + + !packagesExist(libpci): gn_args += use_libpci=false + + qtConfig(webengine-ozone-x11) { + gn_args += ozone_platform_x11=true + gn_args += use_xkbcommon=true + packagesExist(xscrnsaver): gn_args += use_xscrnsaver=true + qtConfig(webengine-webrtc): gn_args += rtc_use_x11=true + } + + qtConfig(webengine-system-libevent): gn_args += use_system_libevent=true + qtConfig(webengine-system-libwebp): gn_args += use_system_libwebp=true + qtConfig(webengine-system-libxml2): gn_args += use_system_libxml=true use_system_libxslt=true + qtConfig(webengine-system-opus): gn_args += use_system_opus=true + qtConfig(webengine-system-snappy): gn_args += use_system_snappy=true + qtConfig(webengine-system-libvpx): gn_args += use_system_libvpx=true + qtConfig(webengine-system-icu): gn_args += use_system_icu=true icu_use_data_file=false + qtConfig(webengine-system-ffmpeg): gn_args += use_system_ffmpeg=true + qtConfig(webengine-system-re2): gn_args += use_system_re2=true + qtConfig(webengine-system-lcms2): gn_args += use_system_lcms2=true + + # FIXME: + #qtConfig(webengine-system-protobuf): gn_args += use_system_protobuf=true + #qtConfig(webengine-system-jsoncpp): gn_args += use_system_jsoncpp=true + #qtConfig(webengine-system-libsrtp: gn_args += use_system_libsrtp=true +} diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri new file mode 100644 index 000000000..9543daf90 --- /dev/null +++ b/src/core/config/mac_osx.pri @@ -0,0 +1,8 @@ +include(common.pri) + +qtConfig(build-qtwebengine-core):qtConfig(webengine-spellchecker) { + qtConfig(webengine-native-spellchecker): gn_args += use_browser_spellchecker=true + else: gn_args += use_browser_spellchecker=false +} else { + gn_args += use_browser_spellchecker=false +} diff --git a/src/core/config/windows.pri b/src/core/config/windows.pri new file mode 100644 index 000000000..9543daf90 --- /dev/null +++ b/src/core/config/windows.pri @@ -0,0 +1,8 @@ +include(common.pri) + +qtConfig(build-qtwebengine-core):qtConfig(webengine-spellchecker) { + qtConfig(webengine-native-spellchecker): gn_args += use_browser_spellchecker=true + else: gn_args += use_browser_spellchecker=false +} else { + gn_args += use_browser_spellchecker=false +} diff --git a/src/core/gn_run.pro b/src/core/gn_run.pro index f3d57dad1..3d6fda80e 100644 --- a/src/core/gn_run.pro +++ b/src/core/gn_run.pro @@ -29,7 +29,7 @@ build_pass|!debug_and_release { runninja.target = run_ninja - gn_args = $$gnArgs() + gn_args = $$gnWebEngineArgs() gn_args += "qtwebengine_target=\"$$system_path($$OUT_PWD/$$getConfigDir()):QtWebEngineCore\"" -- cgit v1.2.3 From a879bf0c37c9e7aa1fc3449bd8dfcf514f53118b Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Fri, 22 May 2020 11:12:23 +0200 Subject: Move pdfium zlib and png configs to buildtools Adjust config so we use pdfium in webengine not only with printing. Change-Id: I1c4b263e89a993bde84b92872a5ad1d6d48cedbb Reviewed-by: Allan Sandfeld Jensen --- src/core/config/linux.pri | 8 -------- 1 file changed, 8 deletions(-) (limited to 'src/core') diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri index adde8c775..f890f0a6c 100644 --- a/src/core/config/linux.pri +++ b/src/core/config/linux.pri @@ -2,15 +2,7 @@ include(common.pri) !host_build{ - qtConfig(webengine-system-zlib) { - qtConfig(webengine-system-minizip): gn_args += use_system_zlib=true use_system_minizip=true - qtConfig(webengine-printing-and-pdf): gn_args += pdfium_use_system_zlib=true - } - qtConfig(webengine-system-png) { - gn_args += use_system_libpng=true - qtConfig(webengine-printing-and-pdf): gn_args += pdfium_use_system_libpng=true - } qtConfig(webengine-pulseaudio) { gn_args += use_pulseaudio=true -- cgit v1.2.3 From 59d12e0bbd0e620fc60d719acfbb45dfb8495e23 Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Wed, 20 May 2020 18:01:13 +0200 Subject: Remove duplicated feature webengine-ozone-x11 This feature is already in buildtools. Change-Id: Iff5d5cc4b72b29b850e8e4cb11b90251916ed9c7 Reviewed-by: Allan Sandfeld Jensen --- src/core/configure.json | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'src/core') diff --git a/src/core/configure.json b/src/core/configure.json index 55e68ab04..167555d79 100644 --- a/src/core/configure.json +++ b/src/core/configure.json @@ -187,15 +187,9 @@ "autoDetect": "!features.webengine-embedded-build", "output": [ "privateFeature" ] }, - "webengine-ozone-x11" : { + "webengine-ozone" : { "label": "Support qpa-xcb", - "condition": "config.unix - && features.webengine-system-x11 - && features.webengine-system-libdrm - && features.webengine-system-xcomposite - && features.webengine-system-xcursor - && features.webengine-system-xi - && features.webengine-system-xtst", + "condition": "features.webengine-ozone-x11", "output": [ "privateFeature" ] }, "webengine-sanitizer" : { @@ -274,7 +268,7 @@ "webengine-extensions", { "type": "feature", - "args": "webengine-ozone-x11", + "args": "webengine-ozone", "condition": "config.unix" }, { -- cgit v1.2.3 From 1b80f4d302011ee05691ef873b9d2ba430c2acf3 Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Wed, 20 May 2020 18:23:46 +0200 Subject: Move arm-thumb feature to buildtools Share arm-thumb setting between pdf and webengine. Move webengine-embedded to webengine since it is not used by pdf. Change-Id: Id23888423af7a37a3b3aa06e40dc0359fb90724b Reviewed-by: Allan Sandfeld Jensen --- src/core/config/linux.pri | 4 ++++ src/core/configure.json | 9 --------- 2 files changed, 4 insertions(+), 9 deletions(-) (limited to 'src/core') diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri index f890f0a6c..e98524002 100644 --- a/src/core/config/linux.pri +++ b/src/core/config/linux.pri @@ -1,5 +1,9 @@ include(common.pri) +qtConfig(webengine-embedded-build) { + gn_args += is_desktop_linux=false +} + !host_build{ diff --git a/src/core/configure.json b/src/core/configure.json index 167555d79..e0de69b10 100644 --- a/src/core/configure.json +++ b/src/core/configure.json @@ -89,10 +89,6 @@ "label" : "sanitizer support", "type": "isSanitizerSupported" }, - "webengine-arm-thumb" : { - "label": "thumb instruction set", - "type": "hasThumbFlag" - }, "webengine-noexecstack" : { "label": "linker supports -z noexecstack", "type": "linkerSupportsFlag", @@ -204,11 +200,6 @@ "condition": "libs.webengine-poppler-cpp", "output": [ "privateFeature" ] }, - "webengine-arm-thumb": { - "label": "Thumb instruction set", - "condition": "config.linux && features.webengine-embedded-build && arch.arm && tests.webengine-arm-thumb", - "output": [ "privateFeature" ] - }, "webengine-full-debug-info": { "label": "Full debug information", "purpose": "Enables debug information for Blink and V8.", -- cgit v1.2.3 From 626c46ab34b201cbec6c86b183d0047062d9bb76 Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Fri, 22 May 2020 12:05:04 +0200 Subject: Move sanitizer to buildtools Change-Id: I1531199bb15b9d05e5c017d14fce07d39625cafe Reviewed-by: Allan Sandfeld Jensen --- src/core/configure.json | 20 -------------------- 1 file changed, 20 deletions(-) (limited to 'src/core') diff --git a/src/core/configure.json b/src/core/configure.json index e0de69b10..8146b5b96 100644 --- a/src/core/configure.json +++ b/src/core/configure.json @@ -85,10 +85,6 @@ "label": "embedded build", "type": "detectEmbedded" }, - "webengine-sanitizer": { - "label" : "sanitizer support", - "type": "isSanitizerSupported" - }, "webengine-noexecstack" : { "label": "linker supports -z noexecstack", "type": "linkerSupportsFlag", @@ -188,12 +184,6 @@ "condition": "features.webengine-ozone-x11", "output": [ "privateFeature" ] }, - "webengine-sanitizer" : { - "label": "Sanitizer", - "autoDetect": "config.sanitizer && tests.webengine-sanitizer", - "condition": "config.sanitizer", - "output": [ "privateFeature" ] - }, "webengine-poppler-cpp": { "label": "poppler-cpp", "autoDetect": "config.unix", @@ -218,11 +208,6 @@ }, "report": [ - { - "type": "warning", - "condition": "config.sanitizer && !tests.webengine-sanitizer && !features.webengine-sanitizer", - "message": "Qt WebEngine cannot be built with the chosen sanitizer configuration. Check config.log for details or use -feature-webengine-sanitizer to force the build." - }, { "type": "warning", "condition": "config.unix && !features.webengine-host-pkg-config", @@ -277,11 +262,6 @@ "args": "webengine-pulseaudio", "condition": "config.unix" }, - { - "type": "feature", - "args": "webengine-sanitizer", - "condition": "config.sanitizer" - }, { "message": "macOS version", "type": "macosToolchainVersion", -- cgit v1.2.3 From b459fef1112cadd101553ad793c9b5438ecca1c1 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 29 May 2020 12:15:36 +0200 Subject: Add missing dependency on quota_internals resources Needed by quota_internals.cc Fixes: QTBUG-84557 Change-Id: I428f8a95617aa1019468d80405e821f9a9e7f28f Reviewed-by: Kirill Burtsev --- src/core/qtwebengine_sources.gni | 1 + 1 file changed, 1 insertion(+) (limited to 'src/core') diff --git a/src/core/qtwebengine_sources.gni b/src/core/qtwebengine_sources.gni index 9c65fa690..3a39455c3 100644 --- a/src/core/qtwebengine_sources.gni +++ b/src/core/qtwebengine_sources.gni @@ -47,6 +47,7 @@ source_set("qtwebengine_sources") { deps = [ "//build:branding_buildflags", + "//chrome/browser/resources/quota_internals:quota_internals_resources", "//chrome/common:buildflags", "//components/nacl/common:buildflags", "//components/plugins/renderer/", -- cgit v1.2.3 From 59140fb4903c8d734a3b178217932d34db36e7a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCri=20Valdmann?= Date: Thu, 30 Apr 2020 18:15:04 +0200 Subject: Delete unused methods in UserResourceControllerHost Delete registeredScripts and containsUserScript. Change-Id: I0697098c55e5bcad2e0f37b325c0611e3802155a Reviewed-by: Allan Sandfeld Jensen --- .../renderer_host/user_resource_controller_host.cpp | 19 ------------------- .../renderer_host/user_resource_controller_host.h | 2 -- 2 files changed, 21 deletions(-) (limited to 'src/core') diff --git a/src/core/renderer_host/user_resource_controller_host.cpp b/src/core/renderer_host/user_resource_controller_host.cpp index 96625c13f..6b9bb63fe 100644 --- a/src/core/renderer_host/user_resource_controller_host.cpp +++ b/src/core/renderer_host/user_resource_controller_host.cpp @@ -148,17 +148,6 @@ void UserResourceControllerHost::addUserScript(const UserScript &script, WebCont } } -bool UserResourceControllerHost::containsUserScript(const UserScript &script, WebContentsAdapter *adapter) -{ - if (script.isNull()) - return false; - // Global scripts should be dispatched to all our render processes. - const bool isProfileWideScript = !adapter; - if (isProfileWideScript) - return m_profileWideScripts.contains(script); - return m_perContentsScripts.value(adapter->webContents()).contains(script); -} - bool UserResourceControllerHost::removeUserScript(const UserScript &script, WebContentsAdapter *adapter) { if (script.isNull()) @@ -201,14 +190,6 @@ void UserResourceControllerHost::clearAllScripts(WebContentsAdapter *adapter) } } -const QList UserResourceControllerHost::registeredScripts(WebContentsAdapter *adapter) const -{ - const bool isProfileWideScript = !adapter; - if (isProfileWideScript) - return m_profileWideScripts; - return m_perContentsScripts.value(adapter->webContents()); -} - void UserResourceControllerHost::reserve(WebContentsAdapter *adapter, int count) { const bool isProfileWideScript = !adapter; diff --git a/src/core/renderer_host/user_resource_controller_host.h b/src/core/renderer_host/user_resource_controller_host.h index 9d828feb6..7b89cb893 100644 --- a/src/core/renderer_host/user_resource_controller_host.h +++ b/src/core/renderer_host/user_resource_controller_host.h @@ -74,11 +74,9 @@ public: ~UserResourceControllerHost(); void addUserScript(const UserScript &script, WebContentsAdapter *adapter); - bool containsUserScript(const UserScript &script, WebContentsAdapter *adapter); bool removeUserScript(const UserScript &script, WebContentsAdapter *adapter); void clearAllScripts(WebContentsAdapter *adapter); void reserve(WebContentsAdapter *adapter, int count); - const QList registeredScripts(WebContentsAdapter *adapter) const; void renderProcessStartedWithHost(content::RenderProcessHost *renderer); -- cgit v1.2.3 From a79aee10e96a5f89579f087b440e0a8f204d9261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCri=20Valdmann?= Date: Wed, 20 May 2020 14:42:28 +0200 Subject: Clear previous values from UserScript::parseMetadataHeader Change-Id: I80592eb6a2bc49cc6366725c77d385827619f6e5 Reviewed-by: Allan Sandfeld Jensen --- src/core/user_script.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/core') diff --git a/src/core/user_script.cpp b/src/core/user_script.cpp index bdd6524ca..7ccb6e10a 100644 --- a/src/core/user_script.cpp +++ b/src/core/user_script.cpp @@ -194,6 +194,11 @@ UserScriptData &UserScript::data() const void UserScript::parseMetadataHeader() { + // Clear previous values + scriptData->globs.clear(); + scriptData->excludeGlobs.clear(); + scriptData->urlPatterns.clear(); + // Logic taken from Chromium (extensions/browser/user_script_loader.cc) // http://wiki.greasespot.net/Metadata_block const std::string &script_text = scriptData->source; -- cgit v1.2.3 From 943d8fea1a5dc5769cd35e18907d970bf9ef30d5 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 25 May 2020 13:43:52 +0200 Subject: Update devtools loadNetworkResource to match latest Chromium MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds handling of file and webui schemes. Change-Id: Idd9f7dd79cc7b327dab789e369baf00772820cc6 Reviewed-by: Jüri Valdmann --- src/core/devtools_frontend_qt.cpp | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'src/core') diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp index 8d325eca6..52d7dc669 100644 --- a/src/core/devtools_frontend_qt.cpp +++ b/src/core/devtools_frontend_qt.cpp @@ -65,14 +65,17 @@ #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" +#include "content/public/browser/file_url_loader.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/navigation_handle.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_view_host.h" +#include "content/public/browser/shared_cors_origin_access_list.h" #include "content/public/browser/storage_partition.h" #include "content/public/browser/web_contents.h" #include "content/public/common/content_client.h" #include "content/public/common/url_constants.h" +#include "content/public/common/url_utils.h" #include "ipc/ipc_channel.h" #include "net/http/http_response_headers.h" #include "net/traffic_annotation/network_traffic_annotation.h" @@ -425,15 +428,28 @@ void DevToolsFrontendQt::HandleMessageFromDevToolsFrontend(const std::string &me resource_request->site_for_cookies = gurl; resource_request->headers.AddHeadersFromString(headers); - auto *partition = content::BrowserContext::GetStoragePartitionForSite( - web_contents()->GetBrowserContext(), gurl); - auto factory = partition->GetURLLoaderFactoryForBrowserProcess(); - + std::unique_ptr file_url_loader_factory; + scoped_refptr network_url_loader_factory; + network::mojom::URLLoaderFactory *url_loader_factory; + if (gurl.SchemeIsFile()) { + file_url_loader_factory = content::CreateFileURLLoaderFactory(base::FilePath(), nullptr); + url_loader_factory = file_url_loader_factory.get(); + } else if (content::HasWebUIScheme(gurl)) { + base::DictionaryValue response; + response.SetInteger("statusCode", 403); + SendMessageAck(request_id, &response); + return; + } else { + auto *partition = content::BrowserContext::GetStoragePartitionForSite( + web_contents()->GetBrowserContext(), gurl); + network_url_loader_factory = partition->GetURLLoaderFactoryForBrowserProcess(); + url_loader_factory = network_url_loader_factory.get(); + } auto simple_url_loader = network::SimpleURLLoader::Create( std::move(resource_request), traffic_annotation); auto resource_loader = std::make_unique( stream_id, request_id, this, std::move(simple_url_loader), - factory.get()); + url_loader_factory); m_loaders.insert(std::move(resource_loader)); return; } else if (method == "getPreferences") { -- cgit v1.2.3 From 7906b030dc632557f6a2e8cbb471ebf38ef2121c Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Fri, 22 May 2020 18:17:51 +0200 Subject: Split errorChecks for webengine and pdf Separate error checks, so qtpdf can have own dependencies. Change-Id: I9e538b875fe67448497f10dcd45c83782d98da2d Reviewed-by: Allan Sandfeld Jensen --- src/core/core.pro | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'src/core') diff --git a/src/core/core.pro b/src/core/core.pro index 9709e62c3..3b7aea4f0 100644 --- a/src/core/core.pro +++ b/src/core/core.pro @@ -1,3 +1,5 @@ +include($$QTWEBENGINE_OUT_ROOT/src/buildtools/qtbuildtools-config.pri) +QT_FOR_CONFIG += buildtools-private TEMPLATE = subdirs # core_headers is a dummy module to syncqt the headers so we can @@ -9,8 +11,6 @@ core_api.file = api/core_api.pro core_module.file = core_module.pro core_module.depends = core_api -# core_generator.pro is a dummy .pro file that is used by qmake -# to generate our main .gyp/BUILD.gn file core_generator.file = core_generator.pro core_generator.depends = core_headers @@ -26,11 +26,19 @@ core_api.depends = gn_run core_project.file = core_project.pro core_project.depends = gn_run -SUBDIRS += \ - core_headers \ - core_generator \ - gn_run \ - core_api \ - core_module - -false: SUBDIRS += core_project +!qtConfig(webengine-core-support):qtConfig(build-qtwebengine-core):!qtwebengine_makeCheckWebEngineCoreError():!build_pass { + errorbuild.commands = @echo $$shell_quote(QtWebEngineCore module will not be built. $${skipBuildReason}) + errorbuild.CONFIG = phony + QMAKE_EXTRA_TARGETS += errorbuild + first.depends += errorbuild + QMAKE_EXTRA_TARGETS += first +} else { + SUBDIRS += \ + core_headers \ + core_generator \ + gn_run \ + core_api \ + core_module + + false: SUBDIRS += core_project +} -- cgit v1.2.3 From 2c956efefd5cddf7eca606e15aee70c2dcd192eb Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Fri, 12 Jun 2020 09:47:02 +0200 Subject: Add some info when project is misconfigured MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We support calling make on not configured properly qtwebengine and qtpdf. This avoids issues when there is no make file for top level build and user does not understand why. To do that we 'share' error messages between configure and make calls. However to avoid duplicating tests and error messages 'configure test conditions' have to match 'error messages' in support.pri. In case we miss some error message just ask for reporting the bug, instead of still trying to build the thing. Change-Id: I23320afa5174b5f33871c8cd8739ceea8e3a169d Reviewed-by: Michael Brüning --- src/core/core.pro | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/core') diff --git a/src/core/core.pro b/src/core/core.pro index 3b7aea4f0..f2d3fd307 100644 --- a/src/core/core.pro +++ b/src/core/core.pro @@ -26,8 +26,12 @@ core_api.depends = gn_run core_project.file = core_project.pro core_project.depends = gn_run -!qtConfig(webengine-core-support):qtConfig(build-qtwebengine-core):!qtwebengine_makeCheckWebEngineCoreError():!build_pass { - errorbuild.commands = @echo $$shell_quote(QtWebEngineCore module will not be built. $${skipBuildReason}) +!qtConfig(webengine-core-support):qtConfig(build-qtwebengine-core):!build_pass { + !qtwebengine_makeCheckWebEngineCoreError() { + errorbuild.commands = @echo $$shell_quote("QtWebEngineCore module will not be built. $${skipBuildReason}") + } else { + errorbuild.commands = @echo $$shell_quote("QtWebEngineCore module will not be built for unknown reason, please open a bug report at https://bugreports.qt.io") + } errorbuild.CONFIG = phony QMAKE_EXTRA_TARGETS += errorbuild first.depends += errorbuild -- cgit v1.2.3 From 027cce270aea504308e123988dfb5cd1658687d7 Mon Sep 17 00:00:00 2001 From: Tamas Zakor Date: Wed, 17 Jun 2020 09:34:13 +0200 Subject: Fix compiler warnings in file_picker_controller.cpp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I6d160f90e7693d15cb495d38788c57b47a1fe548 Reviewed-by: Jüri Valdmann --- src/core/file_picker_controller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/file_picker_controller.cpp b/src/core/file_picker_controller.cpp index 01a6d0746..65e2c6f00 100644 --- a/src/core/file_picker_controller.cpp +++ b/src/core/file_picker_controller.cpp @@ -120,7 +120,7 @@ void FilePickerController::accepted(const QStringList &files) } // Build absolute path from file URI componenets. - for (int j = 1; j < pathComponents.size(); j++) + for (size_t j = 1; j < pathComponents.size(); j++) absolutePath += toQt(pathComponents[j]) + (j != pathComponents.size()-1 ? "/" : ""); if (toFilePath(absolutePath).IsAbsolute()) { -- cgit v1.2.3 From 4ff62aec5727ea8f0ae8e9771dc72d977df98d70 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 22 Jun 2020 11:36:46 +0200 Subject: Detect the presence of host node.js Allows building with or without it. Fixes: QTBUG-83729 Change-Id: I88d784e3230208e1268491c6ae0a4ebf1543aac8 Reviewed-by: Michal Klocek --- src/core/config/common.pri | 6 ++++++ src/core/configure.json | 15 +++++++++++++++ 2 files changed, 21 insertions(+) (limited to 'src/core') diff --git a/src/core/config/common.pri b/src/core/config/common.pri index 12a46c5f8..c1658ce82 100644 --- a/src/core/config/common.pri +++ b/src/core/config/common.pri @@ -42,3 +42,9 @@ qtConfig(webengine-kerberos) { } else { gn_args += use_kerberos=false } + +qtConfig(webengine-nodejs) { + gn_args += have_nodejs=true +} else { + gn_args += have_nodejs=false +} diff --git a/src/core/configure.json b/src/core/configure.json index 8146b5b96..1a2162723 100644 --- a/src/core/configure.json +++ b/src/core/configure.json @@ -89,6 +89,10 @@ "label": "linker supports -z noexecstack", "type": "linkerSupportsFlag", "flag": "-z,noexecstack" + }, + "webengine-nodejs": { + "label": "node.js", + "type": "detectNodeJS" } }, "features": { @@ -204,6 +208,11 @@ "label": "linker supports -z noexecstack", "condition": "config.unix && tests.webengine-noexecstack", "output": [ "privateFeature" ] + }, + "webengine-nodejs": { + "label": "Node.js", + "condition": "tests.webengine-nodejs", + "output": [ "privateFeature" ] } }, @@ -222,6 +231,11 @@ "type": "warning", "condition": "config.unix && config.cross_compile && !features.webengine-v8-snapshot-support", "message": "V8 snapshot cannot be built. Most likely, the 32-bit host compiler does not work. Please make sure you have 32-bit devel environment installed." + }, + { + "type": "warning", + "condition": "!features.webengine-nodejs", + "message": "Building without node.js will disable some features of QtWebEngine DevTools." } ], @@ -242,6 +256,7 @@ "webengine-webchannel", "webengine-kerberos", "webengine-extensions", + "webengine-nodejs", { "type": "feature", "args": "webengine-ozone", -- cgit v1.2.3 From e42ccdad0bae65bdd0e20904df56decb7e93c314 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 22 Jun 2020 16:18:55 +0200 Subject: Fix recentlyAudible signal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is now emitted with a different enum flag value. Fixes: QTBUG-85118 Change-Id: Ic3e4807d451a0a53bda17e0b8d43d906cb315fc9 Reviewed-by: Michael Brüning --- src/core/web_contents_delegate_qt.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/core') diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index 63f52433e..54ae4937a 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -205,12 +205,9 @@ void WebContentsDelegateQt::NavigationStateChanged(content::WebContents* source, } } - // NavigationStateChanged gets called with INVALIDATE_TYPE_TAB by AudioStateProvider::Notify, - // whenever an audio sound gets played or stopped, this is the only way to actually figure out - // if there was a recently played audio sound. // Make sure to only emit the signal when loading isn't in progress, because it causes multiple // false signals to be emitted. - if ((changed_flags & content::INVALIDATE_TYPE_TAB) && !(changed_flags & content::INVALIDATE_TYPE_LOAD)) { + if ((changed_flags & content::INVALIDATE_TYPE_AUDIO) && !(changed_flags & content::INVALIDATE_TYPE_LOAD)) { m_viewClient->recentlyAudibleChanged(source->IsCurrentlyAudible()); } } -- cgit v1.2.3 From 1a26c0ace958c3604c8a751134429dd38168a1a1 Mon Sep 17 00:00:00 2001 From: Romain Pokrzywka Date: Mon, 22 Jun 2020 23:52:41 -0500 Subject: Initialize the extension bindings in g_driver_egl This step is done in GLSurfaceEGL but missing in GLSurfaceEGLQt. The extension bindings in g_driver_egl are checked, among other things, when initializing DXVAVideoDecodeAccelerator, so we need them to enable hardware-accelerated video decoding on Windows with ANGLE. Change-Id: I6a650a0aafe3d4f870101d33d2117427c22304e7 Reviewed-by: Romain Pokrzywka Reviewed-by: Michal Klocek --- src/core/ozone/gl_surface_egl_qt.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/core') diff --git a/src/core/ozone/gl_surface_egl_qt.cpp b/src/core/ozone/gl_surface_egl_qt.cpp index a6988bbf3..ac0e79b67 100644 --- a/src/core/ozone/gl_surface_egl_qt.cpp +++ b/src/core/ozone/gl_surface_egl_qt.cpp @@ -72,6 +72,9 @@ bool GLSurfaceEGLQt::InitializeOneOff() if (s_initialized) return true; + // Must be called before initializing the display. + g_driver_egl.InitializeClientExtensionBindings(); + g_display = GLContextHelper::getEGLDisplay(); if (!g_display) { LOG(ERROR) << "GLContextHelper::getEGLDisplay() failed."; @@ -107,6 +110,10 @@ bool GLSurfaceEGLQt::InitializeOneOff() context->ReleaseCurrent(surface.get()); } } + + // Must be called after initializing the display. + g_driver_egl.InitializeExtensionBindings(); + s_initialized = true; return true; } -- cgit v1.2.3