From nobody Sun Nov 19 23:27:03 2023 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYRcR4TWtz51Vbg; Sun, 19 Nov 2023 23:27:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYRcR48s8z3Y9d; Sun, 19 Nov 2023 23:27:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700436423; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lPxLF5TzmAQ2qu5rJZaNkXn+DgG3pYImFmF14ZEsTsw=; b=l58UiQ8AHjl0uyegy6Tb3G2CqvaAwykKW8cE9yddtkN2I4H9c7NLyo9fGuMy6IlPP+okId Dy4xPJe0+IpUsCp1OZZnMW2lNaGnrCnDK3F42qcLVQLLGwHDWV4g9boidusDU2MJd2+ZAy /kcrWVNwNF4M0imkyD6t2ZIUVpp2JeKI86AJb06mDVf0rJNY3WCHcFqY/tB0kr4hQiIXl6 NMg7CXYoJjloXYtsiCWtaeeCrgR5EQrtC6GdWsTOu4xjdKRP1IHCmu7eDaNSRTzqWH7jzi xKyVY03vVimmV8pERatT7XNPyJFKjoUrJFLcFAx3nZgKDVGD3zvy5qjHvWnH+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700436423; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lPxLF5TzmAQ2qu5rJZaNkXn+DgG3pYImFmF14ZEsTsw=; b=aE/+pFaxmgrWMkWhmgzZJlxnGbePt6wnqaf14BO0Xp+nCOZgLBcgrxJTuQifQftEznnYER jpzWDosbPgNKo3MpzcIrokzPdRYbHFNa3Ia08EqN9m3jNIZuJbX0iwSb2w2GZPHb8nsmce 9GMq6YqhgzrrXEMnM5kOtN3ApFyw/wscJhBh/N+TyD6Zr7aZZ3x5K1u4vp9MXooXuhDNO5 zYZZsqkNRziVOgp17PvCnOHDOkBElR06+SwOmexwQXA8XNLlSdrt7xkOQGaGYFLNbESCvK jy8LFwxc5M4FXqwg28YVJkJc1hX31yiAlS9kjePpnzInRJ2mF+/V0Ix3BgSqmA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700436423; a=rsa-sha256; cv=none; b=R0Iks9kOviE5oGTEAapNKqBEeDmFjPwuzlDHo2O67hEsRTIy4ChJdJ42cFueHNr5XVp3RZ FNzDyDqkSPLCAZs5HNC76xgJFTUvsrVq0/pebvLdoKoH2Uro8bWPRdTSkFM3sFLLRtBDeh fDPEd+iUSSMj3fxklL+fTMOgIR1nFUc5dfMftSrb917W57sa/FBNnEhUPx39G2MTpSUR07 sCiF844MTHDyYnEJKObQQcT0Seco0ezhF7w5GwqRF/uYapt4dPGRySDJ5PtTGmHQnOg9n1 T9ZhrCOK6OYYtYh2R3QhmU/p5Er0oD075hyJENmoQ18SCVPlFL/+y6UJzHbxaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYRcR3BcwzTlF; Sun, 19 Nov 2023 23:27:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AJNR3YX018931; Sun, 19 Nov 2023 23:27:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AJNR3LS018928; Sun, 19 Nov 2023 23:27:03 GMT (envelope-from git) Date: Sun, 19 Nov 2023 23:27:03 GMT Message-Id: <202311192327.3AJNR3LS018928@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: "Jason E. Hale" Subject: git: d53807cc0e30 - main - qt5-webengine: Track 5.15 branch List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhale X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d53807cc0e309a0f9dc9be2931e9681281184403 Auto-Submitted: auto-generated The branch main has been updated by jhale: URL: https://cgit.FreeBSD.org/ports/commit/?id=d53807cc0e309a0f9dc9be2931e9681281184403 commit d53807cc0e309a0f9dc9be2931e9681281184403 Author: Jason E. Hale AuthorDate: 2023-11-19 19:37:26 +0000 Commit: Jason E. Hale CommitDate: 2023-11-19 23:26:33 +0000 qt5-webengine: Track 5.15 branch Since we roll our own distfile, this will make it easier to stay caught up with backported Chromium security patches. Currently, it is patched up to Chromium version 119.0.6045.123. Fix build with newer devel/re2 and unbundle. Add a few patches that reduce warnings that significantly increase build log size, some coming as a result of having to build with c++17 now. Add patches from Arch Linux [1] to finally remove dependency on the long-expired Python 2.7. Special thanks to kai@ for reworking theses patches for FreeBSD and testing them. Obtained from: https://gitlab.archlinux.org/archlinux/packaging/packages/qt5-webengine/ [1] MFH: 2023Q4 Security: 6e4e8e87-9fb8-4e32-9f8e-9b4303f4bfd5 Security: 88754d55-521a-11ee-8290-a8a1599412c6 Security: 5666688f-803b-4cf0-9cb1-08c088f2225a Security: df0a2fd1-4c92-11ee-8290-a8a1599412c6 --- Mk/Uses/qt-dist.mk | 5 +- www/qt5-webengine/Makefile | 7 +- www/qt5-webengine/distinfo | 6 +- www/qt5-webengine/files/patch-configure.pri | 67 +- .../files/patch-mkspecs_features_functions.prf | 33 +- www/qt5-webengine/files/patch-python3-chromium | 2140 ++++++++++++++++++++ ...h-src_3rdparty_chromium_base_ranges_algorithm.h | 15 + ...ium_base_task_thread__pool_job__task__source.cc | 14 + ...tch-src_3rdparty_chromium_base_template__util.h | 27 + ...rdparty_chromium_base_threading_hang__watcher.h | 12 + ...rdparty_chromium_build_config_compiler_BUILD.gn | 47 +- ...gpu_command__buffer_service_program__manager.cc | 11 +- ...crolling_text__fragment__selector__generator.cc | 10 + ...third__party_pdfium_fxjs_cjs__publicmethods.cpp | 4 +- ...party_pdfium_third__party_base_template__util.h | 27 + ...tto_include_perfetto_ext_base_circular__queue.h | 20 +- ...perfetto_include_perfetto_ext_base_subprocess.h | 11 + .../patch-src_3rdparty_gn_base_template__util.h | 27 + .../files/patch-src_buildtools_config_support.pri | 42 +- .../files/patch-src_buildtools_configure.json | 66 +- .../files/patch-src_core_config_linux.pri | 8 - .../files/patch-src_core_core__common.pri | 11 + .../patch-src_core_qtwebengine__resources.gni | 24 + ...ne__convert__dict_qwebengine__convert__dict.pro | 11 + 24 files changed, 2581 insertions(+), 64 deletions(-) diff --git a/Mk/Uses/qt-dist.mk b/Mk/Uses/qt-dist.mk index 68827ad7e620..df0f45d1c5a7 100644 --- a/Mk/Uses/qt-dist.mk +++ b/Mk/Uses/qt-dist.mk @@ -135,7 +135,8 @@ _KDE_translations= 0 _KDE_virtualkeyboard= 0 _KDE_wayland= 59 _KDE_webchannel= 3 -_KDE_webengine= 0 +_KDE_webengine= 11 +_KDE_webengine_BRANCH= 5.15 _KDE_webengine_ORIGIN_TAG= v5.15.15-lts _KDE_webengine_VERSION= 5.15.15 _KDE_webglplugin= 0 @@ -146,7 +147,7 @@ _KDE_xmlpatterns= 0 . if defined(_KDE_${_QT_DIST}) . if defined(_KDE_${_QT_DIST}_ORIGIN_TAG) -_KDE_${_QT_DIST}_BRANCH= ${_KDE_${_QT_DIST}_VERSION} +_KDE_${_QT_DIST}_BRANCH?= ${_KDE_${_QT_DIST}_VERSION} . else _KDE_${_QT_DIST}_BRANCH= kde/5.15 COMMENT+= (KDE patched) diff --git a/www/qt5-webengine/Makefile b/www/qt5-webengine/Makefile index 9913c92faa68..0f2fbe833971 100644 --- a/www/qt5-webengine/Makefile +++ b/www/qt5-webengine/Makefile @@ -43,6 +43,7 @@ LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \ libopus.so:audio/opus \ libpci.so:devel/libpci \ libpng.so:graphics/png \ + libre2.so:devel/re2 \ libsnappy.so:archivers/snappy \ libvpx.so:multimedia/libvpx \ libwebp.so:graphics/webp @@ -80,7 +81,7 @@ SNDIO_VARS_OFF= QMAKE_CONFIGURE_ARGS+=-no-sndio # whether webenginewidgets is available, which fails when qmake processes all # .pro files at once. USES= gl gnome gperf jpeg minizip ninja:build nodejs:build,lts \ - perl5 pkgconfig python:2.7,build qmake:norecursive,outsource \ + perl5 pkgconfig python:build qmake:norecursive,outsource \ qt-dist:5,webengine shebangfix xorg USE_GL= gl USE_GNOME= glib20 libxml2 libxslt @@ -147,6 +148,8 @@ post-patch: ${WRKSRC}/src/3rdparty/chromium/chrome/common/chrome_paths.cc \ ${WRKSRC}/src/3rdparty/chromium/third_party/pdfium/core/fxge/fx_ge_linux.cpp \ ${WRKSRC}/src/3rdparty/gn/build/gen.py + @${REINPLACE_CMD} -E -e 's|^(MODULE_VERSION = ).*|\1${QT5_VERSION}|' \ + ${WRKSRC}/.qmake.conf .if ${ARCH:Mmips*} || ${ARCH:Mpowerpc*} || ${ARCH} == sparc64 @${REINPLACE_CMD} -e 's/icudtl.dat/icudtb.dat/' \ @@ -165,8 +168,8 @@ pre-configure: # Rerun syncqt.pl -- otherwise the resulting package misses some forwarding headers. cd ${WRKSRC} && ${QT_BINDIR}/syncqt.pl -version ${QT5_VERSION} -# Fix version mismatches for CMake post-build: +# Fix version mismatches for CMake .for module in Pdf PdfWidgets WebEngine WebEngineCore WebEngineWidgets @${REINPLACE_CMD} -e '/${QT5_VERSION} $${_Qt5${module}_FIND_VERSION_EXACT}/s|${QT5_VERSION}|'"$$(${MAKE} -C ../../devel/qt5-core -VQT5_VERSION)"'|' \ ${BUILD_WRKSRC}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake diff --git a/www/qt5-webengine/distinfo b/www/qt5-webengine/distinfo index 29cf9116a9e9..79b60c2ddad1 100644 --- a/www/qt5-webengine/distinfo +++ b/www/qt5-webengine/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1694754981 -SHA256 (KDE/Qt/5.15.15/kde-qtwebengine-5.15.15p0.tar.xz) = 1251d3fb06033483b4252ff43f1a5a11edfa00ec0746dd89787a8ce15654e442 -SIZE (KDE/Qt/5.15.15/kde-qtwebengine-5.15.15p0.tar.xz) = 315062708 +TIMESTAMP = 1700087947 +SHA256 (KDE/Qt/5.15.15/kde-qtwebengine-5.15.15p11.tar.xz) = e9cb2c943d411b06e559829ac8cdc31ea5612a35cf8e0b5554974394686508eb +SIZE (KDE/Qt/5.15.15/kde-qtwebengine-5.15.15p11.tar.xz) = 314961788 diff --git a/www/qt5-webengine/files/patch-configure.pri b/www/qt5-webengine/files/patch-configure.pri index 2db5be749dfe..32fe11de92cd 100644 --- a/www/qt5-webengine/files/patch-configure.pri +++ b/www/qt5-webengine/files/patch-configure.pri @@ -1,12 +1,69 @@ ---- configure.pri.orig 2020-11-07 01:22:36 UTC +* Remove checks for Python2 [1] +* Add support for FreeBSD + +[1] Obtained from: + +https://gitlab.archlinux.org/archlinux/packaging/packages/qt5-webengine/-/raw/main/qt5-webengine-python3.patch?ref_type=heads + +--- configure.pri.orig 2023-07-20 09:52:10 UTC +++ configure.pri -@@ -123,6 +123,9 @@ defineTest(qtConfTest_detectPlatform) { +@@ -7,20 +7,7 @@ defineTest(isPythonVersionSupported) { + equals(QMAKE_HOST.os, Windows): EXE_SUFFIX = .exe + + defineTest(isPythonVersionSupported) { +- python = $$system_quote($$system_path($$1)) +- python_version = $$system('$$python -c "import sys; print(sys.version_info[0:3])"') +- python_version ~= s/[()]//g +- python_version = $$split(python_version, ',') +- python_major_version = $$first(python_version) +- greaterThan(python_major_version, 2) { +- qtLog("Python version 3 is not supported by Chromium.") +- return(false) +- } +- python_minor_version = $$member(python_version, 1) +- python_patch_version = $$member(python_version, 2) +- greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): greaterThan(python_patch_version, 4): return(true) +- qtLog("Unsupported python version: $${python_major_version}.$${python_minor_version}.$${python_patch_version}.") +- return(false) ++ return(true) + } + + defineTest(qtConfTest_detectJumboBuild) { +@@ -52,10 +39,10 @@ defineTest(qtConfReport_jumboBuild) { + qtConfReportPadded($${1}, $$mergeLimit) + } + +-defineTest(qtConfTest_detectPython2) { +- python = $$qtConfFindInPath("python2$$EXE_SUFFIX") ++defineTest(qtConfTest_detectPython) { ++ python = $$qtConfFindInPath("python$$EXE_SUFFIX") + isEmpty(python) { +- qtLog("'python2$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.") ++ qtLog("'python$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.") + python = $$qtConfFindInPath("python$$EXE_SUFFIX") + } + isEmpty(python) { +@@ -63,11 +50,11 @@ defineTest(qtConfTest_detectPython2) { + return(false) + } + !isPythonVersionSupported($$python) { +- qtLog("A suitable Python 2 executable could not be located.") ++ qtLog("A suitable Python executable could not be located.") + return(false) + } + +- # Make tests.python2.location available in configure.json. ++ # Make tests.python.location available in configure.json. + $${1}.location = $$clean_path($$python) + export($${1}.location) + $${1}.cache += location +@@ -122,6 +109,9 @@ defineTest(qtConfTest_detectPlatform) { + } macos:qtwebengine_isMacOsPlatformSupported() { $${1}.platform = "macos" - } ++ } + unix:qtwebengine_isLinuxPlatformSupported() { + $${1}.platform = "linux" -+ } + } ios:qtwebengine_isMacOsPlatformSupported() { $${1}.platform = "ios" - } diff --git a/www/qt5-webengine/files/patch-mkspecs_features_functions.prf b/www/qt5-webengine/files/patch-mkspecs_features_functions.prf index 7410d6d6af83..b8ac1d14ef88 100644 --- a/www/qt5-webengine/files/patch-mkspecs_features_functions.prf +++ b/www/qt5-webengine/files/patch-mkspecs_features_functions.prf @@ -1,6 +1,29 @@ ---- mkspecs/features/functions.prf.orig 2021-12-15 16:12:54 UTC +* Rename Python2 related functions to Python generic ones [1] +* Add support for FreeBSD +* Add detection for PowerPC64 + +[1] Obtained from: + +https://gitlab.archlinux.org/archlinux/packaging/packages/qt5-webengine/-/raw/main/qt5-webengine-python3.patch?ref_type=heads + +--- mkspecs/features/functions.prf.orig 2023-07-20 09:52:10 UTC +++ mkspecs/features/functions.prf -@@ -84,6 +84,10 @@ defineReplace(gnWebEngineArgs) { +@@ -44,11 +44,11 @@ defineReplace(pythonPath) { + + # Returns the unquoted path to the python executable. + defineReplace(pythonPath) { +- isEmpty(QMAKE_PYTHON2) { ++ isEmpty(QMAKE_PYTHON) { + # Fallback for building QtWebEngine with Qt < 5.8 +- QMAKE_PYTHON2 = python ++ QMAKE_PYTHON = python + } +- return($$QMAKE_PYTHON2) ++ return($$QMAKE_PYTHON) + } + + # Returns the python executable for use with shell / make targets. +@@ -89,6 +89,10 @@ defineReplace(gnWebEngineArgs) { include($$QTWEBENGINE_ROOT/src/buildtools/config/windows.pri) include($$QTWEBENGINE_ROOT/src/core/config/windows.pri) } @@ -11,7 +34,7 @@ isEmpty(gn_args): error(No gn_args found please make sure you have valid configuration.) return($$gn_args) } -@@ -93,6 +97,7 @@ defineReplace(gnPdfArgs) { +@@ -98,6 +102,7 @@ defineReplace(gnPdfArgs) { macos: include($$QTWEBENGINE_ROOT/src/buildtools/config/mac_osx.pri) ios: include($$QTWEBENGINE_ROOT/src/pdf/config/ios.pri) win32: include($$QTWEBENGINE_ROOT/src/buildtools/config/windows.pri) @@ -19,7 +42,7 @@ include($$QTWEBENGINE_ROOT/src/pdf/config/common.pri) isEmpty(gn_args): error(No gn_args found please make sure you have valid configuration.) return($$gn_args) -@@ -107,6 +112,7 @@ defineReplace(gnArch) { +@@ -112,6 +117,7 @@ defineReplace(gnArch) { contains(qtArch, "mips"): return(mipsel) contains(qtArch, "mips64"): return(mips64el) contains(qtArch, "mips64el"): return(mips64el) @@ -27,7 +50,7 @@ return(unknown) } -@@ -114,6 +120,7 @@ defineReplace(gnOS) { +@@ -119,6 +125,7 @@ defineReplace(gnOS) { macos: return(mac) win32: return(win) linux: return(linux) diff --git a/www/qt5-webengine/files/patch-python3-chromium b/www/qt5-webengine/files/patch-python3-chromium new file mode 100644 index 000000000000..b9b730755db2 --- /dev/null +++ b/www/qt5-webengine/files/patch-python3-chromium @@ -0,0 +1,2140 @@ +* Convert to newer Python and remove Python2 related artifacts + +Obtained from: + +https://gitlab.archlinux.org/archlinux/packaging/packages/qt5-webengine/-/raw/main/qt5-webengine-chromium-python3.patch?ref_type=heads + +--- src/3rdparty/chromium/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/BUILD.gn +@@ -239,7 +239,6 @@ group("gn_all") { + "//media/capture:capture_unittests", + "//media/cast:cast_unittests", + "//third_party/angle/src/tests:angle_white_box_tests", +- "//third_party/catapult/telemetry:bitmaptools($host_toolchain)", + ] + } else if (is_ios && !use_qt) { + deps += [ +@@ -354,7 +353,6 @@ group("gn_all") { + "//net/android:net_junit_tests", + "//services:services_junit_tests", + "//testing/android/junit:junit_unit_tests", +- "//third_party/catapult/devil", + "//third_party/smhasher:murmurhash3", + "//tools/android:android_tools", + "//tools/android:memconsumer", +@@ -959,7 +957,6 @@ if (is_chromeos) { + "//third_party/dawn/src/tests:dawn_unittests", + + # Blocked on https://github.com/catapult-project/catapult/issues/2297 +- #"//third_party/catapult/telemetry:bitmaptools", + "//tools/perf/clear_system_cache", + "//ui/ozone/gl:ozone_gl_unittests", + ] +@@ -1037,7 +1034,6 @@ if (!is_ios && !use_qt) { + data_deps = [ + "//chrome:chrome", + "//chrome/test/chromedriver", +- "//third_party/catapult/third_party/typ", + ] + if (is_win) { + data_deps += [ "//build/win:copy_cdb_to_output" ] +@@ -1084,7 +1080,6 @@ if (!is_ios && !use_qt) { + "//third_party/blink/public:blink_devtools_inspector_resources", + "//third_party/blink/public/mojom:mojom_platform_js_data_deps", + "//third_party/blink/renderer/core/html:js_files_for_form_controls_web_tests", +- "//third_party/catapult/third_party/typ", + "//third_party/mesa_headers", + "//tools/imagediff", + ] +@@ -1152,7 +1147,6 @@ if (!is_ios && !use_qt) { + + if (is_android) { + data += [ +- "//third_party/catapult/", + "//build/android/", + ] + } +@@ -1259,11 +1253,6 @@ if (!is_ios && !use_qt) { + "//third_party/blink/web_tests/StaleTestExpectations", + "//third_party/blink/web_tests/TestExpectations", + "//third_party/blink/web_tests/VirtualTestSuites", +- "//third_party/catapult/common/py_utils/", +- "//third_party/catapult/devil/", +- "//third_party/catapult/dependency_manager/", +- "//third_party/catapult/third_party/zipfile/", +- "//third_party/catapult/third_party/typ/", + "//third_party/depot_tools/pylint", + "//third_party/depot_tools/pylint-1.5", + "//third_party/depot_tools/pylint_main.py", +--- src/3rdparty/chromium/build/print_python_deps.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/build/print_python_deps.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2.7 ++#!/usr/bin/python + # Copyright 2016 The Chromium Authors. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +@@ -80,7 +80,7 @@ def _GetTargetPythonVersion(module): + if shebang.startswith('#!'): + # Examples: + # '#!/usr/bin/python' +- # '#!/usr/bin/python2.7' ++ # '#!/usr/bin/python' + # '#!/usr/bin/python3' + # '#!/usr/bin/env python3' + # '#!/usr/bin/env vpython' +@@ -152,7 +152,7 @@ def main(): + + # Trybots run with vpython as default Python, but with a different config + # from //.vpython. To make the is_vpython test work, and to match the behavior +- # of dev machines, the shebang line must be run with python2.7. ++ # of dev machines, the shebang line must be run with python. + # + # E.g. $HOME/.vpython-root/dd50d3/bin/python + # E.g. /b/s/w/ir/cache/vpython/ab5c79/bin/python +--- src/3rdparty/chromium/chrome/chrome_paks.gni.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/chrome/chrome_paks.gni +@@ -94,7 +94,6 @@ template("chrome_extra_paks") { + "$root_gen_dir/chrome/common_resources.pak", + "$root_gen_dir/components/autofill/core/browser/autofill_address_rewriter_resources.pak", + "$root_gen_dir/components/components_resources.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", + "$root_gen_dir/net/net_resources.pak", +@@ -110,7 +109,6 @@ template("chrome_extra_paks") { + "//components/autofill/core/browser:autofill_address_rewriter_resources", + "//components/resources", + "//content:content_resources", +- "//content/browser/tracing:resources", + "//mojo/public/js:resources", + "//net:net_resources", + "//skia:skia_resources", +--- src/3rdparty/chromium/chrome/test/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/chrome/test/BUILD.gn +@@ -7103,8 +7103,6 @@ if (!is_fuchsia && !is_android) { + "//chrome/test/data/password/captured_sites/", + "//chrome/test/data/web_page_replay_go_helper_scripts/automation_helper.js", + "//components/test/data/autofill/web_page_replay_support_files/", +- "//third_party/catapult/telemetry/telemetry/bin/", +- "//third_party/catapult/web_page_replay_go/deterministic.js", + ] + + if (is_linux || is_chromeos || is_win) { +@@ -7141,7 +7139,6 @@ if (!is_fuchsia && !is_android) { + + # TODO(uwyiming@chromium.org) create a gn target for Web Page Replay Go (WPR Go) and only WPR Go. + # So that test targets requiring WPR Go does not pull down the whole telemetry tool chain. +- "//third_party/catapult:telemetry_chrome_test_support", + "//third_party/hunspell", + "//third_party/icu", + "//third_party/libpng", +@@ -7171,7 +7168,6 @@ if (!is_fuchsia && !is_android) { + deps = [ "//tools/perf/chrome_telemetry_build:telemetry_chrome_test" ] + + data = [ +- "//third_party/catapult/telemetry/telemetry/internal/bin/", + "//tools/perf/run_telemetry_tests", + + # For isolate contract. +@@ -7189,7 +7185,6 @@ if (!is_fuchsia && !is_android) { + group("telemetry_gpu_unittests") { + testonly = true + deps = [ +- "//third_party/catapult:telemetry_chrome_test_support", + "//tools/metrics:metrics_python_tests", + ] + data = [ +@@ -7313,7 +7308,6 @@ if (is_mac || is_win || is_android) { + "//testing/scripts", + "//testing/test_env.py", + "//testing/xvfb.py", +- "//third_party/catapult", + "//tools", + ] + } +--- src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py +@@ -7,7 +7,7 @@ + Converts a given ASCII proto into a binary resource. + + """ +- ++from __future__ import print_function + import abc + import imp + import optparse +@@ -196,12 +196,12 @@ class BinaryProtoGenerator: + self._ImportProtoModules(opts.path) + + if not self.VerifyArgs(opts): +- print "Wrong arguments" ++ print("Wrong arguments") + return 1 + + try: + self._GenerateBinaryProtos(opts) + except Exception as e: +- print "ERROR: Failed to render binary version of %s:\n %s\n%s" % ( +- opts.infile, str(e), traceback.format_exc()) ++ print("ERROR: Failed to render binary version of %s:\n %s\n%s" % ++ (opts.infile, str(e), traceback.format_exc())) + return 1 +--- src/3rdparty/chromium/content/browser/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/content/browser/BUILD.gn +@@ -2169,7 +2169,6 @@ jumbo_static_library("browser") { + if (!is_android) { + deps += [ + "//components/vector_icons", +- "//content/browser/tracing:resources", + ] + } + +--- src/3rdparty/chromium/content/browser/tracing/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/content/browser/tracing/BUILD.gn +@@ -1,51 +0,0 @@ +-# Copyright 2014 The Chromium Authors. All rights reserved. +-# Use of this source code is governed by a BSD-style license that can be +-# found in the LICENSE file. +- +-import("//tools/grit/grit_rule.gni") +- +-# generate_about_tracing puts its files in this directory +-tracing_gen_dir = "$root_gen_dir/content/browser/tracing" +- +-# The script just writes filename with no dirs to the .grd, so we always need +-# this file to be in the same directory as the inputs. +-tracing_grd = "$tracing_gen_dir/tracing_resources.grd" +- +-action("generate_tracing_grd") { +- visibility = [ ":*" ] # Depend on ":resources" to get this. +- script = "generate_trace_viewer_grd.py" +- +- input_pages = [ +- "$tracing_gen_dir/about_tracing.html", +- "$tracing_gen_dir/about_tracing.js", +- ] +- inputs = input_pages +- outputs = [ tracing_grd ] +- +- args = rebase_path(input_pages, target_gen_dir) + [ +- "--output", +- rebase_path(tracing_grd, root_build_dir), +- ] +- +- deps = [ "//third_party/catapult/tracing:generate_about_tracing" ] +-} +- +-grit("resources") { +- source = tracing_grd +- +- # Required because the .grd is generated. +- enable_input_discovery_for_gn_analyze = false +- +- outputs = [ +- "grit/tracing_resources.h", +- "tracing_resources.pak", +- ] +- +- # resource_ids has an entry for our .grd file that looks like: +- # "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd" +- # and what we pass here should make that resolve to our .grd file. +- defines = +- [ "SHARED_INTERMEDIATE_DIR=" + rebase_path(root_gen_dir, root_build_dir) ] +- +- deps = [ ":generate_tracing_grd" ] +-} +--- src/3rdparty/chromium/content/browser/tracing/generate_trace_viewer_grd.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/content/browser/tracing/generate_trace_viewer_grd.py +@@ -74,7 +74,7 @@ def main(argv): + for filename in parsed_args.source_files: + add_file_to_grd(doc, os.path.basename(filename)) + +- with open(parsed_args.output_filename, 'w') as output_file: ++ with open(parsed_args.output_filename, 'wb') as output_file: + output_file.write(doc.toxml(encoding='UTF-8')) + + +--- src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc +@@ -27,7 +27,6 @@ + #include "base/strings/stringprintf.h" + #include "base/trace_event/trace_event.h" + #include "base/values.h" +-#include "content/browser/tracing/grit/tracing_resources.h" + #include "content/browser/tracing/tracing_controller_impl.h" + #include "content/public/browser/browser_context.h" + #include "content/public/browser/browser_thread.h" +@@ -242,8 +241,6 @@ TracingUI::TracingUI(WebUI* web_ui) + WebUIDataSource* source = WebUIDataSource::Create(kChromeUITracingHost); + source->DisableTrustedTypesCSP(); + source->UseStringsJs(); +- source->SetDefaultResource(IDR_TRACING_HTML); +- source->AddResourcePath("tracing.js", IDR_TRACING_JS); + source->SetRequestFilter(base::BindRepeating(OnShouldHandleRequest), + base::BindRepeating(OnTracingRequest)); + WebUIDataSource::Add(browser_context, source); +--- src/3rdparty/chromium/content/shell/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/content/shell/BUILD.gn +@@ -390,7 +390,6 @@ repack("pak") { + sources = [ + "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", + "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/content/dev_ui_content_resources.pak", +@@ -413,7 +412,6 @@ repack("pak") { + "//content:dev_ui_content_resources", + "//content/app/resources", + "//content/browser/resources/media:media_internals_resources", +- "//content/browser/tracing:resources", + "//content/browser/webrtc/resources", + "//mojo/public/js:resources", + "//net:net_resources", +--- src/3rdparty/chromium/fuchsia/engine/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/fuchsia/engine/BUILD.gn +@@ -43,7 +43,6 @@ repack("web_engine_pak") { + "$root_gen_dir/components/components_resources.pak", + "$root_gen_dir/components/strings/components_strings_en-US.pak", + "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/content/dev_ui_content_resources.pak", + "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", +@@ -66,7 +65,6 @@ repack("web_engine_pak") { + "//content:content_resources", + "//content:dev_ui_content_resources", + "//content/app/resources", +- "//content/browser/tracing:resources", + "//gpu/command_buffer/service", + "//mojo/public/js:resources", + "//net:net_resources", +--- src/3rdparty/chromium/headless/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/headless/BUILD.gn +@@ -37,7 +37,6 @@ repack("pak") { + "$root_gen_dir/components/components_resources.pak", + "$root_gen_dir/components/strings/components_strings_en-US.pak", + "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", +- "$root_gen_dir/content/browser/tracing/tracing_resources.pak", + "$root_gen_dir/content/content_resources.pak", + "$root_gen_dir/content/dev_ui_content_resources.pak", + "$root_gen_dir/headless/headless_lib_resources.pak", +@@ -65,7 +64,6 @@ repack("pak") { + "//content:content_resources", + "//content:dev_ui_content_resources", + "//content/app/resources", +- "//content/browser/tracing:resources", + "//mojo/public/js:resources", + "//net:net_resources", + "//third_party/blink/public:resources", +--- src/3rdparty/chromium/mojo/public/tools/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/mojo/public/tools/BUILD.gn +@@ -14,5 +14,4 @@ group("mojo_python_unittests") { + "//testing/xvfb.py", + ] + deps = [ "//mojo/public/tools/mojom/mojom:tests" ] +- data_deps = [ "//third_party/catapult/third_party/typ/" ] + } +--- src/3rdparty/chromium/mojo/public/tools/bindings/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/mojo/public/tools/bindings/BUILD.gn +@@ -2,9 +2,11 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + ++import("//build/config/python.gni") + import("//mojo/public/tools/bindings/mojom.gni") + import("//third_party/jinja2/jinja2.gni") + ++# TODO(crbug.com/1194274): Investigate nondeterminism in Py3 builds. + action("precompile_templates") { + sources = mojom_generator_sources + sources += [ +--- src/3rdparty/chromium/mojo/public/tools/bindings/gen_data_files_list.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/mojo/public/tools/bindings/gen_data_files_list.py +@@ -18,7 +18,6 @@ import sys + import re + import sys + +-from cStringIO import StringIO + from optparse import OptionParser + + sys.path.insert( +@@ -41,12 +40,9 @@ def main(): + pattern = re.compile(options.pattern) + files = [f for f in os.listdir(options.directory) if pattern.match(f)] + +- stream = StringIO() +- for f in files: +- print(f, file=stream) ++ contents = '\n'.join(f for f in files) + '\n' ++ WriteFile(contents, options.output) + +- WriteFile(stream.getvalue(), options.output) +- stream.close() + + if __name__ == '__main__': + sys.exit(main()) +--- src/3rdparty/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py +@@ -25,6 +25,10 @@ from util import build_utils + 'build', 'android', 'gyp')) + from util import build_utils + ++# TODO(crbug.com/1174969): Remove this once Python2 is obsoleted. ++if sys.version_info.major != 2: ++ basestring = str ++ long = int + + GENERATOR_PREFIX = 'java' + +--- src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator.py +@@ -136,9 +136,14 @@ def WriteFile(contents, full_path): + + def WriteFile(contents, full_path): + # If |contents| is same with the file content, we skip updating. ++ if not isinstance(contents, bytes): ++ data = contents.encode('utf8') ++ else: ++ data = contents ++ + if os.path.isfile(full_path): + with open(full_path, 'rb') as destination_file: +- if destination_file.read() == contents: ++ if destination_file.read() == data: + return + + # Make sure the containing directory exists. +@@ -146,11 +151,8 @@ def WriteFile(contents, full_path): + fileutil.EnsureDirectoryExists(full_dir) + + # Dump the data to disk. +- with open(full_path, "wb") as f: +- if not isinstance(contents, bytes): +- f.write(contents.encode('utf-8')) +- else: +- f.write(contents) ++ with open(full_path, 'wb') as f: ++ f.write(data) + + + def AddComputedData(module): +--- src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/module.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/module.py +@@ -398,7 +398,8 @@ class StructField(Field): + + + class StructField(Field): +- pass ++ def __hash__(self): ++ return super(Field, self).__hash__() + + + class UnionField(Field): +--- src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py +@@ -75,9 +75,9 @@ def PrecompileTemplates(generator_modules, output_dir) + os.path.dirname(module.__file__), generator.GetTemplatePrefix()) + ])) + jinja_env.filters.update(generator.GetFilters()) +- jinja_env.compile_templates( +- os.path.join(output_dir, "%s.zip" % generator.GetTemplatePrefix()), +- extensions=["tmpl"], +- zip="stored", +- py_compile=True, +- ignore_errors=False) ++ jinja_env.compile_templates(os.path.join( ++ output_dir, "%s.zip" % generator.GetTemplatePrefix()), ++ extensions=["tmpl"], ++ zip="stored", ++ py_compile=sys.version_info.major < 3, ++ ignore_errors=False) +--- src/3rdparty/chromium/testing/BUILD.gn.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/testing/BUILD.gn +@@ -27,7 +27,6 @@ group("run_perf_test") { + + data_deps = [ + ":test_scripts_shared", +- "//third_party/catapult/tracing:convert_chart_json", + ] + + if (is_android) { +--- src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py +@@ -344,7 +344,7 @@ def make_default_value_expr(idl_type, default_value): + """ + assert default_value.is_type_compatible_with(idl_type) + +- class DefaultValueExpr: ++ class DefaultValueExpr(object): + _ALLOWED_SYMBOLS_IN_DEPS = ("isolate") + + def __init__(self, initializer_expr, initializer_deps, +@@ -502,7 +502,7 @@ def make_v8_to_blink_value(blink_var_name, + assert isinstance(blink_var_name, str) + assert isinstance(v8_value_expr, str) + assert isinstance(idl_type, web_idl.IdlType) +- assert (argument_index is None or isinstance(argument_index, (int, long))) ++ assert (argument_index is None or isinstance(argument_index, int)) + assert (default_value is None + or isinstance(default_value, web_idl.LiteralConstant)) + +@@ -622,7 +622,7 @@ def make_v8_to_blink_value_variadic(blink_var_name, v8 + """ + assert isinstance(blink_var_name, str) + assert isinstance(v8_array, str) +- assert isinstance(v8_array_start_index, (int, long)) ++ assert isinstance(v8_array_start_index, int) + assert isinstance(idl_type, web_idl.IdlType) + + pattern = ("auto&& ${{{_1}}} = " +--- src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py +@@ -177,7 +177,7 @@ def generate_callback_interface(callback_interface_ide + prop_install_mode=PropInstallMode.UNCONDITIONAL, + trampoline_var_name=None, + attribute_entries=[], +- constant_entries=filter(is_unconditional, constant_entries), ++ constant_entries=list(filter(is_unconditional, constant_entries)), + exposed_construct_entries=[], + operation_entries=[]) + (install_interface_template_decl, install_interface_template_def, +--- src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py +@@ -503,13 +503,13 @@ class CompositeNode(CodeNode): + gensym_kwargs = {} + template_vars = {} + for arg in args: +- assert isinstance(arg, (CodeNode, int, long, str)) ++ assert isinstance(arg, (CodeNode, int, str)) + gensym = CodeNode.gensym() + gensym_args.append("${{{}}}".format(gensym)) + template_vars[gensym] = arg + for key, value in kwargs.items(): +- assert isinstance(key, (int, long, str)) +- assert isinstance(value, (CodeNode, int, long, str)) ++ assert isinstance(key, (int, str)) ++ assert isinstance(value, (CodeNode, int, str)) + gensym = CodeNode.gensym() + gensym_kwargs[key] = "${{{}}}".format(gensym) + template_vars[gensym] = value +@@ -602,7 +602,7 @@ class ListNode(CodeNode): + def insert(self, index, node): + if node is None: + return +- assert isinstance(index, (int, long)) ++ assert isinstance(index, int) + assert isinstance(node, CodeNode) + assert node.outer is None and node.prev is None + +@@ -721,7 +721,7 @@ class SymbolScopeNode(SequenceNode): + if not scope_chains: + return counts + +- self_index = iter(scope_chains).next().index(self) ++ self_index = next(iter(scope_chains)).index(self) + scope_chains = map( + lambda scope_chain: scope_chain[self_index + 1:], scope_chains) + scope_to_likeliness = {} +--- src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py +@@ -109,7 +109,7 @@ def expr_and(terms): + + if any(term.is_always_false for term in terms): + return _Expr(False) +- terms = filter(lambda x: not x.is_always_true, terms) ++ terms = list(filter(lambda x: not x.is_always_true, terms)) + if not terms: + return _Expr(True) + if len(terms) == 1: +@@ -124,7 +124,7 @@ def expr_or(terms): + + if any(term.is_always_true for term in terms): + return _Expr(True) +- terms = filter(lambda x: not x.is_always_false, terms) ++ terms = list(filter(lambda x: not x.is_always_false, terms)) + if not terms: + return _Expr(False) + if len(terms) == 1: +@@ -222,7 +222,7 @@ def expr_from_exposure(exposure, + elif exposure.only_in_secure_contexts is False: + secure_context_term = _Expr(True) + else: +- terms = map(ref_enabled, exposure.only_in_secure_contexts) ++ terms = list(map(ref_enabled, exposure.only_in_secure_contexts)) + secure_context_term = expr_or( + [_Expr("${is_in_secure_context}"), + expr_not(expr_and(terms))]) +@@ -275,10 +275,11 @@ def expr_from_exposure(exposure, + + # [ContextEnabled] + if exposure.context_enabled_features: +- terms = map( +- lambda feature: _Expr( +- "${{context_feature_settings}}->is{}Enabled()".format( +- feature)), exposure.context_enabled_features) ++ terms = list( ++ map( ++ lambda feature: _Expr( ++ "${{context_feature_settings}}->is{}Enabled()".format( ++ feature)), exposure.context_enabled_features)) + context_enabled_terms.append( + expr_and([_Expr("${context_feature_settings}"), + expr_or(terms)])) +--- src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py +@@ -23,7 +23,7 @@ class _TemplateFormatter(string.Formatter): + self._template_formatter_indexing_count_ = 0 + + def get_value(self, key, args, kwargs): +- if isinstance(key, (int, long)): ++ if isinstance(key, int): + return args[key] + assert isinstance(key, str) + if not key: +--- src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py +@@ -116,4 +116,4 @@ def write_code_node_to_file(code_node, filepath): + # stderr=format_result.error_message)) + # + # web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents) +- web_idl.file_io.write_to_file_if_changed(filepath, rendered_text) ++ web_idl.file_io.write_to_file_if_changed(filepath, rendered_text.encode('utf-8')) +--- src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py +@@ -993,7 +993,7 @@ def make_dict_trace_func(cg_context): + _2 = _blink_member_name(member).value_var + return TextNode(_format(pattern, _1=_1, _2=_2)) + +- body.extend(map(make_trace_member_node, own_members)) ++ body.extend(list(map(make_trace_member_node, own_members))) + body.append(TextNode("BaseClass::Trace(visitor);")) + + return func_decl, func_def +--- src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py.orig 2023-07-14 13:25:01 UTC ++++ src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py +@@ -582,7 +582,7 @@ def _make_blink_api_call(code_node, + overriding_args=None): + assert isinstance(code_node, SymbolScopeNode) + assert isinstance(cg_context, CodeGenContext) +- assert num_of_args is None or isinstance(num_of_args, (int, long)) ++ assert num_of_args is None or isinstance(num_of_args, int) + assert (overriding_args is None + or (isinstance(overriding_args, (list, tuple)) + and all(isinstance(arg, str) for arg in overriding_args))) +@@ -1196,8 +1196,10 @@ def make_overload_dispatcher(cg_context): + did_use_break = did_use_break or can_fail + + conditional = expr_or( +- map(lambda item: expr_from_exposure(item.function_like.exposure), +- items)) ++ list( ++ map( ++ lambda item: expr_from_exposure(item.function_like.exposure ++ ), items))) + if not conditional.is_always_true: + node = CxxUnlikelyIfNode(cond=conditional, body=node) + +@@ -4642,7 +4644,7 @@ class _PropEntryConstructorGroup(_PropEntryBase): + def __init__(self, is_context_dependent, exposure_conditional, world, + constructor_group, ctor_callback_name, ctor_func_length): + assert isinstance(ctor_callback_name, str) +- assert isinstance(ctor_func_length, (int, long)) ++ assert isinstance(ctor_func_length, int) + + _PropEntryBase.__init__(self, is_context_dependent, + exposure_conditional, world, constructor_group) +@@ -4670,7 +4672,7 @@ class _PropEntryOperationGroup(_PropEntryBase): + op_func_length, + no_alloc_direct_callback_name=None): + assert isinstance(op_callback_name, str) +- assert isinstance(op_func_length, (int, long)) ++ assert isinstance(op_func_length, int) + + _PropEntryBase.__init__(self, is_context_dependent, + exposure_conditional, world, operation_group) +@@ -5175,9 +5177,9 @@ def make_install_interface_template(cg_context, functi + ]) + + if class_like.identifier == "CSSStyleDeclaration": +- css_properties = filter( +- lambda attr: "CSSProperty" in attr.extended_attributes, +- class_like.attributes) ++ css_properties = list( ++ filter(lambda attr: "CSSProperty" in attr.extended_attributes, ++ class_like.attributes)) + if css_properties: + prop_name_list = "".join( + map(lambda attr: "\"{}\", ".format(attr.identifier), +@@ -5567,8 +5569,8 @@ ${instance_object} = ${v8_context}->Global()->GetProto + "V8DOMConfiguration::InstallConstants(${isolate}, " + "${interface_template}, ${prototype_template}, " + "kConstantCallbackTable, base::size(kConstantCallbackTable));") +- constant_callback_entries = filter(lambda entry: entry.const_callback_name, +- constant_entries) ++ constant_callback_entries = list(filter(lambda entry: entry.const_callback_name, ++ constant_entries)) + install_properties(table_name, constant_callback_entries, + _make_constant_callback_registration_table, + installer_call_text) +@@ -5584,8 +5586,8 @@ ${instance_object} = ${v8_context}->Global()->GetProto + "V8DOMConfiguration::InstallConstants(${isolate}, " + "${interface_template}, ${prototype_template}, " + "kConstantValueTable, base::size(kConstantValueTable));") +- constant_value_entries = filter( +- lambda entry: not entry.const_callback_name, constant_entries) ++ constant_value_entries = list(filter( ++ lambda entry: not entry.const_callback_name, constant_entries)) + install_properties(table_name, constant_value_entries, + _make_constant_value_registration_table, + installer_call_text) +@@ -6336,8 +6338,8 @@ def make_v8_context_snapshot_api(cg_context, component + assert isinstance(component, web_idl.Component) + + derived_interfaces = cg_context.interface.deriveds +- derived_names = map(lambda interface: interface.identifier, +- derived_interfaces) ++ derived_names = list( ++ map(lambda interface: interface.identifier, derived_interfaces)) + derived_names.append(cg_context.interface.identifier) + if not ("Window" in derived_names or "HTMLDocument" in derived_names): + return None, None +@@ -6411,9 +6413,11 @@ def _make_v8_context_snapshot_get_reference_table_func + collect_callbacks(named_properties_object_callback_defs) + collect_callbacks(cross_origin_property_callback_defs) + +- entry_nodes = map( +- lambda name: TextNode("reinterpret_cast({}),".format(name)), *** 2065 LINES SKIPPED ***