diff --git a/pkgs/by-name/gc/gclient2nix/gclient-unpack-hook.sh b/pkgs/by-name/gc/gclient2nix/gclient-unpack-hook.sh new file mode 100644 index 000000000000..6dac91b9e25a --- /dev/null +++ b/pkgs/by-name/gc/gclient2nix/gclient-unpack-hook.sh @@ -0,0 +1,28 @@ +# shellcheck shell=bash + +gclientUnpackHook() { + echo "Executing gclientUnpackHook" + + runHook preUnpack + + if [ -z "${gclientDeps-}" ]; then + echo "gclientDeps missing" + exit 1 + fi + + for dep in $(@jq@ -c "to_entries[]" "$gclientDeps") + do + local name="$(echo "$dep" | @jq@ -r .key)" + echo "copying $name..." + local path="$(echo "$dep" | @jq@ -r .value.path)" + mkdir -p $(dirname "$name") + cp -r "$path/." "$name" + chmod u+w -R "$name" + done + + runHook postUnpack +} + +if [ -z "${dontGclientUnpack-}" ] && [ -z "${unpackPhase-}" ]; then + unpackPhase=(gclientUnpackHook) +fi diff --git a/pkgs/by-name/gc/gclient2nix/gclient2nix.py b/pkgs/by-name/gc/gclient2nix/gclient2nix.py new file mode 100755 index 000000000000..8535593f0d18 --- /dev/null +++ b/pkgs/by-name/gc/gclient2nix/gclient2nix.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python3 +import base64 +import json +import os +import subprocess +import re +import random +import sys +import tempfile +import logging +import click +import click_log +from typing import Optional +from urllib.request import urlopen +from joblib import Parallel, delayed, Memory +from platformdirs import user_cache_dir + +sys.path.append("@depot_tools_checkout@") +import gclient_eval +import gclient_utils + + +logger = logging.getLogger(__name__) +click_log.basic_config(logger) + +nixpkgs_path = "@nixpkgs_path@" + +memory: Memory = Memory(user_cache_dir("gclient2nix"), verbose=0) + +def cache(mem, **mem_kwargs): + def cache_(f): + f.__module__ = "gclient2nix" + f.__qualname__ = f.__name__ + return mem.cache(f, **mem_kwargs) + return cache_ + +@cache(memory) +def get_repo_hash(fetcher: str, args: dict) -> str: + expr = f"(import {nixpkgs_path} {{}}).gclient2nix.fetchers.{fetcher}{{" + for key, val in args.items(): + expr += f'{key}="{val}";' + expr += "}" + cmd = ["nurl", "-H", "--expr", expr] + print(" ".join(cmd), file=sys.stderr) + out = subprocess.check_output(cmd) + return out.decode("utf-8").strip() + + +class Repo: + fetcher: str + args: dict + + def __init__(self) -> None: + self.deps: dict = {} + + def get_deps(self, repo_vars: dict, path: str) -> None: + print( + "evaluating " + json.dumps(self, default=vars, sort_keys=True), + file=sys.stderr, + ) + + deps_file = self.get_file("DEPS") + evaluated = gclient_eval.Parse(deps_file, vars_override=repo_vars, filename="DEPS") + + repo_vars = dict(evaluated.get("vars", {})) | repo_vars + + prefix = f"{path}/" if evaluated.get("use_relative_paths", False) else "" + + self.deps = { + prefix + dep_name: repo_from_dep(dep) + for dep_name, dep in evaluated.get("deps", {}).items() + if ( + gclient_eval.EvaluateCondition(dep["condition"], repo_vars) + if "condition" in dep + else True + ) + and repo_from_dep(dep) != None + } + + for key in evaluated.get("recursedeps", []): + dep_path = prefix + key + if dep_path in self.deps: + self.deps[dep_path].get_deps(repo_vars, dep_path) + + def eval(self) -> None: + self.get_deps( + { + **{ + f"checkout_{platform}": platform == "linux" + for platform in ["ios", "chromeos", "android", "mac", "win", "linux"] + }, + **{ + f"checkout_{arch}": True + for arch in ["x64", "arm64", "arm", "x86", "mips", "mips64", "ppc"] + }, + }, + "", + ) + + def prefetch(self) -> None: + self.hash = get_repo_hash(self.fetcher, self.args) + + def prefetch_all(self) -> int: + return sum( + [dep.prefetch_all() for [_, dep] in self.deps.items()], + [delayed(self.prefetch)()], + ) + + def flatten_repr(self) -> dict: + return {"fetcher": self.fetcher, "attrs": {**({"hash": self.hash} if hasattr(self, "hash") else {}), **self.args}} + + def flatten(self, path: str) -> dict: + out = {path: self.flatten_repr()} + for dep_path, dep in self.deps.items(): + out |= dep.flatten(dep_path) + return out + + def get_file(self, filepath: str) -> str: + raise NotImplementedError + + +class GitRepo(Repo): + def __init__(self, url: str, rev: str) -> None: + super().__init__() + self.fetcher = "fetchgit" + self.args = { + "url": url, + "rev": rev, + } + + +class GitHubRepo(Repo): + def __init__(self, owner: str, repo: str, rev: str) -> None: + super().__init__() + self.fetcher = "fetchFromGitHub" + self.args = { + "owner": owner, + "repo": repo, + "rev": rev, + } + + def get_file(self, filepath: str) -> str: + return ( + urlopen( + f"https://raw.githubusercontent.com/{self.args['owner']}/{self.args['repo']}/{self.args['rev']}/{filepath}" + ) + .read() + .decode("utf-8") + ) + + +class GitilesRepo(Repo): + def __init__(self, url: str, rev: str) -> None: + super().__init__() + self.fetcher = "fetchFromGitiles" + self.args = { + "url": url, + "rev": rev, + } + + # Quirk: Chromium source code exceeds the Hydra output limit + # We prefer deleting test data over recompressing the sources into a + # tarball, because the NAR will be compressed after the size check + # anyways, so recompressing is more like bypassing the size limit + # (making it count the compressed instead of uncompressed size) + # rather than complying with it. + if url == "https://chromium.googlesource.com/chromium/src.git": + self.args["postFetch"] = "rm -r $out/third_party/blink/web_tests; " + self.args["postFetch"] += "rm -r $out/content/test/data; " + self.args["postFetch"] += "rm -rf $out/courgette/testdata; " + self.args["postFetch"] += "rm -r $out/extensions/test/data; " + self.args["postFetch"] += "rm -r $out/media/test/data; " + + def get_file(self, filepath: str) -> str: + return base64.b64decode( + urlopen( + f"{self.args['url']}/+/{self.args['rev']}/{filepath}?format=TEXT" + ).read() + ).decode("utf-8") + + + +def repo_from_dep(dep: dict) -> Optional[Repo]: + if "url" in dep: + url, rev = gclient_utils.SplitUrlRevision(dep["url"]) + + search_object = re.search(r"https://github.com/(.+)/(.+?)(\.git)?$", url) + if search_object: + return GitHubRepo(search_object.group(1), search_object.group(2), rev) + + if re.match(r"https://.+\.googlesource.com", url): + return GitilesRepo(url, rev) + + return GitRepo(url, rev) + else: + # Not a git dependency; skip + return None + + +@click.group() +def cli() -> None: + """gclient2nix""" + pass + + +@cli.command("eval", help="Evaluate and print the dependency tree of a gclient project") +@click.argument("url", required=True, type=str) +@click.option("--root", default="src", help="Root path, where the given url is placed", type=str) +def eval(url: str, root: str) -> None: + repo = repo_from_dep({"url": url}) + repo.eval() + print(json.dumps(repo.flatten(root), sort_keys=True, indent=4)) + + +@cli.command("generate", help="Generate a dependencies description for a gclient project") +@click.argument("url", required=True, type=str) +@click.option("--root", default="src", help="Root path, where the given url is placed", type=str) +def generate(url: str, root: str) -> None: + repo = repo_from_dep({"url": url}) + repo.eval() + tasks = repo.prefetch_all() + random.shuffle(tasks) + task_results = { + n[0]: n[1] + for n in Parallel(n_jobs=20, require="sharedmem", return_as="generator")(tasks) + if n != None + } + print(json.dumps(repo.flatten(root), sort_keys=True, indent=4)) + + +if __name__ == "__main__": + cli() diff --git a/pkgs/by-name/gc/gclient2nix/package.nix b/pkgs/by-name/gc/gclient2nix/package.nix new file mode 100644 index 000000000000..ee7251b9ffa7 --- /dev/null +++ b/pkgs/by-name/gc/gclient2nix/package.nix @@ -0,0 +1,86 @@ +{ + lib, + python3, + runCommand, + makeWrapper, + path, + fetchgit, + nurl, + writers, + callPackage, + fetchFromGitiles, + fetchFromGitHub, +}: + +let + fetchers = { + inherit fetchgit fetchFromGitiles fetchFromGitHub; + }; + + importGclientDeps = + depsAttrsOrFile: + let + depsAttrs = if lib.isAttrs depsAttrsOrFile then depsAttrsOrFile else lib.importJSON depsAttrsOrFile; + fetchdep = dep: fetchers.${dep.fetcher} dep.args; + fetchedDeps = lib.mapAttrs (_name: fetchdep) depsAttrs; + manifestContents = lib.mapAttrs (_: dep: { + path = dep; + }) fetchedDeps; + manifest = writers.writeJSON "gclient-manifest.json" manifestContents; + in + manifestContents + // { + inherit manifest; + __toString = _: manifest; + }; + + gclientUnpackHook = callPackage ( + { + lib, + makeSetupHook, + jq, + }: + + makeSetupHook { + name = "gclient-unpack-hook"; + substitutions = { + jq = lib.getExe jq; + }; + } ./gclient-unpack-hook.sh + ) { }; + + python = python3.withPackages ( + ps: with ps; [ + joblib + platformdirs + click + click-log + ] + ); + +in + +runCommand "gclient2nix" + { + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ python ]; + + # substitutions + nixpkgs_path = if builtins.pathExists (path + "/.git") then lib.cleanSource path else path; + depot_tools_checkout = fetchgit { + url = "https://chromium.googlesource.com/chromium/tools/depot_tools"; + rev = "452fe3be37f78fbecefa1b4b0d359531bcd70d0d"; + hash = "sha256-8IiJOm0FLa/u1Vd96tb33Ruj4IUTCeYgBpTk88znhPw="; + }; + + passthru = { + inherit fetchers importGclientDeps gclientUnpackHook; + }; + } + '' + mkdir -p $out/bin + substituteAll ${./gclient2nix.py} $out/bin/gclient2nix + chmod u+x $out/bin/gclient2nix + patchShebangs $out/bin/gclient2nix + wrapProgram $out/bin/gclient2nix --set PATH "${lib.makeBinPath [ nurl ]}" + '' diff --git a/pkgs/development/tools/electron/binary/update.py b/pkgs/development/tools/electron/binary/update.py new file mode 100755 index 000000000000..2ebf3fbad047 --- /dev/null +++ b/pkgs/development/tools/electron/binary/update.py @@ -0,0 +1,216 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i python -p python3.pkgs.click python3.pkgs.click-log nix +""" +electron updater + +A script for updating binary hashes. + +It supports the following modes: + +| Mode | Description | +|------------- | ----------------------------------------------- | +| `update` | for updating a specific Electron release | +| `update-all` | for updating all electron releases at once | + +The `update` command requires a `--version` flag +to specify the major release to be update. +The `update-all` command updates all non-eol major releases. + +The `update` and `update-all` commands accept an optional `--commit` +flag to automatically commit the changes for you. +""" +import logging +import os +import subprocess +import sys +import click +import click_log + +from typing import Tuple +os.chdir(os.path.dirname(__file__)) +sys.path.append("..") +from update_util import * + + +# Relatice path to the electron-bin info.json +BINARY_INFO_JSON = "info.json" + +# Relative path the the electron-chromedriver info.json +CHROMEDRIVER_INFO_JSON = "../chromedriver/info.json" + +logger = logging.getLogger(__name__) +click_log.basic_config(logger) + + +systems = { + "i686-linux": "linux-ia32", + "x86_64-linux": "linux-x64", + "armv7l-linux": "linux-armv7l", + "aarch64-linux": "linux-arm64", + "x86_64-darwin": "darwin-x64", + "aarch64-darwin": "darwin-arm64", +} + +def get_shasums256(version: str) -> list: + """Returns the contents of SHASUMS256.txt""" + try: + called_process: subprocess.CompletedProcess = subprocess.run( + [ + "nix-prefetch-url", + "--print-path", + f"https://github.com/electron/electron/releases/download/v{version}/SHASUMS256.txt", + ], + capture_output=True, + check=True, + text=True, + ) + + hash_file_path = called_process.stdout.split("\n")[1] + + with open(hash_file_path, "r") as f: + return f.read().split("\n") + + except subprocess.CalledProcessError as err: + print(err.stderr) + sys.exit(1) + + +def get_headers(version: str) -> str: + """Returns the hash of the release headers tarball""" + try: + called_process: subprocess.CompletedProcess = subprocess.run( + [ + "nix-prefetch-url", + f"https://artifacts.electronjs.org/headers/dist/v{version}/node-v{version}-headers.tar.gz", + ], + capture_output=True, + check=True, + text=True, + ) + return called_process.stdout.split("\n")[0] + except subprocess.CalledProcessError as err: + print(err.stderr) + sys.exit(1) + + +def get_electron_hashes(major_version: str) -> dict: + """Returns a dictionary of hashes for a given major version""" + m, _ = get_latest_version(major_version) + version: str = m["version"] + + out = {} + out[major_version] = { + "hashes": {}, + "version": version, + } + + hashes: list = get_shasums256(version) + + for nix_system, electron_system in systems.items(): + filename = f"*electron-v{version}-{electron_system}.zip" + if any([x.endswith(filename) for x in hashes]): + out[major_version]["hashes"][nix_system] = [ + x.split(" ")[0] for x in hashes if x.endswith(filename) + ][0] + out[major_version]["hashes"]["headers"] = get_headers(version) + + return out + + +def get_chromedriver_hashes(major_version: str) -> dict: + """Returns a dictionary of hashes for a given major version""" + m, _ = get_latest_version(major_version) + version: str = m["version"] + + out = {} + out[major_version] = { + "hashes": {}, + "version": version, + } + + hashes: list = get_shasums256(version) + + for nix_system, electron_system in systems.items(): + filename = f"*chromedriver-v{version}-{electron_system}.zip" + if any([x.endswith(filename) for x in hashes]): + out[major_version]["hashes"][nix_system] = [ + x.split(" ")[0] for x in hashes if x.endswith(filename) + ][0] + out[major_version]["hashes"]["headers"] = get_headers(version) + + return out + + +def update_binary(major_version: str, commit: bool, chromedriver: bool) -> None: + """Update a given electron-bin or chromedriver release + + Args: + major_version: The major version number, e.g. '27' + commit: Whether the updater should commit the result + """ + if chromedriver: + json_path=CHROMEDRIVER_INFO_JSON + package_name = f"electron-chromedriver_{major_version}" + update_fn=get_chromedriver_hashes + else: + json_path=BINARY_INFO_JSON + package_name = f"electron_{major_version}-bin" + update_fn = get_electron_hashes + print(f"Updating {package_name}") + + old_info = load_info_json(json_path) + new_info = update_fn(major_version) + + out = old_info | new_info + + save_info_json(json_path, out) + + old_version = ( + old_info[major_version]["version"] if major_version in old_info else None + ) + new_version = new_info[major_version]["version"] + if old_version == new_version: + print(f"{package_name} is up-to-date") + elif commit: + commit_result(package_name, old_version, new_version, json_path) + + +@click.group() +def cli() -> None: + """A script for updating electron-bin and chromedriver hashes""" + pass + + +@cli.command("update-chromedriver", help="Update a single major release") +@click.option("-v", "--version", help="The major version, e.g. '23'") +@click.option("-c", "--commit", is_flag=True, default=False, help="Commit the result") +def update_chromedriver(version: str, commit: bool) -> None: + update_binary(version, commit, True) + + +@cli.command("update", help="Update a single major release") +@click.option("-v", "--version", required=True, type=str, help="The major version, e.g. '23'") +@click.option("-c", "--commit", is_flag=True, default=False, help="Commit the result") +def update(version: str, commit: bool) -> None: + update_binary(version, commit, False) + update_binary(version, commit, True) + + +@cli.command("update-all", help="Update all releases at once") +@click.option("-c", "--commit", is_flag=True, default=False, help="Commit the result") +def update_all(commit: bool) -> None: + # Filter out releases that have reached end-of-life + filtered_bin_info = dict( + filter( + lambda entry: int(entry[0]) in supported_version_range(), + load_info_json(BINARY_INFO_JSON).items(), + ) + ) + + for major_version, _ in filtered_bin_info.items(): + update_binary(str(major_version), commit, False) + update_binary(str(major_version), commit, True) + + +if __name__ == "__main__": + cli() diff --git a/pkgs/development/tools/electron/common.nix b/pkgs/development/tools/electron/common.nix index 55a60ced7e65..0a92ed74a765 100644 --- a/pkgs/development/tools/electron/common.nix +++ b/pkgs/development/tools/electron/common.nix @@ -17,19 +17,13 @@ libpulseaudio, speechd-minimal, info, + gclient2nix, }: let - fetchdep = - dep: - let - opts = removeAttrs dep [ "fetcher" ]; - in - pkgs.${dep.fetcher} opts; - - fetchedDeps = lib.mapAttrs (name: fetchdep) info.deps; - + gclientDeps = gclient2nix.importGclientDeps info.deps; in + ((chromium.override { upstream-info = info.chromium; }).mkDerivation (base: { packageName = "electron"; inherit (info) version; @@ -49,20 +43,24 @@ in fixup-yarn-lock unzip npmHooks.npmConfigHook + gclient2nix.gclientUnpackHook ]; buildInputs = base.buildInputs ++ [ libnotify ]; electronOfflineCache = fetchYarnDeps { - yarnLock = fetchedDeps."src/electron" + "/yarn.lock"; + yarnLock = gclientDeps."src/electron".path + "/yarn.lock"; sha256 = info.electron_yarn_hash; }; npmDeps = fetchNpmDeps rec { - src = fetchedDeps."src"; + src = gclientDeps."src".path; # Assume that the fetcher always unpack the source, # based on update.py sourceRoot = "${src.name}/third_party/node"; hash = info.chromium_npm_hash; }; + inherit gclientDeps; + unpackPhase = null; # prevent chromium's unpackPhase from being used + sourceRoot = "src"; env = base.env @@ -85,22 +83,6 @@ in patches = base.patches; - unpackPhase = - '' - runHook preUnpack - '' - + (lib.concatStrings ( - lib.mapAttrsToList (path: dep: '' - mkdir -p ${builtins.dirOf path} - cp -r ${dep}/. ${path} - chmod u+w -R ${path} - '') fetchedDeps - )) - + '' - sourceRoot=src - runHook postUnpack - ''; - npmRoot = "third_party/node"; postPatch = @@ -121,14 +103,14 @@ in echo 'cros_boards_with_qemu_images = ""' >> build/config/gclient_args.gni echo 'generate_location_tags = true' >> build/config/gclient_args.gni - echo 'LASTCHANGE=${info.deps."src".rev}-refs/heads/master@{#0}' > build/util/LASTCHANGE - echo "$SOURCE_DATE_EPOCH" > build/util/LASTCHANGE.committime + echo 'LASTCHANGE=${info.deps."src".args.rev}-refs/heads/master@{#0}' > build/util/LASTCHANGE + echo "$SOURCE_DATE_EPOCH" > build/util/LASTCHANGE.committime cat << EOF > gpu/config/gpu_lists_version.h /* Generated by lastchange.py, do not edit.*/ #ifndef GPU_CONFIG_GPU_LISTS_VERSION_H_ #define GPU_CONFIG_GPU_LISTS_VERSION_H_ - #define GPU_LISTS_VERSION "${info.deps."src".rev}" + #define GPU_LISTS_VERSION "${info.deps."src".args.rev}" #endif // GPU_CONFIG_GPU_LISTS_VERSION_H_ EOF @@ -136,11 +118,11 @@ in /* Generated by lastchange.py, do not edit.*/ #ifndef SKIA_EXT_SKIA_COMMIT_HASH_H_ #define SKIA_EXT_SKIA_COMMIT_HASH_H_ - #define SKIA_COMMIT_HASH "${info.deps."src/third_party/skia".rev}-" + #define SKIA_COMMIT_HASH "${info.deps."src/third_party/skia".args.rev}-" #endif // SKIA_EXT_SKIA_COMMIT_HASH_H_ EOF - echo -n '${info.deps."src/third_party/dawn".rev}' > gpu/webgpu/DAWN_VERSION + echo -n '${info.deps."src/third_party/dawn".args.rev}' > gpu/webgpu/DAWN_VERSION ( cd electron @@ -261,7 +243,7 @@ in requiredSystemFeatures = [ "big-parallel" ]; passthru = { - inherit info fetchedDeps; + inherit info; }; meta = with lib; { diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json index 230d05651108..08673da08fec 100644 --- a/pkgs/development/tools/electron/info.json +++ b/pkgs/development/tools/electron/info.json @@ -15,936 +15,1244 @@ "chromium_npm_hash": "sha256-4w5m/bTMygidlb4TZHMx1Obp784DLxMwrfe1Uvyyfp8=", "deps": { "src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-hJZWDT7D2YP75CQJwYNqnMTvLyMIF3wS2yJaRuUiOhY=", - "postFetch": "rm -r $out/third_party/blink/web_tests; rm -rf $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", - "rev": "130.0.6723.191", - "url": "https://chromium.googlesource.com/chromium/src.git" + "args": { + "hash": "sha256-Vk3D3w8molUl0Gsg/LbgCktU2JQ3TzOhrwC/t2LuOy0=", + "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", + "rev": "130.0.6723.191", + "url": "https://chromium.googlesource.com/chromium/src.git" + }, + "fetcher": "fetchFromGitiles" }, "src/chrome/test/data/perf/canvas_bench": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", - "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", - "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" + "args": { + "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", + "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", + "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" + }, + "fetcher": "fetchFromGitiles" }, "src/chrome/test/data/perf/frame_rate/content": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", - "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", - "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" + "args": { + "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", + "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", + "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" + }, + "fetcher": "fetchFromGitiles" }, "src/chrome/test/data/xr/webvr_info": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", - "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", - "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" + "args": { + "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", + "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", + "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" + }, + "fetcher": "fetchFromGitiles" }, "src/docs/website": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-XK22S9WwNN4zQZ5teiQ1sZA5m/8rArwq3jCgM6H9KQY=", - "rev": "052e29447b43b18da32fff653b9d58ef79fbc836", - "url": "https://chromium.googlesource.com/website.git" + "args": { + "hash": "sha256-XK22S9WwNN4zQZ5teiQ1sZA5m/8rArwq3jCgM6H9KQY=", + "rev": "052e29447b43b18da32fff653b9d58ef79fbc836", + "url": "https://chromium.googlesource.com/website.git" + }, + "fetcher": "fetchFromGitiles" }, "src/electron": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-mvDHVVjrKoeg2E2ucAGTsjnMRDqcrqr3QlDoCmxHQJY=", - "owner": "electron", - "repo": "electron", - "rev": "v33.4.8" + "args": { + "hash": "sha256-mvDHVVjrKoeg2E2ucAGTsjnMRDqcrqr3QlDoCmxHQJY=", + "owner": "electron", + "repo": "electron", + "rev": "v33.4.8" + }, + "fetcher": "fetchFromGitHub" }, "src/media/cdm/api": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=", - "rev": "eb21edc44e8e5a82095037be80c8b15c51624293", - "url": "https://chromium.googlesource.com/chromium/cdm.git" + "args": { + "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=", + "rev": "eb21edc44e8e5a82095037be80c8b15c51624293", + "url": "https://chromium.googlesource.com/chromium/cdm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/net/third_party/quiche/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-NJKJ5cc+wEcmCIFYXWQX4x9BZblbS+wqj+25CcUiPZM=", - "rev": "9808dac40e034f09d7af53d3d79589a02e39c211", - "url": "https://quiche.googlesource.com/quiche.git" + "args": { + "hash": "sha256-NJKJ5cc+wEcmCIFYXWQX4x9BZblbS+wqj+25CcUiPZM=", + "rev": "9808dac40e034f09d7af53d3d79589a02e39c211", + "url": "https://quiche.googlesource.com/quiche.git" + }, + "fetcher": "fetchFromGitiles" }, "src/testing/libfuzzer/fuzzers/wasm_corpus": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qWsGQNUptbz0jYvUuxP7woNf5QQrfn9k3uvr82Yk0QM=", - "rev": "f650ff816f2ef227f61ea2e9f222aa69708ab367", - "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" + "args": { + "hash": "sha256-qWsGQNUptbz0jYvUuxP7woNf5QQrfn9k3uvr82Yk0QM=", + "rev": "f650ff816f2ef227f61ea2e9f222aa69708ab367", + "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/accessibility_test_framework/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", - "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", - "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" + "args": { + "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", + "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", + "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-OtpF7+KQzk0MWhgBlNV1DheHywtBMDQIPhGUOss9Dtg=", - "rev": "fffbc739779a2df56a464fd6853bbfb24bebb5f6", - "url": "https://chromium.googlesource.com/angle/angle.git" + "args": { + "hash": "sha256-OtpF7+KQzk0MWhgBlNV1DheHywtBMDQIPhGUOss9Dtg=", + "rev": "fffbc739779a2df56a464fd6853bbfb24bebb5f6", + "url": "https://chromium.googlesource.com/angle/angle.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle/third_party/VK-GL-CTS/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-yPQG/Ddat9H4XZq6Zu5S3VzcZeMhLBcM//KI/3Kxaxg=", - "rev": "1df39e522f4aa358012180fd4cf876af68aff78d", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" + "args": { + "hash": "sha256-yPQG/Ddat9H4XZq6Zu5S3VzcZeMhLBcM//KI/3Kxaxg=", + "rev": "1df39e522f4aa358012180fd4cf876af68aff78d", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle/third_party/glmark2/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=", - "rev": "ca8de51fedb70bace5351c6b002eb952c747e889", - "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" + "args": { + "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=", + "rev": "ca8de51fedb70bace5351c6b002eb952c747e889", + "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle/third_party/rapidjson/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", - "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", - "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" + "args": { + "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", + "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", + "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/anonymous_tokens/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-PMB49+zW9ewlS9ym+xi0xYQYLN0j5Urx6yBXWd8FjjI=", - "rev": "6ea6ec78f9e4998d0a7a5677b2aec08f0ac858f8", - "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" + "args": { + "hash": "sha256-PMB49+zW9ewlS9ym+xi0xYQYLN0j5Urx6yBXWd8FjjI=", + "rev": "6ea6ec78f9e4998d0a7a5677b2aec08f0ac858f8", + "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/beto-core/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=", - "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", - "url": "https://beto-core.googlesource.com/beto-core.git" + "args": { + "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=", + "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", + "url": "https://beto-core.googlesource.com/beto-core.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/boringssl/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-on+VonYXZ710oqgaK/OKa9Huq2mSXp8SJcj9CciHsf8=", - "rev": "58f3bc83230d2958bb9710bc910972c4f5d382dc", - "url": "https://boringssl.googlesource.com/boringssl.git" + "args": { + "hash": "sha256-on+VonYXZ710oqgaK/OKa9Huq2mSXp8SJcj9CciHsf8=", + "rev": "58f3bc83230d2958bb9710bc910972c4f5d382dc", + "url": "https://boringssl.googlesource.com/boringssl.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/breakpad/breakpad": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-kTkwRfaqw5ZCHEvu2YPZ+1vCfekHkY5pY3m9snDN64g=", - "rev": "6b0c5b7ee1988a14a4af94564e8ae8bba8a94374", - "url": "https://chromium.googlesource.com/breakpad/breakpad.git" + "args": { + "hash": "sha256-kTkwRfaqw5ZCHEvu2YPZ+1vCfekHkY5pY3m9snDN64g=", + "rev": "6b0c5b7ee1988a14a4af94564e8ae8bba8a94374", + "url": "https://chromium.googlesource.com/breakpad/breakpad.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cast_core/public/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-AalRQhJmornCqmvE2+36J/3LubaA0jr6P1PXy32lX4I=", - "rev": "71f51fd6fa45fac73848f65421081edd723297cd", - "url": "https://chromium.googlesource.com/cast_core/public" + "args": { + "hash": "sha256-AalRQhJmornCqmvE2+36J/3LubaA0jr6P1PXy32lX4I=", + "rev": "71f51fd6fa45fac73848f65421081edd723297cd", + "url": "https://chromium.googlesource.com/cast_core/public" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/catapult": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IHubCuEBE9W0wRudOmjUoaOvT66JuVTzEBUOTvdnXqQ=", - "rev": "296226a4a0067c8cffeb8831fb87526a8035f3cc", - "url": "https://chromium.googlesource.com/catapult.git" + "args": { + "hash": "sha256-IHubCuEBE9W0wRudOmjUoaOvT66JuVTzEBUOTvdnXqQ=", + "rev": "296226a4a0067c8cffeb8831fb87526a8035f3cc", + "url": "https://chromium.googlesource.com/catapult.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ced/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", - "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", - "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" + "args": { + "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", + "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", + "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/chromium-variations": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-DR5rJdnDKunS/PHtVK1n4zk0MmK54LhlawZW74711LY=", - "rev": "6aa57f2c6b49402b55ec607c17bd7ee8946970b0", - "url": "https://chromium.googlesource.com/chromium-variations.git" + "args": { + "hash": "sha256-DR5rJdnDKunS/PHtVK1n4zk0MmK54LhlawZW74711LY=", + "rev": "6aa57f2c6b49402b55ec607c17bd7ee8946970b0", + "url": "https://chromium.googlesource.com/chromium-variations.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/clang-format/script": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-whD8isX2ZhLrFzdxHhFP1S/sZDRgyrzLFaVd7OEFqYo=", - "rev": "3c0acd2d4e73dd911309d9e970ba09d58bf23a62", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" + "args": { + "hash": "sha256-whD8isX2ZhLrFzdxHhFP1S/sZDRgyrzLFaVd7OEFqYo=", + "rev": "3c0acd2d4e73dd911309d9e970ba09d58bf23a62", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cld_3/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", - "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", - "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" + "args": { + "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", + "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", + "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/colorama/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", - "rev": "3de9f013df4b470069d03d250224062e8cf15c49", - "url": "https://chromium.googlesource.com/external/colorama.git" + "args": { + "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", + "rev": "3de9f013df4b470069d03d250224062e8cf15c49", + "url": "https://chromium.googlesource.com/external/colorama.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/content_analysis_sdk/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", - "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", - "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" + "args": { + "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", + "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", + "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cpu_features/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", - "rev": "936b9ab5515dead115606559502e3864958f7f6e", - "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" + "args": { + "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", + "rev": "936b9ab5515dead115606559502e3864958f7f6e", + "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cpuinfo/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-UKy9TIiO/UJ5w+qLRlMd085CX2qtdVH2W3rtxB5r6MY=", - "rev": "ca678952a9a8eaa6de112d154e8e104b22f9ab3f", - "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" + "args": { + "hash": "sha256-UKy9TIiO/UJ5w+qLRlMd085CX2qtdVH2W3rtxB5r6MY=", + "rev": "ca678952a9a8eaa6de112d154e8e104b22f9ab3f", + "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/crabbyavif/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-9ooMkYOHRYbV2kdxu8VWUNgBeBsrN4kWUb8cZJwZfiU=", - "rev": "adfb834d76c6a064f28bb3a694689fc14a42425e", - "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" + "args": { + "hash": "sha256-9ooMkYOHRYbV2kdxu8VWUNgBeBsrN4kWUb8cZJwZfiU=", + "rev": "adfb834d76c6a064f28bb3a694689fc14a42425e", + "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/crc32c/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", - "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", - "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" + "args": { + "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", + "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", + "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cros-components/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gEhAwW6u8VgBRFmAddRBlosbf/a9lhRLgs70Dvh1zos=", - "rev": "08a6ca6559c8d07c79fb5576a44e016e3126c221", - "url": "https://chromium.googlesource.com/external/google3/cros_components.git" + "args": { + "hash": "sha256-gEhAwW6u8VgBRFmAddRBlosbf/a9lhRLgs70Dvh1zos=", + "rev": "08a6ca6559c8d07c79fb5576a44e016e3126c221", + "url": "https://chromium.googlesource.com/external/google3/cros_components.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cros_system_api": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-9rM9m6VRX7B+h9JiICN5O9rBYdQEHNlCUnQMuaTy/1s=", - "rev": "2f88f9c4581a9c854604fa23516de8c9c13b227b", - "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" + "args": { + "hash": "sha256-9rM9m6VRX7B+h9JiICN5O9rBYdQEHNlCUnQMuaTy/1s=", + "rev": "2f88f9c4581a9c854604fa23516de8c9c13b227b", + "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/crossbench": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-7IuhXuxXD3xBkgazg3B9GZknlNv8Xi0eTHkeQv63ayk=", - "rev": "2b812597dd143dbdc560ff2f28d5f8d3adc700d4", - "url": "https://chromium.googlesource.com/crossbench.git" + "args": { + "hash": "sha256-7IuhXuxXD3xBkgazg3B9GZknlNv8Xi0eTHkeQv63ayk=", + "rev": "2b812597dd143dbdc560ff2f28d5f8d3adc700d4", + "url": "https://chromium.googlesource.com/crossbench.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dav1d/libdav1d": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qJSUt8gMFB+IhOnEAw3t6nj1y7XUY91pLQBF8CeYtas=", - "rev": "6b3c489a2ee2c030f351f21987c27611b4cbe725", - "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" + "args": { + "hash": "sha256-qJSUt8gMFB+IhOnEAw3t6nj1y7XUY91pLQBF8CeYtas=", + "rev": "6b3c489a2ee2c030f351f21987c27611b4cbe725", + "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-T3uqU4eTYDFPrDkUCro/RjNUwCEoFUu6n+wzmkYgO1U=", - "rev": "f1041a163d06fb86b082e29260ab53a4637b0e98", - "url": "https://dawn.googlesource.com/dawn.git" + "args": { + "hash": "sha256-T3uqU4eTYDFPrDkUCro/RjNUwCEoFUu6n+wzmkYgO1U=", + "rev": "f1041a163d06fb86b082e29260ab53a4637b0e98", + "url": "https://dawn.googlesource.com/dawn.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/dxc": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-CrR08tw9e+4U+fa6E9xoP/4puPNHEjLrxtSju8psLlk=", - "rev": "05334a70d3e5355fc86c94bb4e3cfe1c31a65999", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" + "args": { + "hash": "sha256-CrR08tw9e+4U+fa6E9xoP/4puPNHEjLrxtSju8psLlk=", + "rev": "05334a70d3e5355fc86c94bb4e3cfe1c31a65999", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/dxheaders": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", - "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" + "args": { + "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", + "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/glfw": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", - "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", - "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" + "args": { + "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", + "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", + "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/khronos/EGL-Registry": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", - "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" + "args": { + "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", + "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/khronos/OpenGL-Registry": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", - "rev": "5bae8738b23d06968e7c3a41308568120943ae77", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" + "args": { + "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", + "rev": "5bae8738b23d06968e7c3a41308568120943ae77", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/webgpu-cts": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-heIL8hhaVr0uRi2lD+7RFltggVFW48ZY9Tdl0yVRdac=", - "rev": "a5065e398d2430c83e17ef9cbad6eae31d1efa8f", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" + "args": { + "hash": "sha256-heIL8hhaVr0uRi2lD+7RFltggVFW48ZY9Tdl0yVRdac=", + "rev": "a5065e398d2430c83e17ef9cbad6eae31d1efa8f", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/webgpu-headers": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-J3PcwYoO79HqrACFgk77BZLTCi7oi5k2J6v3wlcFVD4=", - "rev": "8049c324dc7b3c09dc96ea04cb02860f272c8686", - "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers" + "args": { + "hash": "sha256-J3PcwYoO79HqrACFgk77BZLTCi7oi5k2J6v3wlcFVD4=", + "rev": "8049c324dc7b3c09dc96ea04cb02860f272c8686", + "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/depot_tools": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=", - "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", - "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" + "args": { + "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=", + "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", + "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/devtools-frontend/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gRc2ei5m7a5KVKEMIivPGy1IQqDIaJxUJHLd5k2F+GQ=", - "rev": "deee9c11c9f76ef595b7d0b52fcf677d25aac5f2", - "url": "https://chromium.googlesource.com/devtools/devtools-frontend" + "args": { + "hash": "sha256-gRc2ei5m7a5KVKEMIivPGy1IQqDIaJxUJHLd5k2F+GQ=", + "rev": "deee9c11c9f76ef595b7d0b52fcf677d25aac5f2", + "url": "https://chromium.googlesource.com/devtools/devtools-frontend" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dom_distiller_js/dist": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", - "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", - "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" + "args": { + "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", + "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", + "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/domato/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", - "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", - "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" + "args": { + "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", + "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", + "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/eigen3/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-U4SMReXTFZg7YGyefI6MXIB66nt5OiANMH0HUyr/xIc=", - "rev": "134b526d6110061469168e7e0511822a8e30bcaf", - "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" + "args": { + "hash": "sha256-U4SMReXTFZg7YGyefI6MXIB66nt5OiANMH0HUyr/xIc=", + "rev": "134b526d6110061469168e7e0511822a8e30bcaf", + "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/electron_node": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-ta9gw6A0aYguKYNRBW2nSPC3UTU5/7GNUPS02yyByis=", - "owner": "nodejs", - "repo": "node", - "rev": "v20.18.3" + "args": { + "hash": "sha256-ta9gw6A0aYguKYNRBW2nSPC3UTU5/7GNUPS02yyByis=", + "owner": "nodejs", + "repo": "node", + "rev": "v20.18.3" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/emoji-segmenter/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-sI6UgXTWxXJajB2h2LH3caf7cqRbBshD5GoLocrUivk=", - "rev": "6b8f235b72deba7d6ef113631129b274c14941ef", - "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" + "args": { + "hash": "sha256-sI6UgXTWxXJajB2h2LH3caf7cqRbBshD5GoLocrUivk=", + "rev": "6b8f235b72deba7d6ef113631129b274c14941ef", + "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/engflow-reclient-configs": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", - "owner": "EngFlow", - "repo": "reclient-configs", - "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" + "args": { + "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", + "owner": "EngFlow", + "repo": "reclient-configs", + "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/expat/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=", - "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" + "args": { + "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=", + "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", + "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/farmhash/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", - "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", - "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" + "args": { + "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", + "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", + "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fast_float/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-0eVovauN7SnO3nSIWBRWAJ4dR7q5beZrIGUZ18M2pao=", - "rev": "3e57d8dcfb0a04b5a8a26b486b54490a2e9b310f", - "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" + "args": { + "hash": "sha256-0eVovauN7SnO3nSIWBRWAJ4dR7q5beZrIGUZ18M2pao=", + "rev": "3e57d8dcfb0a04b5a8a26b486b54490a2e9b310f", + "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ffmpeg": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-HnpWlSfXxa951UkFgL/2zKoaBeveuVkTZz/iqYXjkH8=", - "rev": "91903c28af60a732a051c343b496e1188eec9b05", - "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" + "args": { + "hash": "sha256-HnpWlSfXxa951UkFgL/2zKoaBeveuVkTZz/iqYXjkH8=", + "rev": "91903c28af60a732a051c343b496e1188eec9b05", + "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/flac": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", - "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", - "url": "https://chromium.googlesource.com/chromium/deps/flac.git" + "args": { + "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", + "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", + "url": "https://chromium.googlesource.com/chromium/deps/flac.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/flatbuffers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", - "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", - "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" + "args": { + "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", + "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", + "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fontconfig/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=", - "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", - "url": "https://chromium.googlesource.com/external/fontconfig.git" + "args": { + "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=", + "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", + "url": "https://chromium.googlesource.com/external/fontconfig.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fp16/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", - "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" + "args": { + "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", + "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/freetype-testing/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=", - "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f", - "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" + "args": { + "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=", + "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f", + "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/freetype/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-w5Zd4yvGoMQ0BmDGa2b9gK/+7f+UaZDRYqEdMGH/zKg=", - "rev": "83af801b552111e37d9466a887e1783a0fb5f196", - "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" + "args": { + "hash": "sha256-w5Zd4yvGoMQ0BmDGa2b9gK/+7f+UaZDRYqEdMGH/zKg=", + "rev": "83af801b552111e37d9466a887e1783a0fb5f196", + "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fuzztest/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-g+iJrywURQfdYpco26VN+OlhZkVcFzmAK18C7W7/WLU=", - "rev": "a29e31cb00ec9b123dec5a0c6b8d4bc12c2480c8", - "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" + "args": { + "hash": "sha256-g+iJrywURQfdYpco26VN+OlhZkVcFzmAK18C7W7/WLU=", + "rev": "a29e31cb00ec9b123dec5a0c6b8d4bc12c2480c8", + "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fxdiv/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", - "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" + "args": { + "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", + "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/gemmlowp/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", - "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", - "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" + "args": { + "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", + "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", + "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/glslang/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-6lVjQb8FOyGmRGEcNDzL55s/9bcDY3jIz4Xm3BK3GoI=", - "rev": "dc1012140e015d43711514d1294ac6f626890a40", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" + "args": { + "hash": "sha256-6lVjQb8FOyGmRGEcNDzL55s/9bcDY3jIz4Xm3BK3GoI=", + "rev": "dc1012140e015d43711514d1294ac6f626890a40", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/google_benchmark/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gztnxui9Fe/FTieMjdvfJjWHjkImtlsHn6fM1FruyME=", - "rev": "344117638c8ff7e239044fd0fa7085839fc03021", - "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" + "args": { + "hash": "sha256-gztnxui9Fe/FTieMjdvfJjWHjkImtlsHn6fM1FruyME=", + "rev": "344117638c8ff7e239044fd0fa7085839fc03021", + "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/googletest/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-jccFUondvjWgCBC3oCLUXqtLV07pkEq8IEZ+FLu1MrE=", - "rev": "0953a17a4281fc26831da647ad3fcd5e21e6473b", - "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" + "args": { + "hash": "sha256-jccFUondvjWgCBC3oCLUXqtLV07pkEq8IEZ+FLu1MrE=", + "rev": "0953a17a4281fc26831da647ad3fcd5e21e6473b", + "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/grpc/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=", - "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737", - "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git" + "args": { + "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=", + "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737", + "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/harfbuzz-ng/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=", - "rev": "1da053e87f0487382404656edca98b85fe51f2fd", - "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" + "args": { + "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=", + "rev": "1da053e87f0487382404656edca98b85fe51f2fd", + "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/highway/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-PXsXIqWB4NNiFhanRjMIFSWYuW/IRuQo8mMPUBEentY=", - "rev": "8295336dd70f1201d42c22ab5b0861de38cf8fbf", - "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" + "args": { + "hash": "sha256-PXsXIqWB4NNiFhanRjMIFSWYuW/IRuQo8mMPUBEentY=", + "rev": "8295336dd70f1201d42c22ab5b0861de38cf8fbf", + "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/hunspell_dictionaries": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", - "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", - "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" + "args": { + "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", + "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", + "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/icu": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-YlX+PaPhvYh9JzHT9WtS1beUK+cQrHGVUl+IBbv7GeQ=", - "rev": "9408c6fd4a39e6fef0e1c4077602e1c83b15f3fb", - "url": "https://chromium.googlesource.com/chromium/deps/icu.git" + "args": { + "hash": "sha256-YlX+PaPhvYh9JzHT9WtS1beUK+cQrHGVUl+IBbv7GeQ=", + "rev": "9408c6fd4a39e6fef0e1c4077602e1c83b15f3fb", + "url": "https://chromium.googlesource.com/chromium/deps/icu.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/instrumented_libs": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-kHKGADAgzlaeckXFbpU1GhJK+zkiRd9XvdtPF6qrQFY=", - "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", - "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" + "args": { + "hash": "sha256-kHKGADAgzlaeckXFbpU1GhJK+zkiRd9XvdtPF6qrQFY=", + "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", + "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/jsoncpp/source": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", - "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", - "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" + "args": { + "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", + "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", + "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/leveldatabase/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-y3awFXL8ih2UhEqWj8JRgkhzSxfQciLztb020JHJ350=", - "rev": "23e35d792b9154f922b8b575b12596a4d8664c65", - "url": "https://chromium.googlesource.com/external/leveldb.git" + "args": { + "hash": "sha256-y3awFXL8ih2UhEqWj8JRgkhzSxfQciLztb020JHJ350=", + "rev": "23e35d792b9154f922b8b575b12596a4d8664c65", + "url": "https://chromium.googlesource.com/external/leveldb.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libFuzzer/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-xQXfRIcQmAVP0k2mT7Blv1wBxL6wDaWTbIPGcTiMZRo=", - "rev": "487e79376394754705984c5de7c4ce7f82f2bd7c", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" + "args": { + "hash": "sha256-xQXfRIcQmAVP0k2mT7Blv1wBxL6wDaWTbIPGcTiMZRo=", + "rev": "487e79376394754705984c5de7c4ce7f82f2bd7c", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libaddressinput/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=", - "rev": "e8712e415627f22d0b00ebee8db99547077f39bd", - "url": "https://chromium.googlesource.com/external/libaddressinput.git" + "args": { + "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=", + "rev": "e8712e415627f22d0b00ebee8db99547077f39bd", + "url": "https://chromium.googlesource.com/external/libaddressinput.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libaom/source/libaom": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-uFUIodoC9qpLycwtWRgc0iqaqcUsvVmwAAQGHKolWto=", - "rev": "d5265b173616ce62de231cd1b1eae853ad03641e", - "url": "https://aomedia.googlesource.com/aom.git" + "args": { + "hash": "sha256-uFUIodoC9qpLycwtWRgc0iqaqcUsvVmwAAQGHKolWto=", + "rev": "d5265b173616ce62de231cd1b1eae853ad03641e", + "url": "https://aomedia.googlesource.com/aom.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libavif/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-2GKqPgWs1TD0nPW7VoSo8dz3ugPsZhcy2K1V35XflSk=", - "rev": "c2177c3316a49505dcd592ba21073f7abc25cd37", - "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git" + "args": { + "hash": "sha256-2GKqPgWs1TD0nPW7VoSo8dz3ugPsZhcy2K1V35XflSk=", + "rev": "c2177c3316a49505dcd592ba21073f7abc25cd37", + "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libavifinfo/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-61OPjdMCIbHvWncmBzNw6sqlHcuc1kyqm9k1j4UTcZ0=", - "rev": "8d8b58a3f517ef8d1794baa28ca6ae7d19f65514", - "url": "https://aomedia.googlesource.com/libavifinfo.git" + "args": { + "hash": "sha256-61OPjdMCIbHvWncmBzNw6sqlHcuc1kyqm9k1j4UTcZ0=", + "rev": "8d8b58a3f517ef8d1794baa28ca6ae7d19f65514", + "url": "https://aomedia.googlesource.com/libavifinfo.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libc++/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-hKlmY2Bn1f6w0Gmx/Le/LwWk/Gf6hzXqR5C+/w+0CNA=", - "rev": "50ab693ecb611942ce4440d8c9ed707ee65ed5e8", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" + "args": { + "hash": "sha256-hKlmY2Bn1f6w0Gmx/Le/LwWk/Gf6hzXqR5C+/w+0CNA=", + "rev": "50ab693ecb611942ce4440d8c9ed707ee65ed5e8", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libc++abi/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-GtK8z2jn4es3uuxpAgm5AoQvUjvhAunAyUwm3HEqLVA=", - "rev": "29b2e9a0f48688da116692cb04758393053d269c", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" + "args": { + "hash": "sha256-GtK8z2jn4es3uuxpAgm5AoQvUjvhAunAyUwm3HEqLVA=", + "rev": "29b2e9a0f48688da116692cb04758393053d269c", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libdrm/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", - "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", - "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" + "args": { + "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", + "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", + "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libgav1/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-+ss9S5t+yoHzqbtX68+5OyyUbJVecYLwp+C3EXfAziE=", - "rev": "a2f139e9123bdb5edf7707ac6f1b73b3aa5038dd", - "url": "https://chromium.googlesource.com/codecs/libgav1.git" + "args": { + "hash": "sha256-+ss9S5t+yoHzqbtX68+5OyyUbJVecYLwp+C3EXfAziE=", + "rev": "a2f139e9123bdb5edf7707ac6f1b73b3aa5038dd", + "url": "https://chromium.googlesource.com/codecs/libgav1.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libipp/libipp": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", - "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", - "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" + "args": { + "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", + "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", + "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libjpeg_turbo": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=", - "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", - "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" + "args": { + "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=", + "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/liblouis/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", - "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", - "url": "https://chromium.googlesource.com/external/liblouis-github.git" + "args": { + "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", + "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", + "url": "https://chromium.googlesource.com/external/liblouis-github.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libphonenumber/dist": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=", - "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362", - "url": "https://chromium.googlesource.com/external/libphonenumber.git" + "args": { + "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=", + "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362", + "url": "https://chromium.googlesource.com/external/libphonenumber.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libprotobuf-mutator/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=", - "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", - "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" + "args": { + "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=", + "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", + "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libsrtp": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4qEZ9MD97MoqCUlZtbEhIKy+fDO1iIWqyrBsKwkjXTg=", - "rev": "000edd791434c8738455f10e0dd6b268a4852c0b", - "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" + "args": { + "hash": "sha256-4qEZ9MD97MoqCUlZtbEhIKy+fDO1iIWqyrBsKwkjXTg=", + "rev": "000edd791434c8738455f10e0dd6b268a4852c0b", + "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libsync/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", - "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", - "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" + "args": { + "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", + "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", + "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libunwind/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-5xsrVVSu9b+78GEKeLGNpo7ySxrJ2SeuuKghN6NHlSU=", - "rev": "dc70138c3e68e2f946585f134e20815851e26263", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" + "args": { + "hash": "sha256-5xsrVVSu9b+78GEKeLGNpo7ySxrJ2SeuuKghN6NHlSU=", + "rev": "dc70138c3e68e2f946585f134e20815851e26263", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libvpx/source/libvpx": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-fXEPPgUdTsvzbLc8mp7v0MWw/9FfOooIIKjRshvYi2o=", - "rev": "fbf63dff1f528d44f24bd662abb89fd01a4a1c25", - "url": "https://chromium.googlesource.com/webm/libvpx.git" + "args": { + "hash": "sha256-fXEPPgUdTsvzbLc8mp7v0MWw/9FfOooIIKjRshvYi2o=", + "rev": "fbf63dff1f528d44f24bd662abb89fd01a4a1c25", + "url": "https://chromium.googlesource.com/webm/libvpx.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libwebm/source": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Mn3snC2g4BDKBJsS6cxT3BZL7LZknOWg77+60Nr4Hy0=", - "rev": "26d9f667170dc75e8d759a997bb61c64dec42dda", - "url": "https://chromium.googlesource.com/webm/libwebm.git" + "args": { + "hash": "sha256-Mn3snC2g4BDKBJsS6cxT3BZL7LZknOWg77+60Nr4Hy0=", + "rev": "26d9f667170dc75e8d759a997bb61c64dec42dda", + "url": "https://chromium.googlesource.com/webm/libwebm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libwebp/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-xuRpEwOnaLGZmrPvfUn3DSoJANd94CG+JXcN7Mdmk5I=", - "rev": "845d5476a866141ba35ac133f856fa62f0b7445f", - "url": "https://chromium.googlesource.com/webm/libwebp.git" + "args": { + "hash": "sha256-xuRpEwOnaLGZmrPvfUn3DSoJANd94CG+JXcN7Mdmk5I=", + "rev": "845d5476a866141ba35ac133f856fa62f0b7445f", + "url": "https://chromium.googlesource.com/webm/libwebp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libyuv": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-tQ7eCY1udoGHRoFr83obQ994IMfxqaH68StvXJ6obZ8=", - "rev": "4620f1705822fd6ab99939f43ce63099bd3d9ae0", - "url": "https://chromium.googlesource.com/libyuv/libyuv.git" + "args": { + "hash": "sha256-tQ7eCY1udoGHRoFr83obQ994IMfxqaH68StvXJ6obZ8=", + "rev": "4620f1705822fd6ab99939f43ce63099bd3d9ae0", + "url": "https://chromium.googlesource.com/libyuv/libyuv.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/lss": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=", - "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", - "url": "https://chromium.googlesource.com/linux-syscall-support.git" + "args": { + "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=", + "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", + "url": "https://chromium.googlesource.com/linux-syscall-support.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/material_color_utilities/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", - "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", - "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" + "args": { + "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", + "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", + "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/minigbm/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", - "rev": "3018207f4d89395cc271278fb9a6558b660885f5", - "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" + "args": { + "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", + "rev": "3018207f4d89395cc271278fb9a6558b660885f5", + "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/nan": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", - "owner": "nodejs", - "repo": "nan", - "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" + "args": { + "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", + "owner": "nodejs", + "repo": "nan", + "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/nasm": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=", - "rev": "f477acb1049f5e043904b87b825c5915084a9a29", - "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" + "args": { + "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=", + "rev": "f477acb1049f5e043904b87b825c5915084a9a29", + "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/nearby/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-RZsdeT1gkbrOuHvngs+Iavl9YE27jLx4AXXYOvSXZoI=", - "rev": "3c8737f92d765407e4ff6c87b8758ba99ede40ed", - "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" + "args": { + "hash": "sha256-RZsdeT1gkbrOuHvngs+Iavl9YE27jLx4AXXYOvSXZoI=", + "rev": "3c8737f92d765407e4ff6c87b8758ba99ede40ed", + "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/neon_2_sse/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=", - "rev": "a15b489e1222b2087007546b4912e21293ea86ff", - "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" + "args": { + "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=", + "rev": "a15b489e1222b2087007546b4912e21293ea86ff", + "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openh264/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-S7dS2IZwt4p4ZrF6K7E5HnwKuI3owU2I7vwtu95uTkE=", - "rev": "478e5ab3eca30e600006d5a0a08b176fd34d3bd1", - "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" + "args": { + "hash": "sha256-S7dS2IZwt4p4ZrF6K7E5HnwKuI3owU2I7vwtu95uTkE=", + "rev": "478e5ab3eca30e600006d5a0a08b176fd34d3bd1", + "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openscreen/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-y2XOZ3CmGdI0S/DLnOwAhm0kGTf/ayJ6OwPVlQCQqBw=", - "rev": "b720e33d337c68353e5d80a72491fb438f27d93a", - "url": "https://chromium.googlesource.com/openscreen" + "args": { + "hash": "sha256-y2XOZ3CmGdI0S/DLnOwAhm0kGTf/ayJ6OwPVlQCQqBw=", + "rev": "b720e33d337c68353e5d80a72491fb438f27d93a", + "url": "https://chromium.googlesource.com/openscreen" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openscreen/src/buildtools": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-suuxUL//BfAMmG8os8ChI7ic9EjGTi7y5kjxiAyrEQc=", - "rev": "4e0e9c73a0f26735f034f09a9cab2a5c0178536b", - "url": "https://chromium.googlesource.com/chromium/src/buildtools" + "args": { + "hash": "sha256-suuxUL//BfAMmG8os8ChI7ic9EjGTi7y5kjxiAyrEQc=", + "rev": "4e0e9c73a0f26735f034f09a9cab2a5c0178536b", + "url": "https://chromium.googlesource.com/chromium/src/buildtools" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openscreen/src/third_party/tinycbor/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", - "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", - "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" + "args": { + "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", + "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", + "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ots/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", - "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", - "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" + "args": { + "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", + "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", + "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pdfium": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-znfeKj2ttFWalFPeP9o8NPYLHD+pWAKuWVudX59MhLw=", - "rev": "2b675cf15ab4b68bf1ed4e0511ba2479e11f1605", - "url": "https://pdfium.googlesource.com/pdfium.git" + "args": { + "hash": "sha256-znfeKj2ttFWalFPeP9o8NPYLHD+pWAKuWVudX59MhLw=", + "rev": "2b675cf15ab4b68bf1ed4e0511ba2479e11f1605", + "url": "https://pdfium.googlesource.com/pdfium.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/perfetto": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ej8yXGOlmqwnWBbKR99qtIn3MvImaqV5ResVp95zdcM=", - "rev": "9170899ab284db894f14439e561f02f83a04d88e", - "url": "https://android.googlesource.com/platform/external/perfetto.git" + "args": { + "hash": "sha256-ej8yXGOlmqwnWBbKR99qtIn3MvImaqV5ResVp95zdcM=", + "rev": "9170899ab284db894f14439e561f02f83a04d88e", + "url": "https://android.googlesource.com/platform/external/perfetto.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/protobuf-javascript/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=", - "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", - "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" + "args": { + "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=", + "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", + "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pthreadpool/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-rGg6lgLkmbYo+a9CdaXz9ZUyrqJ1rxLcjLJeBEOPAlE=", - "rev": "560c60d342a76076f0557a3946924c6478470044", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git" + "args": { + "hash": "sha256-rGg6lgLkmbYo+a9CdaXz9ZUyrqJ1rxLcjLJeBEOPAlE=", + "rev": "560c60d342a76076f0557a3946924c6478470044", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pyelftools": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", - "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", - "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" + "args": { + "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", + "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", + "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pywebsocket3/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", - "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" + "args": { + "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", + "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/quic_trace/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Nf9ZDLcE1JunhbpEMHhrY2ROnbgrvVZoRkPwWq1DU0g=", - "rev": "caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc", - "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" + "args": { + "hash": "sha256-Nf9ZDLcE1JunhbpEMHhrY2ROnbgrvVZoRkPwWq1DU0g=", + "rev": "caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc", + "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/re2/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=", - "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", - "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" + "args": { + "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=", + "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", + "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ruy/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4NVvqUZn2BdwTxJINTHwPeRqbGXZrWdcd7jv1Y+eoKY=", - "rev": "c08ec529fc91722bde519628d9449258082eb847", - "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" + "args": { + "hash": "sha256-4NVvqUZn2BdwTxJINTHwPeRqbGXZrWdcd7jv1Y+eoKY=", + "rev": "c08ec529fc91722bde519628d9449258082eb847", + "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/securemessage/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", - "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", - "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" + "args": { + "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", + "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", + "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/skia": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-jwZUcrrya3xGmcocgvLFYGY75uoRwMJRphKBzjVW73Y=", - "rev": "d41eba845cdb7ade07e68f20676675c25e2734fc", - "url": "https://skia.googlesource.com/skia.git" + "args": { + "hash": "sha256-jwZUcrrya3xGmcocgvLFYGY75uoRwMJRphKBzjVW73Y=", + "rev": "d41eba845cdb7ade07e68f20676675c25e2734fc", + "url": "https://skia.googlesource.com/skia.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/smhasher/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=", - "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f", - "url": "https://chromium.googlesource.com/external/smhasher.git" + "args": { + "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=", + "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f", + "url": "https://chromium.googlesource.com/external/smhasher.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/snappy/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=", - "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c", - "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" + "args": { + "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=", + "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c", + "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/speedometer/v3.0": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", - "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", - "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + "args": { + "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", + "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/spirv-cross/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", - "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" + "args": { + "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", + "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/spirv-headers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-o1yRTvP7a+XVwendTKBJKNnelVGWLD0gH258GGeUDhQ=", - "rev": "2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" + "args": { + "hash": "sha256-o1yRTvP7a+XVwendTKBJKNnelVGWLD0gH258GGeUDhQ=", + "rev": "2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/spirv-tools/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-13y7Z6wMeAmV2dgMepgQPB+c+Pjc2O3C2G0kdlBVsNE=", - "rev": "37d2fcb485bf3fcadb18ef90aab6f283dcc4be72", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" + "args": { + "hash": "sha256-13y7Z6wMeAmV2dgMepgQPB+c+Pjc2O3C2G0kdlBVsNE=", + "rev": "37d2fcb485bf3fcadb18ef90aab6f283dcc4be72", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/sqlite/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=", - "rev": "567495a62a62dc013888500526e82837d727fe01", - "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" + "args": { + "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=", + "rev": "567495a62a62dc013888500526e82837d727fe01", + "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/squirrel.mac": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", - "owner": "Squirrel", - "repo": "Squirrel.Mac", - "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" + "args": { + "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", + "owner": "Squirrel", + "repo": "Squirrel.Mac", + "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/squirrel.mac/vendor/Mantle": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", - "owner": "Mantle", - "repo": "Mantle", - "rev": "78d3966b3c331292ea29ec38661b25df0a245948" + "args": { + "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", + "owner": "Mantle", + "repo": "Mantle", + "rev": "78d3966b3c331292ea29ec38661b25df0a245948" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/squirrel.mac/vendor/ReactiveObjC": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", - "owner": "ReactiveCocoa", - "repo": "ReactiveObjC", - "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" + "args": { + "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", + "owner": "ReactiveCocoa", + "repo": "ReactiveObjC", + "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/swiftshader": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-U29q1G3gnJdoucdLGZEbwpkGpDE4C2lv2b5WqpUf2Ho=", - "rev": "2afc8c97882a5c66abf5f26670ae420d2e30adc3", - "url": "https://swiftshader.googlesource.com/SwiftShader.git" + "args": { + "hash": "sha256-U29q1G3gnJdoucdLGZEbwpkGpDE4C2lv2b5WqpUf2Ho=", + "rev": "2afc8c97882a5c66abf5f26670ae420d2e30adc3", + "url": "https://swiftshader.googlesource.com/SwiftShader.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/text-fragments-polyfill/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", - "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" + "args": { + "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", + "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/tflite/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-HtvrZur/vifocB/TKLDkzTLjFbGee4xGUhRLShozo9M=", - "rev": "d29299c16ec49623af1294900dba53fc8864f0bb", - "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" + "args": { + "hash": "sha256-HtvrZur/vifocB/TKLDkzTLjFbGee4xGUhRLShozo9M=", + "rev": "d29299c16ec49623af1294900dba53fc8864f0bb", + "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ukey2/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", - "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", - "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" + "args": { + "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", + "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", + "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-deps": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-U8iB5HlLHzpeBJjd9XODWONDy7GTfNbM2kjGBIAhabU=", - "rev": "c045c2192ab45a144b419033dffe6190be5d8c93", - "url": "https://chromium.googlesource.com/vulkan-deps" + "args": { + "hash": "sha256-U8iB5HlLHzpeBJjd9XODWONDy7GTfNbM2kjGBIAhabU=", + "rev": "c045c2192ab45a144b419033dffe6190be5d8c93", + "url": "https://chromium.googlesource.com/vulkan-deps" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-headers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-8q6uu3v7j7poTMkn0oxj+RewIqhjCOuBz/QG/oFnWBI=", - "rev": "c6391a7b8cd57e79ce6b6c832c8e3043c4d9967b", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" + "args": { + "hash": "sha256-8q6uu3v7j7poTMkn0oxj+RewIqhjCOuBz/QG/oFnWBI=", + "rev": "c6391a7b8cd57e79ce6b6c832c8e3043c4d9967b", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-loader/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-dA9yc8nv8HDF8WA7bSReqI2JtUU41/Xl4J/CQlq0nuU=", - "rev": "1108bba6c97174d172d45470a7470a3d6a564647", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" + "args": { + "hash": "sha256-dA9yc8nv8HDF8WA7bSReqI2JtUU41/Xl4J/CQlq0nuU=", + "rev": "1108bba6c97174d172d45470a7470a3d6a564647", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-tools/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-eEJ9S1/fF5WMT+fRq+ZTzRfb+gxDA8drK8uwPVrFoNc=", - "rev": "4c63e845962ff3b197855f3ae4907a47d0863f5a", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" + "args": { + "hash": "sha256-eEJ9S1/fF5WMT+fRq+ZTzRfb+gxDA8drK8uwPVrFoNc=", + "rev": "4c63e845962ff3b197855f3ae4907a47d0863f5a", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-utility-libraries/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4jK6OQT5Za46HixUe1kOay2NlTYtf9OHkbZrZ0y6pdI=", - "rev": "ea5774a13e3017b6d5d79af6fba9f0d72ca5c61a", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" + "args": { + "hash": "sha256-4jK6OQT5Za46HixUe1kOay2NlTYtf9OHkbZrZ0y6pdI=", + "rev": "ea5774a13e3017b6d5d79af6fba9f0d72ca5c61a", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-validation-layers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-vwd7n30odVW/Q39lIiVuhyWhnm20giEHlzP14ONXyuw=", - "rev": "ef846ac0883cde5e69ced0e7d7af59fe92f34e25", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" + "args": { + "hash": "sha256-vwd7n30odVW/Q39lIiVuhyWhnm20giEHlzP14ONXyuw=", + "rev": "ef846ac0883cde5e69ced0e7d7af59fe92f34e25", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan_memory_allocator": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", - "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", - "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" + "args": { + "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", + "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", + "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland-protocols/gtk": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", - "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", - "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" + "args": { + "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", + "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", + "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland-protocols/kde": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", - "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", - "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" + "args": { + "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", + "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", + "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland-protocols/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", - "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" + "args": { + "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", + "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", - "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" + "args": { + "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", + "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webdriver/pylib": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", - "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", - "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" + "args": { + "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", + "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", + "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webgl/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Yn0e1bpvtD4mGdZaRiBytc+upLulYVyHJqXJiTWEfmA=", - "rev": "1b6371436a0a60e6b9a4ae2a40a8eba198e3af02", - "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" + "args": { + "hash": "sha256-Yn0e1bpvtD4mGdZaRiBytc+upLulYVyHJqXJiTWEfmA=", + "rev": "1b6371436a0a60e6b9a4ae2a40a8eba198e3af02", + "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webgpu-cts/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-3ruYKYHOkqlJcrjl4xvQV+OtULbgNUvXGBfrd5WTGyY=", - "rev": "2f55512456a725e77f3baac3d951de5c6c5e28a3", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" + "args": { + "hash": "sha256-3ruYKYHOkqlJcrjl4xvQV+OtULbgNUvXGBfrd5WTGyY=", + "rev": "2f55512456a725e77f3baac3d951de5c6c5e28a3", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webrtc": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4URlxWupNm67GeUGLJe3Dz1IONIq1mCjG5Lf4csKFKo=", - "rev": "28b793b4dd275bf2b901b87e01c0ee8d4f5732fc", - "url": "https://webrtc.googlesource.com/src.git" + "args": { + "hash": "sha256-4URlxWupNm67GeUGLJe3Dz1IONIq1mCjG5Lf4csKFKo=", + "rev": "28b793b4dd275bf2b901b87e01c0ee8d4f5732fc", + "url": "https://webrtc.googlesource.com/src.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/weston/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=", - "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" + "args": { + "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=", + "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wuffs/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", - "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", - "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" + "args": { + "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", + "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/xdg-utils": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", - "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", - "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" + "args": { + "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", + "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", + "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/xnnpack/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-VBrBNjoF3hsRXpBfXP2g9xOujVsmm7AkV6wE4ZwW2ts=", - "rev": "c4a28daf28c98300da9d9b5213c53f762908825e", - "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" + "args": { + "hash": "sha256-VBrBNjoF3hsRXpBfXP2g9xOujVsmm7AkV6wE4ZwW2ts=", + "rev": "c4a28daf28c98300da9d9b5213c53f762908825e", + "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/zstd/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-/IUfh0De9m7ACrisqKlpxZsb+asoAWGXCaK6L+s24Q8=", - "rev": "20707e3718ee14250fb8a44b3bf023ea36bd88df", - "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" + "args": { + "hash": "sha256-/IUfh0De9m7ACrisqKlpxZsb+asoAWGXCaK6L+s24Q8=", + "rev": "20707e3718ee14250fb8a44b3bf023ea36bd88df", + "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" + }, + "fetcher": "fetchFromGitiles" }, "src/tools/page_cycler/acid3": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=", - "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba", - "url": "https://chromium.googlesource.com/chromium/deps/acid3.git" + "args": { + "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=", + "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba", + "url": "https://chromium.googlesource.com/chromium/deps/acid3.git" + }, + "fetcher": "fetchFromGitiles" }, "src/v8": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-9TZ8a0ufsG/gWM2nYAWDymWeDlDg23Dgy/G6ic67QBI=", - "rev": "3551594a5f6604c7e5070f408cc81d60d08ddbbf", - "url": "https://chromium.googlesource.com/v8/v8.git" + "args": { + "hash": "sha256-9TZ8a0ufsG/gWM2nYAWDymWeDlDg23Dgy/G6ic67QBI=", + "rev": "3551594a5f6604c7e5070f408cc81d60d08ddbbf", + "url": "https://chromium.googlesource.com/v8/v8.git" + }, + "fetcher": "fetchFromGitiles" } }, "electron_yarn_hash": "0bzsswcg62b39xinq5vikk7qz7d15276s2vc15v1gcb5wvh05ff8", @@ -968,957 +1276,1269 @@ "chromium_npm_hash": "sha256-H1/h3x+Cgp1x94Ze3UPPHxRVpylZDvpMXMOuS+jk2dw=", "deps": { "src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-NVaErCSvuTQyt7yv2sc4aIX2J/6mxM648Wbbut2Jjxc=", - "postFetch": "rm -r $out/third_party/blink/web_tests; rm -rf $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", - "rev": "132.0.6834.210", - "url": "https://chromium.googlesource.com/chromium/src.git" + "args": { + "hash": "sha256-NVaErCSvuTQyt7yv2sc4aIX2J/6mxM648Wbbut2Jjxc=", + "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", + "rev": "132.0.6834.210", + "url": "https://chromium.googlesource.com/chromium/src.git" + }, + "fetcher": "fetchFromGitiles" }, "src/chrome/test/data/perf/canvas_bench": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", - "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", - "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" + "args": { + "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", + "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", + "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" + }, + "fetcher": "fetchFromGitiles" }, "src/chrome/test/data/perf/frame_rate/content": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", - "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", - "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" + "args": { + "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", + "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", + "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" + }, + "fetcher": "fetchFromGitiles" }, "src/chrome/test/data/xr/webvr_info": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", - "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", - "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" + "args": { + "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", + "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", + "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" + }, + "fetcher": "fetchFromGitiles" }, "src/docs/website": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-CqveHvjPEcRWnzi8w13xr2OainrmABNO8uj0GzKmQqo=", - "rev": "be9c3dfd3781964fc0bab0d6c91d9ad117b71b02", - "url": "https://chromium.googlesource.com/website.git" + "args": { + "hash": "sha256-CqveHvjPEcRWnzi8w13xr2OainrmABNO8uj0GzKmQqo=", + "rev": "be9c3dfd3781964fc0bab0d6c91d9ad117b71b02", + "url": "https://chromium.googlesource.com/website.git" + }, + "fetcher": "fetchFromGitiles" }, "src/electron": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-q4StFkSb6IbTJ7rC2qiKOyEwLCErNuK5r/iSFEmTSYo=", - "owner": "electron", - "repo": "electron", - "rev": "v34.4.1" + "args": { + "hash": "sha256-azo3XHWccI9jmmFx1Ck83861Eu/jF64J+rz3uudeFe0=", + "owner": "electron", + "repo": "electron", + "rev": "v34.5.0" + }, + "fetcher": "fetchFromGitHub" }, "src/media/cdm/api": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=", - "rev": "eb21edc44e8e5a82095037be80c8b15c51624293", - "url": "https://chromium.googlesource.com/chromium/cdm.git" + "args": { + "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=", + "rev": "eb21edc44e8e5a82095037be80c8b15c51624293", + "url": "https://chromium.googlesource.com/chromium/cdm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/net/third_party/quiche/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Z2uFWfZDYcY0m4R6mFMZJLnnVHu3/hQOAkCPQ5049SQ=", - "rev": "9616efc903b7469161996006c8cf963238e26503", - "url": "https://quiche.googlesource.com/quiche.git" + "args": { + "hash": "sha256-Z2uFWfZDYcY0m4R6mFMZJLnnVHu3/hQOAkCPQ5049SQ=", + "rev": "9616efc903b7469161996006c8cf963238e26503", + "url": "https://quiche.googlesource.com/quiche.git" + }, + "fetcher": "fetchFromGitiles" }, "src/testing/libfuzzer/fuzzers/wasm_corpus": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gItDOfNqm1tHlmelz3l2GGdiKi9adu1EpPP6U7+8EQY=", - "rev": "1df5e50a45db9518a56ebb42cb020a94a090258b", - "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" + "args": { + "hash": "sha256-gItDOfNqm1tHlmelz3l2GGdiKi9adu1EpPP6U7+8EQY=", + "rev": "1df5e50a45db9518a56ebb42cb020a94a090258b", + "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/accessibility_test_framework/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", - "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", - "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" + "args": { + "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", + "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", + "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-fMIHpa2QFsQQ19LGyhvV3Ihh6Ls8wwwhqTtpLoTEaf4=", - "rev": "ce13a00a2b049a1ef5e0e70a3d333ce70838ef7b", - "url": "https://chromium.googlesource.com/angle/angle.git" + "args": { + "hash": "sha256-fMIHpa2QFsQQ19LGyhvV3Ihh6Ls8wwwhqTtpLoTEaf4=", + "rev": "ce13a00a2b049a1ef5e0e70a3d333ce70838ef7b", + "url": "https://chromium.googlesource.com/angle/angle.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle/third_party/VK-GL-CTS/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-2ZhG4cJf85zO7x+SGG6RD2qgOxZVosxAIbuZt9GYUKs=", - "rev": "f674555ab03e6355e0981a647c115097e9fe5324", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" + "args": { + "hash": "sha256-2ZhG4cJf85zO7x+SGG6RD2qgOxZVosxAIbuZt9GYUKs=", + "rev": "f674555ab03e6355e0981a647c115097e9fe5324", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle/third_party/glmark2/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=", - "rev": "ca8de51fedb70bace5351c6b002eb952c747e889", - "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" + "args": { + "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=", + "rev": "ca8de51fedb70bace5351c6b002eb952c747e889", + "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle/third_party/rapidjson/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", - "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", - "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" + "args": { + "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", + "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", + "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/anonymous_tokens/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-PMB49+zW9ewlS9ym+xi0xYQYLN0j5Urx6yBXWd8FjjI=", - "rev": "6ea6ec78f9e4998d0a7a5677b2aec08f0ac858f8", - "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" + "args": { + "hash": "sha256-PMB49+zW9ewlS9ym+xi0xYQYLN0j5Urx6yBXWd8FjjI=", + "rev": "6ea6ec78f9e4998d0a7a5677b2aec08f0ac858f8", + "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/beto-core/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=", - "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", - "url": "https://beto-core.googlesource.com/beto-core.git" + "args": { + "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=", + "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", + "url": "https://beto-core.googlesource.com/beto-core.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/boringssl/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ib9wbV6S64OFc4zx0wQsQ84+5RxbETK0PS9Wm1BFQ1U=", - "rev": "571c76e919c0c48219ced35bef83e1fc83b00eed", - "url": "https://boringssl.googlesource.com/boringssl.git" + "args": { + "hash": "sha256-ib9wbV6S64OFc4zx0wQsQ84+5RxbETK0PS9Wm1BFQ1U=", + "rev": "571c76e919c0c48219ced35bef83e1fc83b00eed", + "url": "https://boringssl.googlesource.com/boringssl.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/breakpad/breakpad": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-cFXUi2oO/614jF0GV7oW0ss62dXWFHDNWNT8rWHAiQc=", - "rev": "47f7823bdf4b1f39e462b2a497a674860e922e38", - "url": "https://chromium.googlesource.com/breakpad/breakpad.git" + "args": { + "hash": "sha256-cFXUi2oO/614jF0GV7oW0ss62dXWFHDNWNT8rWHAiQc=", + "rev": "47f7823bdf4b1f39e462b2a497a674860e922e38", + "url": "https://chromium.googlesource.com/breakpad/breakpad.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cast_core/public/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-o5/Lbhh6HHSWCVCEyDwDCgs+PLm67si981w0HuIWY7c=", - "rev": "fbc5e98031e1271a0a566fcd4d9092b2d3275d05", - "url": "https://chromium.googlesource.com/cast_core/public" + "args": { + "hash": "sha256-o5/Lbhh6HHSWCVCEyDwDCgs+PLm67si981w0HuIWY7c=", + "rev": "fbc5e98031e1271a0a566fcd4d9092b2d3275d05", + "url": "https://chromium.googlesource.com/cast_core/public" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/catapult": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-65cZPyqZUdSnYPJYUMYeJgx3mUC6L/qb9P2bDqd2Zkk=", - "rev": "b91cf840ac3255ef03b23cc93621369627422a1a", - "url": "https://chromium.googlesource.com/catapult.git" + "args": { + "hash": "sha256-65cZPyqZUdSnYPJYUMYeJgx3mUC6L/qb9P2bDqd2Zkk=", + "rev": "b91cf840ac3255ef03b23cc93621369627422a1a", + "url": "https://chromium.googlesource.com/catapult.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ced/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", - "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", - "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" + "args": { + "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", + "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", + "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/chromium-variations": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-mg5mu2jcy0xyNJ650ywWUMC94keRsqhZQuPZclHmyLI=", - "rev": "c170abb48f7715c237f4c06eaed0fe6f8a4c6f8d", - "url": "https://chromium.googlesource.com/chromium-variations.git" + "args": { + "hash": "sha256-mg5mu2jcy0xyNJ650ywWUMC94keRsqhZQuPZclHmyLI=", + "rev": "c170abb48f7715c237f4c06eaed0fe6f8a4c6f8d", + "url": "https://chromium.googlesource.com/chromium-variations.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/clang-format/script": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-whD8isX2ZhLrFzdxHhFP1S/sZDRgyrzLFaVd7OEFqYo=", - "rev": "3c0acd2d4e73dd911309d9e970ba09d58bf23a62", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" + "args": { + "hash": "sha256-whD8isX2ZhLrFzdxHhFP1S/sZDRgyrzLFaVd7OEFqYo=", + "rev": "3c0acd2d4e73dd911309d9e970ba09d58bf23a62", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cld_3/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", - "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", - "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" + "args": { + "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", + "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", + "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/colorama/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", - "rev": "3de9f013df4b470069d03d250224062e8cf15c49", - "url": "https://chromium.googlesource.com/external/colorama.git" + "args": { + "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", + "rev": "3de9f013df4b470069d03d250224062e8cf15c49", + "url": "https://chromium.googlesource.com/external/colorama.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/content_analysis_sdk/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", - "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", - "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" + "args": { + "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", + "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", + "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cpu_features/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", - "rev": "936b9ab5515dead115606559502e3864958f7f6e", - "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" + "args": { + "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", + "rev": "936b9ab5515dead115606559502e3864958f7f6e", + "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cpuinfo/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-FlvmSjY8kt5XHymDLaZdPuZ4k5xcagJk8w/U6adTkWI=", - "rev": "8df44962d437a0477f07ba6b8843d0b6a48646a4", - "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" + "args": { + "hash": "sha256-FlvmSjY8kt5XHymDLaZdPuZ4k5xcagJk8w/U6adTkWI=", + "rev": "8df44962d437a0477f07ba6b8843d0b6a48646a4", + "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/crabbyavif/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-hO5epHYNYI6pGwVSUv1Hp3qb7qOv8uOs4u+IdhDxd8Q=", - "rev": "c3548280e0a516ed7cad7ff1591b5807cef64aa4", - "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" + "args": { + "hash": "sha256-hO5epHYNYI6pGwVSUv1Hp3qb7qOv8uOs4u+IdhDxd8Q=", + "rev": "c3548280e0a516ed7cad7ff1591b5807cef64aa4", + "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/crc32c/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", - "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", - "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" + "args": { + "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", + "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", + "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cros-components/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-owXaTIj0pbhUeJkirxaRoCmgIN9DwNzY3h771kaN+Fc=", - "rev": "9129cf4b2a5ca775c280243257a0b4856a93c7fb", - "url": "https://chromium.googlesource.com/external/google3/cros_components.git" + "args": { + "hash": "sha256-owXaTIj0pbhUeJkirxaRoCmgIN9DwNzY3h771kaN+Fc=", + "rev": "9129cf4b2a5ca775c280243257a0b4856a93c7fb", + "url": "https://chromium.googlesource.com/external/google3/cros_components.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cros_system_api": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-fvGypRhgl2uX9YE2cwjL7d3pYBa3Imd5p0RLhMYRgrc=", - "rev": "554629b9242e6ae832ef14e3384654426f7fcc06", - "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" + "args": { + "hash": "sha256-fvGypRhgl2uX9YE2cwjL7d3pYBa3Imd5p0RLhMYRgrc=", + "rev": "554629b9242e6ae832ef14e3384654426f7fcc06", + "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/crossbench": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-/K6eM9s+fd2wjCrK0g0CgFNy0zxEN9SxTvmE50hMtXw=", - "rev": "ae6f165652e0ea983d73f5d04b7470d08c869e4f", - "url": "https://chromium.googlesource.com/crossbench.git" + "args": { + "hash": "sha256-/K6eM9s+fd2wjCrK0g0CgFNy0zxEN9SxTvmE50hMtXw=", + "rev": "ae6f165652e0ea983d73f5d04b7470d08c869e4f", + "url": "https://chromium.googlesource.com/crossbench.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dav1d/libdav1d": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Q2CaWvDqOmfaPG6a+SUHG5rFHalPEf4Oq/ytT3xuSOk=", - "rev": "93f12c117a4e1c0cc2b129dcc52e84dbd9b84200", - "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" + "args": { + "hash": "sha256-Q2CaWvDqOmfaPG6a+SUHG5rFHalPEf4Oq/ytT3xuSOk=", + "rev": "93f12c117a4e1c0cc2b129dcc52e84dbd9b84200", + "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-1d8cCtqBIfYbVqUQ4q4BtH2FujbNJeeW9agJUjcktgE=", - "rev": "c3530f2883610bb6606a5f55935c189e732e67d0", - "url": "https://dawn.googlesource.com/dawn.git" + "args": { + "hash": "sha256-1d8cCtqBIfYbVqUQ4q4BtH2FujbNJeeW9agJUjcktgE=", + "rev": "c3530f2883610bb6606a5f55935c189e732e67d0", + "url": "https://dawn.googlesource.com/dawn.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/dxc": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-rhUNPA5b0H3PBsOpXbAeRLpS0tNQkiHbjRBWmJycSAY=", - "rev": "ac36a797d3470e8ee906b98457a59270d01db30d", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" + "args": { + "hash": "sha256-rhUNPA5b0H3PBsOpXbAeRLpS0tNQkiHbjRBWmJycSAY=", + "rev": "ac36a797d3470e8ee906b98457a59270d01db30d", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/dxheaders": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", - "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" + "args": { + "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", + "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/glfw": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", - "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", - "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" + "args": { + "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", + "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", + "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/khronos/EGL-Registry": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", - "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" + "args": { + "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", + "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/khronos/OpenGL-Registry": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", - "rev": "5bae8738b23d06968e7c3a41308568120943ae77", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" + "args": { + "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", + "rev": "5bae8738b23d06968e7c3a41308568120943ae77", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/webgpu-cts": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ArbHGjkHd1sko7gDPFksYz7XHKNge+e6tVy6oKPuqzg=", - "rev": "8690defa74b6975c10e85c113f121d4b2a3f2564", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" + "args": { + "hash": "sha256-ArbHGjkHd1sko7gDPFksYz7XHKNge+e6tVy6oKPuqzg=", + "rev": "8690defa74b6975c10e85c113f121d4b2a3f2564", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/webgpu-headers": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-J3PcwYoO79HqrACFgk77BZLTCi7oi5k2J6v3wlcFVD4=", - "rev": "8049c324dc7b3c09dc96ea04cb02860f272c8686", - "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers" + "args": { + "hash": "sha256-J3PcwYoO79HqrACFgk77BZLTCi7oi5k2J6v3wlcFVD4=", + "rev": "8049c324dc7b3c09dc96ea04cb02860f272c8686", + "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/depot_tools": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-m/6b4VZZTUQOeED1mYvZOQCx8Re+Zd4O8SKDMjJ9Djo=", - "rev": "41d43a2a2290450aeab946883542f8049b155c87", - "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" + "args": { + "hash": "sha256-m/6b4VZZTUQOeED1mYvZOQCx8Re+Zd4O8SKDMjJ9Djo=", + "rev": "41d43a2a2290450aeab946883542f8049b155c87", + "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/devtools-frontend/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-mBWZdbgZfO01Pt2lZSHX/d5r+8A/+qCZA8MRtZdeTrs=", - "rev": "f2f3682c9db8ca427f8c64f0402cc2c5152c6c24", - "url": "https://chromium.googlesource.com/devtools/devtools-frontend" + "args": { + "hash": "sha256-mBWZdbgZfO01Pt2lZSHX/d5r+8A/+qCZA8MRtZdeTrs=", + "rev": "f2f3682c9db8ca427f8c64f0402cc2c5152c6c24", + "url": "https://chromium.googlesource.com/devtools/devtools-frontend" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dom_distiller_js/dist": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", - "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", - "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" + "args": { + "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", + "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", + "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/domato/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", - "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", - "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" + "args": { + "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", + "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", + "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/eigen3/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-UroGjERR5TW9KbyLwR/NBpytXrW1tHfu6ZvQPngROq4=", - "rev": "b396a6fbb2e173f52edb3360485dedf3389ef830", - "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" + "args": { + "hash": "sha256-UroGjERR5TW9KbyLwR/NBpytXrW1tHfu6ZvQPngROq4=", + "rev": "b396a6fbb2e173f52edb3360485dedf3389ef830", + "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/electron_node": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-ta9gw6A0aYguKYNRBW2nSPC3UTU5/7GNUPS02yyByis=", - "owner": "nodejs", - "repo": "node", - "rev": "v20.18.3" + "args": { + "hash": "sha256-y2goL+xmyHPe3NXj1/bxmY98fUrgjP6bim0T0sWjBgw=", + "owner": "nodejs", + "repo": "node", + "rev": "v20.19.0" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/emoji-segmenter/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=", - "rev": "955936be8b391e00835257059607d7c5b72ce744", - "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" + "args": { + "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=", + "rev": "955936be8b391e00835257059607d7c5b72ce744", + "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/engflow-reclient-configs": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", - "owner": "EngFlow", - "repo": "reclient-configs", - "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" + "args": { + "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", + "owner": "EngFlow", + "repo": "reclient-configs", + "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/expat/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=", - "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" + "args": { + "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=", + "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", + "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/farmhash/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", - "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", - "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" + "args": { + "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", + "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", + "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fast_float/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-0eVovauN7SnO3nSIWBRWAJ4dR7q5beZrIGUZ18M2pao=", - "rev": "3e57d8dcfb0a04b5a8a26b486b54490a2e9b310f", - "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" + "args": { + "hash": "sha256-0eVovauN7SnO3nSIWBRWAJ4dR7q5beZrIGUZ18M2pao=", + "rev": "3e57d8dcfb0a04b5a8a26b486b54490a2e9b310f", + "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ffmpeg": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-wwHxNuZe2hBmGBpVg/iQJBoL350jfPYPTPqDn3RiqZE=", - "rev": "591ae4b02eaff9a03e2ec863da895128b0b49910", - "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" + "args": { + "hash": "sha256-wwHxNuZe2hBmGBpVg/iQJBoL350jfPYPTPqDn3RiqZE=", + "rev": "591ae4b02eaff9a03e2ec863da895128b0b49910", + "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/flac": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", - "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", - "url": "https://chromium.googlesource.com/chromium/deps/flac.git" + "args": { + "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", + "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", + "url": "https://chromium.googlesource.com/chromium/deps/flac.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/flatbuffers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", - "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", - "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" + "args": { + "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", + "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", + "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fontconfig/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=", - "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", - "url": "https://chromium.googlesource.com/external/fontconfig.git" + "args": { + "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=", + "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", + "url": "https://chromium.googlesource.com/external/fontconfig.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fp16/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", - "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" + "args": { + "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", + "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/freetype-testing/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=", - "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f", - "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" + "args": { + "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=", + "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f", + "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/freetype/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-+nbRZi3vAMTURhhFVUu5+59fVIv0GH3YZog2JavyVLY=", - "rev": "0ae7e607370cc66218ccfacf5de4db8a35424c2f", - "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" + "args": { + "hash": "sha256-+nbRZi3vAMTURhhFVUu5+59fVIv0GH3YZog2JavyVLY=", + "rev": "0ae7e607370cc66218ccfacf5de4db8a35424c2f", + "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fuzztest/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-UYmzjOX8k+CWL+xOIF3NiEL3TRUjS8JflortB2RUT4o=", - "rev": "0021f30508bc7f73fa5270962d022acb480d242f", - "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" + "args": { + "hash": "sha256-UYmzjOX8k+CWL+xOIF3NiEL3TRUjS8JflortB2RUT4o=", + "rev": "0021f30508bc7f73fa5270962d022acb480d242f", + "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fxdiv/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", - "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" + "args": { + "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", + "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/gemmlowp/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", - "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", - "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" + "args": { + "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", + "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", + "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/glslang/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-twWSeJp9bNbLYFszCWv9BCztfbXUBKSWV55/U+hd2hw=", - "rev": "9c644fcb5b9a1a9c975c50a790fd14c5451292b0", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" + "args": { + "hash": "sha256-twWSeJp9bNbLYFszCWv9BCztfbXUBKSWV55/U+hd2hw=", + "rev": "9c644fcb5b9a1a9c975c50a790fd14c5451292b0", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/google_benchmark/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-cH8s1gP6kCcojAAfTt5iQCVqiAaSooNk4BdaILujM3w=", - "rev": "761305ec3b33abf30e08d50eb829e19a802581cc", - "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" + "args": { + "hash": "sha256-cH8s1gP6kCcojAAfTt5iQCVqiAaSooNk4BdaILujM3w=", + "rev": "761305ec3b33abf30e08d50eb829e19a802581cc", + "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/googletest/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-n7tiIFAj8AiSCa9Tw+1j+ro9cSt5vagZpkbBBUUtYQY=", - "rev": "d144031940543e15423a25ae5a8a74141044862f", - "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" + "args": { + "hash": "sha256-n7tiIFAj8AiSCa9Tw+1j+ro9cSt5vagZpkbBBUUtYQY=", + "rev": "d144031940543e15423a25ae5a8a74141044862f", + "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/grpc/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=", - "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737", - "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git" + "args": { + "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=", + "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737", + "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/harfbuzz-ng/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=", - "rev": "1da053e87f0487382404656edca98b85fe51f2fd", - "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" + "args": { + "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=", + "rev": "1da053e87f0487382404656edca98b85fe51f2fd", + "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/highway/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IS7m1wBwpPBUNhx2GttY1fzvmLIeAp3o2gXfrFpRdvY=", - "rev": "00fe003dac355b979f36157f9407c7c46448958e", - "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" + "args": { + "hash": "sha256-IS7m1wBwpPBUNhx2GttY1fzvmLIeAp3o2gXfrFpRdvY=", + "rev": "00fe003dac355b979f36157f9407c7c46448958e", + "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/hunspell_dictionaries": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", - "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", - "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" + "args": { + "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", + "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", + "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/icu": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WtCoxcbEkkZayB6kXdQEhZ7/ue+ka6cguhFbpeWUBJA=", - "rev": "ba7ed88cc5ffa428a82a0f787dd61031aa5ef4ca", - "url": "https://chromium.googlesource.com/chromium/deps/icu.git" + "args": { + "hash": "sha256-WtCoxcbEkkZayB6kXdQEhZ7/ue+ka6cguhFbpeWUBJA=", + "rev": "ba7ed88cc5ffa428a82a0f787dd61031aa5ef4ca", + "url": "https://chromium.googlesource.com/chromium/deps/icu.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ink/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-+Ikr9E7KlXBFyf6fSDmIF3ygNUiwlXeA5bmO2CtkI7Q=", - "rev": "4300dc7402a257b85fc5bf2559137edacb050227", - "url": "https://chromium.googlesource.com/external/github.com/google/ink.git" + "args": { + "hash": "sha256-+Ikr9E7KlXBFyf6fSDmIF3ygNUiwlXeA5bmO2CtkI7Q=", + "rev": "4300dc7402a257b85fc5bf2559137edacb050227", + "url": "https://chromium.googlesource.com/external/github.com/google/ink.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ink_stroke_modeler/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IQ+n+kHdEq8Q8/qaPGMvgD7cPN3zzaY8dbiokq6r/Vs=", - "rev": "0999e4cf816b42c770d07916698bce943b873048", - "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git" + "args": { + "hash": "sha256-IQ+n+kHdEq8Q8/qaPGMvgD7cPN3zzaY8dbiokq6r/Vs=", + "rev": "0999e4cf816b42c770d07916698bce943b873048", + "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/instrumented_libs": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-kHKGADAgzlaeckXFbpU1GhJK+zkiRd9XvdtPF6qrQFY=", - "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", - "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" + "args": { + "hash": "sha256-kHKGADAgzlaeckXFbpU1GhJK+zkiRd9XvdtPF6qrQFY=", + "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", + "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/jsoncpp/source": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", - "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", - "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" + "args": { + "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", + "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", + "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/leveldatabase/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-y3awFXL8ih2UhEqWj8JRgkhzSxfQciLztb020JHJ350=", - "rev": "23e35d792b9154f922b8b575b12596a4d8664c65", - "url": "https://chromium.googlesource.com/external/leveldb.git" + "args": { + "hash": "sha256-y3awFXL8ih2UhEqWj8JRgkhzSxfQciLztb020JHJ350=", + "rev": "23e35d792b9154f922b8b575b12596a4d8664c65", + "url": "https://chromium.googlesource.com/external/leveldb.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libFuzzer/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-jPS+Xi/ia0sMspxSGN38zasmVS/HslxH/qOFsV9TguE=", - "rev": "a7128317fe7935a43d6c9f39df54f21113951941", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" + "args": { + "hash": "sha256-jPS+Xi/ia0sMspxSGN38zasmVS/HslxH/qOFsV9TguE=", + "rev": "a7128317fe7935a43d6c9f39df54f21113951941", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libaddressinput/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=", - "rev": "e8712e415627f22d0b00ebee8db99547077f39bd", - "url": "https://chromium.googlesource.com/external/libaddressinput.git" + "args": { + "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=", + "rev": "e8712e415627f22d0b00ebee8db99547077f39bd", + "url": "https://chromium.googlesource.com/external/libaddressinput.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libaom/source/libaom": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-9VhEVOG9cReDOGoX+x5G/jJ8Y5RDoQIiLMoZtt5c9pI=", - "rev": "be60f06ab420d6a65c477213f04c8b0f2e12ba2e", - "url": "https://aomedia.googlesource.com/aom.git" + "args": { + "hash": "sha256-9VhEVOG9cReDOGoX+x5G/jJ8Y5RDoQIiLMoZtt5c9pI=", + "rev": "be60f06ab420d6a65c477213f04c8b0f2e12ba2e", + "url": "https://aomedia.googlesource.com/aom.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libavif/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-lUuVyh2srhWMNUp4lEivyDic3MSZf5s63iAb84We80M=", - "rev": "1cdeff7ecf456492c47cf48fc0cef6591cdc95da", - "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git" + "args": { + "hash": "sha256-lUuVyh2srhWMNUp4lEivyDic3MSZf5s63iAb84We80M=", + "rev": "1cdeff7ecf456492c47cf48fc0cef6591cdc95da", + "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libc++/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-kmhTlz/qjvN0Qlra7Wz05O6X058hPPn0nVvAxFXQDC4=", - "rev": "8e31ad42561900383e10dbefc1d3e8f38cedfbe9", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" + "args": { + "hash": "sha256-kmhTlz/qjvN0Qlra7Wz05O6X058hPPn0nVvAxFXQDC4=", + "rev": "8e31ad42561900383e10dbefc1d3e8f38cedfbe9", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libc++abi/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-CwiK9Td8aRS08RywItHKFvibzDAUYYd0YNRKxYPLTD8=", - "rev": "cec7f478354a8c8599f264ed8bb6043b5468f72d", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" + "args": { + "hash": "sha256-CwiK9Td8aRS08RywItHKFvibzDAUYYd0YNRKxYPLTD8=", + "rev": "cec7f478354a8c8599f264ed8bb6043b5468f72d", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libdrm/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", - "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", - "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" + "args": { + "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", + "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", + "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libgav1/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-+ss9S5t+yoHzqbtX68+5OyyUbJVecYLwp+C3EXfAziE=", - "rev": "a2f139e9123bdb5edf7707ac6f1b73b3aa5038dd", - "url": "https://chromium.googlesource.com/codecs/libgav1.git" + "args": { + "hash": "sha256-+ss9S5t+yoHzqbtX68+5OyyUbJVecYLwp+C3EXfAziE=", + "rev": "a2f139e9123bdb5edf7707ac6f1b73b3aa5038dd", + "url": "https://chromium.googlesource.com/codecs/libgav1.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libipp/libipp": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", - "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", - "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" + "args": { + "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", + "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", + "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libjpeg_turbo": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=", - "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", - "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" + "args": { + "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=", + "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/liblouis/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", - "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", - "url": "https://chromium.googlesource.com/external/liblouis-github.git" + "args": { + "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", + "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", + "url": "https://chromium.googlesource.com/external/liblouis-github.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libphonenumber/dist": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=", - "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362", - "url": "https://chromium.googlesource.com/external/libphonenumber.git" + "args": { + "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=", + "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362", + "url": "https://chromium.googlesource.com/external/libphonenumber.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libprotobuf-mutator/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=", - "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", - "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" + "args": { + "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=", + "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", + "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libsrtp": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4qEZ9MD97MoqCUlZtbEhIKy+fDO1iIWqyrBsKwkjXTg=", - "rev": "000edd791434c8738455f10e0dd6b268a4852c0b", - "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" + "args": { + "hash": "sha256-4qEZ9MD97MoqCUlZtbEhIKy+fDO1iIWqyrBsKwkjXTg=", + "rev": "000edd791434c8738455f10e0dd6b268a4852c0b", + "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libsync/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", - "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", - "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" + "args": { + "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", + "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", + "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libunwind/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-uA+t5Ecc/iK3mllHR8AMVGRfU/7z1G3yrw0TamPQiOY=", - "rev": "5b01ea4a6f3b666b7d190e7cb7c31db2ed4d94ce", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" + "args": { + "hash": "sha256-uA+t5Ecc/iK3mllHR8AMVGRfU/7z1G3yrw0TamPQiOY=", + "rev": "5b01ea4a6f3b666b7d190e7cb7c31db2ed4d94ce", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libvpx/source/libvpx": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-QGm37X4uid8zv+vRu0pVTvoQd2WcKztrj3tJkDjx82o=", - "rev": "727319a77ffe68e9aacb08e09ae7151b3a8f70a3", - "url": "https://chromium.googlesource.com/webm/libvpx.git" + "args": { + "hash": "sha256-QGm37X4uid8zv+vRu0pVTvoQd2WcKztrj3tJkDjx82o=", + "rev": "727319a77ffe68e9aacb08e09ae7151b3a8f70a3", + "url": "https://chromium.googlesource.com/webm/libvpx.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libwebm/source": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Mn3snC2g4BDKBJsS6cxT3BZL7LZknOWg77+60Nr4Hy0=", - "rev": "26d9f667170dc75e8d759a997bb61c64dec42dda", - "url": "https://chromium.googlesource.com/webm/libwebm.git" + "args": { + "hash": "sha256-Mn3snC2g4BDKBJsS6cxT3BZL7LZknOWg77+60Nr4Hy0=", + "rev": "26d9f667170dc75e8d759a997bb61c64dec42dda", + "url": "https://chromium.googlesource.com/webm/libwebm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libwebp/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-xuRpEwOnaLGZmrPvfUn3DSoJANd94CG+JXcN7Mdmk5I=", - "rev": "845d5476a866141ba35ac133f856fa62f0b7445f", - "url": "https://chromium.googlesource.com/webm/libwebp.git" + "args": { + "hash": "sha256-xuRpEwOnaLGZmrPvfUn3DSoJANd94CG+JXcN7Mdmk5I=", + "rev": "845d5476a866141ba35ac133f856fa62f0b7445f", + "url": "https://chromium.googlesource.com/webm/libwebp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libyuv": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-vPVq7RzqO7gBUgYuNX0Fwxqok9jtXXJZgbhVFchG5Ws=", - "rev": "6ac7c8f25170c85265fca69fd1fe5d31baf3344f", - "url": "https://chromium.googlesource.com/libyuv/libyuv.git" + "args": { + "hash": "sha256-vPVq7RzqO7gBUgYuNX0Fwxqok9jtXXJZgbhVFchG5Ws=", + "rev": "6ac7c8f25170c85265fca69fd1fe5d31baf3344f", + "url": "https://chromium.googlesource.com/libyuv/libyuv.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/llvm-libc/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-av9JdqLOQbezgRS4P8QXmvfB5l47v04WRagNJJgT5u4=", - "rev": "ca74a72e2b32ad804522bbef04dfe32560a10206", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git" + "args": { + "hash": "sha256-av9JdqLOQbezgRS4P8QXmvfB5l47v04WRagNJJgT5u4=", + "rev": "ca74a72e2b32ad804522bbef04dfe32560a10206", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/lss": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=", - "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", - "url": "https://chromium.googlesource.com/linux-syscall-support.git" + "args": { + "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=", + "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", + "url": "https://chromium.googlesource.com/linux-syscall-support.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/material_color_utilities/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", - "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", - "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" + "args": { + "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", + "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", + "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/minigbm/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", - "rev": "3018207f4d89395cc271278fb9a6558b660885f5", - "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" + "args": { + "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", + "rev": "3018207f4d89395cc271278fb9a6558b660885f5", + "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/nan": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", - "owner": "nodejs", - "repo": "nan", - "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" + "args": { + "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", + "owner": "nodejs", + "repo": "nan", + "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/nasm": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=", - "rev": "f477acb1049f5e043904b87b825c5915084a9a29", - "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" + "args": { + "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=", + "rev": "f477acb1049f5e043904b87b825c5915084a9a29", + "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/nearby/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-DO3FW5Q233ctFKk4K5F8oZec9kfrVl6uxAwMn0niKz4=", - "rev": "8e87a6e51c93e7836ecdbcc0a520c7992f3ece13", - "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" + "args": { + "hash": "sha256-DO3FW5Q233ctFKk4K5F8oZec9kfrVl6uxAwMn0niKz4=", + "rev": "8e87a6e51c93e7836ecdbcc0a520c7992f3ece13", + "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/neon_2_sse/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=", - "rev": "a15b489e1222b2087007546b4912e21293ea86ff", - "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" + "args": { + "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=", + "rev": "a15b489e1222b2087007546b4912e21293ea86ff", + "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openh264/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-S7dS2IZwt4p4ZrF6K7E5HnwKuI3owU2I7vwtu95uTkE=", - "rev": "478e5ab3eca30e600006d5a0a08b176fd34d3bd1", - "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" + "args": { + "hash": "sha256-S7dS2IZwt4p4ZrF6K7E5HnwKuI3owU2I7vwtu95uTkE=", + "rev": "478e5ab3eca30e600006d5a0a08b176fd34d3bd1", + "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openscreen/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IlGxfw6Mhc7FYvhU2+Ngt9qflqr4JMC2OcplvksGI+U=", - "rev": "cb6fd42532fc3a831d6863d5006217e32a67c417", - "url": "https://chromium.googlesource.com/openscreen" + "args": { + "hash": "sha256-IlGxfw6Mhc7FYvhU2+Ngt9qflqr4JMC2OcplvksGI+U=", + "rev": "cb6fd42532fc3a831d6863d5006217e32a67c417", + "url": "https://chromium.googlesource.com/openscreen" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openscreen/src/buildtools": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-suuxUL//BfAMmG8os8ChI7ic9EjGTi7y5kjxiAyrEQc=", - "rev": "4e0e9c73a0f26735f034f09a9cab2a5c0178536b", - "url": "https://chromium.googlesource.com/chromium/src/buildtools" + "args": { + "hash": "sha256-suuxUL//BfAMmG8os8ChI7ic9EjGTi7y5kjxiAyrEQc=", + "rev": "4e0e9c73a0f26735f034f09a9cab2a5c0178536b", + "url": "https://chromium.googlesource.com/chromium/src/buildtools" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openscreen/src/third_party/tinycbor/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", - "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", - "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" + "args": { + "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", + "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", + "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ots/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", - "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", - "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" + "args": { + "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", + "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", + "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pdfium": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-d8qJECIdq01ct+sS7cHVKFulYJarwahKCEcVf762JNI=", - "rev": "84a8011ec69d0e2de271c05be7d62979608040d9", - "url": "https://pdfium.googlesource.com/pdfium.git" + "args": { + "hash": "sha256-d8qJECIdq01ct+sS7cHVKFulYJarwahKCEcVf762JNI=", + "rev": "84a8011ec69d0e2de271c05be7d62979608040d9", + "url": "https://pdfium.googlesource.com/pdfium.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/perfetto": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-3vervpsq/QLMrR7RcJMwwh+CdFvSEj8yAzj6s9d1XMo=", - "rev": "ea011a2c2d3aecdc4f1674887e107a56d2905edd", - "url": "https://android.googlesource.com/platform/external/perfetto.git" + "args": { + "hash": "sha256-3vervpsq/QLMrR7RcJMwwh+CdFvSEj8yAzj6s9d1XMo=", + "rev": "ea011a2c2d3aecdc4f1674887e107a56d2905edd", + "url": "https://android.googlesource.com/platform/external/perfetto.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/protobuf-javascript/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=", - "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", - "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" + "args": { + "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=", + "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", + "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pthreadpool/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-rGg6lgLkmbYo+a9CdaXz9ZUyrqJ1rxLcjLJeBEOPAlE=", - "rev": "560c60d342a76076f0557a3946924c6478470044", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git" + "args": { + "hash": "sha256-rGg6lgLkmbYo+a9CdaXz9ZUyrqJ1rxLcjLJeBEOPAlE=", + "rev": "560c60d342a76076f0557a3946924c6478470044", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pyelftools": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", - "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", - "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" + "args": { + "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", + "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", + "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pywebsocket3/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", - "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" + "args": { + "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", + "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/quic_trace/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-N1uFoNd3mz/LH1z06581Ds7BUyc67SNXUPzqomYREr8=", - "rev": "413da873d93a03d3662f24b881ea459a79f9c589", - "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" + "args": { + "hash": "sha256-N1uFoNd3mz/LH1z06581Ds7BUyc67SNXUPzqomYREr8=", + "rev": "413da873d93a03d3662f24b881ea459a79f9c589", + "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/re2/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=", - "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", - "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" + "args": { + "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=", + "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", + "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ruy/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4NVvqUZn2BdwTxJINTHwPeRqbGXZrWdcd7jv1Y+eoKY=", - "rev": "c08ec529fc91722bde519628d9449258082eb847", - "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" + "args": { + "hash": "sha256-4NVvqUZn2BdwTxJINTHwPeRqbGXZrWdcd7jv1Y+eoKY=", + "rev": "c08ec529fc91722bde519628d9449258082eb847", + "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/securemessage/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", - "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", - "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" + "args": { + "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", + "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", + "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/skia": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-e+oaFqj0D7jKiyDJRmT3BWZEd9j9BKkTdMg8hUOAvzA=", - "rev": "ee9db7d1348f76780fd0184b9b0243d653e36411", - "url": "https://skia.googlesource.com/skia.git" + "args": { + "hash": "sha256-e+oaFqj0D7jKiyDJRmT3BWZEd9j9BKkTdMg8hUOAvzA=", + "rev": "ee9db7d1348f76780fd0184b9b0243d653e36411", + "url": "https://skia.googlesource.com/skia.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/smhasher/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=", - "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f", - "url": "https://chromium.googlesource.com/external/smhasher.git" + "args": { + "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=", + "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f", + "url": "https://chromium.googlesource.com/external/smhasher.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/snappy/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=", - "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c", - "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" + "args": { + "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=", + "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c", + "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/speedometer/v3.0": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", - "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", - "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + "args": { + "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", + "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/spirv-cross/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", - "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" + "args": { + "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", + "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/spirv-headers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-FrT/kVIMjcu2zv+7kDeNKM77NnOyMBb8pV0w8DBP42A=", - "rev": "996c728cf7dcfb29845cfa15222822318f047810", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" + "args": { + "hash": "sha256-FrT/kVIMjcu2zv+7kDeNKM77NnOyMBb8pV0w8DBP42A=", + "rev": "996c728cf7dcfb29845cfa15222822318f047810", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/spirv-tools/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-m/a1i26u8lzpKuQHyAy6ktWWjbLZEaio1awz8VovTGE=", - "rev": "9117e042b93d4ff08d2406542708170f77aaa2a3", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" + "args": { + "hash": "sha256-m/a1i26u8lzpKuQHyAy6ktWWjbLZEaio1awz8VovTGE=", + "rev": "9117e042b93d4ff08d2406542708170f77aaa2a3", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/sqlite/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=", - "rev": "567495a62a62dc013888500526e82837d727fe01", - "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" + "args": { + "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=", + "rev": "567495a62a62dc013888500526e82837d727fe01", + "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/squirrel.mac": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", - "owner": "Squirrel", - "repo": "Squirrel.Mac", - "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" + "args": { + "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", + "owner": "Squirrel", + "repo": "Squirrel.Mac", + "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/squirrel.mac/vendor/Mantle": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", - "owner": "Mantle", - "repo": "Mantle", - "rev": "78d3966b3c331292ea29ec38661b25df0a245948" + "args": { + "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", + "owner": "Mantle", + "repo": "Mantle", + "rev": "78d3966b3c331292ea29ec38661b25df0a245948" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/squirrel.mac/vendor/ReactiveObjC": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", - "owner": "ReactiveCocoa", - "repo": "ReactiveObjC", - "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" + "args": { + "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", + "owner": "ReactiveCocoa", + "repo": "ReactiveObjC", + "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/swiftshader": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-h2BHyaOM0oscfX5cu8s4N1yyOkg/yQbvwD1DxF+RAQc=", - "rev": "d5c4284774115bb1e32c012a2be1b5fbeb1ab1f9", - "url": "https://swiftshader.googlesource.com/SwiftShader.git" + "args": { + "hash": "sha256-h2BHyaOM0oscfX5cu8s4N1yyOkg/yQbvwD1DxF+RAQc=", + "rev": "d5c4284774115bb1e32c012a2be1b5fbeb1ab1f9", + "url": "https://swiftshader.googlesource.com/SwiftShader.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/text-fragments-polyfill/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", - "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" + "args": { + "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", + "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/tflite/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gOUt/NljRK5wMFwy2aLqZ5NHwk4y/GxbQ+AZ3MxM0M8=", - "rev": "658227d3b535287dc6859788bde6076c4fe3fe7c", - "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" + "args": { + "hash": "sha256-gOUt/NljRK5wMFwy2aLqZ5NHwk4y/GxbQ+AZ3MxM0M8=", + "rev": "658227d3b535287dc6859788bde6076c4fe3fe7c", + "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ukey2/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", - "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", - "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" + "args": { + "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", + "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", + "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-deps": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-LVWvbMLjkMyAUM+0UpQ4oRsfcRU5F/xY60wiwxth4Ko=", - "rev": "0b56dd5952b25fad65139b64096fcd187048ed38", - "url": "https://chromium.googlesource.com/vulkan-deps" + "args": { + "hash": "sha256-LVWvbMLjkMyAUM+0UpQ4oRsfcRU5F/xY60wiwxth4Ko=", + "rev": "0b56dd5952b25fad65139b64096fcd187048ed38", + "url": "https://chromium.googlesource.com/vulkan-deps" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-headers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-exXzafLgrgxyRvaF+4pCF+OLtPT2gDmcvzazQ4EQ1eA=", - "rev": "cbcad3c0587dddc768d76641ea00f5c45ab5a278", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" + "args": { + "hash": "sha256-exXzafLgrgxyRvaF+4pCF+OLtPT2gDmcvzazQ4EQ1eA=", + "rev": "cbcad3c0587dddc768d76641ea00f5c45ab5a278", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-loader/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-NDp2TLeMLAHb92R+PjaPDTx8ckIlpSsS3BNx3lerB68=", - "rev": "b0177a972b8d47e823a4500cf88df88a8c27add7", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" + "args": { + "hash": "sha256-NDp2TLeMLAHb92R+PjaPDTx8ckIlpSsS3BNx3lerB68=", + "rev": "b0177a972b8d47e823a4500cf88df88a8c27add7", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-tools/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-PiWKL045DAOGm+Hl/UyO6vmD4fVfuf2fSvXK6gSYbwo=", - "rev": "15f2de809304aba619ee327f3273425418ca83de", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" + "args": { + "hash": "sha256-PiWKL045DAOGm+Hl/UyO6vmD4fVfuf2fSvXK6gSYbwo=", + "rev": "15f2de809304aba619ee327f3273425418ca83de", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-utility-libraries/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-luDw6g/EMSK67Et2wNta74PHGQU6Y7IRpDlSpgDYV6Q=", - "rev": "87ab6b39a97d084a2ef27db85e3cbaf5d2622a09", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" + "args": { + "hash": "sha256-luDw6g/EMSK67Et2wNta74PHGQU6Y7IRpDlSpgDYV6Q=", + "rev": "87ab6b39a97d084a2ef27db85e3cbaf5d2622a09", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-validation-layers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WWV+P++0Czeqg5p2UTqIP81pY8oz7cS7E7Z/sc0km6g=", - "rev": "bc2c38412f739c298d6f5c076c064e6b5696959f", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" + "args": { + "hash": "sha256-WWV+P++0Czeqg5p2UTqIP81pY8oz7cS7E7Z/sc0km6g=", + "rev": "bc2c38412f739c298d6f5c076c064e6b5696959f", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan_memory_allocator": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", - "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", - "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" + "args": { + "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", + "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", + "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland-protocols/gtk": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", - "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", - "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" + "args": { + "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", + "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", + "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland-protocols/kde": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", - "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", - "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" + "args": { + "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", + "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", + "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland-protocols/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", - "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" + "args": { + "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", + "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", - "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" + "args": { + "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", + "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webdriver/pylib": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", - "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", - "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" + "args": { + "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", + "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", + "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webgl/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-32r3BdmsNA89mo0k+vK1G3718AOjseE7cJlopZ/0pSw=", - "rev": "450cceb587613ac1469c5a131fac15935c99e0e7", - "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" + "args": { + "hash": "sha256-32r3BdmsNA89mo0k+vK1G3718AOjseE7cJlopZ/0pSw=", + "rev": "450cceb587613ac1469c5a131fac15935c99e0e7", + "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webgpu-cts/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Dd5uWNtnBIc2jiMkh9KjI5O1tJtmMvdlMA2nf+VOkQQ=", - "rev": "b9f32fd2943dd2b3d0033bf938c9d843f4b5c9a9", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" + "args": { + "hash": "sha256-Dd5uWNtnBIc2jiMkh9KjI5O1tJtmMvdlMA2nf+VOkQQ=", + "rev": "b9f32fd2943dd2b3d0033bf938c9d843f4b5c9a9", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webrtc": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-S8kGTd3+lf5OTayCMOqqrjxH4tcbT0NLZBpKmTCysMs=", - "rev": "afaf497805cbb502da89991c2dcd783201efdd08", - "url": "https://webrtc.googlesource.com/src.git" + "args": { + "hash": "sha256-S8kGTd3+lf5OTayCMOqqrjxH4tcbT0NLZBpKmTCysMs=", + "rev": "afaf497805cbb502da89991c2dcd783201efdd08", + "url": "https://webrtc.googlesource.com/src.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/weston/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=", - "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" + "args": { + "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=", + "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wuffs/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", - "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", - "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" + "args": { + "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", + "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/xdg-utils": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", - "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", - "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" + "args": { + "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", + "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", + "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/xnnpack/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-aDPlmLxNY9M5+Qb8VtdfxphHXU/X6JwYhkUSXkLh/FE=", - "rev": "d1d33679661a34f03a806af2b813f699db3004f9", - "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" + "args": { + "hash": "sha256-aDPlmLxNY9M5+Qb8VtdfxphHXU/X6JwYhkUSXkLh/FE=", + "rev": "d1d33679661a34f03a806af2b813f699db3004f9", + "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/zstd/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4J/F2v2W3mMdhqQ4q35gYkGaqTKlcG6OxUt3vQ8pcLs=", - "rev": "7fb5347e88f10472226c9aa1962a148e55d8c480", - "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" + "args": { + "hash": "sha256-4J/F2v2W3mMdhqQ4q35gYkGaqTKlcG6OxUt3vQ8pcLs=", + "rev": "7fb5347e88f10472226c9aa1962a148e55d8c480", + "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" + }, + "fetcher": "fetchFromGitiles" }, "src/tools/page_cycler/acid3": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=", - "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba", - "url": "https://chromium.googlesource.com/chromium/deps/acid3.git" + "args": { + "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=", + "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba", + "url": "https://chromium.googlesource.com/chromium/deps/acid3.git" + }, + "fetcher": "fetchFromGitiles" }, "src/v8": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-o+THwG/lBFw495DxAckGPeoiTV5zOopVF4B3MXmraf0=", - "rev": "7130a7a08a7075cc1967528402ec536f6fd85ed2", - "url": "https://chromium.googlesource.com/v8/v8.git" + "args": { + "hash": "sha256-o+THwG/lBFw495DxAckGPeoiTV5zOopVF4B3MXmraf0=", + "rev": "7130a7a08a7075cc1967528402ec536f6fd85ed2", + "url": "https://chromium.googlesource.com/v8/v8.git" + }, + "fetcher": "fetchFromGitiles" } }, "electron_yarn_hash": "10ny8cj2m8wn8zb5ljsfc8rpv6y4rp049zv5i5slyk3lj2zpgr6y", "modules": "132", - "node": "20.18.3", - "version": "34.4.1" + "node": "20.19.0", + "version": "34.5.0" }, "35": { - "chrome": "134.0.6998.178", + "chrome": "134.0.6998.179", "chromium": { "deps": { "gn": { @@ -1928,982 +2548,1302 @@ "version": "2025-01-13" } }, - "version": "134.0.6998.178" + "version": "134.0.6998.179" }, "chromium_npm_hash": "sha256-oVoTruhxTymYiGkELd2Oa1wOfjGLtChQZozP4GzOO1A=", "deps": { "src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-9oFVt+a34Zes3fivgmqRprKPBMjvXWVxfA2J1Q9QWPU=", - "postFetch": "rm -r $out/third_party/blink/web_tests; rm -rf $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", - "rev": "134.0.6998.178", - "url": "https://chromium.googlesource.com/chromium/src.git" + "args": { + "hash": "sha256-DI59KsXSy7xQIdHSpl++4S26sLP6lHqMGx1U1xi+pZY=", + "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/content/test/data; rm -rf $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ", + "rev": "134.0.6998.179", + "url": "https://chromium.googlesource.com/chromium/src.git" + }, + "fetcher": "fetchFromGitiles" }, "src/chrome/test/data/perf/canvas_bench": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", - "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", - "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" + "args": { + "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=", + "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", + "url": "https://chromium.googlesource.com/chromium/canvas_bench.git" + }, + "fetcher": "fetchFromGitiles" }, "src/chrome/test/data/perf/frame_rate/content": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", - "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", - "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" + "args": { + "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=", + "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", + "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git" + }, + "fetcher": "fetchFromGitiles" }, "src/chrome/test/data/xr/webvr_info": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", - "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", - "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" + "args": { + "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=", + "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", + "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git" + }, + "fetcher": "fetchFromGitiles" }, "src/docs/website": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-f3Tdz0ykxQ2FHbNweJwPdAZHA8eVpjPuxqRpxwhYtRM=", - "rev": "600fc3a0b121d5007b4bb97b001e756625e6d418", - "url": "https://chromium.googlesource.com/website.git" + "args": { + "hash": "sha256-f3Tdz0ykxQ2FHbNweJwPdAZHA8eVpjPuxqRpxwhYtRM=", + "rev": "600fc3a0b121d5007b4bb97b001e756625e6d418", + "url": "https://chromium.googlesource.com/website.git" + }, + "fetcher": "fetchFromGitiles" }, "src/electron": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-30Y/IhEyoFFXdhe94WP7wBLEsNRvZRs1I7tXSPYWI4Y=", - "owner": "electron", - "repo": "electron", - "rev": "v35.1.2" + "args": { + "hash": "sha256-P7GjUmkATDOo2B/uLs5Pv3E+meFoenwe2FTkIEc/Go0=", + "owner": "electron", + "repo": "electron", + "rev": "v35.1.4" + }, + "fetcher": "fetchFromGitHub" }, "src/media/cdm/api": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-FgeuOsxToA4qx3H76czCPeO/WVtprRkllDMPancw3Ik=", - "rev": "5a1675c86821a48f8983842d07f774df28dfb43c", - "url": "https://chromium.googlesource.com/chromium/cdm.git" + "args": { + "hash": "sha256-FgeuOsxToA4qx3H76czCPeO/WVtprRkllDMPancw3Ik=", + "rev": "5a1675c86821a48f8983842d07f774df28dfb43c", + "url": "https://chromium.googlesource.com/chromium/cdm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/net/third_party/quiche/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-5YFqWgkyQ/PUKTkk1j3mAFD8JMbI+E4XRdSq34HFMWA=", - "rev": "e7d001c82ee5bead5140481671828d5e156a525a", - "url": "https://quiche.googlesource.com/quiche.git" + "args": { + "hash": "sha256-5YFqWgkyQ/PUKTkk1j3mAFD8JMbI+E4XRdSq34HFMWA=", + "rev": "e7d001c82ee5bead5140481671828d5e156a525a", + "url": "https://quiche.googlesource.com/quiche.git" + }, + "fetcher": "fetchFromGitiles" }, "src/testing/libfuzzer/fuzzers/wasm_corpus": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gItDOfNqm1tHlmelz3l2GGdiKi9adu1EpPP6U7+8EQY=", - "rev": "1df5e50a45db9518a56ebb42cb020a94a090258b", - "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" + "args": { + "hash": "sha256-gItDOfNqm1tHlmelz3l2GGdiKi9adu1EpPP6U7+8EQY=", + "rev": "1df5e50a45db9518a56ebb42cb020a94a090258b", + "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/accessibility_test_framework/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", - "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", - "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" + "args": { + "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=", + "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", + "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Y4eX8YHwVXiXW4U8KGbFd4fTU/v/EAUpfwv6lB127Y4=", - "rev": "914c97c116e09ef01a99fbbbe9cd28cda56552c7", - "url": "https://chromium.googlesource.com/angle/angle.git" + "args": { + "hash": "sha256-Y4eX8YHwVXiXW4U8KGbFd4fTU/v/EAUpfwv6lB127Y4=", + "rev": "914c97c116e09ef01a99fbbbe9cd28cda56552c7", + "url": "https://chromium.googlesource.com/angle/angle.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle/third_party/VK-GL-CTS/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-g59uC7feByGR1Ema8LqUCr5XWKpDMeXXvlS2thOo5Ks=", - "rev": "48e7f3020f52ef9adc31aa0f5db01dc42cc487cd", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" + "args": { + "hash": "sha256-g59uC7feByGR1Ema8LqUCr5XWKpDMeXXvlS2thOo5Ks=", + "rev": "48e7f3020f52ef9adc31aa0f5db01dc42cc487cd", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle/third_party/glmark2/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-kqBpWHCxUl1ekmrbdPn6cL2y75nK4FxECJ5mo83Zgf4=", - "rev": "cb550a25c75a99ae0def91a02e16ae29d73e6d1e", - "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" + "args": { + "hash": "sha256-kqBpWHCxUl1ekmrbdPn6cL2y75nK4FxECJ5mo83Zgf4=", + "rev": "cb550a25c75a99ae0def91a02e16ae29d73e6d1e", + "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/angle/third_party/rapidjson/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", - "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", - "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" + "args": { + "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=", + "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", + "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/anonymous_tokens/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-mh4s57NonFQzWNaPiKfe9kW4Ow7XAN+hW6Xpvgjvb0w=", - "rev": "2e328dd4eace9648adcc943cac6a1792b5dcdec5", - "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" + "args": { + "hash": "sha256-mh4s57NonFQzWNaPiKfe9kW4Ow7XAN+hW6Xpvgjvb0w=", + "rev": "2e328dd4eace9648adcc943cac6a1792b5dcdec5", + "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/beto-core/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=", - "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", - "url": "https://beto-core.googlesource.com/beto-core.git" + "args": { + "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=", + "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", + "url": "https://beto-core.googlesource.com/beto-core.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/boringssl/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-g9i5v11uZy/3Smn8zSCFmC27Gdp5VP2b0ROrj+VmP1k=", - "rev": "ea42fe28775844ec8fe0444fc421398be42d51fe", - "url": "https://boringssl.googlesource.com/boringssl.git" + "args": { + "hash": "sha256-g9i5v11uZy/3Smn8zSCFmC27Gdp5VP2b0ROrj+VmP1k=", + "rev": "ea42fe28775844ec8fe0444fc421398be42d51fe", + "url": "https://boringssl.googlesource.com/boringssl.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/breakpad/breakpad": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-jOTRgF2WxsX5P0LgUI9zdCc0+NcqSnO310aq15msThY=", - "rev": "0dfd77492fdb0dcd06027c5842095e2e908adc90", - "url": "https://chromium.googlesource.com/breakpad/breakpad.git" + "args": { + "hash": "sha256-jOTRgF2WxsX5P0LgUI9zdCc0+NcqSnO310aq15msThY=", + "rev": "0dfd77492fdb0dcd06027c5842095e2e908adc90", + "url": "https://chromium.googlesource.com/breakpad/breakpad.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cast_core/public/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-o5/Lbhh6HHSWCVCEyDwDCgs+PLm67si981w0HuIWY7c=", - "rev": "fbc5e98031e1271a0a566fcd4d9092b2d3275d05", - "url": "https://chromium.googlesource.com/cast_core/public" + "args": { + "hash": "sha256-o5/Lbhh6HHSWCVCEyDwDCgs+PLm67si981w0HuIWY7c=", + "rev": "fbc5e98031e1271a0a566fcd4d9092b2d3275d05", + "url": "https://chromium.googlesource.com/cast_core/public" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/catapult": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-xkvz743+w0xsI0w4reAo2rfC4J7opl1biA3eNYuRn+o=", - "rev": "d5166861902b565df446e15181eba270fe168275", - "url": "https://chromium.googlesource.com/catapult.git" + "args": { + "hash": "sha256-xkvz743+w0xsI0w4reAo2rfC4J7opl1biA3eNYuRn+o=", + "rev": "d5166861902b565df446e15181eba270fe168275", + "url": "https://chromium.googlesource.com/catapult.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ced/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", - "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", - "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" + "args": { + "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=", + "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", + "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/chromium-variations": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-zXAmoKyj104BaIe4Rug18WbVKkyAsyWPCTPPEerinVo=", - "rev": "84c18c7a0205fbd0a27b0214b16ded7fc44dc062", - "url": "https://chromium.googlesource.com/chromium-variations.git" + "args": { + "hash": "sha256-zXAmoKyj104BaIe4Rug18WbVKkyAsyWPCTPPEerinVo=", + "rev": "84c18c7a0205fbd0a27b0214b16ded7fc44dc062", + "url": "https://chromium.googlesource.com/chromium-variations.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/clang-format/script": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-d9uweklBffiuCWEb03ti1eFLnMac2qRtvggzXY1n/RU=", - "rev": "37f6e68a107df43b7d7e044fd36a13cbae3413f2", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" + "args": { + "hash": "sha256-d9uweklBffiuCWEb03ti1eFLnMac2qRtvggzXY1n/RU=", + "rev": "37f6e68a107df43b7d7e044fd36a13cbae3413f2", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cld_3/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", - "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", - "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" + "args": { + "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=", + "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", + "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/colorama/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", - "rev": "3de9f013df4b470069d03d250224062e8cf15c49", - "url": "https://chromium.googlesource.com/external/colorama.git" + "args": { + "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=", + "rev": "3de9f013df4b470069d03d250224062e8cf15c49", + "url": "https://chromium.googlesource.com/external/colorama.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/content_analysis_sdk/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", - "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", - "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" + "args": { + "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=", + "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", + "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cpu_features/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", - "rev": "936b9ab5515dead115606559502e3864958f7f6e", - "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" + "args": { + "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=", + "rev": "936b9ab5515dead115606559502e3864958f7f6e", + "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cpuinfo/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-dKmZ5YXLhvVdxaJ4PefR+SWlh+MTFHNxOMeM6Vj7Gvo=", - "rev": "8a1772a0c5c447df2d18edf33ec4603a8c9c04a6", - "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" + "args": { + "hash": "sha256-dKmZ5YXLhvVdxaJ4PefR+SWlh+MTFHNxOMeM6Vj7Gvo=", + "rev": "8a1772a0c5c447df2d18edf33ec4603a8c9c04a6", + "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/crabbyavif/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-+6339vcd0KJj5V11dvJvs0YpQpTxsLmDuBoYVzyn9Ec=", - "rev": "c5938b119ef52f9ff628436c1e66c9a5322ece83", - "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" + "args": { + "hash": "sha256-+6339vcd0KJj5V11dvJvs0YpQpTxsLmDuBoYVzyn9Ec=", + "rev": "c5938b119ef52f9ff628436c1e66c9a5322ece83", + "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/crc32c/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", - "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", - "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" + "args": { + "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=", + "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", + "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cros-components/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-80WqSMP5Vlc4OY+gfpU3SRGavs7fJbTQVW1AIhq6jmE=", - "rev": "1f1c782f06956a2deb5d33f09c466e4852099c71", - "url": "https://chromium.googlesource.com/external/google3/cros_components.git" + "args": { + "hash": "sha256-80WqSMP5Vlc4OY+gfpU3SRGavs7fJbTQVW1AIhq6jmE=", + "rev": "1f1c782f06956a2deb5d33f09c466e4852099c71", + "url": "https://chromium.googlesource.com/external/google3/cros_components.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/cros_system_api": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-xUaGf4MaEXg2RHgrGS1Uuz97vq5Vbt4HFV/AXYB4lCA=", - "rev": "ea21b22629965105426f3df5e58190513e95a17e", - "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" + "args": { + "hash": "sha256-xUaGf4MaEXg2RHgrGS1Uuz97vq5Vbt4HFV/AXYB4lCA=", + "rev": "ea21b22629965105426f3df5e58190513e95a17e", + "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/crossbench": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-EL+lOTe1Vzg4JW2q7t3UoXzHHiEmLjf7khH9fXdplbo=", - "rev": "0391f0d11cbf3cf3c5bcf82e19e9d9839b1936ed", - "url": "https://chromium.googlesource.com/crossbench.git" + "args": { + "hash": "sha256-EL+lOTe1Vzg4JW2q7t3UoXzHHiEmLjf7khH9fXdplbo=", + "rev": "0391f0d11cbf3cf3c5bcf82e19e9d9839b1936ed", + "url": "https://chromium.googlesource.com/crossbench.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dav1d/libdav1d": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qcs9QoZ/uWEQ8l1ChZ8nYctZnnWJ0VvCw1q2rEktC9g=", - "rev": "42b2b24fb8819f1ed3643aa9cf2a62f03868e3aa", - "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" + "args": { + "hash": "sha256-qcs9QoZ/uWEQ8l1ChZ8nYctZnnWJ0VvCw1q2rEktC9g=", + "rev": "42b2b24fb8819f1ed3643aa9cf2a62f03868e3aa", + "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-aYlcplXSGjFov9dqql6d+a1PxJWtZJNQaaezof0u9QQ=", - "rev": "7056f50fdefc6bc46aa442e720d0336e2855b570", - "url": "https://dawn.googlesource.com/dawn.git" + "args": { + "hash": "sha256-aYlcplXSGjFov9dqql6d+a1PxJWtZJNQaaezof0u9QQ=", + "rev": "7056f50fdefc6bc46aa442e720d0336e2855b570", + "url": "https://dawn.googlesource.com/dawn.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/dxc": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-jecGwARtdSr2OEC68749mpFUAHuYP/IzYUZyj23CwJE=", - "rev": "c2ed9ad4ee775f3de903ce757c994aecc59a5306", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" + "args": { + "hash": "sha256-jecGwARtdSr2OEC68749mpFUAHuYP/IzYUZyj23CwJE=", + "rev": "c2ed9ad4ee775f3de903ce757c994aecc59a5306", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/dxheaders": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", - "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", - "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" + "args": { + "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=", + "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/glfw": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", - "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", - "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" + "args": { + "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=", + "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", + "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/khronos/EGL-Registry": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", - "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" + "args": { + "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=", + "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/khronos/OpenGL-Registry": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", - "rev": "5bae8738b23d06968e7c3a41308568120943ae77", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" + "args": { + "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=", + "rev": "5bae8738b23d06968e7c3a41308568120943ae77", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dawn/third_party/webgpu-cts": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-AEGYE2rSsPcRzJSm97DGsrPVbhCH+lyVI61Z4qavKc8=", - "rev": "24d5dfa7725d6ece31941c3f3343ba6362986d6b", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" + "args": { + "hash": "sha256-AEGYE2rSsPcRzJSm97DGsrPVbhCH+lyVI61Z4qavKc8=", + "rev": "24d5dfa7725d6ece31941c3f3343ba6362986d6b", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/depot_tools": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-BvEkk15Rm4nSoV/uWiwmQW/+gg2vpLQ187TbBAHl9Rk=", - "rev": "e42fac3e9c1726ab14a61a25e6291d9ccc49e688", - "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" + "args": { + "hash": "sha256-BvEkk15Rm4nSoV/uWiwmQW/+gg2vpLQ187TbBAHl9Rk=", + "rev": "e42fac3e9c1726ab14a61a25e6291d9ccc49e688", + "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/devtools-frontend/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-rdBpJWdQ5VtFnIfbr/Vq1q1euSvkbY8iIqyuTMAS2KM=", - "rev": "65b3f414b81ffe4df49202af6fc75bc26a3cb109", - "url": "https://chromium.googlesource.com/devtools/devtools-frontend" + "args": { + "hash": "sha256-rdBpJWdQ5VtFnIfbr/Vq1q1euSvkbY8iIqyuTMAS2KM=", + "rev": "65b3f414b81ffe4df49202af6fc75bc26a3cb109", + "url": "https://chromium.googlesource.com/devtools/devtools-frontend" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/dom_distiller_js/dist": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", - "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", - "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" + "args": { + "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=", + "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", + "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/domato/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", - "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", - "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" + "args": { + "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=", + "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", + "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/eigen3/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WG7uiduuMnXrvEpXJNGksrYkBsim+l7eiu5N+mx0Yr0=", - "rev": "2a35a917be47766a895be610bedd66006980b7e6", - "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" + "args": { + "hash": "sha256-WG7uiduuMnXrvEpXJNGksrYkBsim+l7eiu5N+mx0Yr0=", + "rev": "2a35a917be47766a895be610bedd66006980b7e6", + "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/electron_node": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-bJPSHe3CsL9T1SYwC8hyDbAMqj/5WvgM8VqQU9mpVww=", - "owner": "nodejs", - "repo": "node", - "rev": "v22.14.0" + "args": { + "hash": "sha256-bJPSHe3CsL9T1SYwC8hyDbAMqj/5WvgM8VqQU9mpVww=", + "owner": "nodejs", + "repo": "node", + "rev": "v22.14.0" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/emoji-segmenter/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=", - "rev": "955936be8b391e00835257059607d7c5b72ce744", - "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" + "args": { + "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=", + "rev": "955936be8b391e00835257059607d7c5b72ce744", + "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/engflow-reclient-configs": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", - "owner": "EngFlow", - "repo": "reclient-configs", - "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" + "args": { + "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=", + "owner": "EngFlow", + "repo": "reclient-configs", + "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/expat/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=", - "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", - "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" + "args": { + "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=", + "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", + "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/farmhash/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", - "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", - "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" + "args": { + "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=", + "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", + "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fast_float/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-CG5je117WYyemTe5PTqznDP0bvY5TeXn8Vu1Xh5yUzQ=", - "rev": "cb1d42aaa1e14b09e1452cfdef373d051b8c02a4", - "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" + "args": { + "hash": "sha256-CG5je117WYyemTe5PTqznDP0bvY5TeXn8Vu1Xh5yUzQ=", + "rev": "cb1d42aaa1e14b09e1452cfdef373d051b8c02a4", + "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ffmpeg": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-OXumpRb9XB38dOCJmL3jDcabiJ08wAvydVlJwMgpCoQ=", - "rev": "d10a0f8bf5ddcce572df95105152bc74041cae0c", - "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" + "args": { + "hash": "sha256-OXumpRb9XB38dOCJmL3jDcabiJ08wAvydVlJwMgpCoQ=", + "rev": "d10a0f8bf5ddcce572df95105152bc74041cae0c", + "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/flac": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", - "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", - "url": "https://chromium.googlesource.com/chromium/deps/flac.git" + "args": { + "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=", + "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", + "url": "https://chromium.googlesource.com/chromium/deps/flac.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/flatbuffers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", - "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", - "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" + "args": { + "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=", + "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", + "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fontconfig/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=", - "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", - "url": "https://chromium.googlesource.com/external/fontconfig.git" + "args": { + "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=", + "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", + "url": "https://chromium.googlesource.com/external/fontconfig.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fp16/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", - "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" + "args": { + "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=", + "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/freetype-testing/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-cpzz5QDeAT3UgAZzwW7c0SgLDQsBwy/1Q+5hz2XW4lE=", - "rev": "04fa94191645af39750f5eff0a66c49c5cb2c2cc", - "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" + "args": { + "hash": "sha256-cpzz5QDeAT3UgAZzwW7c0SgLDQsBwy/1Q+5hz2XW4lE=", + "rev": "04fa94191645af39750f5eff0a66c49c5cb2c2cc", + "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/freetype/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-YxWz3O9see1dktqZnC551V12yU5jcOERTB1Hn1lwUNM=", - "rev": "b1f47850878d232eea372ab167e760ccac4c4e32", - "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" + "args": { + "hash": "sha256-YxWz3O9see1dktqZnC551V12yU5jcOERTB1Hn1lwUNM=", + "rev": "b1f47850878d232eea372ab167e760ccac4c4e32", + "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fuzztest/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-AKXKxXqOMUb3APf5r15NmIMyhJ4ZmW5+t7y5XdgdZkw=", - "rev": "44ac6c2594a880edbb9cb1e4e197c2b53d078130", - "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" + "args": { + "hash": "sha256-AKXKxXqOMUb3APf5r15NmIMyhJ4ZmW5+t7y5XdgdZkw=", + "rev": "44ac6c2594a880edbb9cb1e4e197c2b53d078130", + "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/fxdiv/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", - "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", - "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" + "args": { + "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=", + "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/gemmlowp/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", - "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", - "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" + "args": { + "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=", + "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", + "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/glslang/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-LwspMo771iaV5YeEJWgdb8xi37KMa0rsSdvO3uqMOAI=", - "rev": "0549c7127c2fbab2904892c9d6ff491fa1e93751", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" + "args": { + "hash": "sha256-LwspMo771iaV5YeEJWgdb8xi37KMa0rsSdvO3uqMOAI=", + "rev": "0549c7127c2fbab2904892c9d6ff491fa1e93751", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/google_benchmark/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-cH8s1gP6kCcojAAfTt5iQCVqiAaSooNk4BdaILujM3w=", - "rev": "761305ec3b33abf30e08d50eb829e19a802581cc", - "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" + "args": { + "hash": "sha256-cH8s1gP6kCcojAAfTt5iQCVqiAaSooNk4BdaILujM3w=", + "rev": "761305ec3b33abf30e08d50eb829e19a802581cc", + "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/googletest/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-jpXIcz5Uy6fDEvxTq8rTFx/M+0+SQ6TCDaqnp7nMtng=", - "rev": "e235eb34c6c4fed790ccdad4b16394301360dcd4", - "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" + "args": { + "hash": "sha256-jpXIcz5Uy6fDEvxTq8rTFx/M+0+SQ6TCDaqnp7nMtng=", + "rev": "e235eb34c6c4fed790ccdad4b16394301360dcd4", + "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/grpc/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-RKGZWtH2JmP2mXN+4ln/nCJvOyzynrYcfrxSY8k1vVg=", - "rev": "a363b6c001139b9c8ffb7cd63f60a72f15349c3b", - "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git" + "args": { + "hash": "sha256-RKGZWtH2JmP2mXN+4ln/nCJvOyzynrYcfrxSY8k1vVg=", + "rev": "a363b6c001139b9c8ffb7cd63f60a72f15349c3b", + "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/harfbuzz-ng/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-isQvwaVdL4cM465A8Gs06VioAu8RvZFrwXDsXhfOoFo=", - "rev": "6d8035a99c279e32183ad063f0de201ef1b2f05c", - "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" + "args": { + "hash": "sha256-isQvwaVdL4cM465A8Gs06VioAu8RvZFrwXDsXhfOoFo=", + "rev": "6d8035a99c279e32183ad063f0de201ef1b2f05c", + "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/highway/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IS7m1wBwpPBUNhx2GttY1fzvmLIeAp3o2gXfrFpRdvY=", - "rev": "00fe003dac355b979f36157f9407c7c46448958e", - "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" + "args": { + "hash": "sha256-IS7m1wBwpPBUNhx2GttY1fzvmLIeAp3o2gXfrFpRdvY=", + "rev": "00fe003dac355b979f36157f9407c7c46448958e", + "url": "https://chromium.googlesource.com/external/github.com/google/highway.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/hunspell_dictionaries": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", - "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", - "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" + "args": { + "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=", + "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", + "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/icu": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Omv4sp9z44eINXtaE0+1TzIU1q2hWviANA79fmkF78U=", - "rev": "c9fb4b3a6fb54aa8c20a03bbcaa0a4a985ffd34b", - "url": "https://chromium.googlesource.com/chromium/deps/icu.git" + "args": { + "hash": "sha256-Omv4sp9z44eINXtaE0+1TzIU1q2hWviANA79fmkF78U=", + "rev": "c9fb4b3a6fb54aa8c20a03bbcaa0a4a985ffd34b", + "url": "https://chromium.googlesource.com/chromium/deps/icu.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ink/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-OcGUJxKEjeiYJgknpyb/KvDu76GMaddxWO0Lj7l9Eu8=", - "rev": "bf387a71d7def4b48bf24c8e09d412dfb9962746", - "url": "https://chromium.googlesource.com/external/github.com/google/ink.git" + "args": { + "hash": "sha256-OcGUJxKEjeiYJgknpyb/KvDu76GMaddxWO0Lj7l9Eu8=", + "rev": "bf387a71d7def4b48bf24c8e09d412dfb9962746", + "url": "https://chromium.googlesource.com/external/github.com/google/ink.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ink_stroke_modeler/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IQ+n+kHdEq8Q8/qaPGMvgD7cPN3zzaY8dbiokq6r/Vs=", - "rev": "0999e4cf816b42c770d07916698bce943b873048", - "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git" + "args": { + "hash": "sha256-IQ+n+kHdEq8Q8/qaPGMvgD7cPN3zzaY8dbiokq6r/Vs=", + "rev": "0999e4cf816b42c770d07916698bce943b873048", + "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/instrumented_libs": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-7w5wMcmPcKLS91buxyRdcgaQjbKGFdmrKClvYVO3iko=", - "rev": "3cc43119a29158bcde39d288a8def4b8ec49baf8", - "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" + "args": { + "hash": "sha256-7w5wMcmPcKLS91buxyRdcgaQjbKGFdmrKClvYVO3iko=", + "rev": "3cc43119a29158bcde39d288a8def4b8ec49baf8", + "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/jsoncpp/source": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", - "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", - "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" + "args": { + "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=", + "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", + "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/leveldatabase/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ANtMVRZmW6iOjDVn2y15ak2fTagFTTaz1Se6flUHL8w=", - "rev": "4ee78d7ea98330f7d7599c42576ca99e3c6ff9c5", - "url": "https://chromium.googlesource.com/external/leveldb.git" + "args": { + "hash": "sha256-ANtMVRZmW6iOjDVn2y15ak2fTagFTTaz1Se6flUHL8w=", + "rev": "4ee78d7ea98330f7d7599c42576ca99e3c6ff9c5", + "url": "https://chromium.googlesource.com/external/leveldb.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libFuzzer/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Lb+HczYax0T7qvC0/Nwhc5l2szQTUYDouWRMD/Qz7sA=", - "rev": "e31b99917861f891308269c36a32363b120126bb", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" + "args": { + "hash": "sha256-Lb+HczYax0T7qvC0/Nwhc5l2szQTUYDouWRMD/Qz7sA=", + "rev": "e31b99917861f891308269c36a32363b120126bb", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libaddressinput/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-6h4/DQUBoBtuGfbaTL5Te1Z+24qjTaBuIydcTV18j80=", - "rev": "2610f7b1043d6784ada41392fc9392d1ea09ea07", - "url": "https://chromium.googlesource.com/external/libaddressinput.git" + "args": { + "hash": "sha256-6h4/DQUBoBtuGfbaTL5Te1Z+24qjTaBuIydcTV18j80=", + "rev": "2610f7b1043d6784ada41392fc9392d1ea09ea07", + "url": "https://chromium.googlesource.com/external/libaddressinput.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libaom/source/libaom": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4NOQug0MlWZ18527V3IDuGcxGEJ4b+mZZbdzugWoBgQ=", - "rev": "3990233fc06a35944d6d33797e63931802122a95", - "url": "https://aomedia.googlesource.com/aom.git" + "args": { + "hash": "sha256-4NOQug0MlWZ18527V3IDuGcxGEJ4b+mZZbdzugWoBgQ=", + "rev": "3990233fc06a35944d6d33797e63931802122a95", + "url": "https://aomedia.googlesource.com/aom.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libc++/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-QxEbtsEKCs2Xgulq7nVWtAeOGkIYFOy/L1ROfXa5u8U=", - "rev": "2e25154d49c29fa9aa42c30ad4a027bd30123434", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" + "args": { + "hash": "sha256-QxEbtsEKCs2Xgulq7nVWtAeOGkIYFOy/L1ROfXa5u8U=", + "rev": "2e25154d49c29fa9aa42c30ad4a027bd30123434", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libc++abi/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ln/DCNYJXVksbwdDBnxCfc4VwtjQlJXF7ktl/NxLupg=", - "rev": "634228a732a1d9ae1a6d459556e8fc58707cf961", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" + "args": { + "hash": "sha256-ln/DCNYJXVksbwdDBnxCfc4VwtjQlJXF7ktl/NxLupg=", + "rev": "634228a732a1d9ae1a6d459556e8fc58707cf961", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libdrm/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", - "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", - "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" + "args": { + "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=", + "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", + "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libgav1/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-BgTfWmbcMvJB1KewJpRcMtbOd2FVuJ+fi1zAXBXfkrg=", - "rev": "c05bf9be660cf170d7c26bd06bb42b3322180e58", - "url": "https://chromium.googlesource.com/codecs/libgav1.git" + "args": { + "hash": "sha256-BgTfWmbcMvJB1KewJpRcMtbOd2FVuJ+fi1zAXBXfkrg=", + "rev": "c05bf9be660cf170d7c26bd06bb42b3322180e58", + "url": "https://chromium.googlesource.com/codecs/libgav1.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libipp/libipp": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", - "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", - "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" + "args": { + "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=", + "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", + "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libjpeg_turbo": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=", - "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", - "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" + "args": { + "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=", + "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/liblouis/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", - "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", - "url": "https://chromium.googlesource.com/external/liblouis-github.git" + "args": { + "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=", + "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", + "url": "https://chromium.googlesource.com/external/liblouis-github.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libphonenumber/dist": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ZbuDrZEUVp/ekjUP8WO/FsjAomRjeDBptT4nQZvTVi4=", - "rev": "9d46308f313f2bf8dbce1dfd4f364633ca869ca7", - "url": "https://chromium.googlesource.com/external/libphonenumber.git" + "args": { + "hash": "sha256-ZbuDrZEUVp/ekjUP8WO/FsjAomRjeDBptT4nQZvTVi4=", + "rev": "9d46308f313f2bf8dbce1dfd4f364633ca869ca7", + "url": "https://chromium.googlesource.com/external/libphonenumber.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libprotobuf-mutator/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=", - "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", - "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" + "args": { + "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=", + "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", + "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libsrtp": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-bkG1+ss+1a2rCHGwZjhvf5UaNVbPPZJt9HZSIPBKGwM=", - "rev": "a52756acb1c5e133089c798736dd171567df11f5", - "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" + "args": { + "hash": "sha256-bkG1+ss+1a2rCHGwZjhvf5UaNVbPPZJt9HZSIPBKGwM=", + "rev": "a52756acb1c5e133089c798736dd171567df11f5", + "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libsync/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", - "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", - "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" + "args": { + "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=", + "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", + "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libunwind/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-JazjgI+ch9RgnsDgu6p4cT4UmCBor4x4sRi1ClLISAY=", - "rev": "e55d8cf51c6db1fdd4bb56c158945ec59772c8ee", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" + "args": { + "hash": "sha256-JazjgI+ch9RgnsDgu6p4cT4UmCBor4x4sRi1ClLISAY=", + "rev": "e55d8cf51c6db1fdd4bb56c158945ec59772c8ee", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libva-fake-driver/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-em/8rNqwv6szlxyji7mnYr3nObSW/x3OzEEnkiLuqpI=", - "rev": "a9bcab9cd6b15d4e3634ca44d5e5f7652c612194", - "url": "https://chromium.googlesource.com/chromiumos/platform/libva-fake-driver.git" + "args": { + "hash": "sha256-em/8rNqwv6szlxyji7mnYr3nObSW/x3OzEEnkiLuqpI=", + "rev": "a9bcab9cd6b15d4e3634ca44d5e5f7652c612194", + "url": "https://chromium.googlesource.com/chromiumos/platform/libva-fake-driver.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libvpx/source/libvpx": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-2FgBb0HzgMihGsWbEtQqyN2EXZs/y5+ToWL1ZXG35W0=", - "rev": "7b3fa8114cf8ef23cbf91e50c368c1ca768d95d5", - "url": "https://chromium.googlesource.com/webm/libvpx.git" + "args": { + "hash": "sha256-2FgBb0HzgMihGsWbEtQqyN2EXZs/y5+ToWL1ZXG35W0=", + "rev": "7b3fa8114cf8ef23cbf91e50c368c1ca768d95d5", + "url": "https://chromium.googlesource.com/webm/libvpx.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libwebm/source": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-yQ5MIUKtuWQM5SfD74vPeqGEdLJNss2/RBUZfq5701A=", - "rev": "b4f01ea3ed6fd00923caa383bb2cf6f7a0b7f633", - "url": "https://chromium.googlesource.com/webm/libwebm.git" + "args": { + "hash": "sha256-yQ5MIUKtuWQM5SfD74vPeqGEdLJNss2/RBUZfq5701A=", + "rev": "b4f01ea3ed6fd00923caa383bb2cf6f7a0b7f633", + "url": "https://chromium.googlesource.com/webm/libwebm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libwebp/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-0sKGhXr6Rrpq0eoitAdLQ4l4fgNOzMWIEICrPyzwNz4=", - "rev": "2af6c034ac871c967e04c8c9f8bf2dbc2e271b18", - "url": "https://chromium.googlesource.com/webm/libwebp.git" + "args": { + "hash": "sha256-0sKGhXr6Rrpq0eoitAdLQ4l4fgNOzMWIEICrPyzwNz4=", + "rev": "2af6c034ac871c967e04c8c9f8bf2dbc2e271b18", + "url": "https://chromium.googlesource.com/webm/libwebp.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/libyuv": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-E5ePVHrEXMM8mS1qaUwPTqYO0BdP7TYuUhfX+BCiq/0=", - "rev": "5a9a6ea936085310f3b9fbd4a774868e6a984ec4", - "url": "https://chromium.googlesource.com/libyuv/libyuv.git" + "args": { + "hash": "sha256-E5ePVHrEXMM8mS1qaUwPTqYO0BdP7TYuUhfX+BCiq/0=", + "rev": "5a9a6ea936085310f3b9fbd4a774868e6a984ec4", + "url": "https://chromium.googlesource.com/libyuv/libyuv.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/llvm-libc/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-bF4hV9fY0GLYAHUnxSXkCxdZLMKR3wYWaqYJaM9aQiE=", - "rev": "6d0c8ee02e2fd44e69ac30e721e13be463035ee5", - "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git" + "args": { + "hash": "sha256-bF4hV9fY0GLYAHUnxSXkCxdZLMKR3wYWaqYJaM9aQiE=", + "rev": "6d0c8ee02e2fd44e69ac30e721e13be463035ee5", + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/lss": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=", - "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", - "url": "https://chromium.googlesource.com/linux-syscall-support.git" + "args": { + "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=", + "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", + "url": "https://chromium.googlesource.com/linux-syscall-support.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/material_color_utilities/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", - "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", - "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" + "args": { + "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=", + "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", + "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/minigbm/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", - "rev": "3018207f4d89395cc271278fb9a6558b660885f5", - "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" + "args": { + "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=", + "rev": "3018207f4d89395cc271278fb9a6558b660885f5", + "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/nan": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", - "owner": "nodejs", - "repo": "nan", - "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" + "args": { + "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=", + "owner": "nodejs", + "repo": "nan", + "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/nasm": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=", - "rev": "f477acb1049f5e043904b87b825c5915084a9a29", - "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" + "args": { + "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=", + "rev": "f477acb1049f5e043904b87b825c5915084a9a29", + "url": "https://chromium.googlesource.com/chromium/deps/nasm.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/nearby/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-d1D9/6d7a1+27nD8VijhzRMglE2PqvAMK8+GbMeesSQ=", - "rev": "97690c6996f683a6f3e07d75fc4557958c55ac7b", - "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" + "args": { + "hash": "sha256-d1D9/6d7a1+27nD8VijhzRMglE2PqvAMK8+GbMeesSQ=", + "rev": "97690c6996f683a6f3e07d75fc4557958c55ac7b", + "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/neon_2_sse/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-AkDAHOPO5NdXXk0hETS5D67mzw0RVXwPDDKqM0XXo5g=", - "rev": "eb8b80b28f956275e291ea04a7beb5ed8289e872", - "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" + "args": { + "hash": "sha256-AkDAHOPO5NdXXk0hETS5D67mzw0RVXwPDDKqM0XXo5g=", + "rev": "eb8b80b28f956275e291ea04a7beb5ed8289e872", + "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openh264/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-lZlZjX8GCJOc77VJ9i1fSWn63pfVOEcwwlzh0UpIgy4=", - "rev": "33f7f48613258446decb33b3575fc0a3c9ed14e3", - "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" + "args": { + "hash": "sha256-lZlZjX8GCJOc77VJ9i1fSWn63pfVOEcwwlzh0UpIgy4=", + "rev": "33f7f48613258446decb33b3575fc0a3c9ed14e3", + "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openscreen/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-KGVFyGp7ItKeapub3Bd+htXH/gMaaBd+k8iC7hLtvl0=", - "rev": "38d1445b41d1eb597fcd100688dbaff98aa072ed", - "url": "https://chromium.googlesource.com/openscreen" + "args": { + "hash": "sha256-KGVFyGp7ItKeapub3Bd+htXH/gMaaBd+k8iC7hLtvl0=", + "rev": "38d1445b41d1eb597fcd100688dbaff98aa072ed", + "url": "https://chromium.googlesource.com/openscreen" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openscreen/src/buildtools": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Dz7wMYQHVR7sjCGaQe2nxIxZsAxsK6GGDNpDvypPefo=", - "rev": "56013b77b6c0a650d00bde40e750e7c3b7c6bc3d", - "url": "https://chromium.googlesource.com/chromium/src/buildtools" + "args": { + "hash": "sha256-Dz7wMYQHVR7sjCGaQe2nxIxZsAxsK6GGDNpDvypPefo=", + "rev": "56013b77b6c0a650d00bde40e750e7c3b7c6bc3d", + "url": "https://chromium.googlesource.com/chromium/src/buildtools" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/openscreen/src/third_party/tinycbor/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", - "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", - "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" + "args": { + "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=", + "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", + "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ots/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", - "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", - "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" + "args": { + "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=", + "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", + "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pdfium": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-/u+HYjmxSIX2GlriEWYZQJ8TDFNfzSufATGq1j9zx9w=", - "rev": "12f7715a6390050c5cffb7e4c9b2be1c2f2956d0", - "url": "https://pdfium.googlesource.com/pdfium.git" + "args": { + "hash": "sha256-/u+HYjmxSIX2GlriEWYZQJ8TDFNfzSufATGq1j9zx9w=", + "rev": "12f7715a6390050c5cffb7e4c9b2be1c2f2956d0", + "url": "https://pdfium.googlesource.com/pdfium.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/perfetto": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-bjgSwq4LPz9qN9rVqIJUTHetRguCx67Uq5oe1ksPqGE=", - "rev": "0d78d85c2bfb993ab8dd9a85b6fee6caa6a0f357", - "url": "https://android.googlesource.com/platform/external/perfetto.git" + "args": { + "hash": "sha256-bjgSwq4LPz9qN9rVqIJUTHetRguCx67Uq5oe1ksPqGE=", + "rev": "0d78d85c2bfb993ab8dd9a85b6fee6caa6a0f357", + "url": "https://android.googlesource.com/platform/external/perfetto.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/protobuf-javascript/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=", - "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", - "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" + "args": { + "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=", + "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", + "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pthreadpool/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-cFRELaRtWspZaqtmdKmVPqM7HVskHlFMAny+Zv/Zflw=", - "rev": "e1469417238e13eebaa001779fa031ed25c59def", - "url": "https://chromium.googlesource.com/external/github.com/google/pthreadpool.git" + "args": { + "hash": "sha256-cFRELaRtWspZaqtmdKmVPqM7HVskHlFMAny+Zv/Zflw=", + "rev": "e1469417238e13eebaa001779fa031ed25c59def", + "url": "https://chromium.googlesource.com/external/github.com/google/pthreadpool.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pyelftools": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", - "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", - "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" + "args": { + "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=", + "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", + "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/pywebsocket3/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", - "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" + "args": { + "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=", + "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/quic_trace/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-N1uFoNd3mz/LH1z06581Ds7BUyc67SNXUPzqomYREr8=", - "rev": "413da873d93a03d3662f24b881ea459a79f9c589", - "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" + "args": { + "hash": "sha256-N1uFoNd3mz/LH1z06581Ds7BUyc67SNXUPzqomYREr8=", + "rev": "413da873d93a03d3662f24b881ea459a79f9c589", + "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/re2/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=", - "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", - "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" + "args": { + "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=", + "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", + "url": "https://chromium.googlesource.com/external/github.com/google/re2.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ruy/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-O3JEtXchCdIHdGvjD6kGMJzj7TWVczQCW2YUHK3cABA=", - "rev": "83fd40d730feb0804fafbc2d8814bcc19a17b2e5", - "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" + "args": { + "hash": "sha256-O3JEtXchCdIHdGvjD6kGMJzj7TWVczQCW2YUHK3cABA=", + "rev": "83fd40d730feb0804fafbc2d8814bcc19a17b2e5", + "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/search_engines_data/resources": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-8RY3AU2V4iZKEmVwT7Z1Q3QlcTXDIdeyYwnQoyJcAUY=", - "rev": "6dc3b54b420e6e03a34ee7259fcd2b1978fac5f3", - "url": "https://chromium.googlesource.com/external/search_engines_data.git" + "args": { + "hash": "sha256-8RY3AU2V4iZKEmVwT7Z1Q3QlcTXDIdeyYwnQoyJcAUY=", + "rev": "6dc3b54b420e6e03a34ee7259fcd2b1978fac5f3", + "url": "https://chromium.googlesource.com/external/search_engines_data.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/securemessage/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", - "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", - "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" + "args": { + "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=", + "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", + "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/skia": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-tP6DnMeOoVqfTSn6bYXMLiCb4wg5f9uB28KzYMAeBUw=", - "rev": "aefbd9403c1b3032ad4cd0281ef312ed262c7125", - "url": "https://skia.googlesource.com/skia.git" + "args": { + "hash": "sha256-tP6DnMeOoVqfTSn6bYXMLiCb4wg5f9uB28KzYMAeBUw=", + "rev": "aefbd9403c1b3032ad4cd0281ef312ed262c7125", + "url": "https://skia.googlesource.com/skia.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/smhasher/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-OgZQwkQcVgRMf62ROGuY+3zQhBoWuUSP4naTmSKdq8s=", - "rev": "0ff96f7835817a27d0487325b6c16033e2992eb5", - "url": "https://chromium.googlesource.com/external/smhasher.git" + "args": { + "hash": "sha256-OgZQwkQcVgRMf62ROGuY+3zQhBoWuUSP4naTmSKdq8s=", + "rev": "0ff96f7835817a27d0487325b6c16033e2992eb5", + "url": "https://chromium.googlesource.com/external/smhasher.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/snappy/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-jUwnjbaqXz7fgI2TPRK7SlUPQUVzcpjp4ZlFbEzwA+o=", - "rev": "32ded457c0b1fe78ceb8397632c416568d6714a0", - "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" + "args": { + "hash": "sha256-jUwnjbaqXz7fgI2TPRK7SlUPQUVzcpjp4ZlFbEzwA+o=", + "rev": "32ded457c0b1fe78ceb8397632c416568d6714a0", + "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/speedometer/main": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-lCwGk4Q+OXwO8vOlOQrkgygYqLrwpku/PkR03oEdX3Y=", - "rev": "d6b5ffea959ad31e231c203d7446bf8b39e987ce", - "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + "args": { + "hash": "sha256-lCwGk4Q+OXwO8vOlOQrkgygYqLrwpku/PkR03oEdX3Y=", + "rev": "d6b5ffea959ad31e231c203d7446bf8b39e987ce", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/speedometer/v2.0": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-p7WUS8gZUaS+LOm7pNmRkwgxjx+V8R6yy7bbaEHaIs4=", - "rev": "732af0dfe867f8815e662ac637357e55f285dbbb", - "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + "args": { + "hash": "sha256-p7WUS8gZUaS+LOm7pNmRkwgxjx+V8R6yy7bbaEHaIs4=", + "rev": "732af0dfe867f8815e662ac637357e55f285dbbb", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/speedometer/v2.1": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-0z5tZlz32fYh9I1ALqfLm2WWO8HiRBwt0hcmgKQhaeM=", - "rev": "8bf7946e39e47c875c00767177197aea5727e84a", - "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + "args": { + "hash": "sha256-0z5tZlz32fYh9I1ALqfLm2WWO8HiRBwt0hcmgKQhaeM=", + "rev": "8bf7946e39e47c875c00767177197aea5727e84a", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/speedometer/v3.0": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", - "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", - "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + "args": { + "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=", + "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/spirv-cross/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", - "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" + "args": { + "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=", + "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/spirv-headers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-/p7kBW7mwpG/Uz0goMM7L3zjpOMBzGiuN+0ZBEOpORo=", - "rev": "e7294a8ebed84f8c5bd3686c68dbe12a4e65b644", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" + "args": { + "hash": "sha256-/p7kBW7mwpG/Uz0goMM7L3zjpOMBzGiuN+0ZBEOpORo=", + "rev": "e7294a8ebed84f8c5bd3686c68dbe12a4e65b644", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/spirv-tools/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-SJcxmKdzOjg6lOJk/3m8qo7puvtci1YEU6dXKjthx0Q=", - "rev": "ce37fd67f83cd1e8793b988d2e4126bbf72b19dd", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" + "args": { + "hash": "sha256-SJcxmKdzOjg6lOJk/3m8qo7puvtci1YEU6dXKjthx0Q=", + "rev": "ce37fd67f83cd1e8793b988d2e4126bbf72b19dd", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/sqlite/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=", - "rev": "567495a62a62dc013888500526e82837d727fe01", - "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" + "args": { + "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=", + "rev": "567495a62a62dc013888500526e82837d727fe01", + "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/squirrel.mac": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", - "owner": "Squirrel", - "repo": "Squirrel.Mac", - "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" + "args": { + "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=", + "owner": "Squirrel", + "repo": "Squirrel.Mac", + "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/squirrel.mac/vendor/Mantle": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", - "owner": "Mantle", - "repo": "Mantle", - "rev": "78d3966b3c331292ea29ec38661b25df0a245948" + "args": { + "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=", + "owner": "Mantle", + "repo": "Mantle", + "rev": "78d3966b3c331292ea29ec38661b25df0a245948" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/squirrel.mac/vendor/ReactiveObjC": { - "fetcher": "fetchFromGitHub", - "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", - "owner": "ReactiveCocoa", - "repo": "ReactiveObjC", - "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" + "args": { + "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=", + "owner": "ReactiveCocoa", + "repo": "ReactiveObjC", + "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76" + }, + "fetcher": "fetchFromGitHub" }, "src/third_party/swiftshader": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-PSkIU8zC+4AVcYu0vaYo6I1SSykrHgcgGVMBJanux8o=", - "rev": "86cf34f50cbe5a9f35da7eedad0f4d4127fb8342", - "url": "https://swiftshader.googlesource.com/SwiftShader.git" + "args": { + "hash": "sha256-PSkIU8zC+4AVcYu0vaYo6I1SSykrHgcgGVMBJanux8o=", + "rev": "86cf34f50cbe5a9f35da7eedad0f4d4127fb8342", + "url": "https://swiftshader.googlesource.com/SwiftShader.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/text-fragments-polyfill/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", - "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", - "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" + "args": { + "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=", + "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/tflite/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-qXHENS/6NwHAr1/16eb079XzmwAnpLtVZuva8uGCf+8=", - "rev": "51c6eed226abcfeeb46864e837d01563cc5b907b", - "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" + "args": { + "hash": "sha256-qXHENS/6NwHAr1/16eb079XzmwAnpLtVZuva8uGCf+8=", + "rev": "51c6eed226abcfeeb46864e837d01563cc5b907b", + "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/ukey2/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", - "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", - "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" + "args": { + "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=", + "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", + "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-deps": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-9ebWETg/fsS4MYZg74XHs/Nz3nX6BXBNVRN2PmyWXWM=", - "rev": "2e4b45a53a0e2e66bcb6540ae384c53a517218d0", - "url": "https://chromium.googlesource.com/vulkan-deps" + "args": { + "hash": "sha256-9ebWETg/fsS4MYZg74XHs/Nz3nX6BXBNVRN2PmyWXWM=", + "rev": "2e4b45a53a0e2e66bcb6540ae384c53a517218d0", + "url": "https://chromium.googlesource.com/vulkan-deps" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-headers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-twJJVBfnZbH/8Wn273h45K3BOnlAicqL2zJl6OfLm2E=", - "rev": "39f924b810e561fd86b2558b6711ca68d4363f68", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" + "args": { + "hash": "sha256-twJJVBfnZbH/8Wn273h45K3BOnlAicqL2zJl6OfLm2E=", + "rev": "39f924b810e561fd86b2558b6711ca68d4363f68", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-loader/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-QqFC3Iyhw9Pq6TwBHxa0Ss7SW0bHo0Uz5N18oxl2ROg=", - "rev": "0508dee4ff864f5034ae6b7f68d34cb2822b827d", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" + "args": { + "hash": "sha256-QqFC3Iyhw9Pq6TwBHxa0Ss7SW0bHo0Uz5N18oxl2ROg=", + "rev": "0508dee4ff864f5034ae6b7f68d34cb2822b827d", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-tools/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-nIzrishMMxWzOuD3aX8B6Iuq2kPsUF0Uuvz7GijTulY=", - "rev": "c52931f012cb7b48e42bbf2050a7fb2183b76406", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" + "args": { + "hash": "sha256-nIzrishMMxWzOuD3aX8B6Iuq2kPsUF0Uuvz7GijTulY=", + "rev": "c52931f012cb7b48e42bbf2050a7fb2183b76406", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-utility-libraries/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-zI3y5aoP4QcYp677Oxj5Ef7lJyJwOMdGsaRBe+X9vpI=", - "rev": "fe7a09b13899c5c77d956fa310286f7a7eb2c4ed", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" + "args": { + "hash": "sha256-zI3y5aoP4QcYp677Oxj5Ef7lJyJwOMdGsaRBe+X9vpI=", + "rev": "fe7a09b13899c5c77d956fa310286f7a7eb2c4ed", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan-validation-layers/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-foa5hzqf1hPwOj3k57CloCe/j0qXW3zCQ4mwCT4epF4=", - "rev": "a30aa23cfaff4f28f039c025c159128a6c336a7e", - "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" + "args": { + "hash": "sha256-foa5hzqf1hPwOj3k57CloCe/j0qXW3zCQ4mwCT4epF4=", + "rev": "a30aa23cfaff4f28f039c025c159128a6c336a7e", + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/vulkan_memory_allocator": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", - "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", - "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" + "args": { + "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=", + "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", + "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wasm_tts_engine/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-bV+1YFEtCyTeZujsZtZiexT/aUTN3MaVerR2UdkUPBY=", - "rev": "7a91dbfddd93afa096a69fb7d292e22d4afecad2", - "url": "https://chromium.googlesource.com/chromium/wasm-tts-engine" + "args": { + "hash": "sha256-bV+1YFEtCyTeZujsZtZiexT/aUTN3MaVerR2UdkUPBY=", + "rev": "7a91dbfddd93afa096a69fb7d292e22d4afecad2", + "url": "https://chromium.googlesource.com/chromium/wasm-tts-engine" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland-protocols/gtk": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", - "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", - "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" + "args": { + "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=", + "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", + "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland-protocols/kde": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", - "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", - "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" + "args": { + "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=", + "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", + "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland-protocols/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", - "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" + "args": { + "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=", + "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wayland/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", - "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" + "args": { + "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=", + "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webdriver/pylib": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", - "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", - "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" + "args": { + "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=", + "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", + "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webgl/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-32r3BdmsNA89mo0k+vK1G3718AOjseE7cJlopZ/0pSw=", - "rev": "450cceb587613ac1469c5a131fac15935c99e0e7", - "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" + "args": { + "hash": "sha256-32r3BdmsNA89mo0k+vK1G3718AOjseE7cJlopZ/0pSw=", + "rev": "450cceb587613ac1469c5a131fac15935c99e0e7", + "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webgpu-cts/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-tjY5ADd5tMFsYHk6xT+TXwsDYV5eI2oOywmyTjjAxYc=", - "rev": "fb2b951ac3c23e453335edf35c9b3bad431d9009", - "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" + "args": { + "hash": "sha256-tjY5ADd5tMFsYHk6xT+TXwsDYV5eI2oOywmyTjjAxYc=", + "rev": "fb2b951ac3c23e453335edf35c9b3bad431d9009", + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webpagereplay": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-KAkkFVxEfQxbSjD+55LO4UZYWWwmGK6B9ENFSPljNu0=", - "rev": "d812e180206934eb3b7ae411d82d61bc21c22f70", - "url": "https://chromium.googlesource.com/webpagereplay.git" + "args": { + "hash": "sha256-KAkkFVxEfQxbSjD+55LO4UZYWWwmGK6B9ENFSPljNu0=", + "rev": "d812e180206934eb3b7ae411d82d61bc21c22f70", + "url": "https://chromium.googlesource.com/webpagereplay.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/webrtc": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-IsjTrEnxIqINYYjWJmDp7rlubl5dJ2YMpJf/DrG/mRM=", - "rev": "8d78f5de6c27b2c793039989ea381f1428fb0100", - "url": "https://webrtc.googlesource.com/src.git" + "args": { + "hash": "sha256-IsjTrEnxIqINYYjWJmDp7rlubl5dJ2YMpJf/DrG/mRM=", + "rev": "8d78f5de6c27b2c793039989ea381f1428fb0100", + "url": "https://webrtc.googlesource.com/src.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/weston/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=", - "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", - "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" + "args": { + "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=", + "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/wuffs/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", - "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", - "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" + "args": { + "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=", + "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/xdg-utils": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", - "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", - "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" + "args": { + "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=", + "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", + "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/xnnpack/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-eb9B9lXPB2GiC4qehB/HOU36W1e9RZ0N2oEbIifyrHE=", - "rev": "0824e2965f6edc2297e55c8dff5a8ac4cb12aaad", - "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" + "args": { + "hash": "sha256-eb9B9lXPB2GiC4qehB/HOU36W1e9RZ0N2oEbIifyrHE=", + "rev": "0824e2965f6edc2297e55c8dff5a8ac4cb12aaad", + "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git" + }, + "fetcher": "fetchFromGitiles" }, "src/third_party/zstd/src": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-UJsuaSzR4V8alLdtxzpla1v9WYHPKPp13YrgA4Y6/yA=", - "rev": "ea0aa030cdf31f7897c5bfc153f0d36e92768095", - "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" + "args": { + "hash": "sha256-UJsuaSzR4V8alLdtxzpla1v9WYHPKPp13YrgA4Y6/yA=", + "rev": "ea0aa030cdf31f7897c5bfc153f0d36e92768095", + "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git" + }, + "fetcher": "fetchFromGitiles" }, "src/v8": { - "fetcher": "fetchFromGitiles", - "hash": "sha256-wpz9W/ZurpCT/dGIHGpmdkI3dsXbP8TPNeee2w9zBU8=", - "rev": "4f282ae4acae85cdcc8c167cbc296a86d24c1cf6", - "url": "https://chromium.googlesource.com/v8/v8.git" + "args": { + "hash": "sha256-wpz9W/ZurpCT/dGIHGpmdkI3dsXbP8TPNeee2w9zBU8=", + "rev": "4f282ae4acae85cdcc8c167cbc296a86d24c1cf6", + "url": "https://chromium.googlesource.com/v8/v8.git" + }, + "fetcher": "fetchFromGitiles" } }, "electron_yarn_hash": "0l38rbmlrcrgkw7ggj33xszcs7arm601gzq4c8v0rn3m5zp6yr77", "modules": "133", "node": "22.14.0", - "version": "35.1.2" + "version": "35.1.4" } } diff --git a/pkgs/development/tools/electron/update.py b/pkgs/development/tools/electron/update.py index 6a136575a75b..e7747c73f957 100755 --- a/pkgs/development/tools/electron/update.py +++ b/pkgs/development/tools/electron/update.py @@ -1,9 +1,9 @@ #! /usr/bin/env nix-shell -#! nix-shell -i python -p python3.pkgs.joblib python3.pkgs.click python3.pkgs.click-log nix nix-prefetch-git nurl prefetch-yarn-deps prefetch-npm-deps +#! nix-shell -i python -p python3.pkgs.joblib python3.pkgs.click python3.pkgs.click-log nix nix-prefetch-git prefetch-yarn-deps prefetch-npm-deps gclient2nix """ electron updater -A script for updating both binary and source hashes. +A script for updating electron source hashes. It supports the following modes: @@ -11,20 +11,15 @@ It supports the following modes: |------------- | ----------------------------------------------- | | `update` | for updating a specific Electron release | | `update-all` | for updating all electron releases at once | -| `eval` | just print the necessary sources to fetch | -The `eval` and `update` commands accept an optional `--version` flag -to restrict the mechanism only to a given major release. +The `update` commands requires a `--version` flag +to specify the major release to be updated. +The `update-all command updates all non-eol major releases. The `update` and `update-all` commands accept an optional `--commit` flag to automatically commit the changes for you. - -The `update` and `update-all` commands accept optional `--bin-only` -and `--source-only` flags to restict the update to binary or source -releases. """ import base64 -import csv import json import logging import os @@ -33,52 +28,20 @@ import re import subprocess import sys import tempfile -import traceback import urllib.request - -from abc import ABC -from codecs import iterdecode -from datetime import datetime -from typing import Iterable, Optional, Tuple -from urllib.request import urlopen - import click import click_log +from datetime import datetime +from typing import Iterable, Tuple +from urllib.request import urlopen from joblib import Parallel, delayed, Memory - -depot_tools_checkout = tempfile.TemporaryDirectory() -subprocess.check_call( - [ - "nix-prefetch-git", - "--builder", - "--quiet", - "--url", - "https://chromium.googlesource.com/chromium/tools/depot_tools", - "--out", - depot_tools_checkout.name, - "--rev", - "452fe3be37f78fbecefa1b4b0d359531bcd70d0d" - ] -) -sys.path.append(depot_tools_checkout.name) - -import gclient_eval -import gclient_utils +from update_util import * # Relative path to the electron-source info.json SOURCE_INFO_JSON = "info.json" -# Relatice path to the electron-bin info.json -BINARY_INFO_JSON = "binary/info.json" - -# Relative path the the electron-chromedriver info.json -CHROMEDRIVER_INFO_JSON = "chromedriver/info.json" - -# Number of spaces used for each indentation level -JSON_INDENT = 4 - os.chdir(os.path.dirname(__file__)) memory: Memory = Memory("cache", verbose=0) @@ -86,328 +49,39 @@ memory: Memory = Memory("cache", verbose=0) logger = logging.getLogger(__name__) click_log.basic_config(logger) -nixpkgs_path = os.path.dirname(os.path.realpath(__file__)) + "/../../../.." + +def get_gclient_data(rev: str) -> any: + output = subprocess.check_output( + ["gclient2nix", "generate", + f"https://github.com/electron/electron@{rev}", + "--root", "src/electron"] + ) + + return json.loads(output) -class Repo: - fetcher: str - args: dict - - def __init__(self) -> None: - self.deps: dict = {} - self.hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" - - def get_deps(self, repo_vars: dict, path: str) -> None: - print( - "evaluating " + json.dumps(self, default=vars, sort_keys=True), - file=sys.stderr, - ) - - deps_file = self.get_file("DEPS") - evaluated = gclient_eval.Parse(deps_file, vars_override=repo_vars, filename="DEPS") - - repo_vars = dict(evaluated.get("vars", {})) | repo_vars - - prefix = f"{path}/" if evaluated.get("use_relative_paths", False) else "" - - self.deps = { - prefix + dep_name: repo_from_dep(dep) - for dep_name, dep in evaluated.get("deps", {}).items() - if ( - gclient_eval.EvaluateCondition(dep["condition"], repo_vars) - if "condition" in dep - else True - ) - and repo_from_dep(dep) != None - } - - for key in evaluated.get("recursedeps", []): - dep_path = prefix + key - if dep_path in self.deps and dep_path != "src/third_party/squirrel.mac": - self.deps[dep_path].get_deps(repo_vars, dep_path) - - def prefetch(self) -> None: - self.hash = get_repo_hash(self.fetcher, self.args) - - def prefetch_all(self) -> int: - return sum( - [dep.prefetch_all() for [_, dep] in self.deps.items()], - [delayed(self.prefetch)()], - ) - - def flatten_repr(self) -> dict: - return {"fetcher": self.fetcher, "hash": self.hash, **self.args} - - def flatten(self, path: str) -> dict: - out = {path: self.flatten_repr()} - for dep_path, dep in self.deps.items(): - out |= dep.flatten(dep_path) - return out - - def get_file(self, filepath: str) -> str: - raise NotImplementedError - - -class GitRepo(Repo): - def __init__(self, url: str, rev: str) -> None: - super().__init__() - self.fetcher = "fetchgit" - self.args = { - "url": url, - "rev": rev, - } - - -class GitHubRepo(Repo): - def __init__(self, owner: str, repo: str, rev: str) -> None: - super().__init__() - self.fetcher = "fetchFromGitHub" - self.args = { - "owner": owner, - "repo": repo, - "rev": rev, - } - - def get_file(self, filepath: str) -> str: - return ( - urlopen( - f"https://raw.githubusercontent.com/{self.args['owner']}/{self.args['repo']}/{self.args['rev']}/{filepath}" - ) - .read() - .decode("utf-8") - ) - - -class GitilesRepo(Repo): - def __init__(self, url: str, rev: str) -> None: - super().__init__() - self.fetcher = "fetchFromGitiles" - self.args = { - "url": url, - "rev": rev, - } - - if url == "https://chromium.googlesource.com/chromium/src.git": - self.args["postFetch"] = "rm -r $out/third_party/blink/web_tests; " - self.args["postFetch"] += "rm -rf $out/third_party/hunspell/tests; " - self.args["postFetch"] += "rm -r $out/content/test/data; " - self.args["postFetch"] += "rm -rf $out/courgette/testdata; " - self.args["postFetch"] += "rm -r $out/extensions/test/data; " - self.args["postFetch"] += "rm -r $out/media/test/data; " - - def get_file(self, filepath: str) -> str: - return base64.b64decode( - urlopen( - f"{self.args['url']}/+/{self.args['rev']}/{filepath}?format=TEXT" - ).read() +def get_chromium_file(chromium_rev: str, filepath: str) -> str: + return base64.b64decode( + urlopen( + f"https://chromium.googlesource.com/chromium/src.git/+/{chromium_rev}/{filepath}?format=TEXT" + ).read() ).decode("utf-8") -class ElectronBinRepo(GitHubRepo): - def __init__(self, owner: str, repo: str, rev: str) -> None: - super().__init__(owner, repo, rev) - self.systems = { - "i686-linux": "linux-ia32", - "x86_64-linux": "linux-x64", - "armv7l-linux": "linux-armv7l", - "aarch64-linux": "linux-arm64", - "x86_64-darwin": "darwin-x64", - "aarch64-darwin": "darwin-arm64", - } - - def get_shasums256(self, version: str) -> list: - """Returns the contents of SHASUMS256.txt""" - try: - called_process: subprocess.CompletedProcess = subprocess.run( - [ - "nix-prefetch-url", - "--print-path", - f"https://github.com/electron/electron/releases/download/v{version}/SHASUMS256.txt", - ], - capture_output=True, - check=True, - text=True, - ) - - hash_file_path = called_process.stdout.split("\n")[1] - - with open(hash_file_path, "r") as f: - return f.read().split("\n") - - except subprocess.CalledProcessError as err: - print(err.stderr) - sys.exit(1) - - def get_headers(self, version: str) -> str: - """Returns the hash of the release headers tarball""" - try: - called_process: subprocess.CompletedProcess = subprocess.run( - [ - "nix-prefetch-url", - f"https://artifacts.electronjs.org/headers/dist/v{version}/node-v{version}-headers.tar.gz", - ], - capture_output=True, - check=True, - text=True, - ) - return called_process.stdout.split("\n")[0] - except subprocess.CalledProcessError as err: - print(err.stderr) - sys.exit(1) - - def get_hashes(self, major_version: str) -> dict: - """Returns a dictionary of hashes for a given major version""" - m, _ = get_latest_version(major_version) - version: str = m["version"] - - out = {} - out[major_version] = { - "hashes": {}, - "version": version, - } - - hashes: list = self.get_shasums256(version) - - for nix_system, electron_system in self.systems.items(): - filename = f"*electron-v{version}-{electron_system}.zip" - if any([x.endswith(filename) for x in hashes]): - out[major_version]["hashes"][nix_system] = [ - x.split(" ")[0] for x in hashes if x.endswith(filename) - ][0] - out[major_version]["hashes"]["headers"] = self.get_headers(version) - - return out - - -class ElectronChromedriverRepo(ElectronBinRepo): - def __init__(self, rev: str) -> None: - super().__init__("electron", "electron", rev) - self.systems = { - "i686-linux": "linux-ia32", - "x86_64-linux": "linux-x64", - "armv7l-linux": "linux-armv7l", - "aarch64-linux": "linux-arm64", - "x86_64-darwin": "darwin-x64", - "aarch64-darwin": "darwin-arm64", - } - - def get_hashes(self, major_version: str) -> dict: - """Returns a dictionary of hashes for a given major version""" - m, _ = get_latest_version(major_version) - version: str = m["version"] - - out = {} - out[major_version] = { - "hashes": {}, - "version": version, - } - - hashes: list = self.get_shasums256(version) - - for nix_system, electron_system in self.systems.items(): - filename = f"*chromedriver-v{version}-{electron_system}.zip" - if any([x.endswith(filename) for x in hashes]): - out[major_version]["hashes"][nix_system] = [ - x.split(" ")[0] for x in hashes if x.endswith(filename) - ][0] - out[major_version]["hashes"]["headers"] = self.get_headers(version) - - return out - - -# Releases that have reached end-of-life no longer receive any updates -# and it is rather pointless trying to update those. -# -# https://endoflife.date/electron -def supported_version_range() -> range: - """Returns a range of electron releases that have not reached end-of-life yet""" - releases_json = json.loads( - urlopen("https://endoflife.date/api/electron.json").read() - ) - supported_releases = [ - int(x["cycle"]) - for x in releases_json - if x["eol"] == False - or datetime.strptime(x["eol"], "%Y-%m-%d") > datetime.today() - ] - - return range( - min(supported_releases), # incl. - # We have also packaged the beta release in nixpkgs, - # but it is not tracked by endoflife.date - max(supported_releases) + 2, # excl. - 1, +def get_electron_file(electron_rev: str, filepath: str) -> str: + return ( + urlopen( + f"https://raw.githubusercontent.com/electron/electron/{electron_rev}/{filepath}" + ) + .read() + .decode("utf-8") ) @memory.cache -def get_repo_hash(fetcher: str, args: dict) -> str: - expr = f"with import {nixpkgs_path} {{}};{fetcher}{{" - for key, val in args.items(): - expr += f'{key}="{val}";' - expr += "}" - cmd = ["nurl", "-H", "--expr", expr] - print(" ".join(cmd), file=sys.stderr) - out = subprocess.check_output(cmd) - return out.decode("utf-8").strip() - - -@memory.cache -def _get_yarn_hash(path: str) -> str: - print(f"prefetch-yarn-deps", file=sys.stderr) - with tempfile.TemporaryDirectory() as tmp_dir: - with open(tmp_dir + "/yarn.lock", "w") as f: - f.write(path) - return ( - subprocess.check_output(["prefetch-yarn-deps", tmp_dir + "/yarn.lock"]) - .decode("utf-8") - .strip() - ) - - -def get_yarn_hash(repo: Repo, yarn_lock_path: str = "yarn.lock") -> str: - return _get_yarn_hash(repo.get_file(yarn_lock_path)) - - -@memory.cache -def _get_npm_hash(filename: str) -> str: - print(f"prefetch-npm-deps", file=sys.stderr) - with tempfile.TemporaryDirectory() as tmp_dir: - with open(tmp_dir + "/package-lock.json", "w") as f: - f.write(filename) - return ( - subprocess.check_output( - ["prefetch-npm-deps", tmp_dir + "/package-lock.json"] - ) - .decode("utf-8") - .strip() - ) - - -def get_npm_hash(repo: Repo, package_lock_path: str = "package-lock.json") -> str: - return _get_npm_hash(repo.get_file(package_lock_path)) - - -def repo_from_dep(dep: dict) -> Optional[Repo]: - if "url" in dep: - url, rev = gclient_utils.SplitUrlRevision(dep["url"]) - - search_object = re.search(r"https://github.com/(.+)/(.+?)(\.git)?$", url) - if search_object: - return GitHubRepo(search_object.group(1), search_object.group(2), rev) - - if re.match(r"https://.+\.googlesource.com", url): - return GitilesRepo(url, rev) - - return GitRepo(url, rev) - else: - # Not a git dependency; skip - return None - - -def get_gn_source(repo: Repo) -> dict: +def get_chromium_gn_source(chromium_rev: str) -> dict: gn_pattern = r"'gn_version': 'git_revision:([0-9a-f]{40})'" - gn_commit = re.search(gn_pattern, repo.get_file("DEPS")).group(1) + gn_commit = re.search(gn_pattern, get_chromium_file(chromium_rev, "DEPS")).group(1) gn_prefetch: bytes = subprocess.check_output( [ "nix-prefetch-git", @@ -427,70 +101,42 @@ def get_gn_source(repo: Repo) -> dict: } } +@memory.cache +def get_electron_yarn_hash(electron_rev: str) -> str: + print(f"prefetch-yarn-deps", file=sys.stderr) + with tempfile.TemporaryDirectory() as tmp_dir: + with open(tmp_dir + "/yarn.lock", "w") as f: + f.write(get_electron_file(electron_rev, "yarn.lock")) + return ( + subprocess.check_output(["prefetch-yarn-deps", tmp_dir + "/yarn.lock"]) + .decode("utf-8") + .strip() + ) -def get_latest_version(major_version: str) -> Tuple[str, str]: - """Returns the latest version for a given major version""" - electron_releases: dict = json.loads( - urlopen("https://releases.electronjs.org/releases.json").read() - ) - major_version_releases = filter( - lambda item: item["version"].startswith(f"{major_version}."), electron_releases - ) - m = max(major_version_releases, key=lambda item: item["date"]) - - rev = f"v{m['version']}" - return (m, rev) +@memory.cache +def get_chromium_npm_hash(chromium_rev: str) -> str: + print(f"prefetch-npm-deps", file=sys.stderr) + with tempfile.TemporaryDirectory() as tmp_dir: + with open(tmp_dir + "/package-lock.json", "w") as f: + f.write(get_chromium_file(chromium_rev, "third_party/node/package-lock.json")) + return ( + subprocess.check_output( + ["prefetch-npm-deps", tmp_dir + "/package-lock.json"] + ) + .decode("utf-8") + .strip() + ) -def get_electron_bin_info(major_version: str) -> Tuple[str, str, ElectronBinRepo]: - m, rev = get_latest_version(major_version) +def get_update(major_version: str, m: str, gclient_data: any) -> Tuple[str, dict]: - electron_repo: ElectronBinRepo = ElectronBinRepo("electron", "electron", rev) - return (major_version, m, electron_repo) - - -def get_electron_chromedriver_info( - major_version: str, -) -> Tuple[str, str, ElectronChromedriverRepo]: - m, rev = get_latest_version(major_version) - - electron_repo: ElectronChromedriverRepo = ElectronChromedriverRepo(rev) - return (major_version, m, electron_repo) - - -def get_electron_info(major_version: str) -> Tuple[str, str, GitHubRepo]: - m, rev = get_latest_version(major_version) - - electron_repo: GitHubRepo = GitHubRepo("electron", "electron", rev) - electron_repo.get_deps( - { - **{ - f"checkout_{platform}": platform == "linux" or platform == "x64" or platform == "arm64" or platform == "arm" - for platform in ["ios", "chromeos", "android", "mac", "win", "linux"] - }, - **{ - f"checkout_{arch}": True - for arch in ["x64", "arm64", "arm", "x86", "mips", "mips64", "ppc"] - }, - }, - "src/electron", - ) - - return (major_version, m, electron_repo) - - -def get_update(repo: Tuple[str, str, Repo]) -> Tuple[str, dict]: - (major_version, m, electron_repo) = repo - - tasks = electron_repo.prefetch_all() - a = lambda: (("electron_yarn_hash", get_yarn_hash(electron_repo))) + tasks = [] + a = lambda: (("electron_yarn_hash", get_electron_yarn_hash(gclient_data["src/electron"]["args"]["rev"]))) tasks.append(delayed(a)()) a = lambda: ( ( "chromium_npm_hash", - get_npm_hash( - electron_repo.deps["src"], "third_party/node/package-lock.json" - ), + get_chromium_npm_hash(gclient_data["src"]["args"]["rev"]), ) ) tasks.append(delayed(a)()) @@ -502,145 +148,76 @@ def get_update(repo: Tuple[str, str, Repo]) -> Tuple[str, dict]: if n != None } - tree = electron_repo.flatten("src/electron") - return ( f"{major_version}", { - "deps": tree, + "deps": gclient_data, **{key: m[key] for key in ["version", "modules", "chrome", "node"]}, "chromium": { "version": m["chrome"], - "deps": get_gn_source(electron_repo.deps["src"]), + "deps": get_chromium_gn_source(gclient_data["src"]["args"]["rev"]), }, **task_results, }, ) -def load_info_json(path: str) -> dict: - """Load the contents of a JSON file - - Args: - path: The path to the JSON file - - Returns: An empty dict if the path does not exist, otherwise the contents of the JSON file. - """ - try: - with open(path, "r") as f: - return json.loads(f.read()) - except: - return {} - - -def save_info_json(path: str, content: dict) -> None: - """Saves the given info to a JSON file - - Args: - path: The path where the info should be saved - content: The content to be saved as JSON. - """ - with open(path, "w") as f: - f.write(json.dumps(content, indent=JSON_INDENT, default=vars, sort_keys=True)) - f.write("\n") - - -def update_bin(major_version: str, commit: bool) -> None: - """Update a given electron-bin release - - Args: - major_version: The major version number, e.g. '27' - commit: Whether the updater should commit the result - """ - package_name = f"electron_{major_version}-bin" - print(f"Updating {package_name}") - - electron_bin_info = get_electron_bin_info(major_version) - (_major_version, _version, repo) = electron_bin_info - - old_info = load_info_json(BINARY_INFO_JSON) - new_info = repo.get_hashes(major_version) - - out = old_info | new_info - - save_info_json(BINARY_INFO_JSON, out) - - old_version = ( - old_info[major_version]["version"] if major_version in old_info else None - ) - new_version = new_info[major_version]["version"] - if old_version == new_version: - print(f"{package_name} is up-to-date") - elif commit: - commit_result(package_name, old_version, new_version, BINARY_INFO_JSON) - - -def update_chromedriver(major_version: str, commit: bool) -> None: - """Update a given electron-chromedriver release - - Args: - major_version: The major version number, e.g. '27' - commit: Whether the updater should commit the result - """ - package_name = f"electron-chromedriver_{major_version}" - print(f"Updating {package_name}") - - electron_chromedriver_info = get_electron_chromedriver_info(major_version) - (_major_version, _version, repo) = electron_chromedriver_info - - old_info = load_info_json(CHROMEDRIVER_INFO_JSON) - new_info = repo.get_hashes(major_version) - - out = old_info | new_info - - save_info_json(CHROMEDRIVER_INFO_JSON, out) - - old_version = ( - old_info[major_version]["version"] if major_version in old_info else None - ) - new_version = new_info[major_version]["version"] - if old_version == new_version: - print(f"{package_name} is up-to-date") - elif commit: - commit_result(package_name, old_version, new_version, CHROMEDRIVER_INFO_JSON) - - -def update_source(major_version: str, commit: bool) -> None: - """Update a given electron-source release - - Args: - major_version: The major version number, e.g. '27' - commit: Whether the updater should commit the result - """ - package_name = f"electron-source.electron_{major_version}" - print(f"Updating electron-source.electron_{major_version}") - - old_info = load_info_json(SOURCE_INFO_JSON) - old_version = ( - old_info[str(major_version)]["version"] - if str(major_version) in old_info - else None - ) - - electron_source_info = get_electron_info(major_version) - new_info = get_update(electron_source_info) - out = old_info | {new_info[0]: new_info[1]} - - save_info_json(SOURCE_INFO_JSON, out) - - new_version = new_info[1]["version"] - if old_version == new_version: - print(f"{package_name} is up-to-date") - elif commit: - commit_result(package_name, old_version, new_version, SOURCE_INFO_JSON) - - def non_eol_releases(releases: Iterable[int]) -> Iterable[int]: """Returns a list of releases that have not reached end-of-life yet.""" return tuple(filter(lambda x: x in supported_version_range(), releases)) -def update_all_source(commit: bool) -> None: +def update_source(version: str, commit: bool) -> None: + """Update a given electron-source release + + Args: + version: The major version number, e.g. '27' + commit: Whether the updater should commit the result + """ + major_version = version + + package_name = f"electron-source.electron_{major_version}" + print(f"Updating electron-source.electron_{major_version}") + + old_info = load_info_json(SOURCE_INFO_JSON) + old_version = ( + old_info[major_version]["version"] + if major_version in old_info + else None + ) + + m, rev = get_latest_version(major_version) + if old_version == m["version"]: + print(f"{package_name} is up-to-date") + return + + gclient_data = get_gclient_data(rev) + new_info = get_update(major_version, m, gclient_data) + out = old_info | {new_info[0]: new_info[1]} + + save_info_json(SOURCE_INFO_JSON, out) + + new_version = new_info[1]["version"] + if commit: + commit_result(package_name, old_version, new_version, SOURCE_INFO_JSON) + + +@click.group() +def cli() -> None: + """A script for updating electron-source hashes""" + pass + + +@cli.command("update", help="Update a single major release") +@click.option("-v", "--version", required=True, type=str, help="The major version, e.g. '23'") +@click.option("-c", "--commit", is_flag=True, default=False, help="Commit the result") +def update(version: str, commit: bool) -> None: + update_source(version, commit) + + +@cli.command("update-all", help="Update all releases at once") +@click.option("-c", "--commit", is_flag=True, default=False, help="Commit the result") +def update_all(commit: bool) -> None: """Update all eletron-source releases at once Args: @@ -650,218 +227,8 @@ def update_all_source(commit: bool) -> None: filtered_releases = non_eol_releases(tuple(map(lambda x: int(x), old_info.keys()))) - # This might take some time - repos = Parallel(n_jobs=2, require="sharedmem")( - delayed(get_electron_info)(major_version) for major_version in filtered_releases - ) - new_info = { - n[0]: n[1] - for n in Parallel(n_jobs=2, require="sharedmem")( - delayed(get_update)(repo) for repo in repos - ) - } - - if commit: - for major_version in filtered_releases: - # Since the sources have been fetched at this point already, - # fetching them again will be much faster. - update_source(str(major_version), commit) - else: - out = old_info | {new_info[0]: new_info[1]} - save_info_json(SOURCE_INFO_JSON, out) - - -def parse_cve_numbers(tag_name: str) -> Iterable[str]: - """Returns mentioned CVE numbers from a given release tag""" - cve_pattern = r"CVE-\d{4}-\d+" - url = f"https://api.github.com/repos/electron/electron/releases/tags/{tag_name}" - headers = { - "Accept": "application/vnd.github+json", - "X-GitHub-Api-Version": "2022-11-28", - } - request = urllib.request.Request(url=url, headers=headers) - release_note = "" - try: - with urlopen(request) as response: - release_note = json.loads(response.read().decode("utf-8"))["body"] - except: - print( - f"WARN: Fetching release note for {tag_name} from GitHub failed!", - file=sys.stderr, - ) - - return sorted(re.findall(cve_pattern, release_note)) - - -def commit_result( - package_name: str, old_version: Optional[str], new_version: str, path: str -) -> None: - """Creates a git commit with a short description of the change - - Args: - package_name: The package name, e.g. `electron-source.electron-{major_version}` - or `electron_{major_version}-bin` - - old_version: Version number before the update. - Can be left empty when initializing a new release. - - new_version: Version number after the update. - - path: Path to the lockfile to be committed - """ - assert ( - isinstance(package_name, str) and len(package_name) > 0 - ), "Argument `package_name` cannot be empty" - assert ( - isinstance(new_version, str) and len(new_version) > 0 - ), "Argument `new_version` cannot be empty" - - if old_version != new_version: - major_version = new_version.split(".")[0] - cve_fixes_text = "\n".join( - list( - map(lambda cve: f"- Fixes {cve}", parse_cve_numbers(f"v{new_version}")) - ) - ) - init_msg = f"init at {new_version}" - update_msg = f"{old_version} -> {new_version}" - diff = ( - f"- Diff: https://github.com/electron/electron/compare/refs/tags/v{old_version}...v{new_version}\n" - if old_version != None - else "" - ) - commit_message = f"""{package_name}: {update_msg if old_version != None else init_msg} - -- Changelog: https://github.com/electron/electron/releases/tag/v{new_version} -{diff}{cve_fixes_text} -""" - subprocess.run( - [ - "git", - "add", - path, - ] - ) - subprocess.run( - [ - "git", - "commit", - "-m", - commit_message, - ] - ) - - -@click.group() -def cli() -> None: - """A script for updating electron-bin and electron-source hashes""" - pass - - -@cli.command( - "eval", help="Print the necessary sources to fetch for a given major release" -) -@click.option("--version", help="The major version, e.g. '23'") -def eval(version): - (_, _, repo) = electron_repo = get_electron_info(version) - tree = repo.flatten("src/electron") - print(json.dumps(tree, indent=JSON_INDENT, default=vars, sort_keys=True)) - - -@cli.command("update-chromedriver", help="Update a single major release") -@click.option("-v", "--version", help="The major version, e.g. '23'") -@click.option("-c", "--commit", is_flag=True, default=False, help="Commit the result") -def update_chromedriver_cmd(version: str, commit: bool) -> None: - update_chromedriver(version, commit) - - -@cli.command("update", help="Update a single major release") -@click.option("-v", "--version", help="The major version, e.g. '23'") -@click.option( - "-b", - "--bin-only", - is_flag=True, - default=False, - help="Only update electron-bin packages", -) -@click.option( - "-s", - "--source-only", - is_flag=True, - default=False, - help="Only update electron-source packages", -) -@click.option("-c", "--commit", is_flag=True, default=False, help="Commit the result") -def update(version: str, bin_only: bool, source_only: bool, commit: bool) -> None: - assert isinstance(version, str) and len(version) > 0, "version must be non-empty" - - if bin_only and source_only: - print( - "Error: Omit --bin-only and --source-only if you want to update both source and binary packages.", - file=sys.stderr, - ) - sys.exit(1) - - elif bin_only: - update_bin(version, commit) - - elif source_only: - update_source(version, commit) - - else: - update_bin(version, commit) - update_source(version, commit) - - update_chromedriver(version, commit) - - -@cli.command("update-all", help="Update all releases at once") -@click.option( - "-b", - "--bin-only", - is_flag=True, - default=False, - help="Only update electron-bin packages", -) -@click.option( - "-s", - "--source-only", - is_flag=True, - default=False, - help="Only update electron-source packages", -) -@click.option("-c", "--commit", is_flag=True, default=False, help="Commit the result") -def update_all(bin_only: bool, source_only: bool, commit: bool) -> None: - # Filter out releases that have reached end-of-life - filtered_bin_info = dict( - filter( - lambda entry: int(entry[0]) in supported_version_range(), - load_info_json(BINARY_INFO_JSON).items(), - ) - ) - - if bin_only and source_only: - print( - "Error: omit --bin-only and --source-only if you want to update both source and binary packages.", - file=sys.stderr, - ) - sys.exit(1) - - elif bin_only: - for major_version, _ in filtered_bin_info.items(): - update_bin(major_version, commit) - - elif source_only: - update_all_source(commit) - - else: - for major_version, _ in filtered_bin_info.items(): - update_bin(major_version, commit) - - update_all_source(commit) - - for major_version, _ in filtered_bin_info.items(): - update_chromedriver(major_version, commit) + for major_version in filtered_releases: + update_source(str(major_version), commit) if __name__ == "__main__": diff --git a/pkgs/development/tools/electron/update_util.py b/pkgs/development/tools/electron/update_util.py new file mode 100755 index 000000000000..4c3f652776da --- /dev/null +++ b/pkgs/development/tools/electron/update_util.py @@ -0,0 +1,161 @@ +import json +import re +import sys +import subprocess +import urllib.request + +from typing import Iterable, Optional, Tuple +from urllib.request import urlopen +from datetime import datetime + +# Number of spaces used for each indentation level +JSON_INDENT = 4 + +releases_json = None + +# Releases that have reached end-of-life no longer receive any updates +# and it is rather pointless trying to update those. +# +# https://endoflife.date/electron +def supported_version_range() -> range: + """Returns a range of electron releases that have not reached end-of-life yet""" + global releases_json + if releases_json is None: + releases_json = json.loads( + urlopen("https://endoflife.date/api/electron.json").read() + ) + supported_releases = [ + int(x["cycle"]) + for x in releases_json + if x["eol"] == False + or datetime.strptime(x["eol"], "%Y-%m-%d") > datetime.today() + ] + + return range( + min(supported_releases), # incl. + # We have also packaged the beta release in nixpkgs, + # but it is not tracked by endoflife.date + max(supported_releases) + 2, # excl. + 1, + ) + +def get_latest_version(major_version: str) -> Tuple[str, str]: + """Returns the latest version for a given major version""" + electron_releases: dict = json.loads( + urlopen("https://releases.electronjs.org/releases.json").read() + ) + major_version_releases = filter( + lambda item: item["version"].startswith(f"{major_version}."), electron_releases + ) + m = max(major_version_releases, key=lambda item: item["date"]) + + rev = f"v{m['version']}" + return (m, rev) + + +def load_info_json(path: str) -> dict: + """Load the contents of a JSON file + + Args: + path: The path to the JSON file + + Returns: An empty dict if the path does not exist, otherwise the contents of the JSON file. + """ + try: + with open(path, "r") as f: + return json.loads(f.read()) + except: + return {} + + +def save_info_json(path: str, content: dict) -> None: + """Saves the given info to a JSON file + + Args: + path: The path where the info should be saved + content: The content to be saved as JSON. + """ + with open(path, "w") as f: + f.write(json.dumps(content, indent=JSON_INDENT, default=vars, sort_keys=True)) + f.write("\n") + + +def parse_cve_numbers(tag_name: str) -> Iterable[str]: + """Returns mentioned CVE numbers from a given release tag""" + cve_pattern = r"CVE-\d{4}-\d+" + url = f"https://api.github.com/repos/electron/electron/releases/tags/{tag_name}" + headers = { + "Accept": "application/vnd.github+json", + "X-GitHub-Api-Version": "2022-11-28", + } + request = urllib.request.Request(url=url, headers=headers) + release_note = "" + try: + with urlopen(request) as response: + release_note = json.loads(response.read().decode("utf-8"))["body"] + except: + print( + f"WARN: Fetching release note for {tag_name} from GitHub failed!", + file=sys.stderr, + ) + + return sorted(re.findall(cve_pattern, release_note)) + + +def commit_result( + package_name: str, old_version: Optional[str], new_version: str, path: str +) -> None: + """Creates a git commit with a short description of the change + + Args: + package_name: The package name, e.g. `electron-source.electron-{major_version}` + or `electron_{major_version}-bin` + + old_version: Version number before the update. + Can be left empty when initializing a new release. + + new_version: Version number after the update. + + path: Path to the lockfile to be committed + """ + assert ( + isinstance(package_name, str) and len(package_name) > 0 + ), "Argument `package_name` cannot be empty" + assert ( + isinstance(new_version, str) and len(new_version) > 0 + ), "Argument `new_version` cannot be empty" + + if old_version != new_version: + major_version = new_version.split(".")[0] + cve_fixes_text = "\n".join( + list( + map(lambda cve: f"- Fixes {cve}", parse_cve_numbers(f"v{new_version}")) + ) + ) + init_msg = f"init at {new_version}" + update_msg = f"{old_version} -> {new_version}" + diff = ( + f"- Diff: https://github.com/electron/electron/compare/refs/tags/v{old_version}...v{new_version}\n" + if old_version != None + else "" + ) + commit_message = f"""{package_name}: {update_msg if old_version != None else init_msg} + +- Changelog: https://github.com/electron/electron/releases/tag/v{new_version} +{diff}{cve_fixes_text} +""" + subprocess.run( + [ + "git", + "add", + path, + ] + ) + subprocess.run( + [ + "git", + "commit", + "-m", + commit_message, + ] + )