electron/patches/chromium/resource_file_conflict.patch
electron-roller[bot] 894e056e6b
chore: bump chromium to 115.0.5760.0 (main) (#38033)
* chore: bump chromium in DEPS to 114.0.5721.0

* chore: update patches

* chore: bump chromium in DEPS to 114.0.5723.0

* chore: update patches

* chore: bump chromium in DEPS to 114.0.5725.0

* chore: update patches

* chore: bump chromium in DEPS to 114.0.5727.0

* chore: bump chromium in DEPS to 114.0.5729.0

* chore: bump chromium in DEPS to 114.0.5731.0

* chore: update patches

* 4450570: Clean up content shell
https://chromium-review.googlesource.com/c/chromium/src/+/4450570

* 4262527: geolocation: Introduce mojom::GeopositionResult
https://chromium-review.googlesource.com/c/chromium/src/+/4262527

* 4450327: Android/Nav: Stop taking content timeout timer from old host.
https://chromium-review.googlesource.com/c/chromium/src/+/4450327

Also, see:
4451366: Reland "Prerender: Fix prerender new content timeout start timing"
https://chromium-review.googlesource.com/c/chromium/src/+/4451366

* chore: bump chromium in DEPS to 114.0.5733.2

* chore: update patches

* chore: bump CircleCI xcode version
this will hopefully get us the necessary macOS sdk 13.3 on CI.

* chore: bump chromium in DEPS to 114.0.5735.0

* chore: update patches

* test: fix geolocation test

* chore: bump chromium in DEPS to 115.0.5736.0

* chore: update patches

* chore: bump chromium in DEPS to 115.0.5738.0

* chore: update patches

* fix: remove profiles from spellcheck service

* chore: update libc++ filenames

* chore: bump chromium in DEPS to 115.0.5740.0

* chore: update patches

* chore: bump chromium in DEPS to 115.0.5742.0

* chore: update patches

* chore: bump chromium in DEPS to 115.0.5744.0

* chore: update patches

* chore: bump chromium in DEPS to 115.0.5746.0

* chore: update patches

* chore: update filenames.libcxx.gni

* chore: bump chromium in DEPS to 115.0.5748.0

* chore: update patches

* build: update libcxx filenames

* chore: bump chromium in DEPS to 115.0.5750.0

* chore: bump chromium in DEPS to 115.0.5752.2

* chore: bump chromium in DEPS to 115.0.5754.0

* chore: bump chromium in DEPS to 115.0.5756.0

* chore: bump chromium in DEPS to 115.0.5758.0

* chore: update patches

* chore: update patch after rebase

* 4500969: Delete content/dev_ui_content_resources.grd file.

https://chromium-review.googlesource.com/c/chromium/src/+/4500969

* Use base.Value.Dict in OmahaAttributesHandler related code

https://chromium-review.googlesource.com/c/chromium/src/+/4506402

* chore: bump chromium in DEPS to 115.0.5760.0

* chore: update patches

* chore: fixup line endings

* 4336172: Include client-drawn window decorations in aspect ratio. |
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/4336172

(cherry picked from commit 27c2f6c43e8e4a792b33fdf8cf3af880376406be)

* spec: fix race condition in alwaysOnTop test

(cherry picked from commit 2ec5213fa0998d9cf21248257e7b5a5581044ea3)

* build: use xcode 14.2 not 14.3

(cherry picked from commit b7c62351a77102e854a801c363f391b177ebf672)

* build: use macOS 12 to run tests

The new macOS 13 VMs appear to have different screen / display behavior

(cherry picked from commit 14dc1dbc24cec85111a7482b49049f6acbfbc5f1)

* Remove always-true flag --harmony-sharedarraybuffer

https://chromium-review.googlesource.com/c/v8/v8/+/4429630

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: clavin <clavin@electronjs.org>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
Co-authored-by: VerteDinde <keeleymhammond@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
2023-05-10 10:47:48 -04:00

79 lines
2.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jeremy Apthorp <nornagon@nornagon.net>
Date: Thu, 20 Sep 2018 17:48:59 -0700
Subject: resource_file_conflict.patch
Resolve conflict between //chrome's .pak files and //electron's. The paths
that chrome code hardcodes require that we generate resources at these
paths, but GN throws errors if there are multiple targets that generate the
same files.
This is due to the hardcoded names here:
https://chromium.googlesource.com/chromium/src/+/69.0.3497.106/ui/base/resource/resource_bundle.cc#780
and here:
https://chromium.googlesource.com/chromium/src/+/69.0.3497.106/ui/base/resource/resource_bundle_mac.mm#50
This isn't needed on Mac because resource files are copied into the app bundle,
and are built in `$root_out_dir/electron_repack` (while Chromium's resources
target `$root_out_dir/repack`), but on Windows and Linux, the resource files go
directly in `$root_out_dir`, and so they conflict.
We don't actually ever generate Chromium's resource paks, but without this
patch, GN refuses to generate the ninja files:
ERROR at //tools/grit/repack.gni:35:3: Duplicate output file.
action(_repack_target_name) {
^----------------------------
Two or more targets generate the same output:
chrome_100_percent.pak
This is can often be fixed by changing one of the target names, or by
setting an output_name on one of them.
Collisions:
//chrome:packed_resources_100_percent
//electron:packed_resources_100_percent
See //tools/grit/repack.gni:35:3: Collision.
action(_repack_target_name) {
^----------------------------
Some alternatives to this patch:
1. Refactor upstream in such a way that the "chrome" pak names were
configurable, for instance by adding a method to ResourceBundle::Delegate that
LoadChromeResources would check.
2. Pass a Delegate that overrides `GetPathForResourcePack`, check for the
`chrome_{100,200}_percent.pak` filenames, and rewrite them to
`electron_{100,200}_percent.pak`.
3. Initialize the resource bundle with DO_NOT_LOAD_COMMON_RESOURCES and load
the paks ourselves.
None of these options seems like a substantial maintainability win over this patch to me (@nornagon).
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index a1e405e63884f9f3af9b4c0803271ccf51158661..cde7a97b2fee1c7be9d8ff9c081b6739545ab22b 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -1587,7 +1587,7 @@ if (is_chrome_branded && !is_android) {
}
}
-if (!is_android) {
+if (!is_android && !is_electron_build) {
chrome_paks("packed_resources") {
if (is_mac) {
output_dir = "$root_gen_dir/repack"
@@ -1616,6 +1616,12 @@ if (!is_android) {
}
}
+if (is_electron_build) {
+ group("packed_resources") {
+ public_deps = [ "//electron:packed_resources" ]
+ }
+}
+
if (!is_android) {
repack("browser_tests_pak") {
testonly = true