From 0262162f6bb18534e97a336adc41eab1781ed9ef Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Tue, 21 May 2024 23:10:58 +0000 Subject: [PATCH] extra/qt5-webengine to 5.15.17-1 --- extra/qt5-webengine/.SRCINFO | 23 +- extra/qt5-webengine/PKGBUILD | 34 +- extra/qt5-webengine/python3.12-imp.patch | 24 - .../qt5-webengine-chromium-python3.patch | 2336 ----------------- .../qt5-webengine/qt5-webengine-icu-74.patch | 20 - .../qt5-webengine-libxml-2.12.patch | 26 - .../qt5-webengine/qt5-webengine-python3.patch | 193 -- 7 files changed, 19 insertions(+), 2637 deletions(-) delete mode 100644 extra/qt5-webengine/qt5-webengine-chromium-python3.patch delete mode 100644 extra/qt5-webengine/qt5-webengine-icu-74.patch delete mode 100644 extra/qt5-webengine/qt5-webengine-libxml-2.12.patch delete mode 100644 extra/qt5-webengine/qt5-webengine-python3.patch diff --git a/extra/qt5-webengine/.SRCINFO b/extra/qt5-webengine/.SRCINFO index 90beaf610..f012abf0e 100644 --- a/extra/qt5-webengine/.SRCINFO +++ b/extra/qt5-webengine/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = qt5-webengine pkgdesc = Provides support for web applications using the Chromium browser project - pkgver = 5.15.16 - pkgrel = 8 + pkgver = 5.15.17 + pkgrel = 1 url = https://www.qt.io arch = x86_64 groups = qt5 @@ -17,6 +17,7 @@ pkgbase = qt5-webengine makedepends = poppler makedepends = pipewire makedepends = nodejs + makedepends = python-html5lib depends = qt5-webchannel depends = qt5-location depends = libxcomposite @@ -35,29 +36,21 @@ pkgbase = qt5-webengine depends = libxtst depends = ttf-font optdepends = pipewire: WebRTC desktop sharing under Wayland - source = kde-qtwebengine::git+https://code.qt.io/qt/qtwebengine.git#tag=v5.15.16-lts + source = kde-qtwebengine::git+https://code.qt.io/qt/qtwebengine.git#tag=v5.15.17-lts source = git+https://code.qt.io/qt/qtwebengine-chromium.git - source = qt5-webengine-python3.patch - source = qt5-webengine-chromium-python3.patch source = qt5-webengine-ffmpeg5.patch source = qt5-webengine-pipewire-0.3.patch - source = qt5-webengine-libxml-2.12.patch - source = qt5-webengine-icu-74.patch source = qt5-webengine-icu-75.patch + source = qt5-webengine-ninja-1.12.patch source = python3.12-imp.patch source = python3.12-six.patch - source = qt5-webengine-ninja-1.12.patch - sha256sums = a47f420bd0549b11faf70c86e97c6b696f56fd586a545b6bab8f596121c4ba17 + sha256sums = c2488e6d6778cf9954fcc45e94acb762376581a99df7f889f13a93cefd356940 sha256sums = SKIP - sha256sums = 0ad5d1660886f7bbf5108b071bf5d7bbbabf1cd1258ce9d4587a01dec4a1aa89 - sha256sums = d8beb3d65a1aaf927285e6f055a9d1facd0f9c3fd851f91ba568389fb3137399 sha256sums = c50d3019626183e753c53a997dc8a55938847543aa3178d4c51f377be741c693 sha256sums = 5e3a3c4711d964d5152a04059a2b5c1d14bb13dd29bce370120f60e85b476b6f - sha256sums = bfae9e773edfd0ddbc617777fdd4c0609cba2b048be7afe40f97768e4eb6117e - sha256sums = 547e092f6a20ebd15e486b31111145bc94b8709ec230da89c591963001378845 sha256sums = 7cac28ba784d24b4abf6414079548ada165343af507ecd8e23cbe7e4f63ae52f - sha256sums = 61a7a775ff5a118d1a5cc2298db19fb8412be5d7d38dcad1ca199ef87685adf8 - sha256sums = ac87ec55ee5cbcf2d520e1ea433d041c0bf754271a17f859edbb9976f192ce3f sha256sums = 6672741b64d896dc555c8ee42ca2329c4f20d5f406095a69fe72da44b3a142f4 + sha256sums = 1f4357708e985bb5aca61a7e5dc4c0c1285d2af00994bb49ff89ede78198e0d2 + sha256sums = ac87ec55ee5cbcf2d520e1ea433d041c0bf754271a17f859edbb9976f192ce3f pkgname = qt5-webengine diff --git a/extra/qt5-webengine/PKGBUILD b/extra/qt5-webengine/PKGBUILD index 55ed7cf26..e25b8fc46 100644 --- a/extra/qt5-webengine/PKGBUILD +++ b/extra/qt5-webengine/PKGBUILD @@ -11,46 +11,38 @@ highmem=1 pkgname=qt5-webengine _basever=5.15.13 -pkgver=5.15.16 -pkgrel=8 +pkgver=5.15.17 +pkgrel=1 arch=('x86_64') url='https://www.qt.io' license=('LGPL3' 'LGPL2.1' 'BSD') pkgdesc='Provides support for web applications using the Chromium browser project' depends=('qt5-webchannel' 'qt5-location' 'libxcomposite' 'libxrandr' 'pciutils' 'libxss' 'libxkbfile' 'libxdamage' 'libevent' 'snappy' 'nss' 'libxslt' 'minizip' 'ffmpeg' 'libvpx' 'libxtst' 'ttf-font') -makedepends=('git' 'python' 'gperf' 'jsoncpp' 'ninja' 'qt5-tools' 'poppler' 'pipewire' 'nodejs') +makedepends=('git' 'python' 'gperf' 'jsoncpp' 'ninja' 'qt5-tools' 'poppler' 'pipewire' 'nodejs' 'python-html5lib') optdepends=('pipewire: WebRTC desktop sharing under Wayland') groups=('qt5') _pkgfqn=${pkgname/5-/} source=(kde-$_pkgfqn::git+https://code.qt.io/qt/qtwebengine.git#tag=v${pkgver}-lts git+https://code.qt.io/qt/qtwebengine-chromium.git - qt5-webengine-python3.patch - qt5-webengine-chromium-python3.patch qt5-webengine-ffmpeg5.patch qt5-webengine-pipewire-0.3.patch - qt5-webengine-libxml-2.12.patch - qt5-webengine-icu-74.patch qt5-webengine-icu-75.patch + qt5-webengine-ninja-1.12.patch python3.12-imp.patch python3.12-six.patch - qt5-webengine-ninja-1.12.patch 0001-ARM-toolchain-fixes.patch 0002-Fix-ARM-skia-ICE.patch 0003-bind-gen-Support-single_process-flag-in-generate_bin.patch 0004-Run-blink-bindings-generation-single-threaded.patch) -sha256sums=('SKIP' +sha256sums=('c2488e6d6778cf9954fcc45e94acb762376581a99df7f889f13a93cefd356940' 'SKIP' - '0ad5d1660886f7bbf5108b071bf5d7bbbabf1cd1258ce9d4587a01dec4a1aa89' - 'd8beb3d65a1aaf927285e6f055a9d1facd0f9c3fd851f91ba568389fb3137399' 'c50d3019626183e753c53a997dc8a55938847543aa3178d4c51f377be741c693' '5e3a3c4711d964d5152a04059a2b5c1d14bb13dd29bce370120f60e85b476b6f' - 'bfae9e773edfd0ddbc617777fdd4c0609cba2b048be7afe40f97768e4eb6117e' - '547e092f6a20ebd15e486b31111145bc94b8709ec230da89c591963001378845' '7cac28ba784d24b4abf6414079548ada165343af507ecd8e23cbe7e4f63ae52f' - '61a7a775ff5a118d1a5cc2298db19fb8412be5d7d38dcad1ca199ef87685adf8' - 'ac87ec55ee5cbcf2d520e1ea433d041c0bf754271a17f859edbb9976f192ce3f' '6672741b64d896dc555c8ee42ca2329c4f20d5f406095a69fe72da44b3a142f4' + '1f4357708e985bb5aca61a7e5dc4c0c1285d2af00994bb49ff89ede78198e0d2' + 'ac87ec55ee5cbcf2d520e1ea433d041c0bf754271a17f859edbb9976f192ce3f' 'abccb5349ec341fd912be93d055f0cdf6becfdb5fa3312769777f750cfd4351a' 'cad41451dffb5cc67c57882526c6c19795e6e49e7b704f92ec76dd3499486654' '4e58aca7f71037f154bbdfd03deb671462da433c241fd6429ca6adf2c7738f75' @@ -65,17 +57,12 @@ prepare() { git submodule set-branch --branch 87-based src/3rdparty git -c protocol.file.allow=always submodule update - patch -p1 -i "$srcdir"/qt5-webengine-python3.patch # Fix build with Python 3 - patch -p1 -d src/3rdparty -i "$srcdir"/qt5-webengine-chromium-python3.patch - patch -p1 -d src/3rdparty -i "$srcdir"/qt5-webengine-ffmpeg5.patch # Fix build with ffmpeg 5 patch -p1 -d src/3rdparty -i "$srcdir"/qt5-webengine-pipewire-0.3.patch # Port to pipewire 0.3 - patch -p1 -d src/3rdparty/chromium -i "$srcdir"/qt5-webengine-libxml-2.12.patch # Fix build with libxml 2.12 - patch -p1 -d src/3rdparty/chromium -i "$srcdir"/qt5-webengine-icu-74.patch # Fix build with ICU 74 - patch from Alpine patch -p2 -d src/3rdparty/chromium -i "$srcdir"/qt5-webengine-icu-75.patch # Fix build with ICU 75 + patch -p2 -d src/3rdparty/chromium -i "$srcdir"/qt5-webengine-ninja-1.12.patch # Fix build with ninja 1.12 patch -p1 -d src/3rdparty/chromium -i "$srcdir"/python3.12-imp.patch # Fix build with python 3.12 - patch from Debian patch -p1 -d src/3rdparty/chromium -i "$srcdir"/python3.12-six.patch # Fix build with python 3.12 - patch from Debian - patch -p2 -d src/3rdparty/chromium -i "$srcdir"/qt5-webengine-ninja-1.12.patch # Fix build with ninja 1.12 [[ $CARCH == "armv7h" ]] && export NINJAJOBS="-j1" cd "$srcdir/kde-$_pkgfqn/src/3rdparty" @@ -91,14 +78,15 @@ build() { export CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}" cd build - qmake ../kde-$_pkgfqn QMAKE_CXXFLAGS="$CXXFLAGS -std=gnu++17" -- \ + qmake ../kde-$_pkgfqn -- \ -proprietary-codecs \ -system-ffmpeg \ -webp \ -webengine-icu \ -spellchecker \ -webengine-kerberos \ - -webengine-webrtc-pipewire + -webengine-webrtc-pipewire \ + -webengine-python-version python3 make } diff --git a/extra/qt5-webengine/python3.12-imp.patch b/extra/qt5-webengine/python3.12-imp.patch index f3599665a..f7cb4808d 100644 --- a/extra/qt5-webengine/python3.12-imp.patch +++ b/extra/qt5-webengine/python3.12-imp.patch @@ -4,30 +4,6 @@ Origin: upstream, commits https://chromium.googlesource.com/chromium/src/+/f5f6e361d037c316 Last-Update: 2024-03-17 ---- a/components/resources/protobufs/binary_proto_generator.py -+++ b/components/resources/protobufs/binary_proto_generator.py -@@ -9,7 +9,7 @@ - """ - from __future__ import print_function - import abc --import imp -+from importlib import util as imp_util - import optparse - import os - import re -@@ -68,7 +68,11 @@ class GoogleProtobufModuleImporter: - raise ImportError(fullname) - - filepath = self._fullname_to_filepath(fullname) -- return imp.load_source(fullname, filepath) -+ spec = imp_util.spec_from_file_location(fullname, filepath) -+ loaded = imp_util.module_from_spec(spec) -+ spec.loader.exec_module(loaded) -+ -+ return loaded - - class BinaryProtoGenerator: - --- a/mojo/public/tools/mojom/mojom/fileutil.py +++ b/mojo/public/tools/mojom/mojom/fileutil.py @@ -3,7 +3,6 @@ diff --git a/extra/qt5-webengine/qt5-webengine-chromium-python3.patch b/extra/qt5-webengine/qt5-webengine-chromium-python3.patch deleted file mode 100644 index 7604ef229..000000000 --- a/extra/qt5-webengine/qt5-webengine-chromium-python3.patch +++ /dev/null @@ -1,2336 +0,0 @@ -diff --git a/chromium/build/print_python_deps.py b/chromium/build/print_python_deps.py -index fd29c0972c9..69af247094b 100755 ---- a/chromium/build/print_python_deps.py -+++ b/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 -diff --git a/chromium/components/resources/protobufs/binary_proto_generator.py b/chromium/components/resources/protobufs/binary_proto_generator.py -index 7422ead9697..16365515f26 100755 ---- a/chromium/components/resources/protobufs/binary_proto_generator.py -+++ b/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 -diff --git a/chromium/content/browser/tracing/generate_trace_viewer_grd.py b/chromium/content/browser/tracing/generate_trace_viewer_grd.py -index 037f9497dc2..be393d21f90 100755 ---- a/chromium/content/browser/tracing/generate_trace_viewer_grd.py -+++ b/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')) - - -diff --git a/chromium/mojo/public/tools/bindings/BUILD.gn b/chromium/mojo/public/tools/bindings/BUILD.gn -index fc04b5dd0b1..708958e438b 100644 ---- a/chromium/mojo/public/tools/bindings/BUILD.gn -+++ b/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 += [ -diff --git a/chromium/mojo/public/tools/bindings/gen_data_files_list.py b/chromium/mojo/public/tools/bindings/gen_data_files_list.py -index 79c9e50efce..8b78d092418 100644 ---- a/chromium/mojo/public/tools/bindings/gen_data_files_list.py -+++ b/chromium/mojo/public/tools/bindings/gen_data_files_list.py -@@ -18,7 +18,6 @@ import os - 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()) -diff --git a/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py b/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py -index 96b2fdfae0c..00b9dccd00c 100644 ---- a/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py -+++ b/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py -@@ -25,6 +25,10 @@ sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, - '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' - -diff --git a/chromium/mojo/public/tools/mojom/mojom/generate/generator.py b/chromium/mojo/public/tools/mojom/mojom/generate/generator.py -index de62260a5c9..4a1c73fcf82 100644 ---- a/chromium/mojo/public/tools/mojom/mojom/generate/generator.py -+++ b/chromium/mojo/public/tools/mojom/mojom/generate/generator.py -@@ -136,9 +136,14 @@ class Stylizer(object): - - 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): -diff --git a/chromium/mojo/public/tools/mojom/mojom/generate/module.py b/chromium/mojo/public/tools/mojom/mojom/generate/module.py -index ebbc9b322ea..3d026429bbc 100644 ---- a/chromium/mojo/public/tools/mojom/mojom/generate/module.py -+++ b/chromium/mojo/public/tools/mojom/mojom/generate/module.py -@@ -398,7 +398,8 @@ class Field(object): - - - class StructField(Field): -- pass -+ def __hash__(self): -+ return super(Field, self).__hash__() - - - class UnionField(Field): -diff --git a/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py b/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py -index 7a300560246..8d9e26fb7f6 100644 ---- a/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py -+++ b/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) -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py -index 3225ecca6e4..fc078d31b55 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py -+++ b/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_array, - """ - 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}}} = " -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py -index 4a6df513068..8b51f23a409 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py -@@ -177,7 +177,7 @@ def generate_callback_interface(callback_interface_identifier): - 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, -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py -index 52972fefe20..e5ae9d9629e 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py -+++ b/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 = {} -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py -index a229a6c71c9..5fa288dabf2 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py -+++ b/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)])) -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py -index 87d26eec3ca..f3e9d38247e 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py -+++ b/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: -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py -index 2bcc4fed49a..e72282aa696 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py -+++ b/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')) -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py -index b39f0100410..4d68202296b 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py -+++ b/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 -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py -index 10ff30656ad..bfdf7128aac 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py -+++ b/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, function_name, class_name, api_c - ]) - - 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()->GetPrototype().As();\ - "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()->GetPrototype().As();\ - "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, attribute_entries, - 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_function( - collect_callbacks(named_properties_object_callback_defs) - collect_callbacks(cross_origin_property_callback_defs) - -- entry_nodes = map( -- lambda name: TextNode("reinterpret_cast({}),".format(name)), -- filter(None, callback_names)) -+ entry_nodes = list( -+ map( -+ lambda name: TextNode("reinterpret_cast({}),".format(name -+ )), -+ filter(None, callback_names))) - table_node = ListNode([ - TextNode("using namespace ${class_name}Callbacks;"), - TextNode("static const intptr_t kReferenceTable[] = {"), -@@ -6451,10 +6455,11 @@ def _make_v8_context_snapshot_install_props_per_context_function( - class_name=None, - prop_install_mode=PropInstallMode.V8_CONTEXT_SNAPSHOT, - trampoline_var_name=None, -- attribute_entries=filter(selector, attribute_entries), -- constant_entries=filter(selector, constant_entries), -- exposed_construct_entries=filter(selector, exposed_construct_entries), -- operation_entries=filter(selector, operation_entries)) -+ attribute_entries=list(filter(selector, attribute_entries)), -+ constant_entries=list(filter(selector, constant_entries)), -+ exposed_construct_entries=list( -+ filter(selector, exposed_construct_entries)), -+ operation_entries=list(filter(selector, operation_entries))) - - return func_decl, func_def - -@@ -6810,11 +6815,11 @@ def generate_interface(interface_identifier): - class_name=impl_class_name, - prop_install_mode=PropInstallMode.UNCONDITIONAL, - trampoline_var_name=tp_install_unconditional_props, -- attribute_entries=filter(is_unconditional, attribute_entries), -- constant_entries=filter(is_unconditional, constant_entries), -- exposed_construct_entries=filter(is_unconditional, -- exposed_construct_entries), -- operation_entries=filter(is_unconditional, operation_entries)) -+ attribute_entries=list(filter(is_unconditional, attribute_entries)), -+ constant_entries=list(filter(is_unconditional, constant_entries)), -+ exposed_construct_entries=list( -+ filter(is_unconditional, exposed_construct_entries)), -+ operation_entries=list(filter(is_unconditional, operation_entries))) - (install_context_independent_props_decl, - install_context_independent_props_def, - install_context_independent_props_trampoline) = make_install_properties( -@@ -6823,11 +6828,14 @@ def generate_interface(interface_identifier): - class_name=impl_class_name, - prop_install_mode=PropInstallMode.CONTEXT_INDEPENDENT, - trampoline_var_name=tp_install_context_independent_props, -- attribute_entries=filter(is_context_independent, attribute_entries), -- constant_entries=filter(is_context_independent, constant_entries), -- exposed_construct_entries=filter(is_context_independent, -- exposed_construct_entries), -- operation_entries=filter(is_context_independent, operation_entries)) -+ attribute_entries=list( -+ filter(is_context_independent, attribute_entries)), -+ constant_entries=list(filter(is_context_independent, -+ constant_entries)), -+ exposed_construct_entries=list( -+ filter(is_context_independent, exposed_construct_entries)), -+ operation_entries=list( -+ filter(is_context_independent, operation_entries))) - (install_context_dependent_props_decl, install_context_dependent_props_def, - install_context_dependent_props_trampoline) = make_install_properties( - cg_context, -@@ -6835,11 +6843,13 @@ def generate_interface(interface_identifier): - class_name=impl_class_name, - prop_install_mode=PropInstallMode.CONTEXT_DEPENDENT, - trampoline_var_name=tp_install_context_dependent_props, -- attribute_entries=filter(is_context_dependent, attribute_entries), -- constant_entries=filter(is_context_dependent, constant_entries), -- exposed_construct_entries=filter(is_context_dependent, -- exposed_construct_entries), -- operation_entries=filter(is_context_dependent, operation_entries)) -+ attribute_entries=list(filter(is_context_dependent, -+ attribute_entries)), -+ constant_entries=list(filter(is_context_dependent, constant_entries)), -+ exposed_construct_entries=list( -+ filter(is_context_dependent, exposed_construct_entries)), -+ operation_entries=list(filter(is_context_dependent, -+ operation_entries))) - (install_interface_template_decl, install_interface_template_def, - install_interface_template_trampoline) = make_install_interface_template( - cg_context, -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py -index b4c70553863..f3a2fcd772d 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py -@@ -105,7 +105,7 @@ class MakoRenderer(object): - on_error = self._caller_stack_on_error - if (len(current) <= len(on_error) - and all(current[i] == on_error[i] -- for i in xrange(len(current)))): -+ for i in range(len(current)))): - pass # Error happened in a deeper caller. - else: - self._caller_stack_on_error = list(self._caller_stack) -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py -index dc3493cc394..017d3d47bb3 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py -@@ -70,8 +70,13 @@ def gn_format(contents, filename=None): - - - def _invoke_format_command(command_line, filename, contents): -- proc = subprocess.Popen( -- command_line, stdin=subprocess.PIPE, stdout=subprocess.PIPE) -+ kwargs = {} -+ if sys.version_info.major != 2: -+ kwargs['encoding'] = 'utf-8' -+ proc = subprocess.Popen(command_line, -+ stdin=subprocess.PIPE, -+ stdout=subprocess.PIPE, -+ **kwargs) - stdout_output, stderr_output = proc.communicate(input=contents) - exit_code = proc.wait() - -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py -index 0d8f4c0f303..e666a9b668e 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py -@@ -2,6 +2,7 @@ - # Use of this source code is governed by a BSD-style license that can be - # found in the LICENSE file. - -+import functools - import multiprocessing - - from .package_initializer import package_initializer -@@ -76,7 +77,7 @@ class TaskQueue(object): - if not report_progress: - return - -- done_count = reduce( -+ done_count = functools.reduce( - lambda count, worker_task: count + bool(worker_task.ready()), - self._worker_tasks, 0) - report_progress(len(self._worker_tasks), done_count) -@@ -85,4 +86,4 @@ class TaskQueue(object): - def _task_queue_run_tasks(tasks): - for task in tasks: - func, args, kwargs = task -- apply(func, args, kwargs) -+ func(*args, **kwargs) -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py b/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py -index e8280be7213..e49e6eb965e 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py -@@ -13,6 +13,7 @@ import re - import sys - - from idl_types import set_ancestors, IdlType -+from itertools import groupby - from v8_globals import includes - from v8_interface import constant_filters - from v8_types import set_component_dirs -@@ -43,6 +44,7 @@ TEMPLATES_DIR = os.path.normpath( - # after path[0] == invoking script dir - sys.path.insert(1, THIRD_PARTY_DIR) - import jinja2 -+from jinja2.filters import make_attrgetter, environmentfilter - - - def generate_indented_conditional(code, conditional): -@@ -88,6 +90,13 @@ def runtime_enabled_if(code, name): - return generate_indented_conditional(code, function) - - -+@environmentfilter -+def do_stringify_key_group_by(environment, value, attribute): -+ expr = make_attrgetter(environment, attribute) -+ key = lambda item: '' if expr(item) is None else str(expr(item)) -+ return groupby(sorted(value, key=key), expr) -+ -+ - def initialize_jinja_env(cache_dir): - jinja_env = jinja2.Environment( - loader=jinja2.FileSystemLoader(TEMPLATES_DIR), -@@ -117,6 +126,7 @@ def initialize_jinja_env(cache_dir): - }) - jinja_env.filters.update(constant_filters()) - jinja_env.filters.update(method_filters()) -+ jinja_env.filters["stringifykeygroupby"] = do_stringify_key_group_by - return jinja_env - - -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py b/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py -index 130004eae83..04c0fabcef2 100755 ---- a/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py -@@ -80,7 +80,7 @@ def read_idl_file(reader, idl_filename): - assert len(interfaces) == 1, ( - "Expected one interface in file %r, found %d" % - (idl_filename, len(interfaces))) -- return (interfaces.values()[0], includes) -+ return (list(interfaces.values())[0], includes) - - - def interface_is_global(interface): -@@ -281,7 +281,7 @@ def main(): - - info_provider = create_component_info_provider( - os.path.normpath(options.info_dir), options.target_component) -- idl_filenames = map(str.strip, open(options.idl_files_list)) -+ idl_filenames = list(map(str.strip, open(options.idl_files_list))) - - generate_origin_trial_features(info_provider, options, idl_filenames) - return 0 -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py b/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py -index 14e6e9d3f87..b027818aef2 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py -@@ -394,7 +394,8 @@ class IdlInterface(object): - else: - raise ValueError('Unrecognized node class: %s' % child_class) - -- if len(filter(None, [self.iterable, self.maplike, self.setlike])) > 1: -+ if len(list(filter(None, -+ [self.iterable, self.maplike, self.setlike]))) > 1: - raise ValueError( - 'Interface can only have one of iterable<>, maplike<> and setlike<>.' - ) -@@ -512,6 +513,9 @@ class IdlAttribute(TypedObject): - def accept(self, visitor): - visitor.visit_attribute(self) - -+ def __lt__(self, other): -+ return self.name < other.name -+ - - ################################################################################ - # Constants -@@ -852,7 +856,7 @@ class IdlIncludes(object): - ################################################################################ - - --class Exposure: -+class Exposure(object): - """An Exposure holds one Exposed or RuntimeEnabled condition. - Each exposure has two properties: exposed and runtime_enabled. - Exposure(e, r) corresponds to [Exposed(e r)]. Exposure(e) corresponds to -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py b/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py -index 8d72865a6ca..b80eebdcd61 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py -@@ -55,8 +55,8 @@ def validate_blink_idl_definitions(idl_filename, idl_file_basename, - definitions. There is no filename convention in this case. - - Otherwise, an IDL file is invalid. - """ -- targets = ( -- definitions.interfaces.values() + definitions.dictionaries.values()) -+ targets = (list(definitions.interfaces.values()) + -+ list(definitions.dictionaries.values())) - number_of_targets = len(targets) - if number_of_targets > 1: - raise Exception( -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py b/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py -index cd4f0c3513b..ab95e9c0b08 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py -@@ -349,7 +349,7 @@ class IdlUnionType(IdlTypeBase): - return True - - def single_matching_member_type(self, predicate): -- matching_types = filter(predicate, self.flattened_member_types) -+ matching_types = list(filter(predicate, self.flattened_member_types)) - if len(matching_types) > 1: - raise ValueError('%s is ambiguous.' % self.name) - return matching_types[0] if matching_types else None -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/utilities.py b/chromium/third_party/blink/renderer/bindings/scripts/utilities.py -index e1677ee7bd6..3c5006f064f 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/utilities.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/utilities.py -@@ -196,8 +196,9 @@ class ComponentInfoProviderModules(ComponentInfoProvider): - - @property - def callback_functions(self): -- return dict(self._component_info_core['callback_functions'].items() + -- self._component_info_modules['callback_functions'].items()) -+ return dict( -+ list(self._component_info_core['callback_functions'].items()) + -+ list(self._component_info_modules['callback_functions'].items())) - - @property - def specifier_for_export(self): -@@ -209,8 +210,8 @@ class ComponentInfoProviderModules(ComponentInfoProvider): - - - def load_interfaces_info_overall_pickle(info_dir): -- with open(os.path.join(info_dir, -- 'interfaces_info.pickle')) as interface_info_file: -+ with open(os.path.join(info_dir, 'interfaces_info.pickle'), -+ mode='rb') as interface_info_file: - return pickle.load(interface_info_file) - - -@@ -236,23 +237,20 @@ def merge_dict_recursively(target, diff): - - def create_component_info_provider_core(info_dir): - interfaces_info = load_interfaces_info_overall_pickle(info_dir) -- with open( -- os.path.join(info_dir, 'core', -- 'component_info_core.pickle')) as component_info_file: -+ with open(os.path.join(info_dir, 'core', 'component_info_core.pickle'), -+ mode='rb') as component_info_file: - component_info = pickle.load(component_info_file) - return ComponentInfoProviderCore(interfaces_info, component_info) - - - def create_component_info_provider_modules(info_dir): - interfaces_info = load_interfaces_info_overall_pickle(info_dir) -- with open( -- os.path.join(info_dir, 'core', -- 'component_info_core.pickle')) as component_info_file: -+ with open(os.path.join(info_dir, 'core', 'component_info_core.pickle'), -+ mode='rb') as component_info_file: - component_info_core = pickle.load(component_info_file) -- with open( -- os.path.join( -- info_dir, 'modules', -- 'component_info_modules.pickle')) as component_info_file: -+ with open(os.path.join(info_dir, 'modules', -+ 'component_info_modules.pickle'), -+ mode='rb') as component_info_file: - component_info_modules = pickle.load(component_info_file) - return ComponentInfoProviderModules(interfaces_info, component_info_core, - component_info_modules) -@@ -356,7 +354,7 @@ def write_pickle_file(pickle_filename, data): - pickle_filename = abs(pickle_filename) - # If |data| is same with the file content, we skip updating. - if os.path.isfile(pickle_filename): -- with open(pickle_filename) as pickle_file: -+ with open(pickle_filename, 'rb') as pickle_file: - try: - if pickle.load(pickle_file) == data: - return -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py b/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py -index a43260414db..a85b03abe75 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py -@@ -189,7 +189,7 @@ def context_enabled_features(attributes): - return sorted([ - member for member in members - if member.get(KEY) and not member.get('exposed_test') -- ]) -+ ], key=lambda item: item['name']) - - def member_filter_by_name(members, name): - return [member for member in members if member[KEY] == name] -@@ -612,7 +612,8 @@ def interface_context(interface, interfaces, component_info): - sorted( - origin_trial_features(interface, context['constants'], - context['attributes'], context['methods']) + -- context_enabled_features(context['attributes'])), -+ context_enabled_features(context['attributes']), -+ key=lambda item: item['name']), - }) - if context['optional_features']: - includes.add('platform/bindings/v8_per_context_data.h') -@@ -1356,9 +1357,9 @@ def resolution_tests_methods(effective_overloads): - - # Extract argument and IDL type to simplify accessing these in each loop. - arguments = [method['arguments'][index] for method in methods] -- arguments_methods = zip(arguments, methods) -+ arguments_methods = list(zip(arguments, methods)) - idl_types = [argument['idl_type_object'] for argument in arguments] -- idl_types_methods = zip(idl_types, methods) -+ idl_types_methods = list(zip(idl_types, methods)) - - # We can’t do a single loop through all methods or simply sort them, because - # a method may be listed in multiple steps of the resolution algorithm, and -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py b/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py -index 5f1f89a3def..6ee8a407798 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py -@@ -46,6 +46,10 @@ import v8_types - import v8_utilities - from v8_utilities import (has_extended_attribute_value, is_unforgeable) - -+# TODO: Remove this once Python2 is obsoleted. -+if sys.version_info.major != 2: -+ basestring = str -+ - - def method_is_visible(method, interface_is_partial): - if 'overloads' in method: -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py b/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py -index 2ecd6923320..fcfc48371b1 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py -@@ -271,7 +271,7 @@ EXPOSED_WORKERS = set([ - ]) - - --class ExposureSet: -+class ExposureSet(object): - """An ExposureSet is a collection of Exposure instructions.""" - - def __init__(self, exposures=None): -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py -index 13fb7c7068d..b73b7710687 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py -@@ -91,11 +91,13 @@ class CallbackInterface(UserDefinedType, WithExtendedAttributes, - for operation_ir in ir.operations - ]) - self._operation_groups = tuple([ -- OperationGroup( -- operation_group_ir, -- filter(lambda x: x.identifier == operation_group_ir.identifier, -- self._operations), -- owner=self) for operation_group_ir in ir.operation_groups -+ OperationGroup(operation_group_ir, -+ list( -+ filter( -+ lambda x: x.identifier == operation_group_ir -+ .identifier, self._operations)), -+ owner=self) -+ for operation_group_ir in ir.operation_groups - ]) - - @property -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py -index c92cf48eb2a..f5d59129449 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py -@@ -156,4 +156,4 @@ class Database(object): - return self._view_by_kind(Database._Kind.UNION) - - def _view_by_kind(self, kind): -- return self._impl.find_by_kind(kind).values() -+ return list(self._impl.find_by_kind(kind).values()) -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py -index abaeef39c30..e36cf7439ae 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py -@@ -8,8 +8,11 @@ from .runtime_enabled_features import RuntimeEnabledFeatures - class _Feature(str): - """Represents a runtime-enabled feature.""" - -+ def __new__(cls, value): -+ return str.__new__(cls, value) -+ - def __init__(self, value): -- str.__init__(self, value) -+ str.__init__(self) - self._is_context_dependent = ( - RuntimeEnabledFeatures.is_context_dependent(self)) - -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py -index 648c70d803d..1712f19c672 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py -@@ -71,8 +71,9 @@ class FunctionLike(WithIdentifier): - def num_of_required_arguments(self): - """Returns the number of required arguments.""" - return len( -- filter(lambda arg: not (arg.is_optional or arg.is_variadic), -- self.arguments)) -+ list( -+ filter(lambda arg: not (arg.is_optional or arg.is_variadic), -+ self.arguments))) - - - class OverloadGroup(WithIdentifier): -@@ -171,8 +172,7 @@ class OverloadGroup(WithIdentifier): - Returns the effective overload set. - https://heycam.github.io/webidl/#compute-the-effective-overload-set - """ -- assert argument_count is None or isinstance(argument_count, -- (int, long)) -+ assert argument_count is None or isinstance(argument_count, int) - - N = argument_count - S = [] -@@ -188,21 +188,21 @@ class OverloadGroup(WithIdentifier): - - S.append( - OverloadGroup.EffectiveOverloadItem( -- X, map(lambda arg: arg.idl_type, X.arguments), -- map(lambda arg: arg.optionality, X.arguments))) -+ X, list(map(lambda arg: arg.idl_type, X.arguments)), -+ list(map(lambda arg: arg.optionality, X.arguments)))) - - if X.is_variadic: -- for i in xrange(n, max(maxarg, N)): -- t = map(lambda arg: arg.idl_type, X.arguments) -- o = map(lambda arg: arg.optionality, X.arguments) -- for _ in xrange(n, i + 1): -+ for i in range(n, max(maxarg, N)): -+ t = list(map(lambda arg: arg.idl_type, X.arguments)) -+ o = list(map(lambda arg: arg.optionality, X.arguments)) -+ for _ in range(n, i + 1): - t.append(X.arguments[-1].idl_type) - o.append(X.arguments[-1].optionality) - S.append(OverloadGroup.EffectiveOverloadItem(X, t, o)) - -- t = map(lambda arg: arg.idl_type, X.arguments) -- o = map(lambda arg: arg.optionality, X.arguments) -- for i in xrange(n - 1, -1, -1): -+ t = list(map(lambda arg: arg.idl_type, X.arguments)) -+ o = list(map(lambda arg: arg.optionality, X.arguments)) -+ for i in range(n - 1, -1, -1): - if X.arguments[i].optionality == IdlType.Optionality.REQUIRED: - break - S.append(OverloadGroup.EffectiveOverloadItem(X, t[:i], o[:i])) -@@ -222,7 +222,7 @@ class OverloadGroup(WithIdentifier): - for item in items) - assert len(items) > 1 - -- for index in xrange(len(items[0].type_list)): -+ for index in range(len(items[0].type_list)): - # Assume that the given items are valid, and we only need to test - # the two types. - if OverloadGroup.are_distinguishable_types( -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py -index c5ee2bd8a3d..58315072480 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py -@@ -149,8 +149,8 @@ class IdlCompiler(object): - for old_ir in old_irs: - new_ir = make_copy(old_ir) - self._ir_map.add(new_ir) -- new_ir.attributes = filter(not_disabled, new_ir.attributes) -- new_ir.operations = filter(not_disabled, new_ir.operations) -+ new_ir.attributes = list(filter(not_disabled, new_ir.attributes)) -+ new_ir.operations = list(filter(not_disabled, new_ir.operations)) - - def _record_defined_in_partial_and_mixin(self): - old_irs = self._ir_map.irs_of_kinds( -@@ -231,7 +231,7 @@ class IdlCompiler(object): - only_to_members_of_partial_or_mixin=False) - propagate_to_exposure(propagate) - -- map(process_member_like, ir.iter_all_members()) -+ list(map(process_member_like, ir.iter_all_members())) - - def process_member_like(ir): - propagate = functools.partial(propagate_extattr, ir=ir) -@@ -257,7 +257,7 @@ class IdlCompiler(object): - - self._ir_map.move_to_new_phase() - -- map(process_interface_like, old_irs) -+ list(map(process_interface_like, old_irs)) - - def _determine_blink_headers(self): - irs = self._ir_map.irs_of_kinds( -@@ -422,9 +422,9 @@ class IdlCompiler(object): - assert not new_interface.deriveds - derived_set = identifier_to_derived_set.get( - new_interface.identifier, set()) -- new_interface.deriveds = map( -- lambda id_: self._ref_to_idl_def_factory.create(id_), -- sorted(derived_set)) -+ new_interface.deriveds = list( -+ map(lambda id_: self._ref_to_idl_def_factory.create(id_), -+ sorted(derived_set))) - - def _supplement_missing_html_constructor_operation(self): - # Temporary mitigation of misuse of [HTMLConstructor] -@@ -553,7 +553,8 @@ class IdlCompiler(object): - self._ir_map.add(new_ir) - - for group in new_ir.iter_all_overload_groups(): -- exposures = map(lambda overload: overload.exposure, group) -+ exposures = list(map(lambda overload: overload.exposure, -+ group)) - - # [Exposed] - if any(not exposure.global_names_and_features -@@ -653,8 +654,8 @@ class IdlCompiler(object): - constructs = set() - for global_name in global_names: - constructs.update(exposed_map.get(global_name, [])) -- new_ir.exposed_constructs = map( -- self._ref_to_idl_def_factory.create, sorted(constructs)) -+ new_ir.exposed_constructs = list( -+ map(self._ref_to_idl_def_factory.create, sorted(constructs))) - - assert not new_ir.legacy_window_aliases - if new_ir.identifier != 'Window': -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py -index 65d24e529d1..067ef2eb0b2 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py -@@ -180,8 +180,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, - self._constructor_groups = tuple([ - ConstructorGroup( - group_ir, -- filter(lambda x: x.identifier == group_ir.identifier, -- self._constructors), -+ list( -+ filter(lambda x: x.identifier == group_ir.identifier, -+ self._constructors)), - owner=self) for group_ir in ir.constructor_groups - ]) - assert len(self._constructor_groups) <= 1 -@@ -192,8 +193,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, - self._named_constructor_groups = tuple([ - ConstructorGroup( - group_ir, -- filter(lambda x: x.identifier == group_ir.identifier, -- self._named_constructors), -+ list( -+ filter(lambda x: x.identifier == group_ir.identifier, -+ self._named_constructors)), - owner=self) for group_ir in ir.named_constructor_groups - ]) - self._operations = tuple([ -@@ -203,22 +205,23 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, - self._operation_groups = tuple([ - OperationGroup( - group_ir, -- filter(lambda x: x.identifier == group_ir.identifier, -- self._operations), -+ list( -+ filter(lambda x: x.identifier == group_ir.identifier, -+ self._operations)), - owner=self) for group_ir in ir.operation_groups - ]) - self._exposed_constructs = tuple(ir.exposed_constructs) - self._legacy_window_aliases = tuple(ir.legacy_window_aliases) - self._indexed_and_named_properties = None -- indexed_and_named_property_operations = filter( -- lambda x: x.is_indexed_or_named_property_operation, -- self._operations) -+ indexed_and_named_property_operations = list( -+ filter(lambda x: x.is_indexed_or_named_property_operation, -+ self._operations)) - if indexed_and_named_property_operations: - self._indexed_and_named_properties = IndexedAndNamedProperties( - indexed_and_named_property_operations, owner=self) - self._stringifier = None -- stringifier_operation_irs = filter(lambda x: x.is_stringifier, -- ir.operations) -+ stringifier_operation_irs = list( -+ filter(lambda x: x.is_stringifier, ir.operations)) - if stringifier_operation_irs: - assert len(stringifier_operation_irs) == 1 - op_ir = make_copy(stringifier_operation_irs[0]) -@@ -231,8 +234,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, - attribute = None - if operation.stringifier_attribute: - attr_id = operation.stringifier_attribute -- attributes = filter(lambda x: x.identifier == attr_id, -- self._attributes) -+ attributes = list( -+ filter(lambda x: x.identifier == attr_id, -+ self._attributes)) - assert len(attributes) == 1 - attribute = attributes[0] - self._stringifier = Stringifier(operation, attribute, owner=self) -@@ -578,8 +582,9 @@ class Iterable(WithDebugInfo): - self._operation_groups = tuple([ - OperationGroup( - group_ir, -- filter(lambda x: x.identifier == group_ir.identifier, -- self._operations), -+ list( -+ filter(lambda x: x.identifier == group_ir.identifier, -+ self._operations)), - owner=owner) for group_ir in ir.operation_groups - ]) - -@@ -666,8 +671,9 @@ class Maplike(WithDebugInfo): - self._operation_groups = tuple([ - OperationGroup( - group_ir, -- filter(lambda x: x.identifier == group_ir.identifier, -- self._operations), -+ list( -+ filter(lambda x: x.identifier == group_ir.identifier, -+ self._operations)), - owner=owner) for group_ir in ir.operation_groups - ]) - -@@ -755,8 +761,9 @@ class Setlike(WithDebugInfo): - self._operation_groups = tuple([ - OperationGroup( - group_ir, -- filter(lambda x: x.identifier == group_ir.identifier, -- self._operations), -+ list( -+ filter(lambda x: x.identifier == group_ir.identifier, -+ self._operations)), - owner=owner) for group_ir in ir.operation_groups - ]) - -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py -index e9aeff4ab82..d80554d603e 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py -@@ -2,6 +2,8 @@ - # Use of this source code is governed by a BSD-style license that can be - # found in the LICENSE file. - -+import sys -+ - from .argument import Argument - from .ast_group import AstGroup - from .attribute import Attribute -@@ -30,6 +32,11 @@ from .operation import Operation - from .typedef import Typedef - - -+# TODO: Remove this once Python2 is obsoleted. -+if sys.version_info.major != 2: -+ long = int -+ -+ - def load_and_register_idl_definitions(filepaths, register_ir, - create_ref_to_idl_def, idl_type_factory): - """ -@@ -160,7 +167,7 @@ class _IRBuilder(object): - child_nodes = list(node.GetChildren()) - extended_attributes = self._take_extended_attributes(child_nodes) - -- members = map(self._build_interface_member, child_nodes) -+ members = list(map(self._build_interface_member, child_nodes)) - attributes = [] - constants = [] - operations = [] -@@ -302,7 +309,7 @@ class _IRBuilder(object): - child_nodes = list(node.GetChildren()) - inherited = self._take_inheritance(child_nodes) - extended_attributes = self._take_extended_attributes(child_nodes) -- own_members = map(self._build_dictionary_member, child_nodes) -+ own_members = list(map(self._build_dictionary_member, child_nodes)) - - return Dictionary.IR( - identifier=Identifier(node.GetName()), -@@ -336,7 +343,7 @@ class _IRBuilder(object): - - child_nodes = list(node.GetChildren()) - extended_attributes = self._take_extended_attributes(child_nodes) -- members = map(self._build_interface_member, child_nodes) -+ members = list(map(self._build_interface_member, child_nodes)) - constants = [] - operations = [] - for member in members: -@@ -456,8 +463,8 @@ class _IRBuilder(object): - assert len(child_nodes) == 1 - child = child_nodes[0] - if child.GetClass() == 'Arguments': -- arguments = map(build_extattr_argument, -- child.GetChildren()) -+ arguments = list( -+ map(build_extattr_argument, child.GetChildren())) - elif child.GetClass() == 'Call': - assert len(child.GetChildren()) == 1 - grand_child = child.GetChildren()[0] -@@ -486,7 +493,9 @@ class _IRBuilder(object): - - assert node.GetClass() == 'ExtAttributes' - return ExtendedAttributes( -- filter(None, map(build_extended_attribute, node.GetChildren()))) -+ list( -+ filter(None, map(build_extended_attribute, -+ node.GetChildren())))) - - def _build_inheritance(self, node): - assert node.GetClass() == 'Inherit' -@@ -506,7 +515,7 @@ class _IRBuilder(object): - - def _build_iterable(self, node): - assert node.GetClass() == 'Iterable' -- types = map(self._build_type, node.GetChildren()) -+ types = list(map(self._build_type, node.GetChildren())) - assert len(types) == 1 or len(types) == 2 - if len(types) == 1: # value iterator - key_type, value_type = (None, types[0]) -@@ -584,7 +593,7 @@ class _IRBuilder(object): - def _build_maplike(self, node, interface_identifier): - assert node.GetClass() == 'Maplike' - assert isinstance(interface_identifier, Identifier) -- types = map(self._build_type, node.GetChildren()) -+ types = list(map(self._build_type, node.GetChildren())) - assert len(types) == 2 - key_type, value_type = types - is_readonly = bool(node.GetProperty('READONLY')) -@@ -676,7 +685,7 @@ class _IRBuilder(object): - def _build_setlike(self, node, interface_identifier): - assert node.GetClass() == 'Setlike' - assert isinstance(interface_identifier, Identifier) -- types = map(self._build_type, node.GetChildren()) -+ types = list(map(self._build_type, node.GetChildren())) - assert len(types) == 1 - value_type = types[0] - is_readonly = bool(node.GetProperty('READONLY')) -@@ -838,7 +847,7 @@ class _IRBuilder(object): - - def build_union_type(node, extended_attributes): - return self._idl_type_factory.union_type( -- member_types=map(self._build_type, node.GetChildren()), -+ member_types=list(map(self._build_type, node.GetChildren())), - is_optional=is_optional, - extended_attributes=extended_attributes, - debug_info=self._build_debug_info(node)) -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py -index a7a2b11f3f0..2f6b61300ff 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py -@@ -3,6 +3,13 @@ - # found in the LICENSE file. - - -+import sys -+ -+# TODO: Remove this once Python2 is obsoleted. -+if sys.version_info.major != 2: -+ long = int -+ basestring = str -+ - def make_copy(obj, memo=None): - """ - Creates a copy of the given object, which should be an IR or part of IR. -diff --git a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py -index eeabef97cbe..bd7e98907f3 100644 ---- a/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py -+++ b/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py -@@ -107,11 +107,13 @@ class Namespace(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo, - for operation_ir in ir.operations - ]) - self._operation_groups = tuple([ -- OperationGroup( -- operation_group_ir, -- filter(lambda x: x.identifier == operation_group_ir.identifier, -- self._operations), -- owner=self) for operation_group_ir in ir.operation_groups -+ OperationGroup(operation_group_ir, -+ list( -+ filter( -+ lambda x: x.identifier == operation_group_ir -+ .identifier, self._operations)), -+ owner=self) -+ for operation_group_ir in ir.operation_groups - ]) - - @property -diff --git a/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl b/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl -index 0add9c45a38..dc910f6d227 100644 ---- a/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl -+++ b/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl -@@ -59,9 +59,9 @@ void {{v8_class}}::ToImpl(v8::Isolate* isolate, v8::Local v8_value, { - DCHECK(executionContext); - {% endif %}{# has_origin_trial_members #} - {% endif %}{# members #} -- {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %} -+ {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %} - {% filter origin_trial_enabled(origin_trial_test, "executionContext") %} -- {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %} -+ {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %} - {% filter runtime_enabled(feature_name) %} - {% for member in member_list %} - v8::Local {{member.v8_value}}; -@@ -147,9 +147,9 @@ bool toV8{{cpp_class}}(const {{cpp_class}}* impl, v8::Local dictiona - DCHECK(executionContext); - {% endif %}{# has_origin_trial_members #} - {% endif %}{# members #} -- {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %} -+ {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %} - {% filter origin_trial_enabled(origin_trial_test, "executionContext") %} -- {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %} -+ {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %} - {% filter runtime_enabled(feature_name) %} - {% for member in member_list %} - v8::Local {{member.v8_value}}; -diff --git a/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py b/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py -index 1799cd5a153..5f43ffabc26 100755 ---- a/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py -+++ b/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py -@@ -71,7 +71,7 @@ class Expansion(object): - def enabled_longhands(self): - include = lambda longhand: not longhand[ - 'runtime_flag'] or self.is_enabled(longhand['runtime_flag']) -- return filter(include, self._longhands) -+ return list(filter(include, self._longhands)) - - @property - def index(self): -@@ -87,8 +87,9 @@ class Expansion(object): - - def create_expansions(longhands): - flags = collect_runtime_flags(longhands) -- expansions = map(lambda mask: Expansion(longhands, flags, mask), -- range(1 << len(flags))) -+ expansions = list( -+ map(lambda mask: Expansion(longhands, flags, mask), -+ range(1 << len(flags)))) - assert len(expansions) > 0 - # We generate 2^N expansions for N flags, so enforce some limit. - assert len(flags) <= 4, 'Too many runtime flags for a single shorthand' -@@ -114,14 +115,14 @@ class StylePropertyShorthandWriter(json5_generator.Writer): - - self._longhand_dictionary = defaultdict(list) - for property_ in json5_properties.shorthands: -- property_['longhand_enum_keys'] = map(enum_key_for_css_property, -- property_['longhands']) -- property_['longhand_property_ids'] = map(id_for_css_property, -- property_['longhands']) -- -- longhands = map( -- lambda name: json5_properties.properties_by_name[name], -- property_['longhands']) -+ property_['longhand_enum_keys'] = list( -+ map(enum_key_for_css_property, property_['longhands'])) -+ property_['longhand_property_ids'] = list( -+ map(id_for_css_property, property_['longhands'])) -+ -+ longhands = list( -+ map(lambda name: json5_properties.properties_by_name[name], -+ property_['longhands'])) - property_['expansions'] = create_expansions(longhands) - for longhand_enum_key in property_['longhand_enum_keys']: - self._longhand_dictionary[longhand_enum_key].append(property_) -diff --git a/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py b/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py -index 75030ac577e..f72aadee17d 100755 ---- a/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py -+++ b/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py -@@ -42,8 +42,8 @@ class CSSPropertyInstancesWriter(json5_generator.Writer): - aliases = self._css_properties.aliases - - # Lists of PropertyClassData. -- self._property_classes_by_id = map(self.get_class, properties) -- self._alias_classes_by_id = map(self.get_class, aliases) -+ self._property_classes_by_id = list(map(self.get_class, properties)) -+ self._alias_classes_by_id = list(map(self.get_class, aliases)) - - # Sort by enum value. - self._property_classes_by_id.sort(key=lambda t: t.enum_value) -diff --git a/chromium/third_party/blink/renderer/build/scripts/gperf.py b/chromium/third_party/blink/renderer/build/scripts/gperf.py -index 5ee49056be4..db72660d471 100644 ---- a/chromium/third_party/blink/renderer/build/scripts/gperf.py -+++ b/chromium/third_party/blink/renderer/build/scripts/gperf.py -@@ -95,7 +95,7 @@ def main(): - - open(args.output_file, 'wb').write( - generate_gperf(gperf_path, -- open(infile).read(), gperf_args)) -+ open(infile).read(), gperf_args).encode('utf-8')) - - - if __name__ == '__main__': -diff --git a/chromium/third_party/blink/renderer/build/scripts/in_file.py b/chromium/third_party/blink/renderer/build/scripts/in_file.py -index 28adc050f1e..58113483e57 100644 ---- a/chromium/third_party/blink/renderer/build/scripts/in_file.py -+++ b/chromium/third_party/blink/renderer/build/scripts/in_file.py -@@ -66,7 +66,7 @@ class InFile(object): - self._defaults = defaults - self._valid_values = copy.deepcopy( - valid_values if valid_values else {}) -- self._parse(map(str.strip, lines)) -+ self._parse(list(map(str.strip, lines))) - - @classmethod - def load_from_files(self, file_paths, defaults, valid_values, -diff --git a/chromium/third_party/blink/renderer/build/scripts/in_generator.py b/chromium/third_party/blink/renderer/build/scripts/in_generator.py -index e46740a2e85..ab1981ad1e3 100644 ---- a/chromium/third_party/blink/renderer/build/scripts/in_generator.py -+++ b/chromium/third_party/blink/renderer/build/scripts/in_generator.py -@@ -32,10 +32,15 @@ import os - import os.path - import shlex - import shutil -+import sys - import optparse - - from in_file import InFile - -+# TODO: Remove this once Python2 is obsoleted. -+if sys.version_info.major != 2: -+ basestring = str -+ - - ######################################################### - # This is now deprecated - use json5_generator.py instead -diff --git a/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py b/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py -index cafe8d94a8e..6925a4fa580 100755 ---- a/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py -+++ b/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py -@@ -138,7 +138,7 @@ class RuntimeFeatureWriter(BaseRuntimeFeatureWriter): - except Exception: - # If trouble unpickling, overwrite - pass -- with open(os.path.abspath(file_name), 'w') as pickle_file: -+ with open(os.path.abspath(file_name), 'wb') as pickle_file: - pickle.dump(features_map, pickle_file) - - def _template_inputs(self): -diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl -index dc3f44c5b10..3eefcf9f0ee 100644 ---- a/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl -+++ b/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl -@@ -26,7 +26,7 @@ using {{namespace}}FunctionMap = HashMapGetExecutionContext())) { -diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl -index 1b5297d52dc..edecc81d9d4 100644 ---- a/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl -+++ b/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl -@@ -15,7 +15,7 @@ namespace blink { - class Document; - - // Type checking. --{% for tag in tags|sort if not tag.multipleTagNames and not tag.noTypeHelpers %} -+{% for tag in tags|sort(attribute='name') if not tag.multipleTagNames and not tag.noTypeHelpers %} - class {{tag.interface}}; - template <> - inline bool IsElementOfType(const Node& node) { -diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl -index 0244433af2e..dcdbb02a56c 100644 ---- a/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl -+++ b/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl -@@ -25,7 +25,7 @@ - - - {% macro trie_leaf(index, object, return_macro, lowercase_data) %} --{% set name, value = object.items()[0] %} -+{% set name, value = (object.items()|list)[0] %} - {% if name|length %} - if ( - {%- for c in name -%} -@@ -45,7 +45,7 @@ return {{ return_macro(value) }}; - - - {% macro trie_switch(trie, index, return_macro, lowercase_data) %} --{% if trie|length == 1 and trie.values()[0] is string %} -+{% if trie|length == 1 and (trie.values()|list)[0] is string %} - {{ trie_leaf(index, trie, return_macro, lowercase_data) -}} - {% else %} - {% if lowercase_data %} -diff --git a/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl b/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl -index cb05c6c4315..bd5566b03e7 100644 ---- a/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl -+++ b/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl -@@ -24,12 +24,12 @@ namespace {{cpp_namespace}} { - {{symbol_export}}extern const WTF::AtomicString& {{namespace_prefix}}NamespaceURI; - - // Tags --{% for tag in tags|sort %} -+{% for tag in tags|sort(attribute='name') %} - {{symbol_export}}extern const blink::{{namespace}}QualifiedName& {{tag|symbol}}Tag; - {% endfor %} - - // Attributes --{% for attr in attrs|sort %} -+{% for attr in attrs|sort(attribute='name') %} - {{symbol_export}}extern const blink::QualifiedName& {{attr|symbol}}Attr; - {% endfor %} - -diff --git a/chromium/third_party/dawn/generator/generator_lib.py b/chromium/third_party/dawn/generator/generator_lib.py -index 5e3734d7833..e3d46bd194f 100644 ---- a/chromium/third_party/dawn/generator/generator_lib.py -+++ b/chromium/third_party/dawn/generator/generator_lib.py -@@ -201,6 +201,10 @@ def _compute_python_dependencies(root_dir=None): - - paths = set() - for path in module_paths: -+ # Builtin/namespaced modules may return None for the file path. -+ if not path: -+ continue -+ - path = os.path.abspath(path) - - if not path.startswith(root_dir): -diff --git a/chromium/third_party/devtools-frontend/src/BUILD.gn b/chromium/third_party/devtools-frontend/src/BUILD.gn -index cd488e88b60..ea1dc3d9a79 100644 ---- a/chromium/third_party/devtools-frontend/src/BUILD.gn -+++ b/chromium/third_party/devtools-frontend/src/BUILD.gn -@@ -2,6 +2,8 @@ - # 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("//third_party/blink/public/public_features.gni") - import("./all_devtools_files.gni") - import("./all_devtools_modules.gni") -diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py b/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py -index d6666e8b74f..0f7a661e632 100644 ---- a/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py -+++ b/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py -@@ -45,7 +45,8 @@ def rollup(input_path, output_path, filename, max_size, rollup_plugin): - ['--format', 'iife', '-n', 'InspectorOverlay'] + ['--input', target] + - ['--plugin', rollup_plugin], - stdout=subprocess.PIPE, -- stderr=subprocess.PIPE) -+ stderr=subprocess.PIPE, -+ text=True) - out, error = rollup_process.communicate() - if not out: - raise Exception("rollup failed: " + error) -diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py b/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py -index fa8e73d34af..7d0b84b2171 100644 ---- a/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py -+++ b/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py -@@ -10,7 +10,7 @@ Builds applications in release mode: - and the application loader into a single script. - """ - --from cStringIO import StringIO -+from io import StringIO - from os import path - from os.path import join - import copy -@@ -145,8 +145,7 @@ class ReleaseBuilder(object): - resource_content = read_file(path.join(self.application_dir, resource_name)) - if not (resource_name.endswith('.html') - or resource_name.endswith('md')): -- resource_content += resource_source_url(resource_name).encode( -- 'utf-8') -+ resource_content += resource_source_url(resource_name) - resource_content = resource_content.replace('\\', '\\\\') - resource_content = resource_content.replace('\n', '\\n') - resource_content = resource_content.replace('"', '\\"') -@@ -173,7 +172,9 @@ class ReleaseBuilder(object): - def _concatenate_application_script(self, output): - output.write('Root.allDescriptors.push(...%s);' % self._release_module_descriptors()) - if self.descriptors.extends: -- output.write('Root.applicationDescriptor.modules.push(...%s);' % json.dumps(self.descriptors.application.values())) -+ output.write( -+ 'Root.applicationDescriptor.modules.push(...%s);' % -+ json.dumps(list(self.descriptors.application.values()))) - else: - output.write('Root.applicationDescriptor = %s;' % self.descriptors.application_json()) - -diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py b/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py -index be510c48d76..c6a59c90298 100644 ---- a/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py -+++ b/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py -@@ -123,7 +123,7 @@ def main(argv): - - try: - os.makedirs(path.join(output_directory, 'Images')) -- except OSError, e: -+ except OSError as e: - if e.errno != errno.EEXIST: - raise e - -@@ -147,7 +147,7 @@ def main(argv): - shutil.copy(path.join(dirname, filename), path.join(output_directory, 'Images')) - add_file_to_grd(doc, path.join('Images', 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')) - - -diff --git a/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py b/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py -index 0ba695d3810..bb1da2f9f8d 100644 ---- a/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py -+++ b/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py -@@ -7,6 +7,8 @@ - Utilities for the modular DevTools build. - """ - -+from __future__ import print_function -+ - import collections - from os import path - import os -@@ -40,7 +42,7 @@ def load_and_parse_json(filename): - try: - return json.loads(read_file(filename)) - except: -- print 'ERROR: Failed to parse %s' % filename -+ print('ERROR: Failed to parse %s' % filename) - raise - - class Descriptors: -@@ -57,7 +59,7 @@ class Descriptors: - - def application_json(self): - result = dict() -- result['modules'] = self.application.values() -+ result['modules'] = list(self.application.values()) - return json.dumps(result) - - def all_compiled_files(self): -diff --git a/chromium/third_party/jinja2/tests.py b/chromium/third_party/jinja2/tests.py -index 0adc3d4dbcb..b14f85ff148 100644 ---- a/chromium/third_party/jinja2/tests.py -+++ b/chromium/third_party/jinja2/tests.py -@@ -10,7 +10,7 @@ - """ - import operator - import re --from collections import Mapping -+from collections.abc import Mapping - from jinja2.runtime import Undefined - from jinja2._compat import text_type, string_types, integer_types - import decimal -diff --git a/chromium/tools/metrics/ukm/gen_builders.py b/chromium/tools/metrics/ukm/gen_builders.py -index f9f61d90a56..44e46fae8cc 100755 ---- a/chromium/tools/metrics/ukm/gen_builders.py -+++ b/chromium/tools/metrics/ukm/gen_builders.py -@@ -48,9 +48,10 @@ def ReadFilteredData(path): - data = ukm_model.UKM_XML_TYPE.Parse(ukm_file.read()) - event_tag = ukm_model._EVENT_TYPE.tag - metric_tag = ukm_model._METRIC_TYPE.tag -- data[event_tag] = filter(ukm_model.IsNotObsolete, data[event_tag]) -+ data[event_tag] = list(filter(ukm_model.IsNotObsolete, data[event_tag])) - for event in data[event_tag]: -- event[metric_tag] = filter(ukm_model.IsNotObsolete, event[metric_tag]) -+ event[metric_tag] = list( -+ filter(ukm_model.IsNotObsolete, event[metric_tag])) - return data - - -diff --git a/chromium/ui/ozone/generate_constructor_list.py b/chromium/ui/ozone/generate_constructor_list.py -index 8d800636c97..04fa18e93df 100755 ---- a/chromium/ui/ozone/generate_constructor_list.py -+++ b/chromium/ui/ozone/generate_constructor_list.py -@@ -45,12 +45,15 @@ Example Output: ./ui/ozone/generate_constructor_list.py \ - } // namespace ui - """ - -+try: -+ from StringIO import StringIO # for Python 2 -+except ImportError: -+ from io import StringIO # for Python 3 - import optparse - import os - import collections - import re - import sys --import string - - - def GetTypedefName(typename): -@@ -68,7 +71,7 @@ def GetConstructorName(typename, platform): - This is just "Create" + typename + platform. - """ - -- return 'Create' + typename + string.capitalize(platform) -+ return 'Create' + typename + platform.capitalize() - - - def GenerateConstructorList(out, namespace, export, typenames, platforms, -@@ -163,12 +166,14 @@ def main(argv): - sys.exit(1) - - # Write to standard output or file specified by --output_cc. -- out_cc = sys.stdout -+ out_cc = getattr(sys.stdout, 'buffer', sys.stdout) - if options.output_cc: - out_cc = open(options.output_cc, 'wb') - -- GenerateConstructorList(out_cc, options.namespace, options.export, -+ out_cc_str = StringIO() -+ GenerateConstructorList(out_cc_str, options.namespace, options.export, - typenames, platforms, includes, usings) -+ out_cc.write(out_cc_str.getvalue().encode('utf-8')) - - if options.output_cc: - out_cc.close() -diff --git a/chromium/ui/ozone/generate_ozone_platform_list.py b/chromium/ui/ozone/generate_ozone_platform_list.py -index d47c398259b..2702b68b9bd 100755 ---- a/chromium/ui/ozone/generate_ozone_platform_list.py -+++ b/chromium/ui/ozone/generate_ozone_platform_list.py -@@ -49,12 +49,15 @@ Example Output: ./generate_ozone_platform_list.py --default wayland dri wayland - - """ - -+try: -+ from StringIO import StringIO # for Python 2 -+except ImportError: -+ from io import StringIO # for Python 3 - import optparse - import os - import collections - import re - import sys --import string - - - def GetConstantName(name): -@@ -63,7 +66,7 @@ def GetConstantName(name): - We just capitalize the platform name and prepend "CreateOzonePlatform". - """ - -- return 'kPlatform' + string.capitalize(name) -+ return 'kPlatform' + name.capitalize() - - - def GeneratePlatformListText(out, platforms): -@@ -149,9 +152,9 @@ def main(argv): - platforms.insert(0, options.default) - - # Write to standard output or file specified by --output_{cc,h}. -- out_cc = sys.stdout -- out_h = sys.stdout -- out_txt = sys.stdout -+ out_cc = getattr(sys.stdout, 'buffer', sys.stdout) -+ out_h = getattr(sys.stdout, 'buffer', sys.stdout) -+ out_txt = getattr(sys.stdout, 'buffer', sys.stdout) - if options.output_cc: - out_cc = open(options.output_cc, 'wb') - if options.output_h: -@@ -159,9 +162,16 @@ def main(argv): - if options.output_txt: - out_txt = open(options.output_txt, 'wb') - -- GeneratePlatformListText(out_txt, platforms) -- GeneratePlatformListHeader(out_h, platforms) -- GeneratePlatformListSource(out_cc, platforms) -+ out_txt_str = StringIO() -+ out_h_str = StringIO() -+ out_cc_str = StringIO() -+ -+ GeneratePlatformListText(out_txt_str, platforms) -+ out_txt.write(out_txt_str.getvalue().encode('utf-8')) -+ GeneratePlatformListHeader(out_h_str, platforms) -+ out_h.write(out_h_str.getvalue().encode('utf-8')) -+ GeneratePlatformListSource(out_cc_str, platforms) -+ out_cc.write(out_cc_str.getvalue().encode('utf-8')) - - if options.output_cc: - out_cc.close() -diff --git a/chromium/tools/metrics/ukm/ukm_model.py b/chromium/tools/metrics/ukm/ukm_model.py -index ec24dd57360..57decab3ccc 100644 ---- a/chromium/tools/metrics/ukm/ukm_model.py -+++ b/chromium/tools/metrics/ukm/ukm_model.py -@@ -42,7 +42,7 @@ _INDEX_TYPE = models.ObjectNodeType( - _STATISTICS_TYPE = models.ObjectNodeType( - 'statistics', - attributes=[ -- ('export', str, r'^(?i)(|true|false)$'), -+ ('export', str, r'(?i)^(|true|false)$'), - ], - children=[ - models.ChildType(_QUANTILES_TYPE.tag, _QUANTILES_TYPE, multiple=False), -@@ -94,7 +94,7 @@ _EVENT_TYPE = models.ObjectNodeType( - 'event', - attributes=[ - ('name', str, r'^[A-Za-z0-9.]+$'), -- ('singular', str, r'^(?i)(|true|false)$'), -+ ('singular', str, r'(?i)^(|true|false)$'), - ], - alphabetization=[ - (_OBSOLETE_TYPE.tag, _KEEP_ORDER), -diff --git a/chromium/tools/grit/grit/util.py b/chromium/tools/grit/grit/util.py -index 528d766ad6b..6e8cdb0ebfa 100644 ---- a/chromium/tools/grit/grit/util.py -+++ b/chromium/tools/grit/grit/util.py -@@ -211,7 +211,7 @@ def ReadFile(filename, encoding): - mode = 'rb' - encoding = None - else: -- mode = 'rU' -+ mode = 'r' - - with io.open(abs(filename), mode, encoding=encoding) as f: - return f.read() -From b0581c62625e57a63e56369f7eb24a141687cc7a Mon Sep 17 00:00:00 2001 -From: Jimi Huotari -Date: Wed, 6 Apr 2022 14:35:14 +0300 -Subject: [PATCH] Remove dependency on catapult - -Signed-off-by: Andreas Sturmlechner ---- - chromium/BUILD.gn | 11 ---- - chromium/chrome/chrome_paks.gni | 2 - - chromium/chrome/test/BUILD.gn | 6 --- - chromium/content/browser/BUILD.gn | 1 - - chromium/content/browser/tracing/BUILD.gn | 51 ------------------- - .../content/browser/tracing/tracing_ui.cc | 3 -- - chromium/content/shell/BUILD.gn | 2 - - chromium/fuchsia/engine/BUILD.gn | 2 - - chromium/headless/BUILD.gn | 2 - - chromium/mojo/public/tools/BUILD.gn | 1 - - chromium/testing/BUILD.gn | 1 - - chromium/third_party/webrtc/test/BUILD.gn | 5 -- - chromium/tools/binary_size/BUILD.gn | 1 - - chromium/tools/grit/BUILD.gn | 1 - - chromium/tools/gritsettings/resource_ids.spec | 6 --- - chromium/tools/metrics/BUILD.gn | 1 - - .../perf/chrome_telemetry_build/BUILD.gn | 3 -- - .../perf/core/perfetto_binary_roller/BUILD.gn | 1 - - chromium/tools/polymer/BUILD.gn | 1 - - chromium/v8/tools/BUILD.gn | 4 -- - chromium/weblayer/shell/BUILD.gn | 2 - - 21 files changed, 107 deletions(-) - delete mode 100644 chromium/content/browser/tracing/BUILD.gn - -diff --git a/chromium/BUILD.gn b/chromium/BUILD.gn -index 8d9657d545c..59e9447f456 100644 ---- a/chromium/BUILD.gn -+++ b/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", -diff --git a/chromium/chrome/chrome_paks.gni b/chromium/chrome/chrome_paks.gni -index 9323a774a56..0362b6501aa 100644 ---- a/chromium/chrome/chrome_paks.gni -+++ b/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", -diff --git a/chromium/chrome/test/BUILD.gn b/chromium/chrome/test/BUILD.gn -index 1a369fa56d2..eb5bc9676fb 100644 ---- a/chromium/chrome/test/BUILD.gn -+++ b/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", - ] - } -diff --git a/chromium/content/browser/BUILD.gn b/chromium/content/browser/BUILD.gn -index 1466f33d462..51039e0da19 100644 ---- a/chromium/content/browser/BUILD.gn -+++ b/chromium/content/browser/BUILD.gn -@@ -2169,7 +2169,6 @@ jumbo_static_library("browser") { - if (!is_android) { - deps += [ - "//components/vector_icons", -- "//content/browser/tracing:resources", - ] - } - -diff --git a/chromium/content/browser/tracing/BUILD.gn b/chromium/content/browser/tracing/BUILD.gn -deleted file mode 100644 -index eac05999fac..00000000000 ---- a/chromium/content/browser/tracing/BUILD.gn -+++ /dev/null -@@ -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" ] --} -diff --git a/chromium/content/browser/tracing/tracing_ui.cc b/chromium/content/browser/tracing/tracing_ui.cc -index 2bffb5eb3b0..8965922dfba 100644 ---- a/chromium/content/browser/tracing/tracing_ui.cc -+++ b/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); -diff --git a/chromium/content/shell/BUILD.gn b/chromium/content/shell/BUILD.gn -index 56c0e8b48e3..6e4ffbe962d 100644 ---- a/chromium/content/shell/BUILD.gn -+++ b/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", -diff --git a/chromium/fuchsia/engine/BUILD.gn b/chromium/fuchsia/engine/BUILD.gn -index a502b7fc273..39df2a7028a 100644 ---- a/chromium/fuchsia/engine/BUILD.gn -+++ b/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", -diff --git a/chromium/headless/BUILD.gn b/chromium/headless/BUILD.gn -index d2ab76aed32..15e4b78009d 100644 ---- a/chromium/headless/BUILD.gn -+++ b/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", -diff --git a/chromium/mojo/public/tools/BUILD.gn b/chromium/mojo/public/tools/BUILD.gn -index 4c68350b399..1cc01256f00 100644 ---- a/chromium/mojo/public/tools/BUILD.gn -+++ b/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/" ] - } -diff --git a/chromium/testing/BUILD.gn b/chromium/testing/BUILD.gn -index 56ebf8d46c9..7d51bc0ccf7 100644 ---- a/chromium/testing/BUILD.gn -+++ b/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) { -diff --git a/chromium/third_party/webrtc/test/BUILD.gn b/chromium/third_party/webrtc/test/BUILD.gn -index 58d3dab5219..48328298d2e 100644 ---- a/chromium/third_party/webrtc/test/BUILD.gn -+++ b/chromium/third_party/webrtc/test/BUILD.gn -@@ -258,10 +258,6 @@ rtc_library("perf_test") { - absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ] - if (rtc_enable_protobuf) { - sources += [ "testsupport/perf_test_histogram_writer.cc" ] -- deps += [ -- "//third_party/catapult/tracing/tracing:histogram", -- "//third_party/catapult/tracing/tracing:reserved_infos", -- ] - } else { - sources += [ "testsupport/perf_test_histogram_writer_no_protobuf.cc" ] - } -@@ -566,7 +562,6 @@ if (rtc_include_tests) { - - if (rtc_enable_protobuf) { - sources += [ "testsupport/perf_test_histogram_writer_unittest.cc" ] -- deps += [ "//third_party/catapult/tracing/tracing:histogram" ] - } - - data = test_support_unittests_resources -diff --git a/chromium/tools/binary_size/BUILD.gn b/chromium/tools/binary_size/BUILD.gn -index e6806bf7754..2c985d15fab 100644 ---- a/chromium/tools/binary_size/BUILD.gn -+++ b/chromium/tools/binary_size/BUILD.gn -@@ -18,7 +18,6 @@ python_library("binary_size_trybot_py") { - python_library("sizes_py") { - testonly = true - pydeps_file = "sizes.pydeps" -- data_deps = [ "//third_party/catapult/tracing:convert_chart_json" ] - } - - if (is_linux || is_chromeos) { -diff --git a/chromium/tools/grit/BUILD.gn b/chromium/tools/grit/BUILD.gn -index 1cd3c75b553..60c4cf2f77a 100644 ---- a/chromium/tools/grit/BUILD.gn -+++ b/chromium/tools/grit/BUILD.gn -@@ -33,7 +33,6 @@ group("grit_python_unittests") { - "//testing/scripts/run_isolated_script_test.py", - "//testing/xvfb.py", - "//tools/grit/", -- "//third_party/catapult/third_party/typ/", - ] - } - -diff --git a/chromium/tools/gritsettings/resource_ids.spec b/chromium/tools/gritsettings/resource_ids.spec -index d0a4545514c..80b0bf1737b 100644 ---- a/chromium/tools/gritsettings/resource_ids.spec -+++ b/chromium/tools/gritsettings/resource_ids.spec -@@ -499,12 +499,6 @@ - "content/shell/shell_resources.grd": { - "includes": [2940], - }, -- -- # This file is generated during the build. -- "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": { -- "META": {"sizes": {"includes": [20],}}, -- "includes": [2960], -- }, - # END content/ section. - - # START ios/web/ section. -diff --git a/chromium/tools/metrics/BUILD.gn b/chromium/tools/metrics/BUILD.gn -index 846d5248bfa..cb57d2bdae1 100644 ---- a/chromium/tools/metrics/BUILD.gn -+++ b/chromium/tools/metrics/BUILD.gn -@@ -56,7 +56,6 @@ group("metrics_python_tests") { - "//testing/scripts/common.py", - "//testing/xvfb.py", - "//testing/test_env.py", -- "//third_party/catapult/third_party/typ/", - - # Scripts we depend on. Their unit tests are also included. - "//tools/json_comment_eater/json_comment_eater.py", -diff --git a/chromium/tools/perf/chrome_telemetry_build/BUILD.gn b/chromium/tools/perf/chrome_telemetry_build/BUILD.gn -index 280bb754c2c..c287fdcebb3 100644 ---- a/chromium/tools/perf/chrome_telemetry_build/BUILD.gn -+++ b/chromium/tools/perf/chrome_telemetry_build/BUILD.gn -@@ -107,7 +107,6 @@ group("telemetry_chrome_test_without_chrome") { - "//tools/perf/core/", # chrome_telemetry_build/ depends on core/ - ] - data_deps = [ -- "//third_party/catapult:telemetry_chrome_test_support", - "//tools/metrics:metrics_python_tests", - ] - -@@ -151,7 +150,5 @@ group("telemetry_chrome_test_without_chrome") { - "//build/android:devil_chromium_py", - "//build/android:stack_tools", - ] -- } else if (!is_fuchsia) { -- data_deps += [ "//third_party/catapult/telemetry:bitmaptools" ] - } - } -diff --git a/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn b/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn -index 7fe48cba143..e9c7f0261a5 100644 ---- a/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn -+++ b/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn -@@ -7,7 +7,6 @@ import("//build/util/generate_wrapper.gni") - generate_wrapper("upload_trace_processor") { - testonly = true - data_deps = [ -- "//third_party/catapult:telemetry_chrome_test_support", - "//third_party/perfetto/src/trace_processor:trace_processor_shell", - ] - data = [ -diff --git a/chromium/tools/polymer/BUILD.gn b/chromium/tools/polymer/BUILD.gn -index 092066b7c04..d115144cd61 100644 ---- a/chromium/tools/polymer/BUILD.gn -+++ b/chromium/tools/polymer/BUILD.gn -@@ -10,6 +10,5 @@ group("polymer_tools_python_unittests") { - "//testing/scripts/run_isolated_script_test.py", - "//testing/xvfb.py", - "//tools/polymer/", -- "//third_party/catapult/third_party/typ/", - ] - } -diff --git a/chromium/v8/tools/BUILD.gn b/chromium/v8/tools/BUILD.gn -index 2f8197dd369..83304b6342b 100644 ---- a/chromium/v8/tools/BUILD.gn -+++ b/chromium/v8/tools/BUILD.gn -@@ -31,10 +31,6 @@ group("v8_android_test_runner_deps") { - - if (is_android && !build_with_chromium) { - data_deps = [ "//build/android:test_runner_py" ] -- data = [ -- # This is used by android.py, but not included by test_runner_py above. -- "//third_party/catapult/devil/devil/android/perf/", -- ] - } - } - -diff --git a/chromium/weblayer/shell/BUILD.gn b/chromium/weblayer/shell/BUILD.gn -index 66984a7da54..1815fad623d 100644 ---- a/chromium/weblayer/shell/BUILD.gn -+++ b/chromium/weblayer/shell/BUILD.gn -@@ -161,7 +161,6 @@ repack("support_pak") { - "$root_gen_dir/components/strings/components_locale_settings_en-US.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", -@@ -182,7 +181,6 @@ repack("support_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", --- -2.35.1 - diff --git a/extra/qt5-webengine/qt5-webengine-icu-74.patch b/extra/qt5-webengine/qt5-webengine-icu-74.patch deleted file mode 100644 index 02a44b7a1..000000000 --- a/extra/qt5-webengine/qt5-webengine-icu-74.patch +++ /dev/null @@ -1,20 +0,0 @@ -See ICU change https://github.com/unicode-org/icu/commit/2e45e6ec0e84a1c01812015a254ea31b286316fb - -Similar has happened in the past. See: -https://chromium.googlesource.com/chromium/src/+/e60b571faa3f14dd9119a6792dccf12f8bf80192 - -diff --git a/third_party/blink/renderer/platform/text/text_break_iterator.cc b/third_party/blink/renderer/platform/text/text_break_iterator.cc -index ddfbd51..247da06 100644 ---- a/third_party/blink/renderer/platform/text/text_break_iterator.cc -+++ b/third_party/blink/renderer/platform/text/text_break_iterator.cc -@@ -161,7 +161,9 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar - }; - // clang-format on - --#if U_ICU_VERSION_MAJOR_NUM >= 58 -+#if U_ICU_VERSION_MAJOR_NUM >= 74 -+#define BA_LB_COUNT (U_LB_COUNT - 8) -+#elif U_ICU_VERSION_MAJOR_NUM >= 58 - #define BA_LB_COUNT (U_LB_COUNT - 3) - #else - #define BA_LB_COUNT U_LB_COUNT diff --git a/extra/qt5-webengine/qt5-webengine-libxml-2.12.patch b/extra/qt5-webengine/qt5-webengine-libxml-2.12.patch deleted file mode 100644 index 402d6ac4d..000000000 --- a/extra/qt5-webengine/qt5-webengine-libxml-2.12.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/third_party/blink/renderer/core/xml/xslt_processor.h b/third_party/blink/renderer/core/xml/xslt_processor.h -index d53835e9675793..2eaea31ed29b90 100644 ---- a/third_party/blink/renderer/core/xml/xslt_processor.h -+++ b/third_party/blink/renderer/core/xml/xslt_processor.h -@@ -77,7 +77,7 @@ class XSLTProcessor final : public ScriptWrappable { - - void reset(); - -- static void ParseErrorFunc(void* user_data, xmlError*); -+ static void ParseErrorFunc(void* user_data, const xmlError*); - static void GenericErrorFunc(void* user_data, const char* msg, ...); - - // Only for libXSLT callbacks -diff --git a/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc b/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc -index 133e0b3355d2f0..f424077089da87 100644 ---- a/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc -+++ b/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc -@@ -66,7 +66,7 @@ void XSLTProcessor::GenericErrorFunc(void*, const char*, ...) { - // It would be nice to do something with this error message. - } - --void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) { -+void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) { - FrameConsole* console = static_cast(user_data); - if (!console) - return; diff --git a/extra/qt5-webengine/qt5-webengine-python3.patch b/extra/qt5-webengine/qt5-webengine-python3.patch deleted file mode 100644 index 9a3b600d9..000000000 --- a/extra/qt5-webengine/qt5-webengine-python3.patch +++ /dev/null @@ -1,193 +0,0 @@ -diff --git a/configure.pri b/configure.pri -index 8705ad93..6723bffe 100644 ---- a/configure.pri -+++ b/configure.pri -@@ -7,20 +7,7 @@ QTWEBENGINE_SOURCE_TREE = $$PWD - 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 +48,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 +59,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 -diff --git a/mkspecs/features/functions.prf b/mkspecs/features/functions.prf -index 2750d707..9fda13d0 100644 ---- a/mkspecs/features/functions.prf -+++ b/mkspecs/features/functions.prf -@@ -39,11 +39,11 @@ defineReplace(which) { - - # 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. -diff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri -index e7f869a1..1bf2c5d7 100644 ---- a/src/buildtools/config/support.pri -+++ b/src/buildtools/config/support.pri -@@ -21,7 +21,7 @@ defineReplace(qtwebengine_checkWebEngineCoreError) { - !qtwebengine_checkForGperf(QtWebEngine):return(false) - !qtwebengine_checkForBison(QtWebEngine):return(false) - !qtwebengine_checkForFlex(QtWebEngine):return(false) -- !qtwebengine_checkForPython2(QtWebEngine):return(false) -+ !qtwebengine_checkForPython(QtWebEngine):return(false) - !qtwebengine_checkForNodejs(QtWebEngine):return(false) - !qtwebengine_checkForSanitizer(QtWebEngine):return(false) - linux:!qtwebengine_checkForPkgCfg(QtWebEngine):return(false) -@@ -51,7 +51,7 @@ defineReplace(qtwebengine_checkPdfError) { - !qtwebengine_checkForGperf(QtPdf):return(false) - !qtwebengine_checkForBison(QtPdf):return(false) - !qtwebengine_checkForFlex(QtPdf):return(false) -- !qtwebengine_checkForPython2(QtPdf):return(false) -+ !qtwebengine_checkForPython(QtPdf):return(false) - !qtwebengine_checkForSanitizer(QtPdf):return(false) - linux:!qtwebengine_checkForPkgCfg(QtPdf):return(false) - linux:!qtwebengine_checkForHostPkgCfg(QtPdf):return(false) -@@ -143,10 +143,10 @@ defineTest(qtwebengine_checkForFlex) { - return(true) - } - --defineTest(qtwebengine_checkForPython2) { -+defineTest(qtwebengine_checkForPython) { - module = $$1 -- !qtConfig(webengine-python2) { -- qtwebengine_skipBuild("Python version 2 (2.7.5 or later) is required to build $${module}.") -+ !qtConfig(webengine-python) { -+ qtwebengine_skipBuild("Python is required to build $${module}.") - return(false) - } - return(true) -diff --git a/src/buildtools/configure.json b/src/buildtools/configure.json -index 88d1790c..032aa665 100644 ---- a/src/buildtools/configure.json -+++ b/src/buildtools/configure.json -@@ -295,9 +295,9 @@ - "label": "system ninja", - "type": "detectNinja" - }, -- "webengine-python2": { -- "label": "python2", -- "type": "detectPython2", -+ "webengine-python": { -+ "label": "python", -+ "type": "detectPython", - "log": "location" - }, - "webengine-winversion": { -@@ -374,7 +374,7 @@ - && features.webengine-gperf - && features.webengine-bison - && features.webengine-flex -- && features.webengine-python2 -+ && features.webengine-python - && features.webengine-nodejs - && (!config.sanitizer || features.webengine-sanitizer) - && (!config.linux || features.pkg-config) -@@ -400,7 +400,7 @@ - && features.webengine-gperf - && features.webengine-bison - && features.webengine-flex -- && features.webengine-python2 -+ && features.webengine-python - && (!config.sanitizer || features.webengine-sanitizer) - && (!config.linux || features.pkg-config) - && (!config.linux || features.webengine-host-pkg-config) -@@ -423,12 +423,12 @@ - "autoDetect": "features.private_tests", - "output": [ "privateFeature" ] - }, -- "webengine-python2": { -- "label": "python2", -- "condition": "tests.webengine-python2", -+ "webengine-python": { -+ "label": "python", -+ "condition": "tests.webengine-python", - "output": [ - "privateFeature", -- { "type": "varAssign", "name": "QMAKE_PYTHON2", "value": "tests.webengine-python2.location" } -+ { "type": "varAssign", "name": "QMAKE_PYTHON", "value": "tests.webengine-python.location" } - ] - }, - "webengine-gperf": { -From b60fc250d65144532cd47eac72279e93baaec2b8 Mon Sep 17 00:00:00 2001 -From: Jimi Huotari -Date: Wed, 6 Apr 2022 14:35:14 +0300 -Subject: [PATCH] Remove dependency on catapult - ---- - src/core/qtwebengine_resources.gni | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/core/qtwebengine_resources.gni b/src/core/qtwebengine_resources.gni -index 3bf1a5d57..29fd2603c 100644 ---- a/src/core/qtwebengine_resources.gni -+++ b/src/core/qtwebengine_resources.gni -@@ -27,7 +27,6 @@ repack("qtwebengine_repack_resources") { - "$root_gen_dir/components/components_resources.pak", - "$root_gen_dir/components/dev_ui_components_resources.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/content_resources.pak", - "$root_gen_dir/content/dev_ui_content_resources.pak", - "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", -@@ -44,7 +43,6 @@ repack("qtwebengine_repack_resources") { - "//components/resources:components_resources_grit", - "//components/resources:dev_ui_components_resources_grit", - "//content/browser/resources/media:media_internals_resources", -- "//content/browser/tracing:resources", - "//content:content_resources_grit", - "//content:dev_ui_content_resources_grit", - "//mojo/public/js:resources", --- -2.35.1 -