chore: add explanation to resource_file_conflict.patch (#15612)
* chore: add explanation to resource_file_conflict.patch * Update resource_file_conflict.patch
This commit is contained in:
parent
bf3edf8f87
commit
20a540e680
1 changed files with 44 additions and 0 deletions
|
@ -8,6 +8,50 @@ 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 a47af42a5a5afc1560f11ee0ccfa5fc177745caa..db8311121e755eb955ff05dee61a9706ae747977 100644
|
||||
--- a/chrome/BUILD.gn
|
||||
|
|
Loading…
Reference in a new issue