From 22bf97709c47dcea322cf2bd339a15b2d53fffd3 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 10 Jun 2024 19:17:21 +0200 Subject: [PATCH 01/16] chromium: don't use pkgsBuildTarget MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I'm pretty sure this was a mistake — in Nixpkgs the target platform is the platform that the program being built should output executables for — i.e., it's only relevant for a compiler, which Chromium is not. Tested that cross-compilation of Electron still works. (cherry picked from commit a269b980e929a1b39fa2f26428cb78a3dc78090d) --- pkgs/applications/networking/browsers/chromium/common.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 93c91a878f42b..0fa50455b3a57 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -3,7 +3,6 @@ , buildPackages , buildPlatform , pkgsBuildBuild -, pkgsBuildTarget # Channel data: , channel, upstream-info # Helper functions: @@ -384,8 +383,8 @@ let llvmCcAndBintools = symlinkJoin { name = "llvmCcAndBintools"; paths = [ - pkgsBuildTarget.${llvmPackages_attrName}.llvm - pkgsBuildTarget.${llvmPackages_attrName}.stdenv.cc + buildPackages.${llvmPackages_attrName}.llvm + buildPackages.${llvmPackages_attrName}.stdenv.cc ]; }; From 79113b691d62fdae9e9f1a5d27c9c7ec5dfa7e40 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 10 Jun 2024 00:08:48 +0100 Subject: [PATCH 02/16] electron: fix build Just like with Firefox, we need to make sure there's only a single version of LLVM involved in building Chromium, or we get errors like this: ld.lld: error: Invalid record (Producer: 'LLVM18.1.7' Reader: 'LLVM 17.0.6') Fixes: 23d4f834536b ("cargo,clippy,rustc,rustfmt: 1.77.2 -> 1.78.0") (cherry picked from commit a71762621bb17c2c19a31fa50926c78007907d76) --- .../applications/networking/browsers/chromium/common.nix | 9 ++++----- .../networking/browsers/chromium/default.nix | 8 ++------ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 0fa50455b3a57..451058e733c5b 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -12,7 +12,6 @@ , ninja, pkg-config , python3, perl , which -, llvmPackages_attrName , libuuid , overrideCC # postPatch: @@ -125,7 +124,7 @@ let # https://github.com/NixOS/nixpkgs/issues/142901 buildPlatformLlvmStdenv = let - llvmPackages = pkgsBuildBuild.${llvmPackages_attrName}; + llvmPackages = pkgsBuildBuild.rustc.llvmPackages; in overrideCC llvmPackages.stdenv (llvmPackages.stdenv.cc.override { @@ -158,7 +157,7 @@ let ninja pkg-config python3WithPackages perl which - buildPackages.${llvmPackages_attrName}.bintools + buildPackages.rustc.llvmPackages.bintools bison gperf ]; @@ -383,8 +382,8 @@ let llvmCcAndBintools = symlinkJoin { name = "llvmCcAndBintools"; paths = [ - buildPackages.${llvmPackages_attrName}.llvm - buildPackages.${llvmPackages_attrName}.stdenv.cc + buildPackages.rustc.llvmPackages.llvm + buildPackages.rustc.llvmPackages.stdenv.cc ]; }; diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 29515ce7150e0..b8c82951b5a47 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -24,11 +24,7 @@ }: let - # Sometimes we access `llvmPackages` via `pkgs`, and other times - # via `pkgsFooBar`, so a string (attrname) is the only way to have - # a single point of control over the LLVM version used. - llvmPackages_attrName = "llvmPackages_17"; - stdenv = pkgs.${llvmPackages_attrName}.stdenv; + stdenv = pkgs.rustc.llvmPackages.stdenv; # Helper functions for changes that depend on specific versions: warnObsoleteVersionConditional = min-version: result: @@ -48,7 +44,7 @@ let callPackage = newScope chromium; chromium = rec { - inherit stdenv llvmPackages_attrName upstream-info; + inherit stdenv upstream-info; mkChromiumDerivation = callPackage ./common.nix ({ inherit channel chromiumVersionAtLeast versionRange; From 5bd5b865b1a33ef8167efb8447877a844add741e Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 11 Jun 2024 12:35:38 +0200 Subject: [PATCH 03/16] chromium: remove unused arguments (cherry picked from commit 9a95b60a38ee6eaae603cc3e8aaf15ec469084ea) --- pkgs/applications/networking/browsers/chromium/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index b8c82951b5a47..a9f09f4ebab10 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -1,9 +1,9 @@ -{ newScope, config, stdenv, fetchurl, makeWrapper +{ newScope, config, stdenv, makeWrapper , buildPackages , ed, gnugrep, coreutils, xdg-utils , glib, gtk3, gtk4, gnome, gsettings-desktop-schemas, gn, fetchgit , libva, pipewire, wayland -, gcc, nspr, nss, runCommand +, runCommand , lib, libkrb5 , widevine-cdm , electron-source # for warnObsoleteVersionConditional @@ -18,7 +18,6 @@ , cupsSupport ? true , pulseSupport ? config.pulseaudio or stdenv.isLinux , commandLineArgs ? "" -, pkgsBuildTarget , pkgsBuildBuild , pkgs }: From 5754376d88c06e7a0718351ea17e9b3d3fd3f3bf Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 17 Jul 2024 11:57:20 +0300 Subject: [PATCH 04/16] chromedriver: use autoPatchelfHook, clean up deps (cherry picked from commit 372fac0e5630120997c28283129c57ff9ff9379f) --- .../tools/selenium/chromedriver/default.nix | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix index 1cee0603e6815..97564c45d8900 100644 --- a/pkgs/development/tools/selenium/chromedriver/default.nix +++ b/pkgs/development/tools/selenium/chromedriver/default.nix @@ -1,7 +1,5 @@ -{ lib, stdenv, fetchurl, unzip, makeWrapper -, cairo, fontconfig, freetype, gdk-pixbuf, glib -, glibc, gtk2, libX11, nspr, nss, pango -, libxcb, libXi, libXrender, libXext, dbus +{ lib, stdenv, fetchurl, unzip, autoPatchelfHook +, glib, nspr, nss, libxcb , testers, chromedriver }: @@ -26,16 +24,6 @@ let spec = allSpecs.${stdenv.hostPlatform.system} or (throw "missing chromedriver binary for ${stdenv.hostPlatform.system}"); - - libs = lib.makeLibraryPath [ - stdenv.cc.cc.lib - cairo fontconfig freetype - gdk-pixbuf glib gtk2 - libX11 nspr nss pango libXrender - libxcb libXext libXi - dbus - ]; - in stdenv.mkDerivation rec { pname = "chromedriver"; version = upstream-info.version; @@ -45,15 +33,13 @@ in stdenv.mkDerivation rec { hash = spec.hash; }; - nativeBuildInputs = [ unzip makeWrapper ]; - - unpackPhase = "unzip $src"; + nativeBuildInputs = [ unzip autoPatchelfHook ]; + buildInputs = lib.optionals (!stdenv.isDarwin) [ + glib nspr nss libxcb + ]; installPhase = '' - install -m755 -D "chromedriver-${spec.system}/chromedriver" $out/bin/chromedriver - '' + lib.optionalString (!stdenv.isDarwin) '' - patchelf --set-interpreter ${glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver - wrapProgram "$out/bin/chromedriver" --prefix LD_LIBRARY_PATH : "${libs}" + install -m555 -D "chromedriver" $out/bin/chromedriver ''; passthru.tests.version = testers.testVersion { package = chromedriver; }; From f3a936e1f816f29203994bf0417fbe9fb46cc37b Mon Sep 17 00:00:00 2001 From: K900 Date: Wed, 17 Jul 2024 12:08:52 +0300 Subject: [PATCH 05/16] chromedriver: build from source where possible (cherry picked from commit 4919b62fde5fbeb9a5bc518d0edb813616f5b12e) --- .../tools/selenium/chromedriver/binary.nix | 64 +++++++++++++++++ .../tools/selenium/chromedriver/default.nix | 68 ++----------------- .../tools/selenium/chromedriver/source.nix | 30 ++++++++ 3 files changed, 98 insertions(+), 64 deletions(-) create mode 100644 pkgs/development/tools/selenium/chromedriver/binary.nix create mode 100644 pkgs/development/tools/selenium/chromedriver/source.nix diff --git a/pkgs/development/tools/selenium/chromedriver/binary.nix b/pkgs/development/tools/selenium/chromedriver/binary.nix new file mode 100644 index 0000000000000..d58dc30e5b15f --- /dev/null +++ b/pkgs/development/tools/selenium/chromedriver/binary.nix @@ -0,0 +1,64 @@ +{ lib, stdenv, fetchurl, autoPatchelfHook +, glib, nspr, nss, libxcb +, testers, chromedriver +}: + +let + upstream-info = (import ../../../../applications/networking/browsers/chromium/upstream-info.nix).stable.chromedriver; + allSpecs = { + x86_64-linux = { + system = "linux64"; + hash = upstream-info.hash_linux; + }; + + x86_64-darwin = { + system = "mac-x64"; + hash = upstream-info.hash_darwin; + }; + + aarch64-darwin = { + system = "mac-arm64"; + hash = upstream-info.hash_darwin_aarch64; + }; + }; + + spec = allSpecs.${stdenv.hostPlatform.system} + or (throw "missing chromedriver binary for ${stdenv.hostPlatform.system}"); +in stdenv.mkDerivation rec { + pname = "chromedriver"; + version = upstream-info.version; + + src = fetchurl { + url = "https://storage.googleapis.com/chrome-for-testing-public/${version}/${spec.system}/chromedriver-${spec.system}.zip"; + hash = spec.hash; + }; + + nativeBuildInputs = [ autoPatchelfHook ]; + buildInputs = lib.optionals (!stdenv.isDarwin) [ + glib nspr nss libxcb + ]; + + installPhase = '' + install -m555 -D "chromedriver" $out/bin/chromedriver + ''; + + passthru.tests.version = testers.testVersion { package = chromedriver; }; + + meta = with lib; { + homepage = "https://chromedriver.chromium.org/"; + description = "WebDriver server for running Selenium tests on Chrome"; + longDescription = '' + WebDriver is an open source tool for automated testing of webapps across + many browsers. It provides capabilities for navigating to web pages, user + input, JavaScript execution, and more. ChromeDriver is a standalone + server that implements the W3C WebDriver standard. + ''; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.bsd3; + maintainers = with maintainers; [ goibhniu primeos ]; + # Note from primeos: By updating Chromium I also update Google Chrome and + # ChromeDriver. + platforms = attrNames allSpecs; + mainProgram = "chromedriver"; + }; +} diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix index 97564c45d8900..4d62e7b8692d4 100644 --- a/pkgs/development/tools/selenium/chromedriver/default.nix +++ b/pkgs/development/tools/selenium/chromedriver/default.nix @@ -1,64 +1,4 @@ -{ lib, stdenv, fetchurl, unzip, autoPatchelfHook -, glib, nspr, nss, libxcb -, testers, chromedriver -}: - -let - upstream-info = (import ../../../../applications/networking/browsers/chromium/upstream-info.nix).stable.chromedriver; - allSpecs = { - x86_64-linux = { - system = "linux64"; - hash = upstream-info.hash_linux; - }; - - x86_64-darwin = { - system = "mac-x64"; - hash = upstream-info.hash_darwin; - }; - - aarch64-darwin = { - system = "mac-arm64"; - hash = upstream-info.hash_darwin_aarch64; - }; - }; - - spec = allSpecs.${stdenv.hostPlatform.system} - or (throw "missing chromedriver binary for ${stdenv.hostPlatform.system}"); -in stdenv.mkDerivation rec { - pname = "chromedriver"; - version = upstream-info.version; - - src = fetchurl { - url = "https://storage.googleapis.com/chrome-for-testing-public/${version}/${spec.system}/chromedriver-${spec.system}.zip"; - hash = spec.hash; - }; - - nativeBuildInputs = [ unzip autoPatchelfHook ]; - buildInputs = lib.optionals (!stdenv.isDarwin) [ - glib nspr nss libxcb - ]; - - installPhase = '' - install -m555 -D "chromedriver" $out/bin/chromedriver - ''; - - passthru.tests.version = testers.testVersion { package = chromedriver; }; - - meta = with lib; { - homepage = "https://chromedriver.chromium.org/"; - description = "A WebDriver server for running Selenium tests on Chrome"; - longDescription = '' - WebDriver is an open source tool for automated testing of webapps across - many browsers. It provides capabilities for navigating to web pages, user - input, JavaScript execution, and more. ChromeDriver is a standalone - server that implements the W3C WebDriver standard. - ''; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - license = licenses.bsd3; - maintainers = with maintainers; [ goibhniu primeos ]; - # Note from primeos: By updating Chromium I also update Google Chrome and - # ChromeDriver. - platforms = attrNames allSpecs; - mainProgram = "chromedriver"; - }; -} +{ lib, stdenv, chromium, callPackage }: +if lib.meta.availableOn stdenv.hostPlatform chromium + then callPackage ./source.nix {} + else callPackage ./binary.nix {} diff --git a/pkgs/development/tools/selenium/chromedriver/source.nix b/pkgs/development/tools/selenium/chromedriver/source.nix new file mode 100644 index 0000000000000..fcb22c4066448 --- /dev/null +++ b/pkgs/development/tools/selenium/chromedriver/source.nix @@ -0,0 +1,30 @@ +{ chromium, testers, chromedriver }: +chromium.mkDerivation (_: { + name = "chromedriver"; + packageName = "chromedriver"; + + # Build the unstripped target, because stripping in Chromium relies on a prebuilt strip binary + # that doesn't run on NixOS, and we will strip everything ourselves later anyway. + buildTargets = [ "chromedriver.unstripped" ]; + + installPhase = '' + install -Dm555 $buildPath/chromedriver.unstripped $out/bin/chromedriver + ''; + + # Kill existing postFixup that tries to patchelf things + postFixup = null; + + passthru.tests.version = testers.testVersion { package = chromedriver; }; + + meta = chromium.meta // { + homepage = "https://chromedriver.chromium.org/"; + description = "WebDriver server for running Selenium tests on Chrome"; + longDescription = '' + WebDriver is an open source tool for automated testing of webapps across + many browsers. It provides capabilities for navigating to web pages, user + input, JavaScript execution, and more. ChromeDriver is a standalone + server that implements the W3C WebDriver standard. + ''; + mainProgram = "chromedriver"; + }; +}) From fa533e193390d4db1442bb8fe9fb7b7dec63ab5d Mon Sep 17 00:00:00 2001 From: Nathan Henrie Date: Wed, 24 Jul 2024 10:33:08 -0600 Subject: [PATCH 06/16] chromedriver: fix build failure on aarch64-darwin Darwin seems to need `unzip` and chokes on `autoPatchelfHook`. Because linux now builds from source, the package has been updated to remove references to Linux-specific settings and build options, remove the conditionals checking for darwin, and adjust the platforms to reflect that the binary chromedriver is darwin-only. Fixes https://github.com/NixOS/nixpkgs/issues/329202 (cherry picked from commit dc969616d4bec9af888548330cacd29b6c68404e) --- .../tools/selenium/chromedriver/binary.nix | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/pkgs/development/tools/selenium/chromedriver/binary.nix b/pkgs/development/tools/selenium/chromedriver/binary.nix index d58dc30e5b15f..f1d8413cf6ff8 100644 --- a/pkgs/development/tools/selenium/chromedriver/binary.nix +++ b/pkgs/development/tools/selenium/chromedriver/binary.nix @@ -1,16 +1,19 @@ -{ lib, stdenv, fetchurl, autoPatchelfHook -, glib, nspr, nss, libxcb -, testers, chromedriver +{ + lib, + stdenv, + fetchurl, + unzip, + testers, + chromedriver, }: let - upstream-info = (import ../../../../applications/networking/browsers/chromium/upstream-info.nix).stable.chromedriver; - allSpecs = { - x86_64-linux = { - system = "linux64"; - hash = upstream-info.hash_linux; - }; + upstream-info = + (import ../../../../applications/networking/browsers/chromium/upstream-info.nix) + .stable.chromedriver; + # See ./source.nix for Linux + allSpecs = { x86_64-darwin = { system = "mac-x64"; hash = upstream-info.hash_darwin; @@ -22,21 +25,22 @@ let }; }; - spec = allSpecs.${stdenv.hostPlatform.system} - or (throw "missing chromedriver binary for ${stdenv.hostPlatform.system}"); -in stdenv.mkDerivation rec { + spec = + allSpecs.${stdenv.hostPlatform.system} + or (throw "missing chromedriver binary for ${stdenv.hostPlatform.system}"); + + inherit (upstream-info) version; +in +stdenv.mkDerivation { pname = "chromedriver"; - version = upstream-info.version; + inherit version; src = fetchurl { url = "https://storage.googleapis.com/chrome-for-testing-public/${version}/${spec.system}/chromedriver-${spec.system}.zip"; - hash = spec.hash; + inherit (spec) hash; }; - nativeBuildInputs = [ autoPatchelfHook ]; - buildInputs = lib.optionals (!stdenv.isDarwin) [ - glib nspr nss libxcb - ]; + nativeBuildInputs = [ unzip ]; installPhase = '' install -m555 -D "chromedriver" $out/bin/chromedriver @@ -58,7 +62,7 @@ in stdenv.mkDerivation rec { maintainers = with maintainers; [ goibhniu primeos ]; # Note from primeos: By updating Chromium I also update Google Chrome and # ChromeDriver. - platforms = attrNames allSpecs; + platforms = platforms.darwin; mainProgram = "chromedriver"; }; } From 334e1ca4baeaa8d4411cf4b831cee2714ae5cd2e Mon Sep 17 00:00:00 2001 From: emilylange Date: Sat, 23 Nov 2024 19:25:55 +0100 Subject: [PATCH 07/16] chromium: use newer rustc 1.77 -> 1.80 in preparation of M131 chromium expects nightly/bleeding edge rustc features which we enable in our stable rustc release by setting RUSTC_BOOTSTRAP=1. The default rustc in 24.05 however is too old even with that workaround, but thankfully we also have 1.80 as opt-in. So we use that. This is slightly closer to the rustc version we have in unstable (1.82) and unbreaks building the upcoming M131. Previously: bad7d0f1fabaa4dd0dc6a97a51fd2ac1efe5d9dd --- pkgs/applications/networking/browsers/chromium/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index a9f09f4ebab10..6a2a7f4e78b39 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -23,7 +23,7 @@ }: let - stdenv = pkgs.rustc.llvmPackages.stdenv; + stdenv = pkgs.rustPackages_1_80.rustc.llvmPackages.stdenv; # Helper functions for changes that depend on specific versions: warnObsoleteVersionConditional = min-version: result: @@ -60,6 +60,8 @@ let hardeningDisable = [ "format" ]; }); recompressTarball = callPackage ./recompress-tarball.nix { inherit chromiumVersionAtLeast; }; + buildPackages = buildPackages // { rustc = buildPackages.rustPackages_1_80.rustc; }; + pkgsBuildBuild = pkgsBuildBuild // { rustc = pkgsBuildBuild.rustPackages_1_80.rustc; }; }); browser = callPackage ./browser.nix { From f84264d01fd9058ed151526b65e99c138708315e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Tue, 6 Aug 2024 17:39:58 +0200 Subject: [PATCH 08/16] zstd: set meta.mainProgram (cherry picked from commit d3a139bf97854d493821f5390dd8da6c034cac2b) --- pkgs/tools/compression/zstd/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix index d42866cdda9f9..ba5fb90c1360e 100644 --- a/pkgs/tools/compression/zstd/default.nix +++ b/pkgs/tools/compression/zstd/default.nix @@ -122,7 +122,7 @@ stdenv.mkDerivation rec { homepage = "https://facebook.github.io/zstd/"; changelog = "https://github.com/facebook/zstd/blob/v${version}/CHANGELOG"; license = with licenses; [ bsd3 ]; # Or, at your opinion, GPL-2.0-only. - + mainProgram = "zstd"; platforms = platforms.all; maintainers = with maintainers; [ orivej ]; }; From 62f48f83f9ba81b9e1188d478c85e2268ccf095a Mon Sep 17 00:00:00 2001 From: emilylange Date: Sat, 16 Nov 2024 20:52:11 +0100 Subject: [PATCH 09/16] chromium: remove "channel" argument This is no longer used as we only differentiate between stable and ungoogled-chromium, which we already track in the "ungoogled" boolean. Beta and dev channels are gone for good. It's been a year since their removal in 59719f787e94f39e64e9086d08eaedd8a9e61b22. There is, however, an additional channel mapping in nixos/tests/chromium but that one is independent from this one here. (cherry picked from commit ebb40bd5c29f08765e6ed94d00a889e09a9e30de) --- .../networking/browsers/chromium/browser.nix | 4 ++-- .../networking/browsers/chromium/common.nix | 2 +- .../networking/browsers/chromium/default.nix | 11 ++++------- pkgs/top-level/all-packages.nix | 1 - 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index 24811cc336b6a..a74a85a1e147e 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -1,5 +1,5 @@ { lib, mkChromiumDerivation -, channel, chromiumVersionAtLeast +, chromiumVersionAtLeast , enableWideVine, ungoogled }: @@ -90,7 +90,7 @@ mkChromiumDerivation (base: rec { license = if enableWideVine then lib.licenses.unfree else lib.licenses.bsd3; platforms = lib.platforms.linux; mainProgram = "chromium"; - hydraPlatforms = lib.optionals (channel == "stable" || channel == "ungoogled-chromium") ["aarch64-linux" "x86_64-linux"]; + hydraPlatforms = ["aarch64-linux" "x86_64-linux"]; timeout = 172800; # 48 hours (increased from the Hydra default of 10h) }; }) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 451058e733c5b..8eb0dd6b997eb 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -4,7 +4,7 @@ , buildPlatform , pkgsBuildBuild # Channel data: -, channel, upstream-info +, upstream-info # Helper functions: , chromiumVersionAtLeast, versionRange diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 6a2a7f4e78b39..424c227b0790f 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -10,8 +10,7 @@ # package customization # Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper) -, channel ? "stable" -, upstream-info ? (import ./upstream-info.nix).${channel} +, upstream-info ? (import ./upstream-info.nix).${if !ungoogled then "stable" else "ungoogled-chromium"} , proprietaryCodecs ? true , enableWideVine ? false , ungoogled ? false # Whether to build chromium or ungoogled-chromium @@ -46,7 +45,7 @@ let inherit stdenv upstream-info; mkChromiumDerivation = callPackage ./common.nix ({ - inherit channel chromiumVersionAtLeast versionRange; + inherit chromiumVersionAtLeast versionRange; inherit proprietaryCodecs cupsSupport pulseSupport ungoogled; gnChromium = buildPackages.gn.overrideAttrs (oldAttrs: { @@ -65,7 +64,7 @@ let }); browser = callPackage ./browser.nix { - inherit channel chromiumVersionAtLeast enableWideVine ungoogled; + inherit chromiumVersionAtLeast enableWideVine ungoogled; }; # ungoogled-chromium is, contrary to its name, not a build of @@ -76,8 +75,6 @@ let ungoogled-chromium = pkgsBuildBuild.callPackage ./ungoogled.nix {}; }; - suffix = lib.optionalString (channel != "stable" && channel != "ungoogled-chromium") ("-" + channel); - sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName; # We want users to be able to enableWideVine without rebuilding all of @@ -95,7 +92,7 @@ let in stdenv.mkDerivation { pname = lib.optionalString ungoogled "ungoogled-" - + "chromium${suffix}"; + + "chromium"; inherit (chromium.browser) version; nativeBuildInputs = [ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9f51fa32ce512..fd3c311bc3892 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -35013,7 +35013,6 @@ with pkgs; ungoogled-chromium = callPackage ../applications/networking/browsers/chromium ((config.chromium or {}) // { ungoogled = true; - channel = "ungoogled-chromium"; }); uni = callPackage ../applications/misc/uni { }; From a7b637c58b2844b34716d8ce3a5b36a734e4a35a Mon Sep 17 00:00:00 2001 From: emilylange Date: Mon, 18 Nov 2024 23:17:07 +0100 Subject: [PATCH 10/16] chromium: fetch src from git instead of using release tarball This builds upon Yureka's work to build electron from source. A lot of the newly introduced changes to the chromium derivation and update script are 1-to-1 copies or slight derivates of that work. Especially the newly added depot_tools.py to resolve the DEPS files does most of the heavy lifting and is an ever so slightly modified version of that section Yureka implemented in electron's update.py. Some coordination between the chromium and electron maintainers should allow us to deduplicate a lot of the duplicated code fairly easily in the future. That just wasn't a goal with this commit, due to time constraints and the urgency to switch away from the release tarballs. Instead of taking just a few hours for a tarball to be available for download after a release, it now takes multiple days at least. At the time of writing, roughly a week after M131 was released, the tarball is still not available. It's unclear if it will ever be. Reason for this are CI issues on Google's side. Note that virtually every release contains some security critical fixes. Also note that this commit is written with a lot of conditionals so the electron derivation doesn't change (just yet). The new update.mjs update script is still very much work-in-progress but gets the job done. Co-Authored-By: Yureka (cherry picked from commit 8dd2f1add978a4747a5962f2874b8ad20f86b01c) --- .../networking/browsers/chromium/common.nix | 103 +- .../networking/browsers/chromium/default.nix | 8 +- .../browsers/chromium/depot_tools.py | 122 ++ .../browsers/chromium/files/gclient_args.gni | 12 + .../networking/browsers/chromium/info.json | 1514 +++++++++++++++++ .../browsers/chromium/recompress-tarball.nix | 56 - .../networking/browsers/chromium/update.mjs | 227 +++ .../networking/browsers/chromium/update.py | 300 ---- .../browsers/chromium/upstream-info.nix | 37 - .../tools/selenium/chromedriver/binary.nix | 11 +- 10 files changed, 1979 insertions(+), 411 deletions(-) create mode 100755 pkgs/applications/networking/browsers/chromium/depot_tools.py create mode 100644 pkgs/applications/networking/browsers/chromium/files/gclient_args.gni create mode 100644 pkgs/applications/networking/browsers/chromium/info.json delete mode 100644 pkgs/applications/networking/browsers/chromium/recompress-tarball.nix create mode 100755 pkgs/applications/networking/browsers/chromium/update.mjs delete mode 100755 pkgs/applications/networking/browsers/chromium/update.py delete mode 100644 pkgs/applications/networking/browsers/chromium/upstream-info.nix diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 8eb0dd6b997eb..fdfd0810d60b4 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -1,5 +1,7 @@ { stdenv, lib, fetchpatch -, recompressTarball +, zstd +, fetchFromGitiles +, fetchNpmDeps , buildPackages , buildPlatform , pkgsBuildBuild @@ -11,6 +13,8 @@ # Native build inputs: , ninja, pkg-config , python3, perl +, nodejs +, npmHooks , which , libuuid , overrideCC @@ -146,12 +150,64 @@ let else throw "no chromium Rosetta Stone entry for os: ${platform.config}"; }; + isElectron = packageName == "electron"; + + chromiumDeps = lib.mapAttrs (path: args: fetchFromGitiles (removeAttrs args [ "recompress" ] // lib.optionalAttrs args.recompress or false { + name = "source.tar.zstd"; + downloadToTemp = false; + passthru.unpack = true; + postFetch = '' + tar \ + --use-compress-program="${lib.getExe zstd} -T$NIX_BUILD_CORES" \ + --sort=name \ + --mtime="1970-01-01" \ + --owner=root --group=root \ + --numeric-owner --mode=go=rX,u+rw,a-s \ + --remove-files \ + --directory="$out" \ + -cf "$TMPDIR/source.zstd" . + mv "$TMPDIR/source.zstd" "$out" + ''; + })) upstream-info.DEPS; + + unpackPhaseSnippet = lib.concatStrings (lib.mapAttrsToList (path: dep: + (if dep.unpack or false + then '' + mkdir -p ${path} + pushd ${path} + unpackFile ${dep} + popd + '' + else '' + mkdir -p ${builtins.dirOf path} + cp -r ${dep}/. ${path} + '' + ) + '' + chmod u+w -R ${path} + '') chromiumDeps); + base = rec { pname = "${lib.optionalString ungoogled "ungoogled-"}${packageName}-unwrapped"; inherit (upstream-info) version; inherit packageName buildType buildPath; - src = recompressTarball { inherit version; inherit (upstream-info) hash; }; + unpackPhase = '' + runHook preUnpack + + ${unpackPhaseSnippet} + sourceRoot=src + + runHook postUnpack + ''; + + npmRoot = "third_party/node"; + npmDeps = (fetchNpmDeps { + src = chromiumDeps."src"; + sourceRoot = npmRoot; + hash = upstream-info.deps.npmHash; + }).overrideAttrs (p: { + nativeBuildInputs = p.nativeBuildInputs or [ ] ++ [ zstd ]; + }); nativeBuildInputs = [ ninja pkg-config @@ -159,6 +215,9 @@ let which buildPackages.rustc.llvmPackages.bintools bison gperf + ] ++ lib.optionals (!isElectron) [ + nodejs + npmHooks.npmConfigHook ]; depsBuildBuild = [ @@ -293,7 +352,32 @@ let }) ]; - postPatch = '' + postPatch = lib.optionalString (!isElectron) '' + ln -s ${./files/gclient_args.gni} build/config/gclient_args.gni + + echo 'LASTCHANGE=${upstream-info.DEPS."src".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 "${upstream-info.DEPS."src".rev}" + #endif // GPU_CONFIG_GPU_LISTS_VERSION_H_ + EOF + + cat << EOF > skia/ext/skia_commit_hash.h + /* 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 "${upstream-info.DEPS."src/third_party/skia".rev}-" + #endif // SKIA_EXT_SKIA_COMMIT_HASH_H_ + EOF + + echo -n '${upstream-info.DEPS."src/third_party/dawn".rev}' > gpu/webgpu/DAWN_VERSION + + mkdir -p third_party/jdk/current/bin + '' + '' # Workaround/fix for https://bugs.chromium.org/p/chromium/issues/detail?id=1313361: substituteInPlace BUILD.gn \ --replace '"//infra/orchestrator:orchestrator_all",' "" @@ -488,6 +572,11 @@ let # enable those features in our stable builds. preConfigure = '' export RUSTC_BOOTSTRAP=1 + '' + lib.optionalString (!isElectron) '' + ( + cd third_party/node + grep patch update_npm_deps | sh + ) ''; configurePhase = '' @@ -545,11 +634,9 @@ let ''; passthru = { - updateScript = ./update.py; - chromiumDeps = { - gn = gnChromium; - }; - inherit recompressTarball; + updateScript = ./update.mjs; + } // lib.optionalAttrs (!isElectron) { + inherit chromiumDeps npmDeps; }; } # overwrite `version` with the exact same `version` from the same source, diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 424c227b0790f..a74e97d28ee46 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -10,7 +10,7 @@ # package customization # Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper) -, upstream-info ? (import ./upstream-info.nix).${if !ungoogled then "stable" else "ungoogled-chromium"} +, upstream-info ? (lib.importJSON ./info.json).${if !ungoogled then "chromium" else "ungoogled-chromium"} , proprietaryCodecs ? true , enableWideVine ? false , ungoogled ? false # Whether to build chromium or ungoogled-chromium @@ -49,16 +49,16 @@ let inherit proprietaryCodecs cupsSupport pulseSupport ungoogled; gnChromium = buildPackages.gn.overrideAttrs (oldAttrs: { - inherit (upstream-info.deps.gn) version; + version = if (upstream-info.deps.gn ? "version") then upstream-info.deps.gn.version else "0"; src = fetchgit { - inherit (upstream-info.deps.gn) url rev hash; + url = "https://gn.googlesource.com/gn"; + inherit (upstream-info.deps.gn) rev hash; }; } // lib.optionalAttrs (chromiumVersionAtLeast "127") { # Relax hardening as otherwise gn unstable 2024-06-06 and later fail with: # cc1plus: error: '-Wformat-security' ignored without '-Wformat' [-Werror=format-security] hardeningDisable = [ "format" ]; }); - recompressTarball = callPackage ./recompress-tarball.nix { inherit chromiumVersionAtLeast; }; buildPackages = buildPackages // { rustc = buildPackages.rustPackages_1_80.rustc; }; pkgsBuildBuild = pkgsBuildBuild // { rustc = pkgsBuildBuild.rustPackages_1_80.rustc; }; }); diff --git a/pkgs/applications/networking/browsers/chromium/depot_tools.py b/pkgs/applications/networking/browsers/chromium/depot_tools.py new file mode 100755 index 0000000000000..077d59077c7cf --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/depot_tools.py @@ -0,0 +1,122 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i python -p python3 +""" +This is a heavily simplified variant of electron's update.py +for use in ./update.mjs and should not be called manually. + +It resolves chromium's DEPS file recursively when called with +a working depot_tools checkout and a ref to fetch and prints +the result as JSON to stdout. +""" +import base64 +import json +from typing import Optional +from urllib.request import urlopen + +import sys + +if len(sys.argv) != 3: + print("""This internal script has been called with the wrong amount of parameters. +This script is not supposed to be called manually. +Refer to ./update.mjs instead.""") + exit(1) + +_, depot_tools_checkout, chromium_version = sys.argv + +sys.path.append(depot_tools_checkout) +import gclient_eval +import gclient_utils + + +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 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 GitilesRepo(Repo): + def __init__(self, url: str, rev: str) -> None: + super().__init__() + self.fetcher = "fetchFromGitiles" + self.args = { + "url": url, + "rev": rev, + } + + 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"]) + return GitilesRepo(url, rev) + else: + # Not a git dependency; skip + return None + + + +chromium = GitilesRepo("https://chromium.googlesource.com/chromium/src.git", chromium_version) +chromium.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"] + }, + }, + "", +) +print(json.dumps(chromium.flatten("src"))) diff --git a/pkgs/applications/networking/browsers/chromium/files/gclient_args.gni b/pkgs/applications/networking/browsers/chromium/files/gclient_args.gni new file mode 100644 index 0000000000000..7440c81587f14 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/files/gclient_args.gni @@ -0,0 +1,12 @@ +build_with_chromium = true +checkout_android = false +checkout_android_prebuilts_build_tools = false +checkout_clang_coverage_tools = false +checkout_copybara = false +checkout_ios_webkit = false +checkout_nacl = false +checkout_openxr = false +checkout_src_internal = false +cros_boards = "" +cros_boards_with_qemu_images = "" +generate_location_tags = true diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json new file mode 100644 index 0000000000000..78bb958588a70 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -0,0 +1,1514 @@ +{ + "chromium": { + "version": "130.0.6723.116", + "chromedriver": { + "hash_darwin": "sha256-PpBPxgQSVWTlsenlwaqqCBx4Lah0xWa8chOzZOEk75M=", + "hash_darwin_aarch64": "sha256-bMQZ2U3cR10TSPpz2A3LhCTjDfxLQNva2/9bvNjNFKc=" + }, + "deps": { + "depot_tools": { + "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", + "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=" + }, + "gn": { + "rev": "20806f79c6b4ba295274e3a589d85db41a02fdaa", + "hash": "sha256-iNXRq3Mr8+wmY1SR4sV7yd2fDiIZ94eReelwFI0UhGU=" + }, + "npmHash": "sha256-4w5m/bTMygidlb4TZHMx1Obp784DLxMwrfe1Uvyyfp8=" + }, + "DEPS": { + "src": { + "url": "https://chromium.googlesource.com/chromium/src.git", + "rev": "130.0.6723.116", + "hash": "sha256-KSUDdIHSzsZBYC+ApQE3iolGOAC0MZETlI2ARNXE0Vg=", + "recompress": true + }, + "src/third_party/clang-format/script": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git", + "rev": "3c0acd2d4e73dd911309d9e970ba09d58bf23a62", + "hash": "sha256-whD8isX2ZhLrFzdxHhFP1S/sZDRgyrzLFaVd7OEFqYo=" + }, + "src/third_party/libc++/src": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git", + "rev": "50ab693ecb611942ce4440d8c9ed707ee65ed5e8", + "hash": "sha256-hKlmY2Bn1f6w0Gmx/Le/LwWk/Gf6hzXqR5C+/w+0CNA=" + }, + "src/third_party/libc++abi/src": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git", + "rev": "29b2e9a0f48688da116692cb04758393053d269c", + "hash": "sha256-GtK8z2jn4es3uuxpAgm5AoQvUjvhAunAyUwm3HEqLVA=" + }, + "src/third_party/libunwind/src": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git", + "rev": "dc70138c3e68e2f946585f134e20815851e26263", + "hash": "sha256-5xsrVVSu9b+78GEKeLGNpo7ySxrJ2SeuuKghN6NHlSU=" + }, + "src/chrome/test/data/perf/canvas_bench": { + "url": "https://chromium.googlesource.com/chromium/canvas_bench.git", + "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", + "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=" + }, + "src/chrome/test/data/perf/frame_rate/content": { + "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git", + "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", + "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=" + }, + "src/chrome/test/data/xr/webvr_info": { + "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git", + "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", + "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=" + }, + "src/docs/website": { + "url": "https://chromium.googlesource.com/website.git", + "rev": "052e29447b43b18da32fff653b9d58ef79fbc836", + "hash": "sha256-XK22S9WwNN4zQZ5teiQ1sZA5m/8rArwq3jCgM6H9KQY=" + }, + "src/media/cdm/api": { + "url": "https://chromium.googlesource.com/chromium/cdm.git", + "rev": "eb21edc44e8e5a82095037be80c8b15c51624293", + "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=" + }, + "src/net/third_party/quiche/src": { + "url": "https://quiche.googlesource.com/quiche.git", + "rev": "9808dac40e034f09d7af53d3d79589a02e39c211", + "hash": "sha256-NJKJ5cc+wEcmCIFYXWQX4x9BZblbS+wqj+25CcUiPZM=" + }, + "src/testing/libfuzzer/fuzzers/wasm_corpus": { + "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git", + "rev": "f650ff816f2ef227f61ea2e9f222aa69708ab367", + "hash": "sha256-qWsGQNUptbz0jYvUuxP7woNf5QQrfn9k3uvr82Yk0QM=" + }, + "src/third_party/accessibility_test_framework/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git", + "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", + "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=" + }, + "src/third_party/angle": { + "url": "https://chromium.googlesource.com/angle/angle.git", + "rev": "fffbc739779a2df56a464fd6853bbfb24bebb5f6", + "hash": "sha256-OtpF7+KQzk0MWhgBlNV1DheHywtBMDQIPhGUOss9Dtg=" + }, + "src/third_party/angle/third_party/glmark2/src": { + "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2", + "rev": "ca8de51fedb70bace5351c6b002eb952c747e889", + "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=" + }, + "src/third_party/angle/third_party/rapidjson/src": { + "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson", + "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", + "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=" + }, + "src/third_party/angle/third_party/VK-GL-CTS/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS", + "rev": "1df39e522f4aa358012180fd4cf876af68aff78d", + "hash": "sha256-yPQG/Ddat9H4XZq6Zu5S3VzcZeMhLBcM//KI/3Kxaxg=" + }, + "src/third_party/anonymous_tokens/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git", + "rev": "6ea6ec78f9e4998d0a7a5677b2aec08f0ac858f8", + "hash": "sha256-PMB49+zW9ewlS9ym+xi0xYQYLN0j5Urx6yBXWd8FjjI=" + }, + "src/third_party/content_analysis_sdk/src": { + "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git", + "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", + "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=" + }, + "src/third_party/dav1d/libdav1d": { + "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git", + "rev": "6b3c489a2ee2c030f351f21987c27611b4cbe725", + "hash": "sha256-qJSUt8gMFB+IhOnEAw3t6nj1y7XUY91pLQBF8CeYtas=" + }, + "src/third_party/dawn": { + "url": "https://dawn.googlesource.com/dawn.git", + "rev": "70a01d28c3ecd75b67a87e4643bd4d55fc391ce6", + "hash": "sha256-x5Fm7DGAFfDmZ9p6JY16+QSPPztxNrG/HvQrZ26NnZM=" + }, + "src/third_party/dawn/third_party/glfw": { + "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw", + "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", + "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=" + }, + "src/third_party/dawn/third_party/dxc": { + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler", + "rev": "05334a70d3e5355fc86c94bb4e3cfe1c31a65999", + "hash": "sha256-CrR08tw9e+4U+fa6E9xoP/4puPNHEjLrxtSju8psLlk=" + }, + "src/third_party/dawn/third_party/dxheaders": { + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers", + "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", + "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=" + }, + "src/third_party/dawn/third_party/webgpu-headers": { + "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers", + "rev": "8049c324dc7b3c09dc96ea04cb02860f272c8686", + "hash": "sha256-J3PcwYoO79HqrACFgk77BZLTCi7oi5k2J6v3wlcFVD4=" + }, + "src/third_party/dawn/third_party/khronos/OpenGL-Registry": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry", + "rev": "5bae8738b23d06968e7c3a41308568120943ae77", + "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=" + }, + "src/third_party/dawn/third_party/khronos/EGL-Registry": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry", + "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", + "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=" + }, + "src/third_party/dawn/third_party/webgpu-cts": { + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts", + "rev": "a5065e398d2430c83e17ef9cbad6eae31d1efa8f", + "hash": "sha256-heIL8hhaVr0uRi2lD+7RFltggVFW48ZY9Tdl0yVRdac=" + }, + "src/third_party/highway/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/highway.git", + "rev": "8295336dd70f1201d42c22ab5b0861de38cf8fbf", + "hash": "sha256-PXsXIqWB4NNiFhanRjMIFSWYuW/IRuQo8mMPUBEentY=" + }, + "src/third_party/google_benchmark/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git", + "rev": "344117638c8ff7e239044fd0fa7085839fc03021", + "hash": "sha256-gztnxui9Fe/FTieMjdvfJjWHjkImtlsHn6fM1FruyME=" + }, + "src/third_party/boringssl/src": { + "url": "https://boringssl.googlesource.com/boringssl.git", + "rev": "58f3bc83230d2958bb9710bc910972c4f5d382dc", + "hash": "sha256-on+VonYXZ710oqgaK/OKa9Huq2mSXp8SJcj9CciHsf8=" + }, + "src/third_party/breakpad/breakpad": { + "url": "https://chromium.googlesource.com/breakpad/breakpad.git", + "rev": "6b0c5b7ee1988a14a4af94564e8ae8bba8a94374", + "hash": "sha256-kTkwRfaqw5ZCHEvu2YPZ+1vCfekHkY5pY3m9snDN64g=" + }, + "src/third_party/cast_core/public/src": { + "url": "https://chromium.googlesource.com/cast_core/public", + "rev": "71f51fd6fa45fac73848f65421081edd723297cd", + "hash": "sha256-AalRQhJmornCqmvE2+36J/3LubaA0jr6P1PXy32lX4I=" + }, + "src/third_party/catapult": { + "url": "https://chromium.googlesource.com/catapult.git", + "rev": "296226a4a0067c8cffeb8831fb87526a8035f3cc", + "hash": "sha256-IHubCuEBE9W0wRudOmjUoaOvT66JuVTzEBUOTvdnXqQ=" + }, + "src/third_party/ced/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git", + "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", + "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=" + }, + "src/third_party/chromium-variations": { + "url": "https://chromium.googlesource.com/chromium-variations.git", + "rev": "6aa57f2c6b49402b55ec607c17bd7ee8946970b0", + "hash": "sha256-DR5rJdnDKunS/PHtVK1n4zk0MmK54LhlawZW74711LY=" + }, + "src/third_party/cld_3/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git", + "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", + "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=" + }, + "src/third_party/colorama/src": { + "url": "https://chromium.googlesource.com/external/colorama.git", + "rev": "3de9f013df4b470069d03d250224062e8cf15c49", + "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=" + }, + "src/third_party/cpu_features/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git", + "rev": "936b9ab5515dead115606559502e3864958f7f6e", + "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=" + }, + "src/third_party/cpuinfo/src": { + "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git", + "rev": "ca678952a9a8eaa6de112d154e8e104b22f9ab3f", + "hash": "sha256-UKy9TIiO/UJ5w+qLRlMd085CX2qtdVH2W3rtxB5r6MY=" + }, + "src/third_party/crc32c/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git", + "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", + "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=" + }, + "src/third_party/cros_system_api": { + "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git", + "rev": "2f88f9c4581a9c854604fa23516de8c9c13b227b", + "hash": "sha256-9rM9m6VRX7B+h9JiICN5O9rBYdQEHNlCUnQMuaTy/1s=" + }, + "src/third_party/crossbench": { + "url": "https://chromium.googlesource.com/crossbench.git", + "rev": "2b812597dd143dbdc560ff2f28d5f8d3adc700d4", + "hash": "sha256-7IuhXuxXD3xBkgazg3B9GZknlNv8Xi0eTHkeQv63ayk=" + }, + "src/third_party/depot_tools": { + "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git", + "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", + "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=" + }, + "src/third_party/devtools-frontend/src": { + "url": "https://chromium.googlesource.com/devtools/devtools-frontend", + "rev": "deee9c11c9f76ef595b7d0b52fcf677d25aac5f2", + "hash": "sha256-gRc2ei5m7a5KVKEMIivPGy1IQqDIaJxUJHLd5k2F+GQ=" + }, + "src/third_party/dom_distiller_js/dist": { + "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git", + "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", + "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=" + }, + "src/third_party/eigen3/src": { + "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git", + "rev": "134b526d6110061469168e7e0511822a8e30bcaf", + "hash": "sha256-U4SMReXTFZg7YGyefI6MXIB66nt5OiANMH0HUyr/xIc=" + }, + "src/third_party/farmhash/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git", + "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", + "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=" + }, + "src/third_party/fast_float/src": { + "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git", + "rev": "3e57d8dcfb0a04b5a8a26b486b54490a2e9b310f", + "hash": "sha256-0eVovauN7SnO3nSIWBRWAJ4dR7q5beZrIGUZ18M2pao=" + }, + "src/third_party/ffmpeg": { + "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git", + "rev": "91903c28af60a732a051c343b496e1188eec9b05", + "hash": "sha256-HnpWlSfXxa951UkFgL/2zKoaBeveuVkTZz/iqYXjkH8=" + }, + "src/third_party/flac": { + "url": "https://chromium.googlesource.com/chromium/deps/flac.git", + "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", + "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=" + }, + "src/third_party/flatbuffers/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git", + "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", + "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=" + }, + "src/third_party/fontconfig/src": { + "url": "https://chromium.googlesource.com/external/fontconfig.git", + "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", + "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=" + }, + "src/third_party/fp16/src": { + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git", + "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", + "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=" + }, + "src/third_party/gemmlowp/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git", + "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", + "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=" + }, + "src/third_party/grpc/src": { + "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git", + "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737", + "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=" + }, + "src/third_party/freetype/src": { + "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git", + "rev": "83af801b552111e37d9466a887e1783a0fb5f196", + "hash": "sha256-w5Zd4yvGoMQ0BmDGa2b9gK/+7f+UaZDRYqEdMGH/zKg=" + }, + "src/third_party/freetype-testing/src": { + "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git", + "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f", + "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=" + }, + "src/third_party/fxdiv/src": { + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git", + "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", + "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=" + }, + "src/third_party/harfbuzz-ng/src": { + "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git", + "rev": "1da053e87f0487382404656edca98b85fe51f2fd", + "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=" + }, + "src/third_party/instrumented_libs": { + "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git", + "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", + "hash": "sha256-kHKGADAgzlaeckXFbpU1GhJK+zkiRd9XvdtPF6qrQFY=" + }, + "src/third_party/emoji-segmenter/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git", + "rev": "6b8f235b72deba7d6ef113631129b274c14941ef", + "hash": "sha256-sI6UgXTWxXJajB2h2LH3caf7cqRbBshD5GoLocrUivk=" + }, + "src/third_party/ots/src": { + "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git", + "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", + "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=" + }, + "src/third_party/libgav1/src": { + "url": "https://chromium.googlesource.com/codecs/libgav1.git", + "rev": "a2f139e9123bdb5edf7707ac6f1b73b3aa5038dd", + "hash": "sha256-+ss9S5t+yoHzqbtX68+5OyyUbJVecYLwp+C3EXfAziE=" + }, + "src/third_party/googletest/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git", + "rev": "0953a17a4281fc26831da647ad3fcd5e21e6473b", + "hash": "sha256-jccFUondvjWgCBC3oCLUXqtLV07pkEq8IEZ+FLu1MrE=" + }, + "src/third_party/hunspell_dictionaries": { + "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git", + "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", + "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=" + }, + "src/third_party/icu": { + "url": "https://chromium.googlesource.com/chromium/deps/icu.git", + "rev": "9408c6fd4a39e6fef0e1c4077602e1c83b15f3fb", + "hash": "sha256-YlX+PaPhvYh9JzHT9WtS1beUK+cQrHGVUl+IBbv7GeQ=" + }, + "src/third_party/jsoncpp/source": { + "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git", + "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", + "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=" + }, + "src/third_party/leveldatabase/src": { + "url": "https://chromium.googlesource.com/external/leveldb.git", + "rev": "23e35d792b9154f922b8b575b12596a4d8664c65", + "hash": "sha256-y3awFXL8ih2UhEqWj8JRgkhzSxfQciLztb020JHJ350=" + }, + "src/third_party/libFuzzer/src": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git", + "rev": "487e79376394754705984c5de7c4ce7f82f2bd7c", + "hash": "sha256-xQXfRIcQmAVP0k2mT7Blv1wBxL6wDaWTbIPGcTiMZRo=" + }, + "src/third_party/fuzztest/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git", + "rev": "a29e31cb00ec9b123dec5a0c6b8d4bc12c2480c8", + "hash": "sha256-g+iJrywURQfdYpco26VN+OlhZkVcFzmAK18C7W7/WLU=" + }, + "src/third_party/domato/src": { + "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git", + "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", + "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=" + }, + "src/third_party/libaddressinput/src": { + "url": "https://chromium.googlesource.com/external/libaddressinput.git", + "rev": "e8712e415627f22d0b00ebee8db99547077f39bd", + "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=" + }, + "src/third_party/libaom/source/libaom": { + "url": "https://aomedia.googlesource.com/aom.git", + "rev": "d5265b173616ce62de231cd1b1eae853ad03641e", + "hash": "sha256-uFUIodoC9qpLycwtWRgc0iqaqcUsvVmwAAQGHKolWto=" + }, + "src/third_party/libavif/src": { + "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git", + "rev": "c2177c3316a49505dcd592ba21073f7abc25cd37", + "hash": "sha256-2GKqPgWs1TD0nPW7VoSo8dz3ugPsZhcy2K1V35XflSk=" + }, + "src/third_party/crabbyavif/src": { + "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git", + "rev": "adfb834d76c6a064f28bb3a694689fc14a42425e", + "hash": "sha256-9ooMkYOHRYbV2kdxu8VWUNgBeBsrN4kWUb8cZJwZfiU=" + }, + "src/third_party/libavifinfo/src": { + "url": "https://aomedia.googlesource.com/libavifinfo.git", + "rev": "8d8b58a3f517ef8d1794baa28ca6ae7d19f65514", + "hash": "sha256-61OPjdMCIbHvWncmBzNw6sqlHcuc1kyqm9k1j4UTcZ0=" + }, + "src/third_party/nearby/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git", + "rev": "3c8737f92d765407e4ff6c87b8758ba99ede40ed", + "hash": "sha256-RZsdeT1gkbrOuHvngs+Iavl9YE27jLx4AXXYOvSXZoI=" + }, + "src/third_party/beto-core/src": { + "url": "https://beto-core.googlesource.com/beto-core.git", + "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", + "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=" + }, + "src/third_party/securemessage/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git", + "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", + "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=" + }, + "src/third_party/speedometer/v3.0": { + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git", + "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", + "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=" + }, + "src/third_party/ukey2/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git", + "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", + "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=" + }, + "src/third_party/cros-components/src": { + "url": "https://chromium.googlesource.com/external/google3/cros_components.git", + "rev": "08a6ca6559c8d07c79fb5576a44e016e3126c221", + "hash": "sha256-gEhAwW6u8VgBRFmAddRBlosbf/a9lhRLgs70Dvh1zos=" + }, + "src/third_party/libdrm/src": { + "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git", + "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", + "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=" + }, + "src/third_party/expat/src": { + "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git", + "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", + "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=" + }, + "src/third_party/libipp/libipp": { + "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git", + "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", + "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=" + }, + "src/third_party/libjpeg_turbo": { + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git", + "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", + "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=" + }, + "src/third_party/liblouis/src": { + "url": "https://chromium.googlesource.com/external/liblouis-github.git", + "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", + "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=" + }, + "src/third_party/libphonenumber/dist": { + "url": "https://chromium.googlesource.com/external/libphonenumber.git", + "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362", + "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=" + }, + "src/third_party/libprotobuf-mutator/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git", + "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", + "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=" + }, + "src/third_party/libsrtp": { + "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git", + "rev": "000edd791434c8738455f10e0dd6b268a4852c0b", + "hash": "sha256-4qEZ9MD97MoqCUlZtbEhIKy+fDO1iIWqyrBsKwkjXTg=" + }, + "src/third_party/libsync/src": { + "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git", + "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", + "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=" + }, + "src/third_party/libvpx/source/libvpx": { + "url": "https://chromium.googlesource.com/webm/libvpx.git", + "rev": "fbf63dff1f528d44f24bd662abb89fd01a4a1c25", + "hash": "sha256-fXEPPgUdTsvzbLc8mp7v0MWw/9FfOooIIKjRshvYi2o=" + }, + "src/third_party/libwebm/source": { + "url": "https://chromium.googlesource.com/webm/libwebm.git", + "rev": "26d9f667170dc75e8d759a997bb61c64dec42dda", + "hash": "sha256-Mn3snC2g4BDKBJsS6cxT3BZL7LZknOWg77+60Nr4Hy0=" + }, + "src/third_party/libwebp/src": { + "url": "https://chromium.googlesource.com/webm/libwebp.git", + "rev": "845d5476a866141ba35ac133f856fa62f0b7445f", + "hash": "sha256-xuRpEwOnaLGZmrPvfUn3DSoJANd94CG+JXcN7Mdmk5I=" + }, + "src/third_party/libyuv": { + "url": "https://chromium.googlesource.com/libyuv/libyuv.git", + "rev": "4620f1705822fd6ab99939f43ce63099bd3d9ae0", + "hash": "sha256-tQ7eCY1udoGHRoFr83obQ994IMfxqaH68StvXJ6obZ8=" + }, + "src/third_party/lss": { + "url": "https://chromium.googlesource.com/linux-syscall-support.git", + "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", + "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=" + }, + "src/third_party/material_color_utilities/src": { + "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git", + "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", + "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=" + }, + "src/third_party/minigbm/src": { + "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git", + "rev": "3018207f4d89395cc271278fb9a6558b660885f5", + "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=" + }, + "src/third_party/nasm": { + "url": "https://chromium.googlesource.com/chromium/deps/nasm.git", + "rev": "f477acb1049f5e043904b87b825c5915084a9a29", + "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=" + }, + "src/third_party/neon_2_sse/src": { + "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git", + "rev": "a15b489e1222b2087007546b4912e21293ea86ff", + "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=" + }, + "src/third_party/openh264/src": { + "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264", + "rev": "478e5ab3eca30e600006d5a0a08b176fd34d3bd1", + "hash": "sha256-S7dS2IZwt4p4ZrF6K7E5HnwKuI3owU2I7vwtu95uTkE=" + }, + "src/third_party/openscreen/src": { + "url": "https://chromium.googlesource.com/openscreen", + "rev": "b720e33d337c68353e5d80a72491fb438f27d93a", + "hash": "sha256-y2XOZ3CmGdI0S/DLnOwAhm0kGTf/ayJ6OwPVlQCQqBw=" + }, + "src/third_party/openscreen/src/buildtools": { + "url": "https://chromium.googlesource.com/chromium/src/buildtools", + "rev": "4e0e9c73a0f26735f034f09a9cab2a5c0178536b", + "hash": "sha256-suuxUL//BfAMmG8os8ChI7ic9EjGTi7y5kjxiAyrEQc=" + }, + "src/third_party/openscreen/src/third_party/tinycbor/src": { + "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git", + "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", + "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=" + }, + "src/third_party/pdfium": { + "url": "https://pdfium.googlesource.com/pdfium.git", + "rev": "2b675cf15ab4b68bf1ed4e0511ba2479e11f1605", + "hash": "sha256-znfeKj2ttFWalFPeP9o8NPYLHD+pWAKuWVudX59MhLw=" + }, + "src/third_party/perfetto": { + "url": "https://android.googlesource.com/platform/external/perfetto.git", + "rev": "9170899ab284db894f14439e561f02f83a04d88e", + "hash": "sha256-ej8yXGOlmqwnWBbKR99qtIn3MvImaqV5ResVp95zdcM=" + }, + "src/third_party/protobuf-javascript/src": { + "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript", + "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", + "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=" + }, + "src/third_party/pthreadpool/src": { + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git", + "rev": "560c60d342a76076f0557a3946924c6478470044", + "hash": "sha256-rGg6lgLkmbYo+a9CdaXz9ZUyrqJ1rxLcjLJeBEOPAlE=" + }, + "src/third_party/pyelftools": { + "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git", + "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", + "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=" + }, + "src/third_party/quic_trace/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git", + "rev": "caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc", + "hash": "sha256-Nf9ZDLcE1JunhbpEMHhrY2ROnbgrvVZoRkPwWq1DU0g=" + }, + "src/third_party/pywebsocket3/src": { + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git", + "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", + "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=" + }, + "src/third_party/re2/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/re2.git", + "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", + "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=" + }, + "src/third_party/ruy/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git", + "rev": "c08ec529fc91722bde519628d9449258082eb847", + "hash": "sha256-4NVvqUZn2BdwTxJINTHwPeRqbGXZrWdcd7jv1Y+eoKY=" + }, + "src/third_party/skia": { + "url": "https://skia.googlesource.com/skia.git", + "rev": "3c64459d5df2fa9794b277f0959ed8a92552bf4c", + "hash": "sha256-u/K96HEBcx1sge4wSf3m4xDkZEoFaxekHafgmC4rjVQ=" + }, + "src/third_party/smhasher/src": { + "url": "https://chromium.googlesource.com/external/smhasher.git", + "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f", + "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=" + }, + "src/third_party/snappy/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git", + "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c", + "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=" + }, + "src/third_party/sqlite/src": { + "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git", + "rev": "567495a62a62dc013888500526e82837d727fe01", + "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=" + }, + "src/third_party/swiftshader": { + "url": "https://swiftshader.googlesource.com/SwiftShader.git", + "rev": "2afc8c97882a5c66abf5f26670ae420d2e30adc3", + "hash": "sha256-U29q1G3gnJdoucdLGZEbwpkGpDE4C2lv2b5WqpUf2Ho=" + }, + "src/third_party/text-fragments-polyfill/src": { + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git", + "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", + "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=" + }, + "src/third_party/tflite/src": { + "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git", + "rev": "d29299c16ec49623af1294900dba53fc8864f0bb", + "hash": "sha256-HtvrZur/vifocB/TKLDkzTLjFbGee4xGUhRLShozo9M=" + }, + "src/third_party/vulkan-deps": { + "url": "https://chromium.googlesource.com/vulkan-deps", + "rev": "c045c2192ab45a144b419033dffe6190be5d8c93", + "hash": "sha256-U8iB5HlLHzpeBJjd9XODWONDy7GTfNbM2kjGBIAhabU=" + }, + "src/third_party/glslang/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang", + "rev": "dc1012140e015d43711514d1294ac6f626890a40", + "hash": "sha256-6lVjQb8FOyGmRGEcNDzL55s/9bcDY3jIz4Xm3BK3GoI=" + }, + "src/third_party/spirv-cross/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross", + "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=" + }, + "src/third_party/spirv-headers/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers", + "rev": "2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801", + "hash": "sha256-o1yRTvP7a+XVwendTKBJKNnelVGWLD0gH258GGeUDhQ=" + }, + "src/third_party/spirv-tools/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools", + "rev": "37d2fcb485bf3fcadb18ef90aab6f283dcc4be72", + "hash": "sha256-13y7Z6wMeAmV2dgMepgQPB+c+Pjc2O3C2G0kdlBVsNE=" + }, + "src/third_party/vulkan-headers/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers", + "rev": "c6391a7b8cd57e79ce6b6c832c8e3043c4d9967b", + "hash": "sha256-8q6uu3v7j7poTMkn0oxj+RewIqhjCOuBz/QG/oFnWBI=" + }, + "src/third_party/vulkan-loader/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader", + "rev": "1108bba6c97174d172d45470a7470a3d6a564647", + "hash": "sha256-dA9yc8nv8HDF8WA7bSReqI2JtUU41/Xl4J/CQlq0nuU=" + }, + "src/third_party/vulkan-tools/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", + "rev": "4c63e845962ff3b197855f3ae4907a47d0863f5a", + "hash": "sha256-eEJ9S1/fF5WMT+fRq+ZTzRfb+gxDA8drK8uwPVrFoNc=" + }, + "src/third_party/vulkan-utility-libraries/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries", + "rev": "ea5774a13e3017b6d5d79af6fba9f0d72ca5c61a", + "hash": "sha256-4jK6OQT5Za46HixUe1kOay2NlTYtf9OHkbZrZ0y6pdI=" + }, + "src/third_party/vulkan-validation-layers/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers", + "rev": "ef846ac0883cde5e69ced0e7d7af59fe92f34e25", + "hash": "sha256-vwd7n30odVW/Q39lIiVuhyWhnm20giEHlzP14ONXyuw=" + }, + "src/third_party/vulkan_memory_allocator": { + "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git", + "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", + "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=" + }, + "src/third_party/wayland/src": { + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git", + "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", + "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=" + }, + "src/third_party/wayland-protocols/src": { + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git", + "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", + "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=" + }, + "src/third_party/wayland-protocols/kde": { + "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git", + "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", + "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=" + }, + "src/third_party/wayland-protocols/gtk": { + "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git", + "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", + "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=" + }, + "src/third_party/webdriver/pylib": { + "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git", + "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", + "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=" + }, + "src/third_party/webgl/src": { + "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git", + "rev": "1b6371436a0a60e6b9a4ae2a40a8eba198e3af02", + "hash": "sha256-Yn0e1bpvtD4mGdZaRiBytc+upLulYVyHJqXJiTWEfmA=" + }, + "src/third_party/webgpu-cts/src": { + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git", + "rev": "2f55512456a725e77f3baac3d951de5c6c5e28a3", + "hash": "sha256-3ruYKYHOkqlJcrjl4xvQV+OtULbgNUvXGBfrd5WTGyY=" + }, + "src/third_party/webrtc": { + "url": "https://webrtc.googlesource.com/src.git", + "rev": "28b793b4dd275bf2b901b87e01c0ee8d4f5732fc", + "hash": "sha256-4URlxWupNm67GeUGLJe3Dz1IONIq1mCjG5Lf4csKFKo=" + }, + "src/third_party/wuffs/src": { + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git", + "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", + "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=" + }, + "src/third_party/weston/src": { + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git", + "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", + "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=" + }, + "src/third_party/xdg-utils": { + "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git", + "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", + "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=" + }, + "src/third_party/xnnpack/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git", + "rev": "c4a28daf28c98300da9d9b5213c53f762908825e", + "hash": "sha256-VBrBNjoF3hsRXpBfXP2g9xOujVsmm7AkV6wE4ZwW2ts=" + }, + "src/tools/page_cycler/acid3": { + "url": "https://chromium.googlesource.com/chromium/deps/acid3.git", + "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba", + "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=" + }, + "src/third_party/zstd/src": { + "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git", + "rev": "20707e3718ee14250fb8a44b3bf023ea36bd88df", + "hash": "sha256-/IUfh0De9m7ACrisqKlpxZsb+asoAWGXCaK6L+s24Q8=" + }, + "src/v8": { + "url": "https://chromium.googlesource.com/v8/v8.git", + "rev": "9ae5f73732808d0b574e8efe88fcdbc72850fbd0", + "hash": "sha256-Ip7+Qs+U8iIDo0ZxEYSzRQUc/Ipeu7DtD8DS4hTNxJw=" + } + } + }, + "ungoogled-chromium": { + "version": "130.0.6723.116", + "deps": { + "depot_tools": { + "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", + "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=" + }, + "gn": { + "rev": "20806f79c6b4ba295274e3a589d85db41a02fdaa", + "hash": "sha256-iNXRq3Mr8+wmY1SR4sV7yd2fDiIZ94eReelwFI0UhGU=" + }, + "ungoogled-patches": { + "rev": "130.0.6723.116-1", + "hash": "sha256-+94tSSaOp6vzWkXN1qF3UXMm/Rs3pKmjf+U4x+af818=" + }, + "npmHash": "sha256-4w5m/bTMygidlb4TZHMx1Obp784DLxMwrfe1Uvyyfp8=" + }, + "DEPS": { + "src": { + "url": "https://chromium.googlesource.com/chromium/src.git", + "rev": "130.0.6723.116", + "hash": "sha256-KSUDdIHSzsZBYC+ApQE3iolGOAC0MZETlI2ARNXE0Vg=", + "recompress": true + }, + "src/third_party/clang-format/script": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git", + "rev": "3c0acd2d4e73dd911309d9e970ba09d58bf23a62", + "hash": "sha256-whD8isX2ZhLrFzdxHhFP1S/sZDRgyrzLFaVd7OEFqYo=" + }, + "src/third_party/libc++/src": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git", + "rev": "50ab693ecb611942ce4440d8c9ed707ee65ed5e8", + "hash": "sha256-hKlmY2Bn1f6w0Gmx/Le/LwWk/Gf6hzXqR5C+/w+0CNA=" + }, + "src/third_party/libc++abi/src": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git", + "rev": "29b2e9a0f48688da116692cb04758393053d269c", + "hash": "sha256-GtK8z2jn4es3uuxpAgm5AoQvUjvhAunAyUwm3HEqLVA=" + }, + "src/third_party/libunwind/src": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git", + "rev": "dc70138c3e68e2f946585f134e20815851e26263", + "hash": "sha256-5xsrVVSu9b+78GEKeLGNpo7ySxrJ2SeuuKghN6NHlSU=" + }, + "src/chrome/test/data/perf/canvas_bench": { + "url": "https://chromium.googlesource.com/chromium/canvas_bench.git", + "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732", + "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=" + }, + "src/chrome/test/data/perf/frame_rate/content": { + "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git", + "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9", + "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=" + }, + "src/chrome/test/data/xr/webvr_info": { + "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git", + "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248", + "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=" + }, + "src/docs/website": { + "url": "https://chromium.googlesource.com/website.git", + "rev": "052e29447b43b18da32fff653b9d58ef79fbc836", + "hash": "sha256-XK22S9WwNN4zQZ5teiQ1sZA5m/8rArwq3jCgM6H9KQY=" + }, + "src/media/cdm/api": { + "url": "https://chromium.googlesource.com/chromium/cdm.git", + "rev": "eb21edc44e8e5a82095037be80c8b15c51624293", + "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=" + }, + "src/net/third_party/quiche/src": { + "url": "https://quiche.googlesource.com/quiche.git", + "rev": "9808dac40e034f09d7af53d3d79589a02e39c211", + "hash": "sha256-NJKJ5cc+wEcmCIFYXWQX4x9BZblbS+wqj+25CcUiPZM=" + }, + "src/testing/libfuzzer/fuzzers/wasm_corpus": { + "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git", + "rev": "f650ff816f2ef227f61ea2e9f222aa69708ab367", + "hash": "sha256-qWsGQNUptbz0jYvUuxP7woNf5QQrfn9k3uvr82Yk0QM=" + }, + "src/third_party/accessibility_test_framework/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git", + "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe", + "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=" + }, + "src/third_party/angle": { + "url": "https://chromium.googlesource.com/angle/angle.git", + "rev": "fffbc739779a2df56a464fd6853bbfb24bebb5f6", + "hash": "sha256-OtpF7+KQzk0MWhgBlNV1DheHywtBMDQIPhGUOss9Dtg=" + }, + "src/third_party/angle/third_party/glmark2/src": { + "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2", + "rev": "ca8de51fedb70bace5351c6b002eb952c747e889", + "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=" + }, + "src/third_party/angle/third_party/rapidjson/src": { + "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson", + "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f", + "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=" + }, + "src/third_party/angle/third_party/VK-GL-CTS/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS", + "rev": "1df39e522f4aa358012180fd4cf876af68aff78d", + "hash": "sha256-yPQG/Ddat9H4XZq6Zu5S3VzcZeMhLBcM//KI/3Kxaxg=" + }, + "src/third_party/anonymous_tokens/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git", + "rev": "6ea6ec78f9e4998d0a7a5677b2aec08f0ac858f8", + "hash": "sha256-PMB49+zW9ewlS9ym+xi0xYQYLN0j5Urx6yBXWd8FjjI=" + }, + "src/third_party/content_analysis_sdk/src": { + "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git", + "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc", + "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=" + }, + "src/third_party/dav1d/libdav1d": { + "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git", + "rev": "6b3c489a2ee2c030f351f21987c27611b4cbe725", + "hash": "sha256-qJSUt8gMFB+IhOnEAw3t6nj1y7XUY91pLQBF8CeYtas=" + }, + "src/third_party/dawn": { + "url": "https://dawn.googlesource.com/dawn.git", + "rev": "70a01d28c3ecd75b67a87e4643bd4d55fc391ce6", + "hash": "sha256-x5Fm7DGAFfDmZ9p6JY16+QSPPztxNrG/HvQrZ26NnZM=" + }, + "src/third_party/dawn/third_party/glfw": { + "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw", + "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d", + "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=" + }, + "src/third_party/dawn/third_party/dxc": { + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler", + "rev": "05334a70d3e5355fc86c94bb4e3cfe1c31a65999", + "hash": "sha256-CrR08tw9e+4U+fa6E9xoP/4puPNHEjLrxtSju8psLlk=" + }, + "src/third_party/dawn/third_party/dxheaders": { + "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers", + "rev": "980971e835876dc0cde415e8f9bc646e64667bf7", + "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=" + }, + "src/third_party/dawn/third_party/webgpu-headers": { + "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers", + "rev": "8049c324dc7b3c09dc96ea04cb02860f272c8686", + "hash": "sha256-J3PcwYoO79HqrACFgk77BZLTCi7oi5k2J6v3wlcFVD4=" + }, + "src/third_party/dawn/third_party/khronos/OpenGL-Registry": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry", + "rev": "5bae8738b23d06968e7c3a41308568120943ae77", + "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=" + }, + "src/third_party/dawn/third_party/khronos/EGL-Registry": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry", + "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071", + "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=" + }, + "src/third_party/dawn/third_party/webgpu-cts": { + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts", + "rev": "a5065e398d2430c83e17ef9cbad6eae31d1efa8f", + "hash": "sha256-heIL8hhaVr0uRi2lD+7RFltggVFW48ZY9Tdl0yVRdac=" + }, + "src/third_party/highway/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/highway.git", + "rev": "8295336dd70f1201d42c22ab5b0861de38cf8fbf", + "hash": "sha256-PXsXIqWB4NNiFhanRjMIFSWYuW/IRuQo8mMPUBEentY=" + }, + "src/third_party/google_benchmark/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git", + "rev": "344117638c8ff7e239044fd0fa7085839fc03021", + "hash": "sha256-gztnxui9Fe/FTieMjdvfJjWHjkImtlsHn6fM1FruyME=" + }, + "src/third_party/boringssl/src": { + "url": "https://boringssl.googlesource.com/boringssl.git", + "rev": "58f3bc83230d2958bb9710bc910972c4f5d382dc", + "hash": "sha256-on+VonYXZ710oqgaK/OKa9Huq2mSXp8SJcj9CciHsf8=" + }, + "src/third_party/breakpad/breakpad": { + "url": "https://chromium.googlesource.com/breakpad/breakpad.git", + "rev": "6b0c5b7ee1988a14a4af94564e8ae8bba8a94374", + "hash": "sha256-kTkwRfaqw5ZCHEvu2YPZ+1vCfekHkY5pY3m9snDN64g=" + }, + "src/third_party/cast_core/public/src": { + "url": "https://chromium.googlesource.com/cast_core/public", + "rev": "71f51fd6fa45fac73848f65421081edd723297cd", + "hash": "sha256-AalRQhJmornCqmvE2+36J/3LubaA0jr6P1PXy32lX4I=" + }, + "src/third_party/catapult": { + "url": "https://chromium.googlesource.com/catapult.git", + "rev": "296226a4a0067c8cffeb8831fb87526a8035f3cc", + "hash": "sha256-IHubCuEBE9W0wRudOmjUoaOvT66JuVTzEBUOTvdnXqQ=" + }, + "src/third_party/ced/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git", + "rev": "ba412eaaacd3186085babcd901679a48863c7dd5", + "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=" + }, + "src/third_party/chromium-variations": { + "url": "https://chromium.googlesource.com/chromium-variations.git", + "rev": "6aa57f2c6b49402b55ec607c17bd7ee8946970b0", + "hash": "sha256-DR5rJdnDKunS/PHtVK1n4zk0MmK54LhlawZW74711LY=" + }, + "src/third_party/cld_3/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git", + "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661", + "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=" + }, + "src/third_party/colorama/src": { + "url": "https://chromium.googlesource.com/external/colorama.git", + "rev": "3de9f013df4b470069d03d250224062e8cf15c49", + "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=" + }, + "src/third_party/cpu_features/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git", + "rev": "936b9ab5515dead115606559502e3864958f7f6e", + "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=" + }, + "src/third_party/cpuinfo/src": { + "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git", + "rev": "ca678952a9a8eaa6de112d154e8e104b22f9ab3f", + "hash": "sha256-UKy9TIiO/UJ5w+qLRlMd085CX2qtdVH2W3rtxB5r6MY=" + }, + "src/third_party/crc32c/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git", + "rev": "d3d60ac6e0f16780bcfcc825385e1d338801a558", + "hash": "sha256-KBraGaO5LmmPP+p8RuDogGldbTWdNDK+WzF4Q09keuE=" + }, + "src/third_party/cros_system_api": { + "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git", + "rev": "2f88f9c4581a9c854604fa23516de8c9c13b227b", + "hash": "sha256-9rM9m6VRX7B+h9JiICN5O9rBYdQEHNlCUnQMuaTy/1s=" + }, + "src/third_party/crossbench": { + "url": "https://chromium.googlesource.com/crossbench.git", + "rev": "2b812597dd143dbdc560ff2f28d5f8d3adc700d4", + "hash": "sha256-7IuhXuxXD3xBkgazg3B9GZknlNv8Xi0eTHkeQv63ayk=" + }, + "src/third_party/depot_tools": { + "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git", + "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", + "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=" + }, + "src/third_party/devtools-frontend/src": { + "url": "https://chromium.googlesource.com/devtools/devtools-frontend", + "rev": "deee9c11c9f76ef595b7d0b52fcf677d25aac5f2", + "hash": "sha256-gRc2ei5m7a5KVKEMIivPGy1IQqDIaJxUJHLd5k2F+GQ=" + }, + "src/third_party/dom_distiller_js/dist": { + "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git", + "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d", + "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=" + }, + "src/third_party/eigen3/src": { + "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git", + "rev": "134b526d6110061469168e7e0511822a8e30bcaf", + "hash": "sha256-U4SMReXTFZg7YGyefI6MXIB66nt5OiANMH0HUyr/xIc=" + }, + "src/third_party/farmhash/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git", + "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45", + "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=" + }, + "src/third_party/fast_float/src": { + "url": "https://chromium.googlesource.com/external/github.com/fastfloat/fast_float.git", + "rev": "3e57d8dcfb0a04b5a8a26b486b54490a2e9b310f", + "hash": "sha256-0eVovauN7SnO3nSIWBRWAJ4dR7q5beZrIGUZ18M2pao=" + }, + "src/third_party/ffmpeg": { + "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git", + "rev": "91903c28af60a732a051c343b496e1188eec9b05", + "hash": "sha256-HnpWlSfXxa951UkFgL/2zKoaBeveuVkTZz/iqYXjkH8=" + }, + "src/third_party/flac": { + "url": "https://chromium.googlesource.com/chromium/deps/flac.git", + "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c", + "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=" + }, + "src/third_party/flatbuffers/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git", + "rev": "8db59321d9f02cdffa30126654059c7d02f70c32", + "hash": "sha256-tbc45o0MbMvK5XqRUJt5Eg8BU6+TJqlmwFgQhHq6wRM=" + }, + "src/third_party/fontconfig/src": { + "url": "https://chromium.googlesource.com/external/fontconfig.git", + "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267", + "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=" + }, + "src/third_party/fp16/src": { + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git", + "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91", + "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=" + }, + "src/third_party/gemmlowp/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git", + "rev": "13d57703abca3005d97b19df1f2db731607a7dc2", + "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=" + }, + "src/third_party/grpc/src": { + "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git", + "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737", + "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=" + }, + "src/third_party/freetype/src": { + "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git", + "rev": "83af801b552111e37d9466a887e1783a0fb5f196", + "hash": "sha256-w5Zd4yvGoMQ0BmDGa2b9gK/+7f+UaZDRYqEdMGH/zKg=" + }, + "src/third_party/freetype-testing/src": { + "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git", + "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f", + "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=" + }, + "src/third_party/fxdiv/src": { + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git", + "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8", + "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=" + }, + "src/third_party/harfbuzz-ng/src": { + "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git", + "rev": "1da053e87f0487382404656edca98b85fe51f2fd", + "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=" + }, + "src/third_party/instrumented_libs": { + "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git", + "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", + "hash": "sha256-kHKGADAgzlaeckXFbpU1GhJK+zkiRd9XvdtPF6qrQFY=" + }, + "src/third_party/emoji-segmenter/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git", + "rev": "6b8f235b72deba7d6ef113631129b274c14941ef", + "hash": "sha256-sI6UgXTWxXJajB2h2LH3caf7cqRbBshD5GoLocrUivk=" + }, + "src/third_party/ots/src": { + "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git", + "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33", + "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=" + }, + "src/third_party/libgav1/src": { + "url": "https://chromium.googlesource.com/codecs/libgav1.git", + "rev": "a2f139e9123bdb5edf7707ac6f1b73b3aa5038dd", + "hash": "sha256-+ss9S5t+yoHzqbtX68+5OyyUbJVecYLwp+C3EXfAziE=" + }, + "src/third_party/googletest/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git", + "rev": "0953a17a4281fc26831da647ad3fcd5e21e6473b", + "hash": "sha256-jccFUondvjWgCBC3oCLUXqtLV07pkEq8IEZ+FLu1MrE=" + }, + "src/third_party/hunspell_dictionaries": { + "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git", + "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e", + "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=" + }, + "src/third_party/icu": { + "url": "https://chromium.googlesource.com/chromium/deps/icu.git", + "rev": "9408c6fd4a39e6fef0e1c4077602e1c83b15f3fb", + "hash": "sha256-YlX+PaPhvYh9JzHT9WtS1beUK+cQrHGVUl+IBbv7GeQ=" + }, + "src/third_party/jsoncpp/source": { + "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git", + "rev": "42e892d96e47b1f6e29844cc705e148ec4856448", + "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=" + }, + "src/third_party/leveldatabase/src": { + "url": "https://chromium.googlesource.com/external/leveldb.git", + "rev": "23e35d792b9154f922b8b575b12596a4d8664c65", + "hash": "sha256-y3awFXL8ih2UhEqWj8JRgkhzSxfQciLztb020JHJ350=" + }, + "src/third_party/libFuzzer/src": { + "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git", + "rev": "487e79376394754705984c5de7c4ce7f82f2bd7c", + "hash": "sha256-xQXfRIcQmAVP0k2mT7Blv1wBxL6wDaWTbIPGcTiMZRo=" + }, + "src/third_party/fuzztest/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git", + "rev": "a29e31cb00ec9b123dec5a0c6b8d4bc12c2480c8", + "hash": "sha256-g+iJrywURQfdYpco26VN+OlhZkVcFzmAK18C7W7/WLU=" + }, + "src/third_party/domato/src": { + "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git", + "rev": "053714bccbda79cf76dac3fee48ab2b27f21925e", + "hash": "sha256-fYxoA0fxKe9U23j+Jp0MWj4m7RfsRpM0XjF6/yOhX1I=" + }, + "src/third_party/libaddressinput/src": { + "url": "https://chromium.googlesource.com/external/libaddressinput.git", + "rev": "e8712e415627f22d0b00ebee8db99547077f39bd", + "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=" + }, + "src/third_party/libaom/source/libaom": { + "url": "https://aomedia.googlesource.com/aom.git", + "rev": "d5265b173616ce62de231cd1b1eae853ad03641e", + "hash": "sha256-uFUIodoC9qpLycwtWRgc0iqaqcUsvVmwAAQGHKolWto=" + }, + "src/third_party/libavif/src": { + "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git", + "rev": "c2177c3316a49505dcd592ba21073f7abc25cd37", + "hash": "sha256-2GKqPgWs1TD0nPW7VoSo8dz3ugPsZhcy2K1V35XflSk=" + }, + "src/third_party/crabbyavif/src": { + "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git", + "rev": "adfb834d76c6a064f28bb3a694689fc14a42425e", + "hash": "sha256-9ooMkYOHRYbV2kdxu8VWUNgBeBsrN4kWUb8cZJwZfiU=" + }, + "src/third_party/libavifinfo/src": { + "url": "https://aomedia.googlesource.com/libavifinfo.git", + "rev": "8d8b58a3f517ef8d1794baa28ca6ae7d19f65514", + "hash": "sha256-61OPjdMCIbHvWncmBzNw6sqlHcuc1kyqm9k1j4UTcZ0=" + }, + "src/third_party/nearby/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git", + "rev": "3c8737f92d765407e4ff6c87b8758ba99ede40ed", + "hash": "sha256-RZsdeT1gkbrOuHvngs+Iavl9YE27jLx4AXXYOvSXZoI=" + }, + "src/third_party/beto-core/src": { + "url": "https://beto-core.googlesource.com/beto-core.git", + "rev": "89563fec14c756482afa08b016eeba9087c8d1e3", + "hash": "sha256-QPFGjtu/I0r4+dTQ2eSlWIEYwJ43B3yW0q4QtVFTVGY=" + }, + "src/third_party/securemessage/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git", + "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84", + "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=" + }, + "src/third_party/speedometer/v3.0": { + "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git", + "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d", + "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=" + }, + "src/third_party/ukey2/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git", + "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47", + "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=" + }, + "src/third_party/cros-components/src": { + "url": "https://chromium.googlesource.com/external/google3/cros_components.git", + "rev": "08a6ca6559c8d07c79fb5576a44e016e3126c221", + "hash": "sha256-gEhAwW6u8VgBRFmAddRBlosbf/a9lhRLgs70Dvh1zos=" + }, + "src/third_party/libdrm/src": { + "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git", + "rev": "ad78bb591d02162d3b90890aa4d0a238b2a37cde", + "hash": "sha256-woSYEDUfcEBpYOYnli13wLMt754A7KnUbmTEcFQdFGw=" + }, + "src/third_party/expat/src": { + "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git", + "rev": "624da0f593bb8d7e146b9f42b06d8e6c80d032a3", + "hash": "sha256-Iwu9+i/0vsPyu6pOWFxjNNblVxMl6bTPW5eWyaju4Mg=" + }, + "src/third_party/libipp/libipp": { + "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git", + "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f", + "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=" + }, + "src/third_party/libjpeg_turbo": { + "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git", + "rev": "927aabfcd26897abb9776ecf2a6c38ea5bb52ab6", + "hash": "sha256-qgHXAjCDFxQ+QqJ8pSmI1NUvHvKKTi4MkIe1I/+hUAI=" + }, + "src/third_party/liblouis/src": { + "url": "https://chromium.googlesource.com/external/liblouis-github.git", + "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376", + "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=" + }, + "src/third_party/libphonenumber/dist": { + "url": "https://chromium.googlesource.com/external/libphonenumber.git", + "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362", + "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=" + }, + "src/third_party/libprotobuf-mutator/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git", + "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf", + "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=" + }, + "src/third_party/libsrtp": { + "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git", + "rev": "000edd791434c8738455f10e0dd6b268a4852c0b", + "hash": "sha256-4qEZ9MD97MoqCUlZtbEhIKy+fDO1iIWqyrBsKwkjXTg=" + }, + "src/third_party/libsync/src": { + "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git", + "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6", + "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=" + }, + "src/third_party/libvpx/source/libvpx": { + "url": "https://chromium.googlesource.com/webm/libvpx.git", + "rev": "fbf63dff1f528d44f24bd662abb89fd01a4a1c25", + "hash": "sha256-fXEPPgUdTsvzbLc8mp7v0MWw/9FfOooIIKjRshvYi2o=" + }, + "src/third_party/libwebm/source": { + "url": "https://chromium.googlesource.com/webm/libwebm.git", + "rev": "26d9f667170dc75e8d759a997bb61c64dec42dda", + "hash": "sha256-Mn3snC2g4BDKBJsS6cxT3BZL7LZknOWg77+60Nr4Hy0=" + }, + "src/third_party/libwebp/src": { + "url": "https://chromium.googlesource.com/webm/libwebp.git", + "rev": "845d5476a866141ba35ac133f856fa62f0b7445f", + "hash": "sha256-xuRpEwOnaLGZmrPvfUn3DSoJANd94CG+JXcN7Mdmk5I=" + }, + "src/third_party/libyuv": { + "url": "https://chromium.googlesource.com/libyuv/libyuv.git", + "rev": "4620f1705822fd6ab99939f43ce63099bd3d9ae0", + "hash": "sha256-tQ7eCY1udoGHRoFr83obQ994IMfxqaH68StvXJ6obZ8=" + }, + "src/third_party/lss": { + "url": "https://chromium.googlesource.com/linux-syscall-support.git", + "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521", + "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=" + }, + "src/third_party/material_color_utilities/src": { + "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git", + "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465", + "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=" + }, + "src/third_party/minigbm/src": { + "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git", + "rev": "3018207f4d89395cc271278fb9a6558b660885f5", + "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=" + }, + "src/third_party/nasm": { + "url": "https://chromium.googlesource.com/chromium/deps/nasm.git", + "rev": "f477acb1049f5e043904b87b825c5915084a9a29", + "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=" + }, + "src/third_party/neon_2_sse/src": { + "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git", + "rev": "a15b489e1222b2087007546b4912e21293ea86ff", + "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=" + }, + "src/third_party/openh264/src": { + "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264", + "rev": "478e5ab3eca30e600006d5a0a08b176fd34d3bd1", + "hash": "sha256-S7dS2IZwt4p4ZrF6K7E5HnwKuI3owU2I7vwtu95uTkE=" + }, + "src/third_party/openscreen/src": { + "url": "https://chromium.googlesource.com/openscreen", + "rev": "b720e33d337c68353e5d80a72491fb438f27d93a", + "hash": "sha256-y2XOZ3CmGdI0S/DLnOwAhm0kGTf/ayJ6OwPVlQCQqBw=" + }, + "src/third_party/openscreen/src/buildtools": { + "url": "https://chromium.googlesource.com/chromium/src/buildtools", + "rev": "4e0e9c73a0f26735f034f09a9cab2a5c0178536b", + "hash": "sha256-suuxUL//BfAMmG8os8ChI7ic9EjGTi7y5kjxiAyrEQc=" + }, + "src/third_party/openscreen/src/third_party/tinycbor/src": { + "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git", + "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7", + "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=" + }, + "src/third_party/pdfium": { + "url": "https://pdfium.googlesource.com/pdfium.git", + "rev": "2b675cf15ab4b68bf1ed4e0511ba2479e11f1605", + "hash": "sha256-znfeKj2ttFWalFPeP9o8NPYLHD+pWAKuWVudX59MhLw=" + }, + "src/third_party/perfetto": { + "url": "https://android.googlesource.com/platform/external/perfetto.git", + "rev": "9170899ab284db894f14439e561f02f83a04d88e", + "hash": "sha256-ej8yXGOlmqwnWBbKR99qtIn3MvImaqV5ResVp95zdcM=" + }, + "src/third_party/protobuf-javascript/src": { + "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript", + "rev": "e34549db516f8712f678fcd4bc411613b5cc5295", + "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=" + }, + "src/third_party/pthreadpool/src": { + "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git", + "rev": "560c60d342a76076f0557a3946924c6478470044", + "hash": "sha256-rGg6lgLkmbYo+a9CdaXz9ZUyrqJ1rxLcjLJeBEOPAlE=" + }, + "src/third_party/pyelftools": { + "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git", + "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae", + "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=" + }, + "src/third_party/quic_trace/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git", + "rev": "caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc", + "hash": "sha256-Nf9ZDLcE1JunhbpEMHhrY2ROnbgrvVZoRkPwWq1DU0g=" + }, + "src/third_party/pywebsocket3/src": { + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git", + "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2", + "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=" + }, + "src/third_party/re2/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/re2.git", + "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca", + "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=" + }, + "src/third_party/ruy/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git", + "rev": "c08ec529fc91722bde519628d9449258082eb847", + "hash": "sha256-4NVvqUZn2BdwTxJINTHwPeRqbGXZrWdcd7jv1Y+eoKY=" + }, + "src/third_party/skia": { + "url": "https://skia.googlesource.com/skia.git", + "rev": "3c64459d5df2fa9794b277f0959ed8a92552bf4c", + "hash": "sha256-u/K96HEBcx1sge4wSf3m4xDkZEoFaxekHafgmC4rjVQ=" + }, + "src/third_party/smhasher/src": { + "url": "https://chromium.googlesource.com/external/smhasher.git", + "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f", + "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=" + }, + "src/third_party/snappy/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git", + "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c", + "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=" + }, + "src/third_party/sqlite/src": { + "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git", + "rev": "567495a62a62dc013888500526e82837d727fe01", + "hash": "sha256-ltl3OTk/wZPSj3yYthNlKd3mBxef6l5uW6UYTwebNek=" + }, + "src/third_party/swiftshader": { + "url": "https://swiftshader.googlesource.com/SwiftShader.git", + "rev": "2afc8c97882a5c66abf5f26670ae420d2e30adc3", + "hash": "sha256-U29q1G3gnJdoucdLGZEbwpkGpDE4C2lv2b5WqpUf2Ho=" + }, + "src/third_party/text-fragments-polyfill/src": { + "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git", + "rev": "c036420683f672d685e27415de0a5f5e85bdc23f", + "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=" + }, + "src/third_party/tflite/src": { + "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git", + "rev": "d29299c16ec49623af1294900dba53fc8864f0bb", + "hash": "sha256-HtvrZur/vifocB/TKLDkzTLjFbGee4xGUhRLShozo9M=" + }, + "src/third_party/vulkan-deps": { + "url": "https://chromium.googlesource.com/vulkan-deps", + "rev": "c045c2192ab45a144b419033dffe6190be5d8c93", + "hash": "sha256-U8iB5HlLHzpeBJjd9XODWONDy7GTfNbM2kjGBIAhabU=" + }, + "src/third_party/glslang/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang", + "rev": "dc1012140e015d43711514d1294ac6f626890a40", + "hash": "sha256-6lVjQb8FOyGmRGEcNDzL55s/9bcDY3jIz4Xm3BK3GoI=" + }, + "src/third_party/spirv-cross/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross", + "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3", + "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=" + }, + "src/third_party/spirv-headers/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers", + "rev": "2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801", + "hash": "sha256-o1yRTvP7a+XVwendTKBJKNnelVGWLD0gH258GGeUDhQ=" + }, + "src/third_party/spirv-tools/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools", + "rev": "37d2fcb485bf3fcadb18ef90aab6f283dcc4be72", + "hash": "sha256-13y7Z6wMeAmV2dgMepgQPB+c+Pjc2O3C2G0kdlBVsNE=" + }, + "src/third_party/vulkan-headers/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers", + "rev": "c6391a7b8cd57e79ce6b6c832c8e3043c4d9967b", + "hash": "sha256-8q6uu3v7j7poTMkn0oxj+RewIqhjCOuBz/QG/oFnWBI=" + }, + "src/third_party/vulkan-loader/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader", + "rev": "1108bba6c97174d172d45470a7470a3d6a564647", + "hash": "sha256-dA9yc8nv8HDF8WA7bSReqI2JtUU41/Xl4J/CQlq0nuU=" + }, + "src/third_party/vulkan-tools/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", + "rev": "4c63e845962ff3b197855f3ae4907a47d0863f5a", + "hash": "sha256-eEJ9S1/fF5WMT+fRq+ZTzRfb+gxDA8drK8uwPVrFoNc=" + }, + "src/third_party/vulkan-utility-libraries/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries", + "rev": "ea5774a13e3017b6d5d79af6fba9f0d72ca5c61a", + "hash": "sha256-4jK6OQT5Za46HixUe1kOay2NlTYtf9OHkbZrZ0y6pdI=" + }, + "src/third_party/vulkan-validation-layers/src": { + "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers", + "rev": "ef846ac0883cde5e69ced0e7d7af59fe92f34e25", + "hash": "sha256-vwd7n30odVW/Q39lIiVuhyWhnm20giEHlzP14ONXyuw=" + }, + "src/third_party/vulkan_memory_allocator": { + "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git", + "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21", + "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=" + }, + "src/third_party/wayland/src": { + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git", + "rev": "a156431ea66fe67d69c9fbba8a8ad34dabbab81c", + "hash": "sha256-oK0Z8xO2ILuySGZS0m37ZF0MOyle2l8AXb0/6wai0/w=" + }, + "src/third_party/wayland-protocols/src": { + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git", + "rev": "7d5a3a8b494ae44cd9651f9505e88a250082765e", + "hash": "sha256-o/adWEXYSqWib6KoK7XMCWbojapcS4O/CEPxv7iFCw8=" + }, + "src/third_party/wayland-protocols/kde": { + "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git", + "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e", + "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=" + }, + "src/third_party/wayland-protocols/gtk": { + "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git", + "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0", + "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=" + }, + "src/third_party/webdriver/pylib": { + "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git", + "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04", + "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=" + }, + "src/third_party/webgl/src": { + "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git", + "rev": "1b6371436a0a60e6b9a4ae2a40a8eba198e3af02", + "hash": "sha256-Yn0e1bpvtD4mGdZaRiBytc+upLulYVyHJqXJiTWEfmA=" + }, + "src/third_party/webgpu-cts/src": { + "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git", + "rev": "2f55512456a725e77f3baac3d951de5c6c5e28a3", + "hash": "sha256-3ruYKYHOkqlJcrjl4xvQV+OtULbgNUvXGBfrd5WTGyY=" + }, + "src/third_party/webrtc": { + "url": "https://webrtc.googlesource.com/src.git", + "rev": "28b793b4dd275bf2b901b87e01c0ee8d4f5732fc", + "hash": "sha256-4URlxWupNm67GeUGLJe3Dz1IONIq1mCjG5Lf4csKFKo=" + }, + "src/third_party/wuffs/src": { + "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git", + "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8", + "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=" + }, + "src/third_party/weston/src": { + "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git", + "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7", + "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=" + }, + "src/third_party/xdg-utils": { + "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git", + "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44", + "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=" + }, + "src/third_party/xnnpack/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git", + "rev": "c4a28daf28c98300da9d9b5213c53f762908825e", + "hash": "sha256-VBrBNjoF3hsRXpBfXP2g9xOujVsmm7AkV6wE4ZwW2ts=" + }, + "src/tools/page_cycler/acid3": { + "url": "https://chromium.googlesource.com/chromium/deps/acid3.git", + "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba", + "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=" + }, + "src/third_party/zstd/src": { + "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git", + "rev": "20707e3718ee14250fb8a44b3bf023ea36bd88df", + "hash": "sha256-/IUfh0De9m7ACrisqKlpxZsb+asoAWGXCaK6L+s24Q8=" + }, + "src/v8": { + "url": "https://chromium.googlesource.com/v8/v8.git", + "rev": "9ae5f73732808d0b574e8efe88fcdbc72850fbd0", + "hash": "sha256-Ip7+Qs+U8iIDo0ZxEYSzRQUc/Ipeu7DtD8DS4hTNxJw=" + } + } + } +} diff --git a/pkgs/applications/networking/browsers/chromium/recompress-tarball.nix b/pkgs/applications/networking/browsers/chromium/recompress-tarball.nix deleted file mode 100644 index ab1c81338f97f..0000000000000 --- a/pkgs/applications/networking/browsers/chromium/recompress-tarball.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ zstd -, fetchurl -, lib -, chromiumVersionAtLeast -}: - -{ version -, hash ? "" -} @ args: - -fetchurl ({ - name = "chromium-${version}.tar.zstd"; - url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz"; - inherit hash; - - # chromium xz tarballs are multiple gigabytes big and are sometimes downloaded multiples - # times for different versions as part of our update script. - # We originally inherited fetchzip's default for downloadToTemp (true). - # Given the size of the /run/user tmpfs used defaults to logind's RuntimeDirectorySize=, - # which in turn defaults to 10% of the total amount of physical RAM, this often lead to - # "no space left" errors, eventually resulting in its own section in our chromium - # README.md (for users wanting to run the update script). - # Nowadays, we use fetchurl instead of fetchzip, which defaults to false instead of true. - # We just want to be explicit and provide a place to document the history and reasoning - # behind this. - downloadToTemp = false; - - nativeBuildInputs = [ zstd ]; - - postFetch = '' - cat "$downloadedFile" \ - | xz -d --threads=$NIX_BUILD_CORES \ - | tar xf - \ - --warning=no-timestamp \ - --one-top-level=source \ - --exclude=third_party/llvm \ - --exclude=third_party/rust-src \ - --exclude='build/linux/debian_*-sysroot' \ - '' + lib.optionalString (chromiumVersionAtLeast "127") '' - --exclude='*.tar.[a-zA-Z0-9][a-zA-Z0-9]' \ - --exclude='*.tar.[a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]' \ - --exclude=third_party/llvm-build \ - --exclude=third_party/rust-toolchain \ - --exclude=third_party/instrumented_libs \ - '' + '' - --strip-components=1 - - tar \ - --use-compress-program "zstd -T$NIX_BUILD_CORES" \ - --sort name \ - --mtime "1970-01-01" \ - --owner=root --group=root \ - --numeric-owner --mode=go=rX,u+rw,a-s \ - -cf $out source - ''; -} // removeAttrs args [ "version" ]) diff --git a/pkgs/applications/networking/browsers/chromium/update.mjs b/pkgs/applications/networking/browsers/chromium/update.mjs new file mode 100755 index 0000000000000..6a596c354a4c6 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/update.mjs @@ -0,0 +1,227 @@ +#! /usr/bin/env nix-shell +/* +#! nix-shell -i zx -p zx +*/ + +cd(__dirname) +const nixpkgs = (await $`git rev-parse --show-toplevel`).stdout.trim() +const $nixpkgs = $({ + cwd: nixpkgs +}) + +const dummy_hash = 'sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=' + +const lockfile_file = './info.json' +const lockfile_initial = fs.readJsonSync(lockfile_file) +function flush_to_file() { + fs.writeJsonSync(lockfile_file, lockfile, { spaces: 2 }) +} +const flush_to_file_proxy = { + get(obj, prop) { + const value = obj[prop] + return typeof value == 'object' ? new Proxy(value, flush_to_file_proxy) : value + }, + + set(obj, prop, value) { + obj[prop] = value + flush_to_file() + return true + }, +} +const lockfile = new Proxy(structuredClone(lockfile_initial), flush_to_file_proxy) + + +for (const attr_path of Object.keys(lockfile)) { + if (!argv[attr_path]) { + console.log(`[${attr_path}] Skipping ${attr_path}. Pass --${attr_path} as argument to update.`) + continue + } + + const ungoogled = attr_path === 'ungoogled-chromium' + const version_nixpkgs = !ungoogled ? lockfile[attr_path].version : lockfile[attr_path].deps["ungoogled-patches"].rev + const version_upstream = !ungoogled ? await get_latest_chromium_release() : await get_latest_ungoogled_release() + + console.log(`[${attr_path}] ${chalk.red(version_nixpkgs)} (nixpkgs)`) + console.log(`[${attr_path}] ${chalk.green(version_upstream)} (upstream)`) + + if (version_greater_than(version_upstream, version_nixpkgs)) { + console.log(`[${attr_path}] ${chalk.green(version_upstream)} from upstream is newer than our ${chalk.red(version_nixpkgs)}...`) + + // unconditionally remove ungoogled-chromium's epoch/sub-version (e.g. 130.0.6723.116-1 -> 130.0.6723.116) + const version_chromium = version_upstream.split('-')[0] + + lockfile[attr_path] = { + version: version_chromium, + chromedriver: !ungoogled ? await fetch_chromedriver_binaries(version_chromium) : undefined, + deps: { + depot_tools: {}, + gn: {}, + "ungoogled-patches": ungoogled ? await fetch_ungoogled(version_upstream) : undefined, + npmHash: dummy_hash, + }, + DEPS: {}, + } + + const depot_tools = await fetch_depot_tools(version_chromium, lockfile_initial[attr_path].deps.depot_tools) + lockfile[attr_path].deps.depot_tools = { + rev: depot_tools.rev, + hash: depot_tools.hash, + } + + const gn = await fetch_gn(version_chromium, lockfile_initial[attr_path].deps.gn) + lockfile[attr_path].deps.gn = { + rev: gn.rev, + hash: gn.hash, + } + + // DEPS update loop + lockfile[attr_path].DEPS = await resolve_DEPS(depot_tools.out, version_chromium) + for (const [path, value] of Object.entries(lockfile[attr_path].DEPS)) { + delete value.fetcher + delete value.postFetch + + if (value.url === 'https://chromium.googlesource.com/chromium/src.git') { + value.recompress = true + } + + const cache = lockfile_initial[attr_path].DEPS[path] + const cache_hit = + cache !== undefined && + value.url === cache.url && + value.rev === cache.rev && + value.recompress === cache.recompress && + cache.hash !== undefined && + cache.hash !== '' && + cache.hash !== dummy_hash + if (cache_hit) { + console.log(`[${chalk.green(path)}] Reusing hash from previous info.json for ${cache.url}@${cache.rev}`) + value.hash = cache.hash + continue + } + + console.log(`[${chalk.red(path)}] FOD prefetching ${value.url}@${value.rev}...`) + value.hash = await prefetch_FOD('-A', `${attr_path}.browser.passthru.chromiumDeps."${path}"`) + console.log(`[${chalk.green(path)}] FOD prefetching successful`) + } + + lockfile[attr_path].deps.npmHash = await prefetch_FOD('-A', `${attr_path}.browser.passthru.npmDeps`) + + console.log(chalk.green(`[${attr_path}] Done updating ${attr_path} from ${version_nixpkgs} to ${version_upstream}!`)) + } +} + + +async function fetch_gn(chromium_rev, gn_previous) { + const DEPS_file = await get_gitiles_file('https://chromium.googlesource.com/chromium/src', chromium_rev, 'DEPS') + const gn_rev = /^\s+'gn_version': 'git_revision:(?.+)',$/m.exec(DEPS_file).groups.rev + const hash = gn_rev === gn_previous.rev ? gn_previous.hash : '' + + return await prefetch_gitiles('https://gn.googlesource.com/gn', gn_rev, hash) +} + + +async function fetch_chromedriver_binaries(chromium_version) { + // https://developer.chrome.com/docs/chromedriver/downloads/version-selection + const prefetch = async (url) => { + const expr = [`(import ./. {}).fetchzip { url = "${url}"; hash = ""; }`] + const derivation = await $nixpkgs`nix-instantiate --expr ${expr}` + return await prefetch_FOD(derivation) + } + + // if the URL ever changes, the URLs in the chromedriver derivations need updating as well! + const url = (platform) => `https://storage.googleapis.com/chrome-for-testing-public/${chromium_version}/${platform}/chromedriver-${platform}.zip` + return { + hash_darwin: await prefetch(url('mac-x64')), + hash_darwin_aarch64: await prefetch(url('mac-arm64')), + } +} + + +async function resolve_DEPS(depot_tools_checkout, chromium_rev) { + const { stdout } = await $`./depot_tools.py ${depot_tools_checkout} ${chromium_rev}` + const deps = JSON.parse(stdout) + return Object.fromEntries(Object.entries(deps).map(([k, { url, rev, hash }]) => [k, { url, rev, hash }])) +} + + +async function get_latest_chromium_release() { + const url = `https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/stable/versions/all/releases?` + new URLSearchParams({ + order_by: 'version desc', + filter: 'endtime=none,fraction>=0.5' + }) + + const response = await (await fetch(url)).json() + return response.releases[0].version +} + + +async function get_latest_ungoogled_release() { + const ungoogled_tags = await (await fetch('https://api.github.com/repos/ungoogled-software/ungoogled-chromium/tags')).json() + const chromium_releases = await (await fetch('https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/stable/versions/all/releases')).json() + const chromium_release_map = chromium_releases.releases.map((x) => x.version) + return ungoogled_tags.find((x) => chromium_release_map.includes(x.name.split('-')[0])).name +} + + +async function fetch_ungoogled(rev) { + const expr = (hash) => [`(import ./. {}).fetchFromGitHub { owner = "ungoogled-software"; repo = "ungoogled-chromium"; rev = "${rev}"; hash = "${hash}"; }`] + const hash = await prefetch_FOD('--expr', expr('')) + + const checkout = await $nixpkgs`nix-build --expr ${expr(hash)}` + + await fs.copy(`${checkout.stdout.trim()}/flags.gn`, './ungoogled-flags.toml') + + return { + rev, + hash, + } +} + + +function version_greater_than(greater, than) { + return greater.localeCompare(than, undefined, { numeric: true, sensitivity: 'base' }) === 1 +} + + +async function get_gitiles_file(repo, rev, path) { + const base64 = await (await fetch(`${repo}/+/${rev}/${path}?format=TEXT`)).text() + return Buffer.from(base64, 'base64').toString('utf-8') +} + + +async function fetch_depot_tools(chromium_rev, depot_tools_previous) { + const depot_tools_rev = await get_gitiles_file('https://chromium.googlesource.com/chromium/src', chromium_rev, 'third_party/depot_tools') + const hash = depot_tools_rev === depot_tools_previous.rev ? depot_tools_previous.hash : '' + return await prefetch_gitiles('https://chromium.googlesource.com/chromium/tools/depot_tools', depot_tools_rev, hash) +} + + +async function prefetch_gitiles(url, rev, hash = '') { + const expr = () => [`(import ./. {}).fetchFromGitiles { url = "${url}"; rev = "${rev}"; hash = "${hash}"; }`] + + if (hash === '') { + hash = await prefetch_FOD('--expr', expr()) + } + + const { stdout } = await $nixpkgs`nix-build --expr ${expr()}` + + return { + url, + rev, + hash, + out: stdout.trim(), + } +} + + +async function prefetch_FOD(...args) { + const { stderr } = await $nixpkgs`nix-build ${args}`.nothrow() + const hash = /\s+got:\s+(?.+)$/m.exec(stderr)?.groups?.hash + + if (hash == undefined) { + throw new Error(chalk.red('Expected to find hash in nix-build stderr output:') + stderr) + } + + return hash +} + diff --git a/pkgs/applications/networking/browsers/chromium/update.py b/pkgs/applications/networking/browsers/chromium/update.py deleted file mode 100755 index 17bd20c1a794b..0000000000000 --- a/pkgs/applications/networking/browsers/chromium/update.py +++ /dev/null @@ -1,300 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i python -p python3Packages.looseversion nix nixfmt-classic nix-prefetch-git - -"""This script automatically updates chromium, google-chrome, chromedriver, and ungoogled-chromium -via upstream-info.nix.""" -# Usage: ./update.py [--commit] - -import base64 -import csv -import json -import re -import subprocess -import sys - -from codecs import iterdecode -from collections import OrderedDict -from datetime import datetime -from looseversion import LooseVersion -from os.path import abspath, dirname -from urllib.request import urlopen - -RELEASES_URL = 'https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/all/versions/all/releases' - -PIN_PATH = dirname(abspath(__file__)) + '/upstream-info.nix' -UNGOOGLED_FLAGS_PATH = dirname(abspath(__file__)) + '/ungoogled-flags.toml' -COMMIT_MESSAGE_SCRIPT = dirname(abspath(__file__)) + '/get-commit-message.py' -NIXPKGS_PATH = subprocess.check_output(["git", "rev-parse", "--show-toplevel"], cwd=dirname(PIN_PATH)).strip() - -def load_as_json(path): - """Loads the given nix file as JSON.""" - out = subprocess.check_output(['nix-instantiate', '--eval', '--strict', '--json', path]) - return json.loads(out) - -def save_dict_as_nix(path, input): - """Saves the given dict/JSON as nix file.""" - json_string = json.dumps(input) - nix = subprocess.check_output(['nix-instantiate', '--eval', '--expr', '{ json }: builtins.fromJSON json', '--argstr', 'json', json_string]) - formatted = subprocess.check_output(['nixfmt'], input=nix) - with open(path, 'w') as out: - out.write(formatted.decode()) - -def prefetch_src_sri_hash(attr_path, version): - """Prefetches the fixed-output-derivation source tarball and returns its SRI-Hash.""" - print(f'nix-build (FOD prefetch) {attr_path} {version}') - out = subprocess.run( - ["nix-build", "--expr", f'(import ./. {{}}).{attr_path}.browser.passthru.recompressTarball {{ version = "{version}"; }}'], - cwd=NIXPKGS_PATH, - stderr=subprocess.PIPE - ).stderr.decode() - - for line in iter(out.split("\n")): - match = re.match(r"\s+got:\s+(.+)$", line) - if match: - print(f'Hash: {match.group(1)}') - return match.group(1) - print(f'{out}\n\nError: Expected hash in nix-build stderr output.', file=sys.stderr) - sys.exit(1) - -def nix_prefetch_url(url, algo='sha256'): - """Prefetches the content of the given URL.""" - print(f'nix store prefetch-file {url}') - out = subprocess.check_output(['nix', 'store', 'prefetch-file', '--json', '--hash-type', algo, url]) - return json.loads(out)['hash'] - - -def nix_prefetch_git(url, rev): - """Prefetches the requested Git revision of the given repository URL.""" - print(f'nix-prefetch-git {url} {rev}') - out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev]) - return json.loads(out) - - -def get_file_revision(revision, file_path): - """Fetches the requested Git revision of the given Chromium file.""" - url = f'https://chromium.googlesource.com/chromium/src/+/refs/tags/{revision}/{file_path}?format=TEXT' - with urlopen(url) as http_response: - resp = http_response.read() - return base64.b64decode(resp) - -def get_ungoogled_file_revision(revision, file_path): - """Fetches the requested Git revision of the given Chromium file.""" - url = f'https://raw.githubusercontent.com/ungoogled-software/ungoogled-chromium/{revision}/{file_path}' - with urlopen(url) as http_response: - resp = http_response.read() - return resp.decode("utf-8") - -def get_chromedriver(channel): - """Get the latest chromedriver builds given a channel""" - # See https://chromedriver.chromium.org/downloads/version-selection#h.4wiyvw42q63v - chromedriver_versions_url = f'https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json' - print(f'GET {chromedriver_versions_url}') - with urlopen(chromedriver_versions_url) as http_response: - chromedrivers = json.load(http_response) - channel = chromedrivers['channels'][channel] - downloads = channel['downloads']['chromedriver'] - - def get_chromedriver_url(platform): - for download in downloads: - if download['platform'] == platform: - return download['url'] - - return { - 'version': channel['version'], - 'hash_linux': nix_prefetch_url(get_chromedriver_url('linux64')), - 'hash_darwin': nix_prefetch_url(get_chromedriver_url('mac-x64')), - 'hash_darwin_aarch64': nix_prefetch_url(get_chromedriver_url('mac-arm64')) - } - - -def get_channel_dependencies(version): - """Gets all dependencies for the given Chromium version.""" - deps = get_file_revision(version, 'DEPS') - gn_pattern = b"'gn_version': 'git_revision:([0-9a-f]{40})'" - gn_commit = re.search(gn_pattern, deps).group(1).decode() - gn = nix_prefetch_git('https://gn.googlesource.com/gn', gn_commit) - return { - 'gn': { - 'version': datetime.fromisoformat(gn['date']).date().isoformat(), - 'url': gn['url'], - 'rev': gn['rev'], - 'hash': gn['hash'] - } - } - - -def get_latest_ungoogled_chromium_tag(linux_stable_versions): - """Returns the latest ungoogled-chromium tag for linux using the GitHub API.""" - api_tag_url = 'https://api.github.com/repos/ungoogled-software/ungoogled-chromium/tags' - with urlopen(api_tag_url) as http_response: - tags = json.load(http_response) - for tag in tags: - if not tag['name'].split('-')[0] in linux_stable_versions: - continue - - return tag['name'] - - -def get_latest_ungoogled_chromium_build(linux_stable_versions): - """Returns a dictionary for the latest ungoogled-chromium build.""" - tag = get_latest_ungoogled_chromium_tag(linux_stable_versions) - version = tag.split('-')[0] - return { - 'name': 'chrome/platforms/linux/channels/ungoogled-chromium/versions/', - 'version': version, - 'ungoogled_rev': tag - } - -def get_ungoogled_chromium_build_by_ref(ungoogled_chromium_ref): - """Returns a dictionary for an ungoogled-chromium build referenced by a ref in the ungoogled-chromium repository.""" - version = get_ungoogled_file_revision(ungoogled_chromium_ref, "chromium_version.txt").strip("\n ") - return { - 'name': 'chrome/platforms/linux/channels/ungoogled-chromium/versions/', - 'version': version, - 'ungoogled_rev': ungoogled_chromium_ref - } - - -def get_ungoogled_chromium_gn_flags(revision): - """Returns ungoogled-chromium's GN build flags for the given revision.""" - gn_flags_url = f'https://raw.githubusercontent.com/ungoogled-software/ungoogled-chromium/{revision}/flags.gn' - return urlopen(gn_flags_url).read().decode() - - -def channel_name_to_attr_name(channel_name): - """Maps a channel name to the corresponding main Nixpkgs attribute name.""" - if channel_name == 'stable': - return 'chromium' - if channel_name == 'ungoogled-chromium': - return 'ungoogled-chromium' - print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr) - sys.exit(1) - - -def get_channel_key(item): - """Orders Chromium channels by their name.""" - channel_name = item[0] - if channel_name == 'stable': - return 0 - if channel_name == 'beta': - return 1 - if channel_name == 'dev': - return 2 - if channel_name == 'ungoogled-chromium': - return 3 - print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr) - sys.exit(1) - - -def print_updates(channels_old, channels_new): - """Print a summary of the updates.""" - print('Updates:') - for channel_name in channels_old: - version_old = channels_old[channel_name]["version"] - version_new = channels_new[channel_name]["version"] - if LooseVersion(version_old) < LooseVersion(version_new): - attr_name = channel_name_to_attr_name(channel_name) - print(f'- {attr_name}: {version_old} -> {version_new}') - - -channels = {} -last_channels = load_as_json(PIN_PATH) - -src_hash_cache = {} - - -print(f'GET {RELEASES_URL}', file=sys.stderr) -with urlopen(RELEASES_URL) as resp: - releases = json.load(resp)['releases'] - - if len(sys.argv) == 3 and sys.argv[1] == 'ungoogled-rev': - releases.append(get_ungoogled_chromium_build_by_ref(sys.argv[2])) - else: - linux_stable_versions = [release['version'] for release in releases if release['name'].startswith('chrome/platforms/linux/channels/stable/versions/')] - releases.append(get_latest_ungoogled_chromium_build(linux_stable_versions)) - - for release in releases: - channel_name = re.findall("chrome/platforms/linux/channels/(.*)/versions/", release['name'])[0] - - # If we've already found a newer release for this channel, we're - # no longer interested in it. - if channel_name in channels: - continue - - # We only look for channels that are listed in our version pin file. - if channel_name not in last_channels: - continue - - # If we're back at the last release we used, we don't need to - # keep going -- there's no new version available, and we can - # just reuse the info from last time. - if release['version'] == last_channels[channel_name]['version']: - channels[channel_name] = last_channels[channel_name] - continue - - channel = {'version': release['version']} - if channel_name == 'dev': - google_chrome_suffix = 'unstable' - elif channel_name == 'ungoogled-chromium': - google_chrome_suffix = 'stable' - else: - google_chrome_suffix = channel_name - - try: - version = release["version"] - existing_releases = dict(map(lambda channel: (channel[1]['version'], channel[1]['hash']), last_channels.items())) - - if version in src_hash_cache: - print(f'Already got hash {src_hash_cache[version]} for {version}, skipping FOD prefetch for {channel_name_to_attr_name(channel_name)}') - - channel["hash"] = src_hash_cache[version] - elif version in existing_releases: - print(f'Already got hash {existing_releases[version]} for {version} (from upstream-info.nix), skipping FOD prefetch for {channel_name_to_attr_name(channel_name)}') - - channel["hash"] = existing_releases[version] - else: - channel["hash"] = prefetch_src_sri_hash( - channel_name_to_attr_name(channel_name), - version - ) - src_hash_cache[version] = channel["hash"] - except subprocess.CalledProcessError: - # This release isn't actually available yet. Continue to - # the next one. - continue - - channel['deps'] = get_channel_dependencies(channel['version']) - if channel_name == 'stable': - channel['chromedriver'] = get_chromedriver('Stable') - elif channel_name == 'ungoogled-chromium': - ungoogled_repo_url = 'https://github.com/ungoogled-software/ungoogled-chromium.git' - channel['deps']['ungoogled-patches'] = { - 'rev': release['ungoogled_rev'], - 'hash': nix_prefetch_git(ungoogled_repo_url, release['ungoogled_rev'])['hash'] - } - with open(UNGOOGLED_FLAGS_PATH, 'w') as out: - out.write(get_ungoogled_chromium_gn_flags(release['ungoogled_rev'])) - - channels[channel_name] = channel - - -sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key)) -if len(sys.argv) == 2 and sys.argv[1] == '--commit': - for channel_name in sorted_channels.keys(): - version_old = last_channels[channel_name]['version'] - version_new = sorted_channels[channel_name]['version'] - if LooseVersion(version_old) < LooseVersion(version_new): - last_channels[channel_name] = sorted_channels[channel_name] - save_dict_as_nix(PIN_PATH, last_channels) - attr_name = channel_name_to_attr_name(channel_name) - commit_message = f'{attr_name}: {version_old} -> {version_new}' - if channel_name == 'stable': - body = subprocess.check_output([COMMIT_MESSAGE_SCRIPT, version_new]).decode('utf-8') - commit_message += '\n\n' + body - elif channel_name == 'ungoogled-chromium': - subprocess.run(['git', 'add', UNGOOGLED_FLAGS_PATH], check=True) - subprocess.run(['git', 'add', JSON_PATH], check=True) - subprocess.run(['git', 'commit', '--file=-'], input=commit_message.encode(), check=True) -else: - save_dict_as_nix(PIN_PATH, sorted_channels) - print_updates(last_channels, sorted_channels) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix deleted file mode 100644 index e990e0d662042..0000000000000 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - stable = { - chromedriver = { - hash_darwin = "sha256-+Pcd++19/nJVsqGr2jzyjMTWYfb2U9wSgnNccDyGuGU="; - hash_darwin_aarch64 = - "sha256-vrbIpHrBwbzqars7D546eJ7zhEhAB0abq7MXiqlU4ts="; - hash_linux = "sha256-NbZ1GULLWJ6L3kczz23HoUhGk6VgBOXcjZlL7t4Z6Ec="; - version = "130.0.6723.116"; - }; - deps = { - gn = { - hash = "sha256-iNXRq3Mr8+wmY1SR4sV7yd2fDiIZ94eReelwFI0UhGU="; - rev = "20806f79c6b4ba295274e3a589d85db41a02fdaa"; - url = "https://gn.googlesource.com/gn"; - version = "2024-09-09"; - }; - }; - hash = "sha256-eOCUKhFv205MD1gEY1FQQNCwxyELNjIAxUlPcRn74Lk="; - version = "130.0.6723.116"; - }; - ungoogled-chromium = { - deps = { - gn = { - hash = "sha256-iNXRq3Mr8+wmY1SR4sV7yd2fDiIZ94eReelwFI0UhGU="; - rev = "20806f79c6b4ba295274e3a589d85db41a02fdaa"; - url = "https://gn.googlesource.com/gn"; - version = "2024-09-09"; - }; - ungoogled-patches = { - hash = "sha256-+94tSSaOp6vzWkXN1qF3UXMm/Rs3pKmjf+U4x+af818="; - rev = "130.0.6723.116-1"; - }; - }; - hash = "sha256-eOCUKhFv205MD1gEY1FQQNCwxyELNjIAxUlPcRn74Lk="; - version = "130.0.6723.116"; - }; -} diff --git a/pkgs/development/tools/selenium/chromedriver/binary.nix b/pkgs/development/tools/selenium/chromedriver/binary.nix index f1d8413cf6ff8..15437852ead73 100644 --- a/pkgs/development/tools/selenium/chromedriver/binary.nix +++ b/pkgs/development/tools/selenium/chromedriver/binary.nix @@ -1,7 +1,7 @@ { lib, stdenv, - fetchurl, + fetchzip, unzip, testers, chromedriver, @@ -9,19 +9,18 @@ let upstream-info = - (import ../../../../applications/networking/browsers/chromium/upstream-info.nix) - .stable.chromedriver; + (lib.importJSON ../../../../applications/networking/browsers/chromium/info.json).chromium; # See ./source.nix for Linux allSpecs = { x86_64-darwin = { system = "mac-x64"; - hash = upstream-info.hash_darwin; + hash = upstream-info.chromedriver.hash_darwin; }; aarch64-darwin = { system = "mac-arm64"; - hash = upstream-info.hash_darwin_aarch64; + hash = upstream-info.chromedriver.hash_darwin_aarch64; }; }; @@ -35,7 +34,7 @@ stdenv.mkDerivation { pname = "chromedriver"; inherit version; - src = fetchurl { + src = fetchzip { url = "https://storage.googleapis.com/chrome-for-testing-public/${version}/${spec.system}/chromedriver-${spec.system}.zip"; inherit (spec) hash; }; From b32338f8220293e332cdf1887bd94bceba5660c9 Mon Sep 17 00:00:00 2001 From: emilylange Date: Tue, 19 Nov 2024 16:48:45 +0100 Subject: [PATCH 11/16] chromium,chromedriver: 130.0.6723.116 -> 131.0.6778.69 https://chromereleases.googleblog.com/2024/11/stable-channel-update-for-desktop_12.html This update includes 12 security fixes. CVEs: CVE-2024-11110 CVE-2024-11111 CVE-2024-11112 CVE-2024-11113 CVE-2024-11114 CVE-2024-11115 CVE-2024-11116 CVE-2024-11117 (cherry picked from commit 875ae81fe547a7296f8386f977852d04186e975d) --- .../networking/browsers/chromium/info.json | 242 +++++++++--------- 1 file changed, 126 insertions(+), 116 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json index 78bb958588a70..dddbd82cbb846 100644 --- a/pkgs/applications/networking/browsers/chromium/info.json +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -1,26 +1,26 @@ { "chromium": { - "version": "130.0.6723.116", + "version": "131.0.6778.69", "chromedriver": { - "hash_darwin": "sha256-PpBPxgQSVWTlsenlwaqqCBx4Lah0xWa8chOzZOEk75M=", - "hash_darwin_aarch64": "sha256-bMQZ2U3cR10TSPpz2A3LhCTjDfxLQNva2/9bvNjNFKc=" + "hash_darwin": "sha256-1yOUj6DlHuYTSGGl4mcbYrmsEZBammjfGXoXY/M4lZQ=", + "hash_darwin_aarch64": "sha256-GvmZZiDqs3funYoNSV94eyEa6G95YBu0YwLxJi6eKc0=" }, "deps": { "depot_tools": { - "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", - "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=" + "rev": "20b9bdcace7ed561d6a75728c85373503473cb6b", + "hash": "sha256-vlBENaVTtbwDJtSswuszcUlx+icZYJeP6ew6MO1cAv0=" }, "gn": { - "rev": "20806f79c6b4ba295274e3a589d85db41a02fdaa", - "hash": "sha256-iNXRq3Mr8+wmY1SR4sV7yd2fDiIZ94eReelwFI0UhGU=" + "rev": "95b0f8fe31a992a33c040bbe3867901335c12762", + "hash": "sha256-a8yCdBsl0nBMPS+pCLwrkAvQNP/THx/z/GySyOgx4Jk=" }, - "npmHash": "sha256-4w5m/bTMygidlb4TZHMx1Obp784DLxMwrfe1Uvyyfp8=" + "npmHash": "sha256-b1l8SwjAfoColoa3zhTMPEF/rRuxzT3ATHE77rWU5EA=" }, "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "130.0.6723.116", - "hash": "sha256-KSUDdIHSzsZBYC+ApQE3iolGOAC0MZETlI2ARNXE0Vg=", + "rev": "131.0.6778.69", + "hash": "sha256-GbhiqLRC5Kilo84XwYHnosNUgtZNCwmuzSOkP6if/8s=", "recompress": true }, "src/third_party/clang-format/script": { @@ -30,18 +30,18 @@ }, "src/third_party/libc++/src": { "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git", - "rev": "50ab693ecb611942ce4440d8c9ed707ee65ed5e8", - "hash": "sha256-hKlmY2Bn1f6w0Gmx/Le/LwWk/Gf6hzXqR5C+/w+0CNA=" + "rev": "6a68fd412b9aecd515a20a7cf84d11b598bfaf96", + "hash": "sha256-7skqaen0XqbRvAGXQ0/3kea3vRInktdP3DOBeIBiGlQ=" }, "src/third_party/libc++abi/src": { "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git", - "rev": "29b2e9a0f48688da116692cb04758393053d269c", - "hash": "sha256-GtK8z2jn4es3uuxpAgm5AoQvUjvhAunAyUwm3HEqLVA=" + "rev": "9a1d90c3b412d5ebeb97a6e33d98e1d0dd923221", + "hash": "sha256-zPm+Rif9fITazDvvm6SvLq8gwcPzPbuaXlRbyYqv7JA=" }, "src/third_party/libunwind/src": { "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git", - "rev": "dc70138c3e68e2f946585f134e20815851e26263", - "hash": "sha256-5xsrVVSu9b+78GEKeLGNpo7ySxrJ2SeuuKghN6NHlSU=" + "rev": "efc3baa2d1ece3630fcfa72bef93ed831bcaec4c", + "hash": "sha256-0OBelaxkKdajYXrGgz08nyPZhxqpsnFXiF3m8DGQkDo=" }, "src/chrome/test/data/perf/canvas_bench": { "url": "https://chromium.googlesource.com/chromium/canvas_bench.git", @@ -60,8 +60,8 @@ }, "src/docs/website": { "url": "https://chromium.googlesource.com/website.git", - "rev": "052e29447b43b18da32fff653b9d58ef79fbc836", - "hash": "sha256-XK22S9WwNN4zQZ5teiQ1sZA5m/8rArwq3jCgM6H9KQY=" + "rev": "4811f9e01c4cfcbf9c6957015063eaaa0d92be91", + "hash": "sha256-98wwIeMTF2Wg2sJ07U1OUV83wR9nJOjGubp7Vnk3kj8=" }, "src/media/cdm/api": { "url": "https://chromium.googlesource.com/chromium/cdm.git", @@ -70,8 +70,8 @@ }, "src/net/third_party/quiche/src": { "url": "https://quiche.googlesource.com/quiche.git", - "rev": "9808dac40e034f09d7af53d3d79589a02e39c211", - "hash": "sha256-NJKJ5cc+wEcmCIFYXWQX4x9BZblbS+wqj+25CcUiPZM=" + "rev": "e0175250977c2b2b95087afc0857883538a1386c", + "hash": "sha256-1O+hnZF73AY44jcmajJlpaQY5PV4+x0hYwqf1TtMahY=" }, "src/testing/libfuzzer/fuzzers/wasm_corpus": { "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git", @@ -85,8 +85,8 @@ }, "src/third_party/angle": { "url": "https://chromium.googlesource.com/angle/angle.git", - "rev": "fffbc739779a2df56a464fd6853bbfb24bebb5f6", - "hash": "sha256-OtpF7+KQzk0MWhgBlNV1DheHywtBMDQIPhGUOss9Dtg=" + "rev": "ac6cda4cbd716102ded6a965f79573b41581898d", + "hash": "sha256-7Zfc262U42G6BUlxnLp6sQ78VlWBt0pTzkYwXY0rqaE=" }, "src/third_party/angle/third_party/glmark2/src": { "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2", @@ -100,8 +100,8 @@ }, "src/third_party/angle/third_party/VK-GL-CTS/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS", - "rev": "1df39e522f4aa358012180fd4cf876af68aff78d", - "hash": "sha256-yPQG/Ddat9H4XZq6Zu5S3VzcZeMhLBcM//KI/3Kxaxg=" + "rev": "179dd9f858f0f5b0e52b61aefc621dc82e2ad34a", + "hash": "sha256-B7X9PTlMQdolsvEfuCNaKnRFcvsPNZtn5FOcJBY6sCA=" }, "src/third_party/anonymous_tokens/src": { "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git", @@ -115,13 +115,13 @@ }, "src/third_party/dav1d/libdav1d": { "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git", - "rev": "6b3c489a2ee2c030f351f21987c27611b4cbe725", - "hash": "sha256-qJSUt8gMFB+IhOnEAw3t6nj1y7XUY91pLQBF8CeYtas=" + "rev": "389450f61ea0b2057fc9ea393d3065859c4ba7f2", + "hash": "sha256-FK3tOLq5NcKQuStY5o8Lv2CXpjYHJm7n+NnyLFMOCxo=" }, "src/third_party/dawn": { "url": "https://dawn.googlesource.com/dawn.git", - "rev": "70a01d28c3ecd75b67a87e4643bd4d55fc391ce6", - "hash": "sha256-x5Fm7DGAFfDmZ9p6JY16+QSPPztxNrG/HvQrZ26NnZM=" + "rev": "cdc5b4dc1ee1482378b545b6c1efa1a234195ab5", + "hash": "sha256-HtLdotDYA0fsUyFkk/nhJ+GPC+GkbwfmyPbJLKAyKdE=" }, "src/third_party/dawn/third_party/glfw": { "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw", @@ -130,8 +130,8 @@ }, "src/third_party/dawn/third_party/dxc": { "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler", - "rev": "05334a70d3e5355fc86c94bb4e3cfe1c31a65999", - "hash": "sha256-CrR08tw9e+4U+fa6E9xoP/4puPNHEjLrxtSju8psLlk=" + "rev": "080aeb7199e66e4b0a2b6383fd26a9f8d2cccbf5", + "hash": "sha256-YHEBGqfftgK68wWAWVTxtbl1GECBT1qTNe7irYkM/8k=" }, "src/third_party/dawn/third_party/dxheaders": { "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers", @@ -155,8 +155,8 @@ }, "src/third_party/dawn/third_party/webgpu-cts": { "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts", - "rev": "a5065e398d2430c83e17ef9cbad6eae31d1efa8f", - "hash": "sha256-heIL8hhaVr0uRi2lD+7RFltggVFW48ZY9Tdl0yVRdac=" + "rev": "815ff2bb4038144dea89c33021bc4429f22a130f", + "hash": "sha256-28uZotrv+/MBBo+pcBWY3Csqrdv5Y4DxGbGEwK9Cwdw=" }, "src/third_party/highway/src": { "url": "https://chromium.googlesource.com/external/github.com/google/highway.git", @@ -170,8 +170,8 @@ }, "src/third_party/boringssl/src": { "url": "https://boringssl.googlesource.com/boringssl.git", - "rev": "58f3bc83230d2958bb9710bc910972c4f5d382dc", - "hash": "sha256-on+VonYXZ710oqgaK/OKa9Huq2mSXp8SJcj9CciHsf8=" + "rev": "cd95210465496ac2337b313cf49f607762abe286", + "hash": "sha256-172yvjgbFWQyd0PBRl74PJzpY/mDGC85D7PdeogNodU=" }, "src/third_party/breakpad/breakpad": { "url": "https://chromium.googlesource.com/breakpad/breakpad.git", @@ -185,8 +185,8 @@ }, "src/third_party/catapult": { "url": "https://chromium.googlesource.com/catapult.git", - "rev": "296226a4a0067c8cffeb8831fb87526a8035f3cc", - "hash": "sha256-IHubCuEBE9W0wRudOmjUoaOvT66JuVTzEBUOTvdnXqQ=" + "rev": "44791916611acec1cd74c492c7453e46d9b0dbd2", + "hash": "sha256-SkF+RIIlU8Vl3AmN6kARkLuVz/X5vygNOtGN2K3Sr+M=" }, "src/third_party/ced/src": { "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git", @@ -195,8 +195,8 @@ }, "src/third_party/chromium-variations": { "url": "https://chromium.googlesource.com/chromium-variations.git", - "rev": "6aa57f2c6b49402b55ec607c17bd7ee8946970b0", - "hash": "sha256-DR5rJdnDKunS/PHtVK1n4zk0MmK54LhlawZW74711LY=" + "rev": "7d681838b57a25ca6659b9cc0111f879147c416b", + "hash": "sha256-zio8SqKEqOYYjVWZnzfrPqngqym2lZu9M/hgSi3ey0Q=" }, "src/third_party/cld_3/src": { "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git", @@ -215,8 +215,8 @@ }, "src/third_party/cpuinfo/src": { "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git", - "rev": "ca678952a9a8eaa6de112d154e8e104b22f9ab3f", - "hash": "sha256-UKy9TIiO/UJ5w+qLRlMd085CX2qtdVH2W3rtxB5r6MY=" + "rev": "1e83a2fdd3102f65c6f1fb602c1b320486218a99", + "hash": "sha256-28cFACca+NYE8oKlP5aWXNCLeEjhWqJ6gRnFI+VxDvg=" }, "src/third_party/crc32c/src": { "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git", @@ -225,23 +225,23 @@ }, "src/third_party/cros_system_api": { "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git", - "rev": "2f88f9c4581a9c854604fa23516de8c9c13b227b", - "hash": "sha256-9rM9m6VRX7B+h9JiICN5O9rBYdQEHNlCUnQMuaTy/1s=" + "rev": "b08c5ad457bddea2664ba20fb25beb3d1799fed2", + "hash": "sha256-cwpcY8YTXk+VVIFphO5ihc5rvbG3ZY9iHeK81P5DHBs=" }, "src/third_party/crossbench": { "url": "https://chromium.googlesource.com/crossbench.git", - "rev": "2b812597dd143dbdc560ff2f28d5f8d3adc700d4", - "hash": "sha256-7IuhXuxXD3xBkgazg3B9GZknlNv8Xi0eTHkeQv63ayk=" + "rev": "b4d7ae714c548c3e139b95a85582dc15ece1d2f7", + "hash": "sha256-1RDDbvce5WR32if3cFYxiU9HS04x3BYIgOFJPMVJSBo=" }, "src/third_party/depot_tools": { "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git", - "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", - "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=" + "rev": "20b9bdcace7ed561d6a75728c85373503473cb6b", + "hash": "sha256-vlBENaVTtbwDJtSswuszcUlx+icZYJeP6ew6MO1cAv0=" }, "src/third_party/devtools-frontend/src": { "url": "https://chromium.googlesource.com/devtools/devtools-frontend", - "rev": "deee9c11c9f76ef595b7d0b52fcf677d25aac5f2", - "hash": "sha256-gRc2ei5m7a5KVKEMIivPGy1IQqDIaJxUJHLd5k2F+GQ=" + "rev": "5284f1c63b2b08c47b8915ce713a1aace991dfe9", + "hash": "sha256-1Nh9SVIAde4jxgwFucbtZpl6rMyPM4Plfi+dhwP0wI8=" }, "src/third_party/dom_distiller_js/dist": { "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git", @@ -250,8 +250,8 @@ }, "src/third_party/eigen3/src": { "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git", - "rev": "134b526d6110061469168e7e0511822a8e30bcaf", - "hash": "sha256-U4SMReXTFZg7YGyefI6MXIB66nt5OiANMH0HUyr/xIc=" + "rev": "7eea0a9213e801ad9479a6499fd0330ec1db8693", + "hash": "sha256-JkOjOnLrDOcYHi3hptT1BDRvsKpTtOsBHT8YLb1hlJM=" }, "src/third_party/farmhash/src": { "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git", @@ -265,8 +265,8 @@ }, "src/third_party/ffmpeg": { "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git", - "rev": "91903c28af60a732a051c343b496e1188eec9b05", - "hash": "sha256-HnpWlSfXxa951UkFgL/2zKoaBeveuVkTZz/iqYXjkH8=" + "rev": "686d6944501a6ee9c849581e3fe343273d4af3f6", + "hash": "sha256-j5mpWn4j+U4rRlXbq8okUUXrRKycZkiV+UntiS90ChM=" }, "src/third_party/flac": { "url": "https://chromium.googlesource.com/chromium/deps/flac.git", @@ -300,8 +300,8 @@ }, "src/third_party/freetype/src": { "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git", - "rev": "83af801b552111e37d9466a887e1783a0fb5f196", - "hash": "sha256-w5Zd4yvGoMQ0BmDGa2b9gK/+7f+UaZDRYqEdMGH/zKg=" + "rev": "f02bffad0fd57f3acfa835c3f2899c5b71ff8be0", + "hash": "sha256-Lc2hbmZnnXQa0vzlJCizNBQ5WCOI5sJglTTe5gWVYUA=" }, "src/third_party/freetype-testing/src": { "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git", @@ -318,6 +318,16 @@ "rev": "1da053e87f0487382404656edca98b85fe51f2fd", "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=" }, + "src/third_party/ink/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/ink.git", + "rev": "4300dc7402a257b85fc5bf2559137edacb050227", + "hash": "sha256-+Ikr9E7KlXBFyf6fSDmIF3ygNUiwlXeA5bmO2CtkI7Q=" + }, + "src/third_party/ink_stroke_modeler/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git", + "rev": "0999e4cf816b42c770d07916698bce943b873048", + "hash": "sha256-IQ+n+kHdEq8Q8/qaPGMvgD7cPN3zzaY8dbiokq6r/Vs=" + }, "src/third_party/instrumented_libs": { "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git", "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", @@ -325,8 +335,8 @@ }, "src/third_party/emoji-segmenter/src": { "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git", - "rev": "6b8f235b72deba7d6ef113631129b274c14941ef", - "hash": "sha256-sI6UgXTWxXJajB2h2LH3caf7cqRbBshD5GoLocrUivk=" + "rev": "955936be8b391e00835257059607d7c5b72ce744", + "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=" }, "src/third_party/ots/src": { "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git", @@ -340,8 +350,8 @@ }, "src/third_party/googletest/src": { "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git", - "rev": "0953a17a4281fc26831da647ad3fcd5e21e6473b", - "hash": "sha256-jccFUondvjWgCBC3oCLUXqtLV07pkEq8IEZ+FLu1MrE=" + "rev": "62df7bdbc10887e094661e07ec2595b7920376fd", + "hash": "sha256-Iv/7r79cKC1pFkxPPHK/IHv/HFx18XZ4YVr+C2CX8+M=" }, "src/third_party/hunspell_dictionaries": { "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git", @@ -350,8 +360,8 @@ }, "src/third_party/icu": { "url": "https://chromium.googlesource.com/chromium/deps/icu.git", - "rev": "9408c6fd4a39e6fef0e1c4077602e1c83b15f3fb", - "hash": "sha256-YlX+PaPhvYh9JzHT9WtS1beUK+cQrHGVUl+IBbv7GeQ=" + "rev": "4239b1559d11d4fa66c100543eda4161e060311e", + "hash": "sha256-7568UHNDOzyTCLy3TAwxZLUrKfB6A1yKA0wVZQJjKoI=" }, "src/third_party/jsoncpp/source": { "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git", @@ -370,8 +380,8 @@ }, "src/third_party/fuzztest/src": { "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git", - "rev": "a29e31cb00ec9b123dec5a0c6b8d4bc12c2480c8", - "hash": "sha256-g+iJrywURQfdYpco26VN+OlhZkVcFzmAK18C7W7/WLU=" + "rev": "0021f30508bc7f73fa5270962d022acb480d242f", + "hash": "sha256-UYmzjOX8k+CWL+xOIF3NiEL3TRUjS8JflortB2RUT4o=" }, "src/third_party/domato/src": { "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git", @@ -385,18 +395,18 @@ }, "src/third_party/libaom/source/libaom": { "url": "https://aomedia.googlesource.com/aom.git", - "rev": "d5265b173616ce62de231cd1b1eae853ad03641e", - "hash": "sha256-uFUIodoC9qpLycwtWRgc0iqaqcUsvVmwAAQGHKolWto=" + "rev": "840f8797871cc587f7113ea9d2483a1156d57c0e", + "hash": "sha256-2XHqNAmv2L3TEFXu4Q6rnASLmuE93QplSVKNqyhlKUk=" }, "src/third_party/libavif/src": { "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git", - "rev": "c2177c3316a49505dcd592ba21073f7abc25cd37", - "hash": "sha256-2GKqPgWs1TD0nPW7VoSo8dz3ugPsZhcy2K1V35XflSk=" + "rev": "2c36aed375fff68611641b57d919b191f33431d5", + "hash": "sha256-fApdfzEtQnmio6BVzkcr/VkwojrNs+cx/+Am80H9dXw=" }, "src/third_party/crabbyavif/src": { "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git", - "rev": "adfb834d76c6a064f28bb3a694689fc14a42425e", - "hash": "sha256-9ooMkYOHRYbV2kdxu8VWUNgBeBsrN4kWUb8cZJwZfiU=" + "rev": "ffad64ff4e349f926ad5ffcc882e205a94156d77", + "hash": "sha256-M2ExAgLm/NZ2soQEv3Ap/qx/B3+nd3NdDqYOL0E/pc8=" }, "src/third_party/libavifinfo/src": { "url": "https://aomedia.googlesource.com/libavifinfo.git", @@ -405,8 +415,8 @@ }, "src/third_party/nearby/src": { "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git", - "rev": "3c8737f92d765407e4ff6c87b8758ba99ede40ed", - "hash": "sha256-RZsdeT1gkbrOuHvngs+Iavl9YE27jLx4AXXYOvSXZoI=" + "rev": "1b382075dd1bd545655af7ebef949b3090061b74", + "hash": "sha256-kpyJiFXtk8eK8EkgzUbG0GS+znEeqzlB62qy9tPpEC8=" }, "src/third_party/beto-core/src": { "url": "https://beto-core.googlesource.com/beto-core.git", @@ -430,8 +440,8 @@ }, "src/third_party/cros-components/src": { "url": "https://chromium.googlesource.com/external/google3/cros_components.git", - "rev": "08a6ca6559c8d07c79fb5576a44e016e3126c221", - "hash": "sha256-gEhAwW6u8VgBRFmAddRBlosbf/a9lhRLgs70Dvh1zos=" + "rev": "902e8ca804ae6c05f505e510c16647c32ce4d1cb", + "hash": "sha256-j2m9zVajkAdPF1ehLX0Gxp4LyMunhFDDCzrCm2WzArc=" }, "src/third_party/libdrm/src": { "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git", @@ -480,8 +490,8 @@ }, "src/third_party/libvpx/source/libvpx": { "url": "https://chromium.googlesource.com/webm/libvpx.git", - "rev": "fbf63dff1f528d44f24bd662abb89fd01a4a1c25", - "hash": "sha256-fXEPPgUdTsvzbLc8mp7v0MWw/9FfOooIIKjRshvYi2o=" + "rev": "906334ac1de2b0afa666472dce5545b82c1251fb", + "hash": "sha256-7GInV/uHuK6bUa1dSBuxJn6adyjfoOqSqfmfTvQbAoc=" }, "src/third_party/libwebm/source": { "url": "https://chromium.googlesource.com/webm/libwebm.git", @@ -495,8 +505,8 @@ }, "src/third_party/libyuv": { "url": "https://chromium.googlesource.com/libyuv/libyuv.git", - "rev": "4620f1705822fd6ab99939f43ce63099bd3d9ae0", - "hash": "sha256-tQ7eCY1udoGHRoFr83obQ994IMfxqaH68StvXJ6obZ8=" + "rev": "a8e59d207483f75b87dd5fc670e937672cdf5776", + "hash": "sha256-gTNmhYuYmt/JmWSAVbcE4PqG3kW/JaL7XEWXbiNVfMM=" }, "src/third_party/lss": { "url": "https://chromium.googlesource.com/linux-syscall-support.git", @@ -530,8 +540,8 @@ }, "src/third_party/openscreen/src": { "url": "https://chromium.googlesource.com/openscreen", - "rev": "b720e33d337c68353e5d80a72491fb438f27d93a", - "hash": "sha256-y2XOZ3CmGdI0S/DLnOwAhm0kGTf/ayJ6OwPVlQCQqBw=" + "rev": "4f27c4f1698522dfcea36dca948a13e2eaf4c26c", + "hash": "sha256-dosSqpFlvli60ZJ0vexVZOK/FmzOYq5BDrZKZW0lMfc=" }, "src/third_party/openscreen/src/buildtools": { "url": "https://chromium.googlesource.com/chromium/src/buildtools", @@ -545,13 +555,13 @@ }, "src/third_party/pdfium": { "url": "https://pdfium.googlesource.com/pdfium.git", - "rev": "2b675cf15ab4b68bf1ed4e0511ba2479e11f1605", - "hash": "sha256-znfeKj2ttFWalFPeP9o8NPYLHD+pWAKuWVudX59MhLw=" + "rev": "7a8409531fbb58d7d15ae331e645977b113d7ced", + "hash": "sha256-KlqgaOxKJQHHjU1g1VCcJEBhv809DdEUedrxdk8N99I=" }, "src/third_party/perfetto": { "url": "https://android.googlesource.com/platform/external/perfetto.git", - "rev": "9170899ab284db894f14439e561f02f83a04d88e", - "hash": "sha256-ej8yXGOlmqwnWBbKR99qtIn3MvImaqV5ResVp95zdcM=" + "rev": "24764a1d9c2fce1e9816ffae691f00353ade330d", + "hash": "sha256-FAaxTuIYExmL3PSWwcvLpnPD4qsGDGr4/CIyi0NSrnI=" }, "src/third_party/protobuf-javascript/src": { "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript", @@ -590,8 +600,8 @@ }, "src/third_party/skia": { "url": "https://skia.googlesource.com/skia.git", - "rev": "3c64459d5df2fa9794b277f0959ed8a92552bf4c", - "hash": "sha256-u/K96HEBcx1sge4wSf3m4xDkZEoFaxekHafgmC4rjVQ=" + "rev": "94631d9b9a10697325589e1642af63a0137cac94", + "hash": "sha256-SKKLOxjimQWt8W+Q3wlCJaUC/lxw6EIZDFBuVQKmnVY=" }, "src/third_party/smhasher/src": { "url": "https://chromium.googlesource.com/external/smhasher.git", @@ -610,8 +620,8 @@ }, "src/third_party/swiftshader": { "url": "https://swiftshader.googlesource.com/SwiftShader.git", - "rev": "2afc8c97882a5c66abf5f26670ae420d2e30adc3", - "hash": "sha256-U29q1G3gnJdoucdLGZEbwpkGpDE4C2lv2b5WqpUf2Ho=" + "rev": "7a9a492a38b7c701f7c96a15a76046aed8f8c0c3", + "hash": "sha256-6uBO4jwPSqhT4j+KTE0Za7B4prrE2kstsHNtHwTJX+Q=" }, "src/third_party/text-fragments-polyfill/src": { "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git", @@ -620,18 +630,18 @@ }, "src/third_party/tflite/src": { "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git", - "rev": "d29299c16ec49623af1294900dba53fc8864f0bb", - "hash": "sha256-HtvrZur/vifocB/TKLDkzTLjFbGee4xGUhRLShozo9M=" + "rev": "689e8a82f8070a372981b7476fb673e243330d71", + "hash": "sha256-tImVDNyS5hCN6A1ODeVuB7XLCNr3EdxN8x961nPCM9g=" }, "src/third_party/vulkan-deps": { "url": "https://chromium.googlesource.com/vulkan-deps", - "rev": "c045c2192ab45a144b419033dffe6190be5d8c93", - "hash": "sha256-U8iB5HlLHzpeBJjd9XODWONDy7GTfNbM2kjGBIAhabU=" + "rev": "73fd75175922012f21557239b7743a152ea7f1fd", + "hash": "sha256-D8UIXXQX6dTxbuqFgd6AbmErr1r9839yiN6MrJlsqPw=" }, "src/third_party/glslang/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang", - "rev": "dc1012140e015d43711514d1294ac6f626890a40", - "hash": "sha256-6lVjQb8FOyGmRGEcNDzL55s/9bcDY3jIz4Xm3BK3GoI=" + "rev": "2acc4ea0028bc703be2d4e9bc8a4032d015d6516", + "hash": "sha256-mwcvSRycM8bq3dDWk4yfkL8Tg5bfEap6lrr1Oxemzy4=" }, "src/third_party/spirv-cross/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross", @@ -640,38 +650,38 @@ }, "src/third_party/spirv-headers/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers", - "rev": "2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801", - "hash": "sha256-o1yRTvP7a+XVwendTKBJKNnelVGWLD0gH258GGeUDhQ=" + "rev": "50bc4debdc3eec5045edbeb8ce164090e29b91f3", + "hash": "sha256-Zv5QZ8MmP45MH5e6EBDNPmP0vcjjNXJHKva5MNh5ovA=" }, "src/third_party/spirv-tools/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools", - "rev": "37d2fcb485bf3fcadb18ef90aab6f283dcc4be72", - "hash": "sha256-13y7Z6wMeAmV2dgMepgQPB+c+Pjc2O3C2G0kdlBVsNE=" + "rev": "42b315c15b1ff941b46bb3949c105e5386be8717", + "hash": "sha256-xb0TlPyXP2wu7jMrWZu+z8WC5mk0CbYgvkZEt3r+mww=" }, "src/third_party/vulkan-headers/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers", - "rev": "c6391a7b8cd57e79ce6b6c832c8e3043c4d9967b", - "hash": "sha256-8q6uu3v7j7poTMkn0oxj+RewIqhjCOuBz/QG/oFnWBI=" + "rev": "14345dab231912ee9601136e96ca67a6e1f632e7", + "hash": "sha256-ny/UVx4r+Fj39ZEepaWqDPplAJcrBQEQlkqsSofwLJ0=" }, "src/third_party/vulkan-loader/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader", - "rev": "1108bba6c97174d172d45470a7470a3d6a564647", - "hash": "sha256-dA9yc8nv8HDF8WA7bSReqI2JtUU41/Xl4J/CQlq0nuU=" + "rev": "bd1c8ea9c6ac51e4c3a6ddb9d602bb204678eb5f", + "hash": "sha256-Ze/DGiD8Zj3mY+5Pi+tf6xMrX2YBqfl4Nc37b/JgmnI=" }, "src/third_party/vulkan-tools/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", - "rev": "4c63e845962ff3b197855f3ae4907a47d0863f5a", - "hash": "sha256-eEJ9S1/fF5WMT+fRq+ZTzRfb+gxDA8drK8uwPVrFoNc=" + "rev": "c9a5acda16dc2759457dc856b5d7df00ac5bf4a2", + "hash": "sha256-0JzqUW6XbhPbLGs/smuNG6zQoWP8iaAO5VglGSyN94g=" }, "src/third_party/vulkan-utility-libraries/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries", - "rev": "ea5774a13e3017b6d5d79af6fba9f0d72ca5c61a", - "hash": "sha256-4jK6OQT5Za46HixUe1kOay2NlTYtf9OHkbZrZ0y6pdI=" + "rev": "8c907ea21fe0147f791d79051b18e21bc8c4ede0", + "hash": "sha256-2abhzNt/rKbAhGQZhUhQ2LoemtU1Yh1fx9rrijOtjy4=" }, "src/third_party/vulkan-validation-layers/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers", - "rev": "ef846ac0883cde5e69ced0e7d7af59fe92f34e25", - "hash": "sha256-vwd7n30odVW/Q39lIiVuhyWhnm20giEHlzP14ONXyuw=" + "rev": "cbb4ab171fc7cd0b636a76ee542e238a8734f4be", + "hash": "sha256-nKpS0ddAsN2KhOg6J/SwB8ZlVXrJTVixD4DuUkyxb6c=" }, "src/third_party/vulkan_memory_allocator": { "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git", @@ -705,18 +715,18 @@ }, "src/third_party/webgl/src": { "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git", - "rev": "1b6371436a0a60e6b9a4ae2a40a8eba198e3af02", - "hash": "sha256-Yn0e1bpvtD4mGdZaRiBytc+upLulYVyHJqXJiTWEfmA=" + "rev": "450cceb587613ac1469c5a131fac15935c99e0e7", + "hash": "sha256-32r3BdmsNA89mo0k+vK1G3718AOjseE7cJlopZ/0pSw=" }, "src/third_party/webgpu-cts/src": { "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git", - "rev": "2f55512456a725e77f3baac3d951de5c6c5e28a3", - "hash": "sha256-3ruYKYHOkqlJcrjl4xvQV+OtULbgNUvXGBfrd5WTGyY=" + "rev": "ae8b3ca40fbeee0bc67ef41a6c5b6dd5af839344", + "hash": "sha256-7u5Ay43GtcVTt3Cwg/5OaYQdG6SXXYtUun7DVN+XChE=" }, "src/third_party/webrtc": { "url": "https://webrtc.googlesource.com/src.git", - "rev": "28b793b4dd275bf2b901b87e01c0ee8d4f5732fc", - "hash": "sha256-4URlxWupNm67GeUGLJe3Dz1IONIq1mCjG5Lf4csKFKo=" + "rev": "8445abdf8069cadcbd134369b70d0ebd436ef477", + "hash": "sha256-EitEjXNtm0gB9wtAwIYHBHkU7paHg5zvsTz171hRmK4=" }, "src/third_party/wuffs/src": { "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git", @@ -735,8 +745,8 @@ }, "src/third_party/xnnpack/src": { "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git", - "rev": "c4a28daf28c98300da9d9b5213c53f762908825e", - "hash": "sha256-VBrBNjoF3hsRXpBfXP2g9xOujVsmm7AkV6wE4ZwW2ts=" + "rev": "3986629de01e518a3f2359bf5629ef2b7ef72330", + "hash": "sha256-x8GQUj75mQXswI3b29tS9u25Zx3peYqDM8v1/wkC9cs=" }, "src/tools/page_cycler/acid3": { "url": "https://chromium.googlesource.com/chromium/deps/acid3.git", @@ -750,8 +760,8 @@ }, "src/v8": { "url": "https://chromium.googlesource.com/v8/v8.git", - "rev": "9ae5f73732808d0b574e8efe88fcdbc72850fbd0", - "hash": "sha256-Ip7+Qs+U8iIDo0ZxEYSzRQUc/Ipeu7DtD8DS4hTNxJw=" + "rev": "7075674f24f09d3b30913710a31e8793c131000a", + "hash": "sha256-N6FB/ocU1KIAGoYTnAl42qjrjatuD5fooRu93akPUjM=" } } }, From 27435504702302469c00320da56581066e7c479a Mon Sep 17 00:00:00 2001 From: emilylange Date: Tue, 19 Nov 2024 20:21:32 +0100 Subject: [PATCH 12/16] ungoogled-chromium: 130.0.6723.116-1 -> 131.0.6778.69-1 https://chromereleases.googleblog.com/2024/11/stable-channel-update-for-desktop_12.html This update includes 12 security fixes. CVEs: CVE-2024-11110 CVE-2024-11111 CVE-2024-11112 CVE-2024-11113 CVE-2024-11114 CVE-2024-11115 CVE-2024-11116 CVE-2024-11117 (cherry picked from commit 54d69a3c7942dac4a7b41725b9f71b1ab143dc9c) --- .../networking/browsers/chromium/info.json | 242 +++++++++--------- 1 file changed, 126 insertions(+), 116 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json index dddbd82cbb846..954d4e36628a2 100644 --- a/pkgs/applications/networking/browsers/chromium/info.json +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -766,27 +766,27 @@ } }, "ungoogled-chromium": { - "version": "130.0.6723.116", + "version": "131.0.6778.69", "deps": { "depot_tools": { - "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", - "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=" + "rev": "20b9bdcace7ed561d6a75728c85373503473cb6b", + "hash": "sha256-vlBENaVTtbwDJtSswuszcUlx+icZYJeP6ew6MO1cAv0=" }, "gn": { - "rev": "20806f79c6b4ba295274e3a589d85db41a02fdaa", - "hash": "sha256-iNXRq3Mr8+wmY1SR4sV7yd2fDiIZ94eReelwFI0UhGU=" + "rev": "95b0f8fe31a992a33c040bbe3867901335c12762", + "hash": "sha256-a8yCdBsl0nBMPS+pCLwrkAvQNP/THx/z/GySyOgx4Jk=" }, "ungoogled-patches": { - "rev": "130.0.6723.116-1", - "hash": "sha256-+94tSSaOp6vzWkXN1qF3UXMm/Rs3pKmjf+U4x+af818=" + "rev": "131.0.6778.69-1", + "hash": "sha256-1XKlIO8aH3eHNiF4fPJGymo1MGUgHlqD98vWjHGMWHY=" }, - "npmHash": "sha256-4w5m/bTMygidlb4TZHMx1Obp784DLxMwrfe1Uvyyfp8=" + "npmHash": "sha256-b1l8SwjAfoColoa3zhTMPEF/rRuxzT3ATHE77rWU5EA=" }, "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "130.0.6723.116", - "hash": "sha256-KSUDdIHSzsZBYC+ApQE3iolGOAC0MZETlI2ARNXE0Vg=", + "rev": "131.0.6778.69", + "hash": "sha256-GbhiqLRC5Kilo84XwYHnosNUgtZNCwmuzSOkP6if/8s=", "recompress": true }, "src/third_party/clang-format/script": { @@ -796,18 +796,18 @@ }, "src/third_party/libc++/src": { "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git", - "rev": "50ab693ecb611942ce4440d8c9ed707ee65ed5e8", - "hash": "sha256-hKlmY2Bn1f6w0Gmx/Le/LwWk/Gf6hzXqR5C+/w+0CNA=" + "rev": "6a68fd412b9aecd515a20a7cf84d11b598bfaf96", + "hash": "sha256-7skqaen0XqbRvAGXQ0/3kea3vRInktdP3DOBeIBiGlQ=" }, "src/third_party/libc++abi/src": { "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git", - "rev": "29b2e9a0f48688da116692cb04758393053d269c", - "hash": "sha256-GtK8z2jn4es3uuxpAgm5AoQvUjvhAunAyUwm3HEqLVA=" + "rev": "9a1d90c3b412d5ebeb97a6e33d98e1d0dd923221", + "hash": "sha256-zPm+Rif9fITazDvvm6SvLq8gwcPzPbuaXlRbyYqv7JA=" }, "src/third_party/libunwind/src": { "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git", - "rev": "dc70138c3e68e2f946585f134e20815851e26263", - "hash": "sha256-5xsrVVSu9b+78GEKeLGNpo7ySxrJ2SeuuKghN6NHlSU=" + "rev": "efc3baa2d1ece3630fcfa72bef93ed831bcaec4c", + "hash": "sha256-0OBelaxkKdajYXrGgz08nyPZhxqpsnFXiF3m8DGQkDo=" }, "src/chrome/test/data/perf/canvas_bench": { "url": "https://chromium.googlesource.com/chromium/canvas_bench.git", @@ -826,8 +826,8 @@ }, "src/docs/website": { "url": "https://chromium.googlesource.com/website.git", - "rev": "052e29447b43b18da32fff653b9d58ef79fbc836", - "hash": "sha256-XK22S9WwNN4zQZ5teiQ1sZA5m/8rArwq3jCgM6H9KQY=" + "rev": "4811f9e01c4cfcbf9c6957015063eaaa0d92be91", + "hash": "sha256-98wwIeMTF2Wg2sJ07U1OUV83wR9nJOjGubp7Vnk3kj8=" }, "src/media/cdm/api": { "url": "https://chromium.googlesource.com/chromium/cdm.git", @@ -836,8 +836,8 @@ }, "src/net/third_party/quiche/src": { "url": "https://quiche.googlesource.com/quiche.git", - "rev": "9808dac40e034f09d7af53d3d79589a02e39c211", - "hash": "sha256-NJKJ5cc+wEcmCIFYXWQX4x9BZblbS+wqj+25CcUiPZM=" + "rev": "e0175250977c2b2b95087afc0857883538a1386c", + "hash": "sha256-1O+hnZF73AY44jcmajJlpaQY5PV4+x0hYwqf1TtMahY=" }, "src/testing/libfuzzer/fuzzers/wasm_corpus": { "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git", @@ -851,8 +851,8 @@ }, "src/third_party/angle": { "url": "https://chromium.googlesource.com/angle/angle.git", - "rev": "fffbc739779a2df56a464fd6853bbfb24bebb5f6", - "hash": "sha256-OtpF7+KQzk0MWhgBlNV1DheHywtBMDQIPhGUOss9Dtg=" + "rev": "ac6cda4cbd716102ded6a965f79573b41581898d", + "hash": "sha256-7Zfc262U42G6BUlxnLp6sQ78VlWBt0pTzkYwXY0rqaE=" }, "src/third_party/angle/third_party/glmark2/src": { "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2", @@ -866,8 +866,8 @@ }, "src/third_party/angle/third_party/VK-GL-CTS/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS", - "rev": "1df39e522f4aa358012180fd4cf876af68aff78d", - "hash": "sha256-yPQG/Ddat9H4XZq6Zu5S3VzcZeMhLBcM//KI/3Kxaxg=" + "rev": "179dd9f858f0f5b0e52b61aefc621dc82e2ad34a", + "hash": "sha256-B7X9PTlMQdolsvEfuCNaKnRFcvsPNZtn5FOcJBY6sCA=" }, "src/third_party/anonymous_tokens/src": { "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git", @@ -881,13 +881,13 @@ }, "src/third_party/dav1d/libdav1d": { "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git", - "rev": "6b3c489a2ee2c030f351f21987c27611b4cbe725", - "hash": "sha256-qJSUt8gMFB+IhOnEAw3t6nj1y7XUY91pLQBF8CeYtas=" + "rev": "389450f61ea0b2057fc9ea393d3065859c4ba7f2", + "hash": "sha256-FK3tOLq5NcKQuStY5o8Lv2CXpjYHJm7n+NnyLFMOCxo=" }, "src/third_party/dawn": { "url": "https://dawn.googlesource.com/dawn.git", - "rev": "70a01d28c3ecd75b67a87e4643bd4d55fc391ce6", - "hash": "sha256-x5Fm7DGAFfDmZ9p6JY16+QSPPztxNrG/HvQrZ26NnZM=" + "rev": "cdc5b4dc1ee1482378b545b6c1efa1a234195ab5", + "hash": "sha256-HtLdotDYA0fsUyFkk/nhJ+GPC+GkbwfmyPbJLKAyKdE=" }, "src/third_party/dawn/third_party/glfw": { "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw", @@ -896,8 +896,8 @@ }, "src/third_party/dawn/third_party/dxc": { "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler", - "rev": "05334a70d3e5355fc86c94bb4e3cfe1c31a65999", - "hash": "sha256-CrR08tw9e+4U+fa6E9xoP/4puPNHEjLrxtSju8psLlk=" + "rev": "080aeb7199e66e4b0a2b6383fd26a9f8d2cccbf5", + "hash": "sha256-YHEBGqfftgK68wWAWVTxtbl1GECBT1qTNe7irYkM/8k=" }, "src/third_party/dawn/third_party/dxheaders": { "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers", @@ -921,8 +921,8 @@ }, "src/third_party/dawn/third_party/webgpu-cts": { "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts", - "rev": "a5065e398d2430c83e17ef9cbad6eae31d1efa8f", - "hash": "sha256-heIL8hhaVr0uRi2lD+7RFltggVFW48ZY9Tdl0yVRdac=" + "rev": "815ff2bb4038144dea89c33021bc4429f22a130f", + "hash": "sha256-28uZotrv+/MBBo+pcBWY3Csqrdv5Y4DxGbGEwK9Cwdw=" }, "src/third_party/highway/src": { "url": "https://chromium.googlesource.com/external/github.com/google/highway.git", @@ -936,8 +936,8 @@ }, "src/third_party/boringssl/src": { "url": "https://boringssl.googlesource.com/boringssl.git", - "rev": "58f3bc83230d2958bb9710bc910972c4f5d382dc", - "hash": "sha256-on+VonYXZ710oqgaK/OKa9Huq2mSXp8SJcj9CciHsf8=" + "rev": "cd95210465496ac2337b313cf49f607762abe286", + "hash": "sha256-172yvjgbFWQyd0PBRl74PJzpY/mDGC85D7PdeogNodU=" }, "src/third_party/breakpad/breakpad": { "url": "https://chromium.googlesource.com/breakpad/breakpad.git", @@ -951,8 +951,8 @@ }, "src/third_party/catapult": { "url": "https://chromium.googlesource.com/catapult.git", - "rev": "296226a4a0067c8cffeb8831fb87526a8035f3cc", - "hash": "sha256-IHubCuEBE9W0wRudOmjUoaOvT66JuVTzEBUOTvdnXqQ=" + "rev": "44791916611acec1cd74c492c7453e46d9b0dbd2", + "hash": "sha256-SkF+RIIlU8Vl3AmN6kARkLuVz/X5vygNOtGN2K3Sr+M=" }, "src/third_party/ced/src": { "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git", @@ -961,8 +961,8 @@ }, "src/third_party/chromium-variations": { "url": "https://chromium.googlesource.com/chromium-variations.git", - "rev": "6aa57f2c6b49402b55ec607c17bd7ee8946970b0", - "hash": "sha256-DR5rJdnDKunS/PHtVK1n4zk0MmK54LhlawZW74711LY=" + "rev": "7d681838b57a25ca6659b9cc0111f879147c416b", + "hash": "sha256-zio8SqKEqOYYjVWZnzfrPqngqym2lZu9M/hgSi3ey0Q=" }, "src/third_party/cld_3/src": { "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git", @@ -981,8 +981,8 @@ }, "src/third_party/cpuinfo/src": { "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git", - "rev": "ca678952a9a8eaa6de112d154e8e104b22f9ab3f", - "hash": "sha256-UKy9TIiO/UJ5w+qLRlMd085CX2qtdVH2W3rtxB5r6MY=" + "rev": "1e83a2fdd3102f65c6f1fb602c1b320486218a99", + "hash": "sha256-28cFACca+NYE8oKlP5aWXNCLeEjhWqJ6gRnFI+VxDvg=" }, "src/third_party/crc32c/src": { "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git", @@ -991,23 +991,23 @@ }, "src/third_party/cros_system_api": { "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git", - "rev": "2f88f9c4581a9c854604fa23516de8c9c13b227b", - "hash": "sha256-9rM9m6VRX7B+h9JiICN5O9rBYdQEHNlCUnQMuaTy/1s=" + "rev": "b08c5ad457bddea2664ba20fb25beb3d1799fed2", + "hash": "sha256-cwpcY8YTXk+VVIFphO5ihc5rvbG3ZY9iHeK81P5DHBs=" }, "src/third_party/crossbench": { "url": "https://chromium.googlesource.com/crossbench.git", - "rev": "2b812597dd143dbdc560ff2f28d5f8d3adc700d4", - "hash": "sha256-7IuhXuxXD3xBkgazg3B9GZknlNv8Xi0eTHkeQv63ayk=" + "rev": "b4d7ae714c548c3e139b95a85582dc15ece1d2f7", + "hash": "sha256-1RDDbvce5WR32if3cFYxiU9HS04x3BYIgOFJPMVJSBo=" }, "src/third_party/depot_tools": { "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git", - "rev": "22df6f8e622dc3e8df8dc8b5d3e3503b169af78e", - "hash": "sha256-C8U5BFLBCorwHvfKvh1xmAzOaDcBAbe3GhwJebENZD4=" + "rev": "20b9bdcace7ed561d6a75728c85373503473cb6b", + "hash": "sha256-vlBENaVTtbwDJtSswuszcUlx+icZYJeP6ew6MO1cAv0=" }, "src/third_party/devtools-frontend/src": { "url": "https://chromium.googlesource.com/devtools/devtools-frontend", - "rev": "deee9c11c9f76ef595b7d0b52fcf677d25aac5f2", - "hash": "sha256-gRc2ei5m7a5KVKEMIivPGy1IQqDIaJxUJHLd5k2F+GQ=" + "rev": "5284f1c63b2b08c47b8915ce713a1aace991dfe9", + "hash": "sha256-1Nh9SVIAde4jxgwFucbtZpl6rMyPM4Plfi+dhwP0wI8=" }, "src/third_party/dom_distiller_js/dist": { "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git", @@ -1016,8 +1016,8 @@ }, "src/third_party/eigen3/src": { "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git", - "rev": "134b526d6110061469168e7e0511822a8e30bcaf", - "hash": "sha256-U4SMReXTFZg7YGyefI6MXIB66nt5OiANMH0HUyr/xIc=" + "rev": "7eea0a9213e801ad9479a6499fd0330ec1db8693", + "hash": "sha256-JkOjOnLrDOcYHi3hptT1BDRvsKpTtOsBHT8YLb1hlJM=" }, "src/third_party/farmhash/src": { "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git", @@ -1031,8 +1031,8 @@ }, "src/third_party/ffmpeg": { "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git", - "rev": "91903c28af60a732a051c343b496e1188eec9b05", - "hash": "sha256-HnpWlSfXxa951UkFgL/2zKoaBeveuVkTZz/iqYXjkH8=" + "rev": "686d6944501a6ee9c849581e3fe343273d4af3f6", + "hash": "sha256-j5mpWn4j+U4rRlXbq8okUUXrRKycZkiV+UntiS90ChM=" }, "src/third_party/flac": { "url": "https://chromium.googlesource.com/chromium/deps/flac.git", @@ -1066,8 +1066,8 @@ }, "src/third_party/freetype/src": { "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git", - "rev": "83af801b552111e37d9466a887e1783a0fb5f196", - "hash": "sha256-w5Zd4yvGoMQ0BmDGa2b9gK/+7f+UaZDRYqEdMGH/zKg=" + "rev": "f02bffad0fd57f3acfa835c3f2899c5b71ff8be0", + "hash": "sha256-Lc2hbmZnnXQa0vzlJCizNBQ5WCOI5sJglTTe5gWVYUA=" }, "src/third_party/freetype-testing/src": { "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git", @@ -1084,6 +1084,16 @@ "rev": "1da053e87f0487382404656edca98b85fe51f2fd", "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=" }, + "src/third_party/ink/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/ink.git", + "rev": "4300dc7402a257b85fc5bf2559137edacb050227", + "hash": "sha256-+Ikr9E7KlXBFyf6fSDmIF3ygNUiwlXeA5bmO2CtkI7Q=" + }, + "src/third_party/ink_stroke_modeler/src": { + "url": "https://chromium.googlesource.com/external/github.com/google/ink-stroke-modeler.git", + "rev": "0999e4cf816b42c770d07916698bce943b873048", + "hash": "sha256-IQ+n+kHdEq8Q8/qaPGMvgD7cPN3zzaY8dbiokq6r/Vs=" + }, "src/third_party/instrumented_libs": { "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git", "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9", @@ -1091,8 +1101,8 @@ }, "src/third_party/emoji-segmenter/src": { "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git", - "rev": "6b8f235b72deba7d6ef113631129b274c14941ef", - "hash": "sha256-sI6UgXTWxXJajB2h2LH3caf7cqRbBshD5GoLocrUivk=" + "rev": "955936be8b391e00835257059607d7c5b72ce744", + "hash": "sha256-KdQdKBBipEBRT8UmNGao6yCB4m2CU8/SrMVvcXlb5qE=" }, "src/third_party/ots/src": { "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git", @@ -1106,8 +1116,8 @@ }, "src/third_party/googletest/src": { "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git", - "rev": "0953a17a4281fc26831da647ad3fcd5e21e6473b", - "hash": "sha256-jccFUondvjWgCBC3oCLUXqtLV07pkEq8IEZ+FLu1MrE=" + "rev": "62df7bdbc10887e094661e07ec2595b7920376fd", + "hash": "sha256-Iv/7r79cKC1pFkxPPHK/IHv/HFx18XZ4YVr+C2CX8+M=" }, "src/third_party/hunspell_dictionaries": { "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git", @@ -1116,8 +1126,8 @@ }, "src/third_party/icu": { "url": "https://chromium.googlesource.com/chromium/deps/icu.git", - "rev": "9408c6fd4a39e6fef0e1c4077602e1c83b15f3fb", - "hash": "sha256-YlX+PaPhvYh9JzHT9WtS1beUK+cQrHGVUl+IBbv7GeQ=" + "rev": "4239b1559d11d4fa66c100543eda4161e060311e", + "hash": "sha256-7568UHNDOzyTCLy3TAwxZLUrKfB6A1yKA0wVZQJjKoI=" }, "src/third_party/jsoncpp/source": { "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git", @@ -1136,8 +1146,8 @@ }, "src/third_party/fuzztest/src": { "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git", - "rev": "a29e31cb00ec9b123dec5a0c6b8d4bc12c2480c8", - "hash": "sha256-g+iJrywURQfdYpco26VN+OlhZkVcFzmAK18C7W7/WLU=" + "rev": "0021f30508bc7f73fa5270962d022acb480d242f", + "hash": "sha256-UYmzjOX8k+CWL+xOIF3NiEL3TRUjS8JflortB2RUT4o=" }, "src/third_party/domato/src": { "url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git", @@ -1151,18 +1161,18 @@ }, "src/third_party/libaom/source/libaom": { "url": "https://aomedia.googlesource.com/aom.git", - "rev": "d5265b173616ce62de231cd1b1eae853ad03641e", - "hash": "sha256-uFUIodoC9qpLycwtWRgc0iqaqcUsvVmwAAQGHKolWto=" + "rev": "840f8797871cc587f7113ea9d2483a1156d57c0e", + "hash": "sha256-2XHqNAmv2L3TEFXu4Q6rnASLmuE93QplSVKNqyhlKUk=" }, "src/third_party/libavif/src": { "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git", - "rev": "c2177c3316a49505dcd592ba21073f7abc25cd37", - "hash": "sha256-2GKqPgWs1TD0nPW7VoSo8dz3ugPsZhcy2K1V35XflSk=" + "rev": "2c36aed375fff68611641b57d919b191f33431d5", + "hash": "sha256-fApdfzEtQnmio6BVzkcr/VkwojrNs+cx/+Am80H9dXw=" }, "src/third_party/crabbyavif/src": { "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git", - "rev": "adfb834d76c6a064f28bb3a694689fc14a42425e", - "hash": "sha256-9ooMkYOHRYbV2kdxu8VWUNgBeBsrN4kWUb8cZJwZfiU=" + "rev": "ffad64ff4e349f926ad5ffcc882e205a94156d77", + "hash": "sha256-M2ExAgLm/NZ2soQEv3Ap/qx/B3+nd3NdDqYOL0E/pc8=" }, "src/third_party/libavifinfo/src": { "url": "https://aomedia.googlesource.com/libavifinfo.git", @@ -1171,8 +1181,8 @@ }, "src/third_party/nearby/src": { "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git", - "rev": "3c8737f92d765407e4ff6c87b8758ba99ede40ed", - "hash": "sha256-RZsdeT1gkbrOuHvngs+Iavl9YE27jLx4AXXYOvSXZoI=" + "rev": "1b382075dd1bd545655af7ebef949b3090061b74", + "hash": "sha256-kpyJiFXtk8eK8EkgzUbG0GS+znEeqzlB62qy9tPpEC8=" }, "src/third_party/beto-core/src": { "url": "https://beto-core.googlesource.com/beto-core.git", @@ -1196,8 +1206,8 @@ }, "src/third_party/cros-components/src": { "url": "https://chromium.googlesource.com/external/google3/cros_components.git", - "rev": "08a6ca6559c8d07c79fb5576a44e016e3126c221", - "hash": "sha256-gEhAwW6u8VgBRFmAddRBlosbf/a9lhRLgs70Dvh1zos=" + "rev": "902e8ca804ae6c05f505e510c16647c32ce4d1cb", + "hash": "sha256-j2m9zVajkAdPF1ehLX0Gxp4LyMunhFDDCzrCm2WzArc=" }, "src/third_party/libdrm/src": { "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git", @@ -1246,8 +1256,8 @@ }, "src/third_party/libvpx/source/libvpx": { "url": "https://chromium.googlesource.com/webm/libvpx.git", - "rev": "fbf63dff1f528d44f24bd662abb89fd01a4a1c25", - "hash": "sha256-fXEPPgUdTsvzbLc8mp7v0MWw/9FfOooIIKjRshvYi2o=" + "rev": "906334ac1de2b0afa666472dce5545b82c1251fb", + "hash": "sha256-7GInV/uHuK6bUa1dSBuxJn6adyjfoOqSqfmfTvQbAoc=" }, "src/third_party/libwebm/source": { "url": "https://chromium.googlesource.com/webm/libwebm.git", @@ -1261,8 +1271,8 @@ }, "src/third_party/libyuv": { "url": "https://chromium.googlesource.com/libyuv/libyuv.git", - "rev": "4620f1705822fd6ab99939f43ce63099bd3d9ae0", - "hash": "sha256-tQ7eCY1udoGHRoFr83obQ994IMfxqaH68StvXJ6obZ8=" + "rev": "a8e59d207483f75b87dd5fc670e937672cdf5776", + "hash": "sha256-gTNmhYuYmt/JmWSAVbcE4PqG3kW/JaL7XEWXbiNVfMM=" }, "src/third_party/lss": { "url": "https://chromium.googlesource.com/linux-syscall-support.git", @@ -1296,8 +1306,8 @@ }, "src/third_party/openscreen/src": { "url": "https://chromium.googlesource.com/openscreen", - "rev": "b720e33d337c68353e5d80a72491fb438f27d93a", - "hash": "sha256-y2XOZ3CmGdI0S/DLnOwAhm0kGTf/ayJ6OwPVlQCQqBw=" + "rev": "4f27c4f1698522dfcea36dca948a13e2eaf4c26c", + "hash": "sha256-dosSqpFlvli60ZJ0vexVZOK/FmzOYq5BDrZKZW0lMfc=" }, "src/third_party/openscreen/src/buildtools": { "url": "https://chromium.googlesource.com/chromium/src/buildtools", @@ -1311,13 +1321,13 @@ }, "src/third_party/pdfium": { "url": "https://pdfium.googlesource.com/pdfium.git", - "rev": "2b675cf15ab4b68bf1ed4e0511ba2479e11f1605", - "hash": "sha256-znfeKj2ttFWalFPeP9o8NPYLHD+pWAKuWVudX59MhLw=" + "rev": "7a8409531fbb58d7d15ae331e645977b113d7ced", + "hash": "sha256-KlqgaOxKJQHHjU1g1VCcJEBhv809DdEUedrxdk8N99I=" }, "src/third_party/perfetto": { "url": "https://android.googlesource.com/platform/external/perfetto.git", - "rev": "9170899ab284db894f14439e561f02f83a04d88e", - "hash": "sha256-ej8yXGOlmqwnWBbKR99qtIn3MvImaqV5ResVp95zdcM=" + "rev": "24764a1d9c2fce1e9816ffae691f00353ade330d", + "hash": "sha256-FAaxTuIYExmL3PSWwcvLpnPD4qsGDGr4/CIyi0NSrnI=" }, "src/third_party/protobuf-javascript/src": { "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript", @@ -1356,8 +1366,8 @@ }, "src/third_party/skia": { "url": "https://skia.googlesource.com/skia.git", - "rev": "3c64459d5df2fa9794b277f0959ed8a92552bf4c", - "hash": "sha256-u/K96HEBcx1sge4wSf3m4xDkZEoFaxekHafgmC4rjVQ=" + "rev": "94631d9b9a10697325589e1642af63a0137cac94", + "hash": "sha256-SKKLOxjimQWt8W+Q3wlCJaUC/lxw6EIZDFBuVQKmnVY=" }, "src/third_party/smhasher/src": { "url": "https://chromium.googlesource.com/external/smhasher.git", @@ -1376,8 +1386,8 @@ }, "src/third_party/swiftshader": { "url": "https://swiftshader.googlesource.com/SwiftShader.git", - "rev": "2afc8c97882a5c66abf5f26670ae420d2e30adc3", - "hash": "sha256-U29q1G3gnJdoucdLGZEbwpkGpDE4C2lv2b5WqpUf2Ho=" + "rev": "7a9a492a38b7c701f7c96a15a76046aed8f8c0c3", + "hash": "sha256-6uBO4jwPSqhT4j+KTE0Za7B4prrE2kstsHNtHwTJX+Q=" }, "src/third_party/text-fragments-polyfill/src": { "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git", @@ -1386,18 +1396,18 @@ }, "src/third_party/tflite/src": { "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git", - "rev": "d29299c16ec49623af1294900dba53fc8864f0bb", - "hash": "sha256-HtvrZur/vifocB/TKLDkzTLjFbGee4xGUhRLShozo9M=" + "rev": "689e8a82f8070a372981b7476fb673e243330d71", + "hash": "sha256-tImVDNyS5hCN6A1ODeVuB7XLCNr3EdxN8x961nPCM9g=" }, "src/third_party/vulkan-deps": { "url": "https://chromium.googlesource.com/vulkan-deps", - "rev": "c045c2192ab45a144b419033dffe6190be5d8c93", - "hash": "sha256-U8iB5HlLHzpeBJjd9XODWONDy7GTfNbM2kjGBIAhabU=" + "rev": "73fd75175922012f21557239b7743a152ea7f1fd", + "hash": "sha256-D8UIXXQX6dTxbuqFgd6AbmErr1r9839yiN6MrJlsqPw=" }, "src/third_party/glslang/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang", - "rev": "dc1012140e015d43711514d1294ac6f626890a40", - "hash": "sha256-6lVjQb8FOyGmRGEcNDzL55s/9bcDY3jIz4Xm3BK3GoI=" + "rev": "2acc4ea0028bc703be2d4e9bc8a4032d015d6516", + "hash": "sha256-mwcvSRycM8bq3dDWk4yfkL8Tg5bfEap6lrr1Oxemzy4=" }, "src/third_party/spirv-cross/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross", @@ -1406,38 +1416,38 @@ }, "src/third_party/spirv-headers/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers", - "rev": "2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801", - "hash": "sha256-o1yRTvP7a+XVwendTKBJKNnelVGWLD0gH258GGeUDhQ=" + "rev": "50bc4debdc3eec5045edbeb8ce164090e29b91f3", + "hash": "sha256-Zv5QZ8MmP45MH5e6EBDNPmP0vcjjNXJHKva5MNh5ovA=" }, "src/third_party/spirv-tools/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools", - "rev": "37d2fcb485bf3fcadb18ef90aab6f283dcc4be72", - "hash": "sha256-13y7Z6wMeAmV2dgMepgQPB+c+Pjc2O3C2G0kdlBVsNE=" + "rev": "42b315c15b1ff941b46bb3949c105e5386be8717", + "hash": "sha256-xb0TlPyXP2wu7jMrWZu+z8WC5mk0CbYgvkZEt3r+mww=" }, "src/third_party/vulkan-headers/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers", - "rev": "c6391a7b8cd57e79ce6b6c832c8e3043c4d9967b", - "hash": "sha256-8q6uu3v7j7poTMkn0oxj+RewIqhjCOuBz/QG/oFnWBI=" + "rev": "14345dab231912ee9601136e96ca67a6e1f632e7", + "hash": "sha256-ny/UVx4r+Fj39ZEepaWqDPplAJcrBQEQlkqsSofwLJ0=" }, "src/third_party/vulkan-loader/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader", - "rev": "1108bba6c97174d172d45470a7470a3d6a564647", - "hash": "sha256-dA9yc8nv8HDF8WA7bSReqI2JtUU41/Xl4J/CQlq0nuU=" + "rev": "bd1c8ea9c6ac51e4c3a6ddb9d602bb204678eb5f", + "hash": "sha256-Ze/DGiD8Zj3mY+5Pi+tf6xMrX2YBqfl4Nc37b/JgmnI=" }, "src/third_party/vulkan-tools/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools", - "rev": "4c63e845962ff3b197855f3ae4907a47d0863f5a", - "hash": "sha256-eEJ9S1/fF5WMT+fRq+ZTzRfb+gxDA8drK8uwPVrFoNc=" + "rev": "c9a5acda16dc2759457dc856b5d7df00ac5bf4a2", + "hash": "sha256-0JzqUW6XbhPbLGs/smuNG6zQoWP8iaAO5VglGSyN94g=" }, "src/third_party/vulkan-utility-libraries/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries", - "rev": "ea5774a13e3017b6d5d79af6fba9f0d72ca5c61a", - "hash": "sha256-4jK6OQT5Za46HixUe1kOay2NlTYtf9OHkbZrZ0y6pdI=" + "rev": "8c907ea21fe0147f791d79051b18e21bc8c4ede0", + "hash": "sha256-2abhzNt/rKbAhGQZhUhQ2LoemtU1Yh1fx9rrijOtjy4=" }, "src/third_party/vulkan-validation-layers/src": { "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers", - "rev": "ef846ac0883cde5e69ced0e7d7af59fe92f34e25", - "hash": "sha256-vwd7n30odVW/Q39lIiVuhyWhnm20giEHlzP14ONXyuw=" + "rev": "cbb4ab171fc7cd0b636a76ee542e238a8734f4be", + "hash": "sha256-nKpS0ddAsN2KhOg6J/SwB8ZlVXrJTVixD4DuUkyxb6c=" }, "src/third_party/vulkan_memory_allocator": { "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git", @@ -1471,18 +1481,18 @@ }, "src/third_party/webgl/src": { "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git", - "rev": "1b6371436a0a60e6b9a4ae2a40a8eba198e3af02", - "hash": "sha256-Yn0e1bpvtD4mGdZaRiBytc+upLulYVyHJqXJiTWEfmA=" + "rev": "450cceb587613ac1469c5a131fac15935c99e0e7", + "hash": "sha256-32r3BdmsNA89mo0k+vK1G3718AOjseE7cJlopZ/0pSw=" }, "src/third_party/webgpu-cts/src": { "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git", - "rev": "2f55512456a725e77f3baac3d951de5c6c5e28a3", - "hash": "sha256-3ruYKYHOkqlJcrjl4xvQV+OtULbgNUvXGBfrd5WTGyY=" + "rev": "ae8b3ca40fbeee0bc67ef41a6c5b6dd5af839344", + "hash": "sha256-7u5Ay43GtcVTt3Cwg/5OaYQdG6SXXYtUun7DVN+XChE=" }, "src/third_party/webrtc": { "url": "https://webrtc.googlesource.com/src.git", - "rev": "28b793b4dd275bf2b901b87e01c0ee8d4f5732fc", - "hash": "sha256-4URlxWupNm67GeUGLJe3Dz1IONIq1mCjG5Lf4csKFKo=" + "rev": "8445abdf8069cadcbd134369b70d0ebd436ef477", + "hash": "sha256-EitEjXNtm0gB9wtAwIYHBHkU7paHg5zvsTz171hRmK4=" }, "src/third_party/wuffs/src": { "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git", @@ -1501,8 +1511,8 @@ }, "src/third_party/xnnpack/src": { "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git", - "rev": "c4a28daf28c98300da9d9b5213c53f762908825e", - "hash": "sha256-VBrBNjoF3hsRXpBfXP2g9xOujVsmm7AkV6wE4ZwW2ts=" + "rev": "3986629de01e518a3f2359bf5629ef2b7ef72330", + "hash": "sha256-x8GQUj75mQXswI3b29tS9u25Zx3peYqDM8v1/wkC9cs=" }, "src/tools/page_cycler/acid3": { "url": "https://chromium.googlesource.com/chromium/deps/acid3.git", @@ -1516,8 +1526,8 @@ }, "src/v8": { "url": "https://chromium.googlesource.com/v8/v8.git", - "rev": "9ae5f73732808d0b574e8efe88fcdbc72850fbd0", - "hash": "sha256-Ip7+Qs+U8iIDo0ZxEYSzRQUc/Ipeu7DtD8DS4hTNxJw=" + "rev": "7075674f24f09d3b30913710a31e8793c131000a", + "hash": "sha256-N6FB/ocU1KIAGoYTnAl42qjrjatuD5fooRu93akPUjM=" } } } From b3cd6e4825aaecd53f0b49aafda1a516784e34aa Mon Sep 17 00:00:00 2001 From: emilylange Date: Wed, 20 Nov 2024 02:00:20 +0100 Subject: [PATCH 13/16] chromium,chromedriver: 131.0.6778.69 -> 131.0.6778.85 https://chromereleases.googleblog.com/2024/11/stable-channel-update-for-desktop_19.html This update includes 3 security fixes. CVEs: CVE-2024-11395 (cherry picked from commit eaa1bb9980eb6444076fce1470c568001c3b4f1f) --- .../networking/browsers/chromium/info.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json index 954d4e36628a2..7af67049ae446 100644 --- a/pkgs/applications/networking/browsers/chromium/info.json +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -1,9 +1,9 @@ { "chromium": { - "version": "131.0.6778.69", + "version": "131.0.6778.85", "chromedriver": { - "hash_darwin": "sha256-1yOUj6DlHuYTSGGl4mcbYrmsEZBammjfGXoXY/M4lZQ=", - "hash_darwin_aarch64": "sha256-GvmZZiDqs3funYoNSV94eyEa6G95YBu0YwLxJi6eKc0=" + "hash_darwin": "sha256-li9wQkcgh5ORPu2kjdyfwvvuykRz1gTL3b8UVQs+MY4=", + "hash_darwin_aarch64": "sha256-r/C6QpmkVzovLJKfMTjUome9nL5WoEvPGRFB+AJJFqk=" }, "deps": { "depot_tools": { @@ -19,8 +19,8 @@ "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "131.0.6778.69", - "hash": "sha256-GbhiqLRC5Kilo84XwYHnosNUgtZNCwmuzSOkP6if/8s=", + "rev": "131.0.6778.85", + "hash": "sha256-fREToEHVbTD0IVGx/sn7csSju4BYajWZ+LDCiKWV4cI=", "recompress": true }, "src/third_party/clang-format/script": { @@ -120,8 +120,8 @@ }, "src/third_party/dawn": { "url": "https://dawn.googlesource.com/dawn.git", - "rev": "cdc5b4dc1ee1482378b545b6c1efa1a234195ab5", - "hash": "sha256-HtLdotDYA0fsUyFkk/nhJ+GPC+GkbwfmyPbJLKAyKdE=" + "rev": "7e742cac42c29a14ab7f54b134b2f17592711267", + "hash": "sha256-K2gwKNwonzCIu4hnlYuOaYyKaRV11hwDzF4oykiKsl0=" }, "src/third_party/dawn/third_party/glfw": { "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw", @@ -760,8 +760,8 @@ }, "src/v8": { "url": "https://chromium.googlesource.com/v8/v8.git", - "rev": "7075674f24f09d3b30913710a31e8793c131000a", - "hash": "sha256-N6FB/ocU1KIAGoYTnAl42qjrjatuD5fooRu93akPUjM=" + "rev": "bd2671b973062afc614b852ec190524b80aaef8a", + "hash": "sha256-uq0CE7Chqzy2d+iifC3hV9RTnDVinpwjl1pOzyNGbSo=" } } }, From fd26d389195b6598c3e3ebdddaf9cf9c55f3307b Mon Sep 17 00:00:00 2001 From: networkException Date: Wed, 20 Nov 2024 23:22:20 +0100 Subject: [PATCH 14/16] chromium: use cached dependencies from other attributes in update script This patch extends the caching mechanism of the chromium update scripts to use cached dependencies of all attributes in the lockfile. When updating ungoogled-chromium for example, the update script will now use cached dependencies from vanilla chromium, usually meaning that no additional fetching has to be done. (cherry picked from commit 68d51619a279eea68df7a656a7276877412e6347) --- .../networking/browsers/chromium/update.mjs | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/update.mjs b/pkgs/applications/networking/browsers/chromium/update.mjs index 6a596c354a4c6..7bbb7794c3565 100755 --- a/pkgs/applications/networking/browsers/chromium/update.mjs +++ b/pkgs/applications/networking/browsers/chromium/update.mjs @@ -38,7 +38,7 @@ for (const attr_path of Object.keys(lockfile)) { } const ungoogled = attr_path === 'ungoogled-chromium' - const version_nixpkgs = !ungoogled ? lockfile[attr_path].version : lockfile[attr_path].deps["ungoogled-patches"].rev + const version_nixpkgs = !ungoogled ? lockfile[attr_path].version : lockfile[attr_path].deps['ungoogled-patches'].rev const version_upstream = !ungoogled ? await get_latest_chromium_release() : await get_latest_ungoogled_release() console.log(`[${attr_path}] ${chalk.red(version_nixpkgs)} (nixpkgs)`) @@ -56,7 +56,7 @@ for (const attr_path of Object.keys(lockfile)) { deps: { depot_tools: {}, gn: {}, - "ungoogled-patches": ungoogled ? await fetch_ungoogled(version_upstream) : undefined, + 'ungoogled-patches': ungoogled ? await fetch_ungoogled(version_upstream) : undefined, npmHash: dummy_hash, }, DEPS: {}, @@ -84,18 +84,28 @@ for (const attr_path of Object.keys(lockfile)) { value.recompress = true } - const cache = lockfile_initial[attr_path].DEPS[path] - const cache_hit = - cache !== undefined && - value.url === cache.url && - value.rev === cache.rev && - value.recompress === cache.recompress && - cache.hash !== undefined && - cache.hash !== '' && - cache.hash !== dummy_hash + const cache_hit = (() => { + for (const attr_path in lockfile_initial) { + const cache = lockfile_initial[attr_path].DEPS[path] + const hits_cache = + cache !== undefined && + value.url === cache.url && + value.rev === cache.rev && + value.recompress === cache.recompress && + cache.hash !== undefined && + cache.hash !== '' && + cache.hash !== dummy_hash + + if (hits_cache) { + cache.attr_path = attr_path + return cache; + } + } + })(); + if (cache_hit) { - console.log(`[${chalk.green(path)}] Reusing hash from previous info.json for ${cache.url}@${cache.rev}`) - value.hash = cache.hash + console.log(`[${chalk.green(path)}] Reusing hash from previous info.json for ${cache_hit.url}@${cache_hit.rev} from ${cache_hit.attr_path}`) + value.hash = cache_hit.hash continue } From 2a396b1557fe60151219222b5ddf5427b94771c4 Mon Sep 17 00:00:00 2001 From: networkException Date: Wed, 20 Nov 2024 23:28:35 +0100 Subject: [PATCH 15/16] ungoogled-chromium: 131.0.6778.69-1 -> 131.0.6778.85-1 https://chromereleases.googleblog.com/2024/11/stable-channel-update-for-desktop_19.html This update includes 3 security fixes. CVEs: CVE-2024-11395 (cherry picked from commit bd84f1c657c79169651f84f06d6aa4204c6ca59c) --- .../networking/browsers/chromium/info.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json index 7af67049ae446..d17a75454052d 100644 --- a/pkgs/applications/networking/browsers/chromium/info.json +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -766,7 +766,7 @@ } }, "ungoogled-chromium": { - "version": "131.0.6778.69", + "version": "131.0.6778.85", "deps": { "depot_tools": { "rev": "20b9bdcace7ed561d6a75728c85373503473cb6b", @@ -777,16 +777,16 @@ "hash": "sha256-a8yCdBsl0nBMPS+pCLwrkAvQNP/THx/z/GySyOgx4Jk=" }, "ungoogled-patches": { - "rev": "131.0.6778.69-1", - "hash": "sha256-1XKlIO8aH3eHNiF4fPJGymo1MGUgHlqD98vWjHGMWHY=" + "rev": "131.0.6778.85-1", + "hash": "sha256-mcSshjdfUEH4ur4z+0P0oWCjlV8EhFMc+7rdfIIPASI=" }, "npmHash": "sha256-b1l8SwjAfoColoa3zhTMPEF/rRuxzT3ATHE77rWU5EA=" }, "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "131.0.6778.69", - "hash": "sha256-GbhiqLRC5Kilo84XwYHnosNUgtZNCwmuzSOkP6if/8s=", + "rev": "131.0.6778.85", + "hash": "sha256-fREToEHVbTD0IVGx/sn7csSju4BYajWZ+LDCiKWV4cI=", "recompress": true }, "src/third_party/clang-format/script": { @@ -886,8 +886,8 @@ }, "src/third_party/dawn": { "url": "https://dawn.googlesource.com/dawn.git", - "rev": "cdc5b4dc1ee1482378b545b6c1efa1a234195ab5", - "hash": "sha256-HtLdotDYA0fsUyFkk/nhJ+GPC+GkbwfmyPbJLKAyKdE=" + "rev": "7e742cac42c29a14ab7f54b134b2f17592711267", + "hash": "sha256-K2gwKNwonzCIu4hnlYuOaYyKaRV11hwDzF4oykiKsl0=" }, "src/third_party/dawn/third_party/glfw": { "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw", @@ -1526,8 +1526,8 @@ }, "src/v8": { "url": "https://chromium.googlesource.com/v8/v8.git", - "rev": "7075674f24f09d3b30913710a31e8793c131000a", - "hash": "sha256-N6FB/ocU1KIAGoYTnAl42qjrjatuD5fooRu93akPUjM=" + "rev": "bd2671b973062afc614b852ec190524b80aaef8a", + "hash": "sha256-uq0CE7Chqzy2d+iifC3hV9RTnDVinpwjl1pOzyNGbSo=" } } } From 2891716813c1d2beb988f0260ee6342802d932a7 Mon Sep 17 00:00:00 2001 From: emilylange Date: Mon, 25 Nov 2024 14:17:47 +0100 Subject: [PATCH 16/16] chromium: resolve ref to rev for blink version string This allows us to match the version the binaries use more closely. For example, chromedriver darwin (binary) reports the following: ~~~bash chromedriver --version ChromeDriver 131.0.6778.85 (3d81e41b6f3ac8bcae63b32e8145c9eb0cd60a2d-refs/branch-heads/6778@{#2285}) ~~~ while on Linux, where we build chromedriver based on the chromium derivation from source and control the string ourselves: ~~~bash chromedriver --version ChromeDriver 131.0.6778.85 (131.0.6778.85-refs/heads/master@{#0}) ~~~ With this commit, the version string now reports: ~~~bash chromedriver --version ChromeDriver 131.0.6778.85 (3d81e41b6f3ac8bcae63b32e8145c9eb0cd60a2d-refs/tags/131.0.6778.85@{#0}) ~~~ This may seem like a small and unimportant detail, but turns out an internal function within chromedriver depends on the git hash. See https://chromium.googlesource.com/chromium/src/+/131.0.6778.85/chrome/test/chromedriver/chrome/browser_info.cc#172 This caused the tests of one package (single-file-cli) that use selenium with chromium and chromedriver to fail in 24.05. Only in 24.05, because 24.11 and unstable removed their test dependency on chromedriver because it wasn't available for aarch64-linux at that time. ~~~ Running phase: checkPhase Serving HTTP on 127.0.0.1 port 8000 (http://127.0.0.1:8000/) ... session not created from unknown error: unrecognized Blink revision: 131.0.6778.85 URL: http://127.0.0.1:8000 Stack: SessionNotCreatedError: session not created from unknown error: unrecognized Blink revision: 131.0.6778.85 at Object.throwDecodedError (/build/source/node_modules/selenium-webdriver/lib/error.js:524:15) at parseHttpResponse (/build/source/node_modules/selenium-webdriver/lib/http.js:601:13) at Executor.execute (/build/source/node_modules/selenium-webdriver/lib/http.js:529:28) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) ~~~ (cherry picked from commit 2a765dfbad349d0f3a0b03031fa50c0dce15d2c4) --- .../networking/browsers/chromium/common.nix | 2 +- .../networking/browsers/chromium/info.json | 4 ++-- .../networking/browsers/chromium/update.mjs | 16 +++++++++++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index fdfd0810d60b4..3b011b72a81a3 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -355,7 +355,7 @@ let postPatch = lib.optionalString (!isElectron) '' ln -s ${./files/gclient_args.gni} build/config/gclient_args.gni - echo 'LASTCHANGE=${upstream-info.DEPS."src".rev}-refs/heads/master@{#0}' > build/util/LASTCHANGE + echo 'LASTCHANGE=${upstream-info.DEPS."src".rev}-refs/tags/${version}@{#0}' > build/util/LASTCHANGE echo "$SOURCE_DATE_EPOCH" > build/util/LASTCHANGE.committime cat << EOF > gpu/config/gpu_lists_version.h diff --git a/pkgs/applications/networking/browsers/chromium/info.json b/pkgs/applications/networking/browsers/chromium/info.json index d17a75454052d..b1f96ef6c89b1 100644 --- a/pkgs/applications/networking/browsers/chromium/info.json +++ b/pkgs/applications/networking/browsers/chromium/info.json @@ -19,7 +19,7 @@ "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "131.0.6778.85", + "rev": "3d81e41b6f3ac8bcae63b32e8145c9eb0cd60a2d", "hash": "sha256-fREToEHVbTD0IVGx/sn7csSju4BYajWZ+LDCiKWV4cI=", "recompress": true }, @@ -785,7 +785,7 @@ "DEPS": { "src": { "url": "https://chromium.googlesource.com/chromium/src.git", - "rev": "131.0.6778.85", + "rev": "3d81e41b6f3ac8bcae63b32e8145c9eb0cd60a2d", "hash": "sha256-fREToEHVbTD0IVGx/sn7csSju4BYajWZ+LDCiKWV4cI=", "recompress": true }, diff --git a/pkgs/applications/networking/browsers/chromium/update.mjs b/pkgs/applications/networking/browsers/chromium/update.mjs index 7bbb7794c3565..73bad4378dca6 100755 --- a/pkgs/applications/networking/browsers/chromium/update.mjs +++ b/pkgs/applications/networking/browsers/chromium/update.mjs @@ -50,6 +50,8 @@ for (const attr_path of Object.keys(lockfile)) { // unconditionally remove ungoogled-chromium's epoch/sub-version (e.g. 130.0.6723.116-1 -> 130.0.6723.116) const version_chromium = version_upstream.split('-')[0] + const chromium_rev = await chromium_resolve_tag_to_rev(version_chromium) + lockfile[attr_path] = { version: version_chromium, chromedriver: !ungoogled ? await fetch_chromedriver_binaries(version_chromium) : undefined, @@ -62,20 +64,20 @@ for (const attr_path of Object.keys(lockfile)) { DEPS: {}, } - const depot_tools = await fetch_depot_tools(version_chromium, lockfile_initial[attr_path].deps.depot_tools) + const depot_tools = await fetch_depot_tools(chromium_rev, lockfile_initial[attr_path].deps.depot_tools) lockfile[attr_path].deps.depot_tools = { rev: depot_tools.rev, hash: depot_tools.hash, } - const gn = await fetch_gn(version_chromium, lockfile_initial[attr_path].deps.gn) + const gn = await fetch_gn(chromium_rev, lockfile_initial[attr_path].deps.gn) lockfile[attr_path].deps.gn = { rev: gn.rev, hash: gn.hash, } // DEPS update loop - lockfile[attr_path].DEPS = await resolve_DEPS(depot_tools.out, version_chromium) + lockfile[attr_path].DEPS = await resolve_DEPS(depot_tools.out, chromium_rev) for (const [path, value] of Object.entries(lockfile[attr_path].DEPS)) { delete value.fetcher delete value.postFetch @@ -147,6 +149,14 @@ async function fetch_chromedriver_binaries(chromium_version) { } +async function chromium_resolve_tag_to_rev(tag) { + const url = `https://chromium.googlesource.com/chromium/src/+/refs/tags/${tag}?format=json` + const response = await (await fetch(url)).text() + const json = JSON.parse(response.replace(`)]}'\n`, '')) + return json.commit +} + + async function resolve_DEPS(depot_tools_checkout, chromium_rev) { const { stdout } = await $`./depot_tools.py ${depot_tools_checkout} ${chromium_rev}` const deps = JSON.parse(stdout)