diff options
Diffstat (limited to 'www/qt6-webengine')
18 files changed, 320 insertions, 87 deletions
diff --git a/www/qt6-webengine/Makefile b/www/qt6-webengine/Makefile index af4e2c6f7452..9939ff2dc4d5 100644 --- a/www/qt6-webengine/Makefile +++ b/www/qt6-webengine/Makefile @@ -12,22 +12,25 @@ PORTNAME?= webengine DISTVERSION= ${QT6_VERSION} -PORTREVISION?= 0 # Master port for print/qt6-pdf. Please keep this line. +# This is the parent port of print/qt6-pdf. Please always keep 'PORTREVISION?=' +# and reset the value to '0' only after increasing QT6_VERSION in Mk/Uses/qt.mk. +PORTREVISION?= 0 CATEGORIES?= www PKGNAMEPREFIX= qt6- MAINTAINER= kde@FreeBSD.org COMMENT?= Qt 6 library to render web content -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${PY_FLAVOR} \ - ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers +# 32-bit platforms are not supported by upstream, but we're limping them along. +ONLY_FOR_ARCHS= aarch64 amd64 armv7 i386 + +BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers LIB_DEPENDS= libfreetype.so:print/freetype2 \ libnss3.so:security/nss \ libopenjp2.so:graphics/openjpeg \ libxkbcommon.so:x11/libxkbcommon -USES= bison cmake compiler:c++20-lang gl gperf \ - localbase:ldflags ninja:build nodejs:build,lts \ +USES= cmake compiler:c++20-lang gl localbase:ldflags ninja:build \ pkgconfig python:build qt-dist:6,webengine USE_GL= opengl USE_QT= base declarative tools @@ -45,7 +48,8 @@ CMAKE_OFF+= QT_FEATURE_qtwebengine_build SYS_LIBS= freetype .else -BUILD_DEPENDS+= ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat +BUILD_DEPENDS+= ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \ + ${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${PY_FLAVOR} LIB_DEPENDS+= libabsl_base.so:devel/abseil \ libavcodec.so:multimedia/ffmpeg \ libdbus-1.so:devel/dbus \ @@ -68,7 +72,7 @@ LIB_DEPENDS+= libabsl_base.so:devel/abseil \ libvpx.so:multimedia/libvpx \ libwebp.so:graphics/webp -USES+= gnome jpeg minizip xorg +USES+= bison gnome gperf jpeg minizip xorg USE_GL+= gbm USE_QT+= positioning quick3d:build webchannel USE_GNOME+= glib20 libxml2 libxslt @@ -139,6 +143,16 @@ SNDIO_CMAKE_ON= -DQT_FEATURE_webengine_system_sndio:BOOL=ON SNDIO_CMAKE_OFF= -DQT_FEATURE_webengine_system_sndio:BOOL=OFF .endif +.include <bsd.port.options.mk> + +.if !defined(BUILD_QTPDF) +. if ${ARCH:Mi386} +USES+= nodejs:build,20 +. else +USES+= nodejs:build,lts +. endif +.endif + post-extract: @${MKDIR} ${WRKSRC}/src/3rdparty/chromium/media/audio/sndio \ ${WRKSRC}/src/3rdparty/chromium/sandbox/policy/freebsd \ diff --git a/www/qt6-webengine/distinfo b/www/qt6-webengine/distinfo index d4d0b5b8184a..1937cd5f2816 100644 --- a/www/qt6-webengine/distinfo +++ b/www/qt6-webengine/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1749159742 -SHA256 (KDE/Qt/6.9.1/qtwebengine-everywhere-src-6.9.1.tar.xz) = 787dfde22b348f6d620f2207ed7e32ad0a5389373182614272de28ff3f91c26c -SIZE (KDE/Qt/6.9.1/qtwebengine-everywhere-src-6.9.1.tar.xz) = 672204388 +TIMESTAMP = 1756198709 +SHA256 (KDE/Qt/6.9.2/qtwebengine-everywhere-src-6.9.2.tar.xz) = 99cb0792abc2e39b299d73d8e2aa076b9ebcd55c3f4a4b5fd514eef5a62d03ab +SIZE (KDE/Qt/6.9.2/qtwebengine-everywhere-src-6.9.2.tar.xz) = 672191852 diff --git a/www/qt6-webengine/files/patch-cmake_Functions.cmake b/www/qt6-webengine/files/patch-cmake_Functions.cmake index 8264af9b3658..8bb309145150 100644 --- a/www/qt6-webengine/files/patch-cmake_Functions.cmake +++ b/www/qt6-webengine/files/patch-cmake_Functions.cmake @@ -1,4 +1,4 @@ ---- cmake/Functions.cmake.orig 2025-05-29 01:27:28 UTC +--- cmake/Functions.cmake.orig 2025-08-18 00:53:11 UTC +++ cmake/Functions.cmake @@ -103,7 +103,7 @@ function(add_linker_options target buildDir completeSt set(libs_rsp "${buildDir}/${ninjaTarget}_libs.rsp") @@ -9,7 +9,7 @@ get_gn_arch(cpu ${TEST_architecture_arch}) if(CMAKE_CROSSCOMPILING AND cpu STREQUAL "arm" AND ${config} STREQUAL "Debug") target_link_options(${cmakeTarget} PRIVATE "LINKER:--long-plt") -@@ -370,6 +370,20 @@ function(add_gn_build_artifacts_to_target) +@@ -373,6 +373,20 @@ function(add_gn_build_artifacts_to_target) set_target_properties(${arg_CMAKE_TARGET} PROPERTIES LINK_DEPENDS ${arg_BUILDDIR}/${config}/${arch}/${arg_NINJA_STAMP} ) diff --git a/www/qt6-webengine/files/patch-cmake_QtToolchainHelpers.cmake b/www/qt6-webengine/files/patch-cmake_QtToolchainHelpers.cmake index 4417cdb8a943..b732070f2d7e 100644 --- a/www/qt6-webengine/files/patch-cmake_QtToolchainHelpers.cmake +++ b/www/qt6-webengine/files/patch-cmake_QtToolchainHelpers.cmake @@ -1,4 +1,4 @@ ---- cmake/QtToolchainHelpers.cmake.orig 2025-05-29 01:27:28 UTC +--- cmake/QtToolchainHelpers.cmake.orig 2025-08-18 00:53:11 UTC +++ cmake/QtToolchainHelpers.cmake @@ -95,6 +95,8 @@ function(get_gn_os result) set(${result} "mac" PARENT_SCOPE) @@ -9,7 +9,7 @@ else() message(DEBUG "Unrecognized OS") endif() -@@ -310,7 +312,7 @@ macro(append_build_type_setup) +@@ -323,7 +325,7 @@ macro(append_build_type_setup) extend_gn_list(gnArgArg ARGS enable_precompiled_headers @@ -18,7 +18,7 @@ ) extend_gn_list(gnArgArg ARGS dcheck_always_on -@@ -402,7 +404,7 @@ macro(append_compiler_linker_sdk_setup) +@@ -415,7 +417,7 @@ macro(append_compiler_linker_sdk_setup) use_libcxx=true ) endif() @@ -27,7 +27,7 @@ extend_gn_list(gnArgArg ARGS use_libcxx CONDITION QT_FEATURE_stdlib_libcpp ) -@@ -443,7 +445,7 @@ macro(append_compiler_linker_sdk_setup) +@@ -456,7 +458,7 @@ macro(append_compiler_linker_sdk_setup) ) endif() get_gn_arch(cpu ${TEST_architecture_arch}) @@ -36,7 +36,7 @@ extend_gn_list_cflag(gnArgArg ARG arm_tune -@@ -548,7 +550,7 @@ macro(append_toolchain_setup) +@@ -561,7 +563,7 @@ macro(append_toolchain_setup) endif() unset(host_cpu) unset(target_cpu) diff --git a/www/qt6-webengine/files/patch-configure.cmake b/www/qt6-webengine/files/patch-configure.cmake index 5505a55e5e3c..b9217899f331 100644 --- a/www/qt6-webengine/files/patch-configure.cmake +++ b/www/qt6-webengine/files/patch-configure.cmake @@ -1,11 +1,11 @@ ---- configure.cmake.orig 2025-02-21 12:29:33 UTC +--- configure.cmake.orig 2025-08-18 00:53:11 UTC +++ configure.cmake -@@ -292,12 +292,12 @@ qt_webengine_configure_check("supported-platform" +@@ -291,12 +291,12 @@ qt_webengine_configure_check("supported-platform" qt_webengine_configure_check("supported-platform" MODULES QtWebEngine -- CONDITION LINUX OR (WIN32 AND NOT (WIN_ARM_64 AND DEFINED ENV{COIN_PLATFORM_ID})) OR MACOS -+ CONDITION LINUX OR (WIN32 AND NOT (WIN_ARM_64 AND DEFINED ENV{COIN_PLATFORM_ID})) OR MACOS OR FREEBSD +- CONDITION LINUX OR WIN32 OR MACOS ++ CONDITION LINUX OR WIN32 OR MACOS OR FREEBSD MESSAGE "Build can be done only on Linux, Windows or macOS." ) qt_webengine_configure_check("supported-platform" @@ -15,7 +15,7 @@ MESSAGE "Build can be done only on Linux, Windows, macO, iOS and Android." ) -@@ -317,15 +317,6 @@ qt_webengine_configure_check("static-build" +@@ -316,15 +316,6 @@ qt_webengine_configure_check("static-build" MESSAGE "Static build is not supported." ) @@ -31,7 +31,7 @@ qt_webengine_configure_check("python3" MODULES QtWebEngine QtPdf CONDITION Python3_FOUND -@@ -448,6 +439,8 @@ qt_webengine_configure_check("compiler" +@@ -455,6 +446,8 @@ qt_webengine_configure_check("compiler" CONDITION MSVC OR (LINUX AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (LINUX AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR @@ -40,7 +40,7 @@ (MACOS AND CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") MESSAGE "${CMAKE_CXX_COMPILER_ID} compiler is not supported." -@@ -457,6 +450,8 @@ qt_webengine_configure_check("compiler" +@@ -464,6 +457,8 @@ qt_webengine_configure_check("compiler" CONDITION MSVC OR (LINUX AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (LINUX AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR @@ -49,7 +49,7 @@ (APPLE AND CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") OR (ANDROID AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (MINGW AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR -@@ -709,7 +704,7 @@ qt_feature("webengine-ozone-x11" PRIVATE +@@ -725,7 +720,7 @@ qt_feature("webengine-ozone-x11" PRIVATE qt_feature("webengine-ozone-x11" PRIVATE LABEL "Support X11 on qpa-xcb" diff --git a/www/qt6-webengine/files/patch-security-rollup b/www/qt6-webengine/files/patch-security-rollup new file mode 100644 index 000000000000..8955c1fb52d9 --- /dev/null +++ b/www/qt6-webengine/files/patch-security-rollup @@ -0,0 +1,246 @@ +Security patches since 6.9.2 release + +CVE-2025-8879: Heap buffer overflow in libaom +CVE-2025-8880: Race in V8 +CVE-2025-8881: Inappropriate implementation in File Picker +CVE-2025-8901: Out of bounds write in ANGLE + +https://github.com/qt/qtwebengine-chromium/compare/136d7fe8aa41c9d4cd764a6b890af9699f5141dd..130-based.diff + +diff --git a/chromium/content/browser/web_contents/file_chooser_impl.cc b/chromium/content/browser/web_contents/file_chooser_impl.cc +index 7e2391bd1afd..d366c5d26bba 100644 +--- src/3rdparty/chromium/content/browser/web_contents/file_chooser_impl.cc ++++ src/3rdparty/chromium/content/browser/web_contents/file_chooser_impl.cc +@@ -169,6 +169,12 @@ void FileChooserImpl::OpenFileChooser(blink::mojom::FileChooserParamsPtr params, + return; + } + ++ // Do not allow open dialogs to have renderer-controlled default_file_name. ++ // See https://crbug.com/433800617 for context. ++ if (params->mode != blink::mojom::FileChooserParams::Mode::kSave) { ++ params->default_file_name = base::FilePath(); ++ } ++ + // Don't allow page with open FileChooser to enter BackForwardCache to avoid + // any unexpected behaviour from BackForwardCache. + BackForwardCache::DisableForRenderFrameHost( +diff --git a/chromium/media/audio/audio_input_device.cc b/chromium/media/audio/audio_input_device.cc +index a7d8e1098241..44abd451c397 100644 +--- src/3rdparty/chromium/media/audio/audio_input_device.cc ++++ src/3rdparty/chromium/media/audio/audio_input_device.cc +@@ -482,7 +482,7 @@ void AudioInputDevice::AudioThreadCallback::Process(uint32_t pending_data) { + const base::TimeTicks capture_time = + base::TimeTicks() + base::Microseconds(buffer->params.capture_time_us); + const base::TimeTicks now_time = base::TimeTicks::Now(); +- DCHECK_GE(now_time, capture_time); ++ // DCHECK_GE(now_time, capture_time); + + AudioGlitchInfo glitch_info{ + .duration = base::Microseconds(buffer->params.glitch_duration_us), +diff --git a/chromium/third_party/angle/src/compiler/translator/Compiler.cpp b/chromium/third_party/angle/src/compiler/translator/Compiler.cpp +index 107f61cf4603..04b698b7fc08 100644 +--- src/3rdparty/chromium/third_party/angle/src/compiler/translator/Compiler.cpp ++++ src/3rdparty/chromium/third_party/angle/src/compiler/translator/Compiler.cpp +@@ -775,24 +775,6 @@ bool TCompiler::checkAndSimplifyAST(TIntermBlock *root, + return false; + } + +- // For now, rewrite pixel local storage before collecting variables or any operations on images. +- // +- // TODO(anglebug.com/40096838): +- // Should this actually run after collecting variables? +- // Do we need more introspection? +- // Do we want to hide rewritten shader image uniforms from glGetActiveUniform? +- if (hasPixelLocalStorageUniforms()) +- { +- ASSERT( +- IsExtensionEnabled(mExtensionBehavior, TExtension::ANGLE_shader_pixel_local_storage)); +- if (!RewritePixelLocalStorage(this, root, getSymbolTable(), compileOptions, +- getShaderVersion())) +- { +- mDiagnostics.globalError("internal compiler error translating pixel local storage"); +- return false; +- } +- } +- + if (shouldRunLoopAndIndexingValidation(compileOptions) && + !ValidateLimitations(root, mShaderType, &mSymbolTable, &mDiagnostics)) + { +@@ -939,6 +921,24 @@ bool TCompiler::checkAndSimplifyAST(TIntermBlock *root, + return false; + } + ++ // For now, rewrite pixel local storage before collecting variables or any operations on images. ++ // ++ // TODO(anglebug.com/40096838): ++ // Should this actually run after collecting variables? ++ // Do we need more introspection? ++ // Do we want to hide rewritten shader image uniforms from glGetActiveUniform? ++ if (hasPixelLocalStorageUniforms()) ++ { ++ ASSERT( ++ IsExtensionEnabled(mExtensionBehavior, TExtension::ANGLE_shader_pixel_local_storage)); ++ if (!RewritePixelLocalStorage(this, root, getSymbolTable(), compileOptions, ++ getShaderVersion())) ++ { ++ mDiagnostics.globalError("internal compiler error translating pixel local storage"); ++ return false; ++ } ++ } ++ + // Clamping uniform array bounds needs to happen after validateLimitations pass. + if (compileOptions.clampIndirectArrayBounds) + { +diff --git a/chromium/third_party/angle/src/compiler/translator/ValidateOutputs.cpp b/chromium/third_party/angle/src/compiler/translator/ValidateOutputs.cpp +index 927783db73f6..d3481f1a4d1f 100644 +--- src/3rdparty/chromium/third_party/angle/src/compiler/translator/ValidateOutputs.cpp ++++ src/3rdparty/chromium/third_party/angle/src/compiler/translator/ValidateOutputs.cpp +@@ -72,15 +72,19 @@ ValidateOutputsTraverser::ValidateOutputsTraverser(const TExtensionBehavior &ext + void ValidateOutputsTraverser::visitSymbol(TIntermSymbol *symbol) + { + if (symbol->variable().symbolType() == SymbolType::Empty) ++ { + return; ++ } + + if (mVisitedSymbols.count(symbol->uniqueId().get()) == 1) ++ { + return; ++ } + + mVisitedSymbols.insert(symbol->uniqueId().get()); + + TQualifier qualifier = symbol->getQualifier(); +- if (qualifier == EvqFragmentOut) ++ if (qualifier == EvqFragmentOut || qualifier == EvqFragmentInOut) + { + const TLayoutQualifier &layoutQualifier = symbol->getType().getLayoutQualifier(); + if (layoutQualifier.location != -1) +diff --git a/chromium/third_party/blink/public/mojom/choosers/file_chooser.mojom b/chromium/third_party/blink/public/mojom/choosers/file_chooser.mojom +index 22ccb9cc709f..f323fa2aa2eb 100644 +--- src/3rdparty/chromium/third_party/blink/public/mojom/choosers/file_chooser.mojom ++++ src/3rdparty/chromium/third_party/blink/public/mojom/choosers/file_chooser.mojom +@@ -25,7 +25,7 @@ struct FileChooserParams { + kUploadFolder, + + // Allows picking a nonexistent file, and prompts to overwrite if the file +- // already exists. This is not for Blink but for PPAPI. ++ // already exists. + kSave, + }; + Mode mode = kOpen; +@@ -34,7 +34,8 @@ struct FileChooserParams { + // which will be either "Open" or "Save" depending on the mode. + mojo_base.mojom.String16 title; + +- // Default file name to select in the dialog with kSave mode. ++ // Default file name to select in the dialog with kSave mode. This value ++ // is cleared if mode is not kSave. + mojo_base.mojom.FilePath default_file_name; + + // |selected_files| has filenames which a file upload control already +diff --git a/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.c b/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.c +index 4fd5ec6bf54b..82a48c39cb10 100644 +--- src/3rdparty/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.c ++++ src/3rdparty/chromium/third_party/libaom/source/libaom/av1/encoder/ratectrl.c +@@ -3236,8 +3236,9 @@ static void rc_scene_detection_onepass_rt(AV1_COMP *cpi, + // non-zero sad exists along bottom border even though source is static. + const int border = + rc->prev_frame_is_dropped || cpi->svc.number_temporal_layers > 1; +- // Store blkwise SAD for later use +- if (width == cm->render_width && height == cm->render_height) { ++ // Store blkwise SAD for later use. Disable for spatial layers for now. ++ if (width == cm->render_width && height == cm->render_height && ++ cpi->svc.number_spatial_layers == 1) { + if (cpi->src_sad_blk_64x64 == NULL) { + CHECK_MEM_ERROR(cm, cpi->src_sad_blk_64x64, + (uint64_t *)aom_calloc(sb_cols * sb_rows, +diff --git a/chromium/v8/src/wasm/streaming-decoder.cc b/chromium/v8/src/wasm/streaming-decoder.cc +index f3745b4c055a..ce5dad96d52f 100644 +--- src/3rdparty/chromium/v8/src/wasm/streaming-decoder.cc ++++ src/3rdparty/chromium/v8/src/wasm/streaming-decoder.cc +@@ -230,45 +230,61 @@ class V8_EXPORT_PRIVATE AsyncStreamingDecoder : public StreamingDecoder { + }; + + void AsyncStreamingDecoder::OnBytesReceived(base::Vector<const uint8_t> bytes) { +- DCHECK(!full_wire_bytes_.empty()); ++ TRACE_STREAMING("OnBytesReceived(%zu bytes)\n", bytes.size()); ++ ++ // Note: The bytes are passed by the embedder, and they might point into the ++ // sandbox. Hence we copy them once and then process those copied bytes, to ++ // avoid being vulnerable to concurrent modification. ++ // Since we might not be able to store the bytes contiguously in memory, ++ // remember up to two byte vectors to process after copying. ++ base::Vector<const uint8_t> copied_bytes[2] = {{}, {}}; ++ + // Fill the previous vector, growing up to 16kB. After that, allocate new + // vectors on overflow. ++ DCHECK(!full_wire_bytes_.empty()); ++ std::vector<uint8_t>* last_wire_byte_vector = &full_wire_bytes_.back(); ++ size_t existing_vector_size = last_wire_byte_vector->size(); + size_t remaining_capacity = +- std::max(full_wire_bytes_.back().capacity(), size_t{16} * KB) - +- full_wire_bytes_.back().size(); ++ std::max(last_wire_byte_vector->capacity(), size_t{16} * KB) - ++ existing_vector_size; + size_t bytes_for_existing_vector = std::min(remaining_capacity, bytes.size()); +- full_wire_bytes_.back().insert(full_wire_bytes_.back().end(), bytes.data(), +- bytes.data() + bytes_for_existing_vector); ++ last_wire_byte_vector->insert(last_wire_byte_vector->end(), bytes.data(), ++ bytes.data() + bytes_for_existing_vector); ++ copied_bytes[0] = ++ base::VectorOf(last_wire_byte_vector->data() + existing_vector_size, ++ bytes_for_existing_vector); + if (bytes.size() > bytes_for_existing_vector) { + // The previous vector's capacity is not enough to hold all new bytes, and + // it's bigger than 16kB, so expensive to copy. Allocate a new vector for + // the remaining bytes, growing exponentially. + size_t new_capacity = std::max(bytes.size() - bytes_for_existing_vector, +- 2 * full_wire_bytes_.back().capacity()); ++ 2 * last_wire_byte_vector->capacity()); + full_wire_bytes_.emplace_back(); +- full_wire_bytes_.back().reserve(new_capacity); +- full_wire_bytes_.back().insert(full_wire_bytes_.back().end(), +- bytes.data() + bytes_for_existing_vector, +- bytes.end()); ++ last_wire_byte_vector = &full_wire_bytes_.back(); ++ last_wire_byte_vector->reserve(new_capacity); ++ last_wire_byte_vector->insert(last_wire_byte_vector->end(), ++ bytes.data() + bytes_for_existing_vector, ++ bytes.end()); ++ copied_bytes[1] = base::VectorOf(*last_wire_byte_vector); + } ++ // Do not access `bytes` any more after copying. ++ DCHECK_EQ(bytes.size(), copied_bytes[0].size() + copied_bytes[1].size()); ++ bytes = {}; + + if (deserializing()) return; + +- TRACE_STREAMING("OnBytesReceived(%zu bytes)\n", bytes.size()); +- +- size_t current = 0; +- while (ok() && current < bytes.size()) { +- size_t num_bytes = +- state_->ReadBytes(this, bytes.SubVector(current, bytes.size())); +- current += num_bytes; +- module_offset_ += num_bytes; +- if (state_->offset() == state_->buffer().size()) { +- state_ = state_->Next(this); ++ for (base::Vector<const uint8_t> vec : copied_bytes) { ++ size_t current = 0; ++ while (ok() && current < vec.size()) { ++ size_t num_bytes = state_->ReadBytes(this, vec.SubVectorFrom(current)); ++ current += num_bytes; ++ module_offset_ += num_bytes; ++ if (state_->offset() == state_->buffer().size()) { ++ state_ = state_->Next(this); ++ } + } + } +- if (ok()) { +- processor_->OnFinishedChunk(); +- } ++ if (ok()) processor_->OnFinishedChunk(); + } + + size_t AsyncStreamingDecoder::DecodingState::ReadBytes( diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_signin_profile__picker__handler.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_signin_profile__picker__handler.cc index 36e6cd423191..f4c2e1339c83 100644 --- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_signin_profile__picker__handler.cc +++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_chrome_browser_ui_webui_signin_profile__picker__handler.cc @@ -1,4 +1,4 @@ ---- src/3rdparty/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.cc.orig 2024-10-22 08:31:56 UTC +--- src/3rdparty/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.cc.orig 2025-08-18 00:53:11 UTC +++ src/3rdparty/chromium/chrome/browser/ui/webui/signin/profile_picker_handler.cc @@ -209,7 +209,7 @@ base::Value::Dict CreateProfileEntry(const ProfileAttr @@ -9,7 +9,7 @@ } else if (base::FeatureList::IsEnabled( supervised_user::kShowKiteForSupervisedUsers) && entry->IsSupervised()) { -@@ -1224,7 +1224,7 @@ void ProfilePickerHandler::BeginFirstWebContentsProfil +@@ -1222,7 +1222,7 @@ void ProfilePickerHandler::MaybeUpdateGuestMode() { } void ProfilePickerHandler::MaybeUpdateGuestMode() { diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_service_gpu__init.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_service_gpu__init.cc index ac3ee9a58d74..a5c5e3cf4a66 100644 --- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_service_gpu__init.cc +++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_gpu_ipc_service_gpu__init.cc @@ -1,6 +1,6 @@ ---- src/3rdparty/chromium/gpu/ipc/service/gpu_init.cc.orig 2025-02-21 12:29:33 UTC +--- src/3rdparty/chromium/gpu/ipc/service/gpu_init.cc.orig 2025-08-18 00:53:11 UTC +++ src/3rdparty/chromium/gpu/ipc/service/gpu_init.cc -@@ -403,7 +403,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL +@@ -401,7 +401,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL enable_watchdog = false; #endif @@ -9,7 +9,7 @@ bool gpu_sandbox_start_early = gpu_preferences_.gpu_sandbox_start_early; #else // !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) // For some reasons MacOSX's VideoToolbox might crash when called after -@@ -440,7 +440,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL +@@ -438,7 +438,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL } bool attempted_startsandbox = false; @@ -18,7 +18,7 @@ // On Chrome OS ARM Mali, GPU driver userspace creates threads when // initializing a GL context, so start the sandbox early. // TODO(zmo): Need to collect OS version before this. -@@ -544,7 +544,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL +@@ -542,7 +542,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL gpu_preferences_.gr_context_type = GrContextType::kGL; } @@ -27,7 +27,7 @@ // The ContentSandboxHelper is currently the only one implementation of // GpuSandboxHelper and it has no dependency. Except on Linux where // VaapiWrapper checks the GL implementation to determine which display -@@ -626,7 +626,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL +@@ -624,7 +624,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL command_line, gpu_feature_info_, gpu_preferences_.disable_software_rasterizer, false); if (gl_use_swiftshader_) { @@ -36,7 +36,7 @@ VLOG(1) << "Quit GPU process launch to fallback to SwiftShader cleanly " << "on Linux"; return false; -@@ -777,7 +777,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL +@@ -775,7 +775,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL InitializePlatformOverlaySettings(&gpu_info_, gpu_feature_info_); @@ -45,7 +45,7 @@ // Driver may create a compatibility profile context when collect graphics // information on Linux platform. Try to collect graphics information // based on core profile context after disabling platform extensions. -@@ -832,7 +832,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL +@@ -830,7 +830,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandL } } } @@ -54,7 +54,7 @@ (BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE)) if (!gl_disabled && !gl_use_swiftshader_ && std::getenv("RUNNING_UNDER_RR")) { // https://rr-project.org/ is a Linux-only record-and-replay debugger that -@@ -1017,7 +1017,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c +@@ -1015,7 +1015,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c } bool gl_disabled = gl::GetGLImplementation() == gl::kGLImplementationDisabled; @@ -63,7 +63,7 @@ (BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_CHROMEOS_DEVICE)) if (!gl_disabled && !gl_use_swiftshader_ && std::getenv("RUNNING_UNDER_RR")) { // https://rr-project.org/ is a Linux-only record-and-replay debugger that -@@ -1078,7 +1078,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c +@@ -1076,7 +1076,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* c } } diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_build_scripts_gperf.py b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_build_scripts_gperf.py deleted file mode 100644 index d42d489f943d..000000000000 --- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_build_scripts_gperf.py +++ /dev/null @@ -1,27 +0,0 @@ ---- src/3rdparty/chromium/third_party/blink/renderer/build/scripts/gperf.py.orig 2025-03-29 00:50:57 UTC -+++ src/3rdparty/chromium/third_party/blink/renderer/build/scripts/gperf.py -@@ -28,24 +28,6 @@ def generate_gperf(gperf_path, gperf_input, gperf_args - stdout=subprocess.PIPE, - universal_newlines=True) - gperf_output = gperf.communicate(gperf_input)[0] -- # Massage gperf output to be more palatable for modern compilers. -- # TODO(thakis): Upstream these to gperf so we don't need massaging. -- # `register` is deprecated in C++11 and removed in C++17, so remove -- # it from gperf's output. -- # https://savannah.gnu.org/bugs/index.php?53028 -- gperf_output = re.sub(r'\bregister ', '', gperf_output) -- # -Wimplicit-fallthrough needs an explicit fallthrough statement, -- # so replace gperf's /*FALLTHROUGH*/ comment with the statement. -- # https://savannah.gnu.org/bugs/index.php?53029 -- gperf_output = gperf_output.replace('/*FALLTHROUGH*/', -- ' [[fallthrough]];') -- # -Wpointer-to-int-cast warns about casting pointers to smaller ints -- # Replace {(int)(long)&(foo), bar} with -- # {static_cast<int>(reinterpret_cast<uintptr_t>(&(foo)), bar} -- gperf_output = re.sub( -- r'\(int\)\(long\)(.*?),', -- r'static_cast<int>(reinterpret_cast<uintptr_t>(\1)),', -- gperf_output) - script = 'third_party/blink/renderer/build/scripts/gperf.py' - return '// Generated by %s\n' % script + gperf_output - except OSError: diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_runtime__enabled__features.json5 b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_runtime__enabled__features.json5 index 04a903bd35f2..b3b99e8e202e 100644 --- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_runtime__enabled__features.json5 +++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_third__party_blink_renderer_platform_runtime__enabled__features.json5 @@ -1,4 +1,4 @@ ---- src/3rdparty/chromium/third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-02-21 12:29:33 UTC +--- src/3rdparty/chromium/third_party/blink/renderer/platform/runtime_enabled_features.json5.orig 2025-08-18 00:53:11 UTC +++ src/3rdparty/chromium/third_party/blink/renderer/platform/runtime_enabled_features.json5 @@ -384,7 +384,7 @@ name: "AppTitle", @@ -36,7 +36,7 @@ status: "stable", public: true, base_feature: "none", -@@ -4313,7 +4313,7 @@ +@@ -4320,7 +4320,7 @@ name: "UnrestrictedSharedArrayBuffer", base_feature: "none", origin_trial_feature_name: "UnrestrictedSharedArrayBuffer", @@ -45,7 +45,7 @@ }, // Enables using policy-controlled feature "usb-unrestricted" to allow // isolated context to access protected USB interface classes and to -@@ -4460,7 +4460,7 @@ +@@ -4467,7 +4467,7 @@ { name: "WebAppScopeExtensions", origin_trial_feature_name: "WebAppScopeExtensions", @@ -54,7 +54,7 @@ status: "experimental", base_feature: "none", }, -@@ -4503,7 +4503,7 @@ +@@ -4510,7 +4510,7 @@ status: "experimental", base_feature: "none", origin_trial_feature_name: "WebAppUrlHandling", diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_dragdrop_os__exchange__data__provider__non__backed.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_dragdrop_os__exchange__data__provider__non__backed.cc index 9008177cfd17..577dde022f49 100644 --- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_dragdrop_os__exchange__data__provider__non__backed.cc +++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_dragdrop_os__exchange__data__provider__non__backed.cc @@ -1,6 +1,6 @@ ---- src/3rdparty/chromium/ui/base/dragdrop/os_exchange_data_provider_non_backed.cc.orig 2024-04-19 13:02:56 UTC +--- src/3rdparty/chromium/ui/base/dragdrop/os_exchange_data_provider_non_backed.cc.orig 2025-08-18 00:53:11 UTC +++ src/3rdparty/chromium/ui/base/dragdrop/os_exchange_data_provider_non_backed.cc -@@ -99,7 +99,7 @@ void OSExchangeDataProviderNonBacked::SetPickledData( +@@ -101,7 +101,7 @@ std::optional<std::u16string> OSExchangeDataProviderNo std::optional<std::u16string> OSExchangeDataProviderNonBacked::GetString() const { diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.cc index 05f2a3caf372..38b6dcc88c83 100644 --- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.cc +++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.cc @@ -1,4 +1,4 @@ ---- src/3rdparty/chromium/ui/base/ui_base_features.cc.orig 2025-02-21 12:29:33 UTC +--- src/3rdparty/chromium/ui/base/ui_base_features.cc.orig 2025-08-18 00:53:11 UTC +++ src/3rdparty/chromium/ui/base/ui_base_features.cc @@ -165,7 +165,7 @@ BASE_FEATURE(kWaylandTextInputV3, base::FEATURE_DISABLED_BY_DEFAULT); @@ -18,7 +18,7 @@ (BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \ !BUILDFLAG(IS_CHROMEOS_LACROS)) BASE_FEATURE(kExperimentalFlingAnimation, -@@ -385,7 +385,7 @@ bool IsForcedColorsEnabled() { +@@ -389,7 +389,7 @@ bool IsForcedColorsEnabled() { // and Linux. This feature will be released for other platforms in later // milestones. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.h b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.h index 2aca842bce0d..0cdc36728a12 100644 --- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.h +++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_base_ui__base__features.h @@ -1,6 +1,6 @@ ---- src/3rdparty/chromium/ui/base/ui_base_features.h.orig 2025-02-21 12:29:33 UTC +--- src/3rdparty/chromium/ui/base/ui_base_features.h.orig 2025-08-18 00:53:11 UTC +++ src/3rdparty/chromium/ui/base/ui_base_features.h -@@ -143,7 +143,7 @@ BASE_DECLARE_FEATURE(kWaylandTextInputV3); +@@ -146,7 +146,7 @@ BASE_DECLARE_FEATURE(kWaylandTextInputV3); BASE_DECLARE_FEATURE(kWaylandTextInputV3); #endif // BUILDFLAG(IS_OZONE) diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_gbm__wrapper.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_gbm__wrapper.cc index 2a4d92824384..b48a98195aeb 100644 --- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_gbm__wrapper.cc +++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_ui_gfx_linux_gbm__wrapper.cc @@ -1,6 +1,6 @@ ---- src/3rdparty/chromium/ui/gfx/linux/gbm_wrapper.cc.orig 2024-09-30 07:45:04 UTC +--- src/3rdparty/chromium/ui/gfx/linux/gbm_wrapper.cc.orig 2025-08-18 00:53:11 UTC +++ src/3rdparty/chromium/ui/gfx/linux/gbm_wrapper.cc -@@ -319,7 +319,7 @@ class Device final : public ui::GbmDevice { +@@ -331,7 +331,7 @@ class Device final : public ui::GbmDevice { // of 1x1 BOs which are destroyed before creating the final BO creation used // to instantiate the returned GbmBuffer. gfx::Size size_for_verification = diff --git a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-freebsd.cc b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-freebsd.cc index 3c3165a63310..177de066160d 100644 --- a/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-freebsd.cc +++ b/www/qt6-webengine/files/patch-src_3rdparty_chromium_v8_src_base_platform_platform-freebsd.cc @@ -20,7 +20,7 @@ lib_name = std::string(path); } result.push_back(SharedLibraryAddress( -+#if defined(__i386__) || defined(OS_FREEBSD) ++#if defined(__i386__) || defined(__arm__) || defined(OS_FREEBSD) + lib_name, static_cast<uintptr_t>(map->kve_start), + static_cast<uintptr_t>(map->kve_end))); +#else diff --git a/www/qt6-webengine/files/patch-src_core_CMakeLists.txt b/www/qt6-webengine/files/patch-src_core_CMakeLists.txt index 4c6f56a2e4e2..f04b00dfc8d5 100644 --- a/www/qt6-webengine/files/patch-src_core_CMakeLists.txt +++ b/www/qt6-webengine/files/patch-src_core_CMakeLists.txt @@ -1,4 +1,4 @@ ---- src/core/CMakeLists.txt.orig 2025-03-09 19:36:47 UTC +--- src/core/CMakeLists.txt.orig 2025-08-18 00:53:11 UTC +++ src/core/CMakeLists.txt @@ -21,7 +21,7 @@ add_subdirectory(tools/qwebengine_convert_dict) # TOOLCHAIN SETUP @@ -9,7 +9,7 @@ setup_toolchains() endif() -@@ -200,7 +200,7 @@ foreach(arch ${archs}) +@@ -205,7 +205,7 @@ foreach(arch ${archs}) accessibility_activation_observer.cpp accessibility_activation_observer.h ) @@ -18,7 +18,7 @@ SOURCES ozone/gl_ozone_angle_qt.cpp ozone/gl_ozone_angle_qt.h ozone/ozone_util_qt.cpp ozone/ozone_util_qt.h -@@ -208,17 +208,17 @@ foreach(arch ${archs}) +@@ -213,17 +213,17 @@ foreach(arch ${archs}) ozone/surface_factory_qt.cpp ozone/surface_factory_qt.h ) @@ -39,7 +39,7 @@ SOURCES ozone/egl_helper.cpp ozone/egl_helper.h ) -@@ -438,7 +438,7 @@ foreach(arch ${archs}) +@@ -443,7 +443,7 @@ foreach(arch ${archs}) CONDITION QT_FEATURE_webenginedriver ) @@ -48,7 +48,7 @@ list(APPEND gnArgArg angle_enable_gl=true use_gtk=false # GTK toolkit bindings -@@ -505,6 +505,10 @@ foreach(arch ${archs}) +@@ -510,6 +510,10 @@ foreach(arch ${archs}) extend_gn_list(gnArgArg ARGS use_pulseaudio CONDITION QT_FEATURE_webengine_system_pulseaudio diff --git a/www/qt6-webengine/files/patch-src_core_api_configure.cmake b/www/qt6-webengine/files/patch-src_core_api_configure.cmake index 05e20daffc73..3988f9c60e8f 100644 --- a/www/qt6-webengine/files/patch-src_core_api_configure.cmake +++ b/www/qt6-webengine/files/patch-src_core_api_configure.cmake @@ -1,4 +1,4 @@ ---- src/core/api/configure.cmake.orig 2025-02-21 12:29:33 UTC +--- src/core/api/configure.cmake.orig 2025-08-18 00:53:11 UTC +++ src/core/api/configure.cmake @@ -10,6 +10,7 @@ if(NOT QT_CONFIGURE_RUNNING) if(PkgConfig_FOUND AND QT_FEATURE_pkg_config) @@ -8,7 +8,7 @@ pkg_check_modules(XDAMAGE xdamage) pkg_check_modules(GBM gbm) pkg_check_modules(LIBVA libva>=1.14) -@@ -76,6 +77,11 @@ qt_feature("webengine-printing-and-pdf" PRIVATE +@@ -90,6 +91,11 @@ qt_feature("webengine-printing-and-pdf" PRIVATE AUTODETECT NOT QT_FEATURE_webengine_embedded_build CONDITION TARGET Qt::PrintSupport AND QT_FEATURE_printer ) @@ -20,7 +20,7 @@ qt_feature("webengine-pepper-plugins" PRIVATE LABEL "Pepper Plugins" PURPOSE "Enables use of Pepper plugins." -@@ -157,7 +163,7 @@ qt_feature("webengine-vaapi" PRIVATE +@@ -171,7 +177,7 @@ qt_feature("webengine-vaapi" PRIVATE PURPOSE "Enables support for VA-API hardware acceleration" AUTODETECT GBM_FOUND AND LIBVA_FOUND AND QT_FEATURE_vulkan # hardware accelerated encoding requires bundled libvpx @@ -29,7 +29,7 @@ ) list(LENGTH CMAKE_OSX_ARCHITECTURES osx_arch_count) qt_feature("webenginedriver" PUBLIC -@@ -196,15 +202,19 @@ qt_configure_add_summary_entry( +@@ -214,15 +220,19 @@ qt_configure_add_summary_entry( ) qt_configure_add_summary_entry( ARGS "webengine-vaapi" diff --git a/www/qt6-webengine/files/patch-src_core_compositor_native__skia__output__device__opengl.cpp b/www/qt6-webengine/files/patch-src_core_compositor_native__skia__output__device__opengl.cpp index 079bb283b405..07a5f9437eea 100644 --- a/www/qt6-webengine/files/patch-src_core_compositor_native__skia__output__device__opengl.cpp +++ b/www/qt6-webengine/files/patch-src_core_compositor_native__skia__output__device__opengl.cpp @@ -1,6 +1,6 @@ ---- src/core/compositor/native_skia_output_device_opengl.cpp.orig 2025-03-09 19:36:47 UTC +--- src/core/compositor/native_skia_output_device_opengl.cpp.orig 2025-08-18 00:53:11 UTC +++ src/core/compositor/native_skia_output_device_opengl.cpp -@@ -247,7 +247,7 @@ QSGTexture *NativeSkiaOutputDeviceOpenGL::texture(QQui +@@ -248,7 +248,7 @@ QSGTexture *NativeSkiaOutputDeviceOpenGL::texture(QQui EGL_LINUX_DRM_FOURCC_EXT, drmFormat, EGL_DMA_BUF_PLANE0_FD_EXT, scopedFd.get(), EGL_DMA_BUF_PLANE0_OFFSET_EXT, static_cast<EGLAttrib>(nativePixmap->GetDmaBufOffset(0)), |