New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 764286 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 1
Type: Bug

Blocking:
issue 766920



Sign in to add a comment

Support app icons in assets catalog & variants per channel

Project Member Reported by sdefresne@chromium.org, Sep 12 2017

Issue description

It looks like applications built with iOS 11.0 SDK requires the app icons to be in the compiled assets catalog (Assets.car). As the Assets.car is non-editable and since Chrome for iOS use different app icons for each channel, fixing this issue requires doing two things:

1. adding support for compiling app icons in the compiled assets catalog to gn,
2. adding support for building multiple variant of the same app for different channels.

For 1., this involves:
- finding the name of the .appiconset in all the listed .xcassets,
- passing the --app-icon & --output-partial-info-plist flags to actool,
- using the generated partial Info.plist to tweak the app Info.plist,

For 2., this involves:
- adding support for channel to ios_app_bundle and ios_appex_bundle,
- ensuring that if multiple channels are built only one "link" is performed,
- ensuring that .appex from the same channel are used.
 
Labels: -ReleaseBlock-Stable ReleaseBlock-Beta
I just checked that extensions don't have their own app icons and they reuse the application icon from the main app.
We must validate that this is possible with the assets catalog.

Comment 3 by cma...@chromium.org, Sep 12 2017

Cc: cma...@chromium.org
Cc: pschaffner@chromium.org
pschaffner@ Looks like we are missing the 20x20@3x icon, e.g. 60x60.
Cc: rohitrao@chromium.org
Moving to an xcasset worked.  I'll clean up my changes and hand them over to sdefresne@ for proper landing while I'm OOO.
Before we move to xcassets, can we try renaming all of the existing icon files to use the @2x~ipad naming scheme, to see if that's enough by itself?
rohitrao@ how will that solve the 1024 image problem?

Please see:
https://chromium-review.googlesource.com/c/chromium/src/+/665588
And an internal paste with steps for doing submissions with out own distribution cert:
  https://paste.googleplex.com/5922053119016960

Components: UI>Assets>Images
Hey Sylvain, any update?
Project Member

Comment 12 by bugdroid1@chromium.org, Sep 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/39ee46494805e717c7aca8f35f4d7acadaf43ce0

commit 39ee46494805e717c7aca8f35f4d7acadaf43ce0
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Mon Sep 18 17:27:05 2017

Add additional template for the different types of asset catalogs.

Add additional templates to compiled .appiconset and .launchimage
asset catalog types and rename the file defining the templates to
build/config/ios/asset_catalog.gni.

Leave a forwarding .gni named build/config/ios/imageset.gni as the
downstream code still reference this path. The file will be removed
in a followup CL once the downstream code has been fixed to use the
new path.

TBR=yuweih@chromium.org (for remoting/ios/app/resources/BUILD.gn)

Bug:  764286 
Change-Id: Ia229d1bcbbcbeb828103ff283197120da2a21b85
Reviewed-on: https://chromium-review.googlesource.com/671264
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Eric Noyau <noyau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502603}
[add] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/build/config/ios/asset_catalog.gni
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/build/config/ios/imageset.gni
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/app/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/autofill/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/activity_services/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/authentication/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/bookmarks/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/content_suggestions/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/contextual_search/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/downloads/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/find_bar/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/first_run/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/infobars/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/ntp/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/omnibox/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/overscroll_actions/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/popup_menu/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/qr_scanner/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/reading_list/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/safe_mode/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/settings/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/side_swipe/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/stack_view/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/tab_switcher/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/tabs/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/toolbar/keyboard_assist/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/ui/toolbar/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/browser/upgrade/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/ios/chrome/search_widget_extension/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/remoting/ios/app/resources/BUILD.gn
[modify] https://crrev.com/39ee46494805e717c7aca8f35f4d7acadaf43ce0/third_party/material_design_icons/BUILD.gn

Project Member

Comment 13 by bugdroid1@chromium.org, Sep 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/54d19130114243bc339f5fb256dcff7ea99a5b7a

commit 54d19130114243bc339f5fb256dcff7ea99a5b7a
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Mon Sep 18 17:35:05 2017

Add support for partial Info.plist to codesign.py script.

The asset catalog compiler may generate a partial Info.plist file
to merge with the bundle Info.plist; add support for creating the
bundle Info.plist to codesign.py script.

Bug:  764286 
Change-Id: Ie2664f7b81907deca9c65dfb37834da8dcb15e69
Reviewed-on: https://chromium-review.googlesource.com/671224
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Eric Noyau <noyau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502605}
[modify] https://crrev.com/54d19130114243bc339f5fb256dcff7ea99a5b7a/build/config/ios/codesign.py

Cc: yuweih@chromium.org
Project Member

Comment 15 by bugdroid1@chromium.org, Sep 19 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/57a613e4f86c7510668409acf9cd542ba5451a67

commit 57a613e4f86c7510668409acf9cd542ba5451a67
Author: Sylvain Defresne <sdefresne@google.com>
Date: Tue Sep 19 09:03:10 2017

Project Member

Comment 16 by bugdroid1@chromium.org, Sep 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b

commit eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Tue Sep 19 09:09:56 2017

Add support for partial_info_plist to create_bundle.

The asset catalog compiler (actool) can generate a partial Info.plist
file that needs to be merged with the application Info.plist at build
time (this is needed to support application icon in Assets.car).

Add a partial_info_plist property to create_bundle that can be passed
to compile_xcassets tool and ensure that the file will be created even
if no asset catalogs are compiled.

Bug:  764286 
Change-Id: I6810f7d3aad647cff5f2ba99c49ba2fdd3c972d7
Reviewed-on: https://chromium-review.googlesource.com/668936
Reviewed-by: Eric Noyau <noyau@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502807}
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/bundle_data.cc
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/bundle_data.h
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/create_bundle_target_generator.cc
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/create_bundle_target_generator.h
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/desc_builder.cc
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/docs/reference.md
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/function_toolchain.cc
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/functions_target.cc
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/ninja_create_bundle_target_writer.cc
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/ninja_create_bundle_target_writer_unittest.cc
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/substitution_type.cc
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/substitution_type.h
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/variables.cc
[modify] https://crrev.com/eab0e88e37b2cf7bb08bf7e1caa7bbcce1fa379b/tools/gn/variables.h

Project Member

Comment 17 by bugdroid1@chromium.org, Sep 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b1684ed101d2ed6c4833dbfa538ec0001ab29bd3

commit b1684ed101d2ed6c4833dbfa538ec0001ab29bd3
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Tue Sep 19 12:59:31 2017

Remove obsolete build/config/ios/imageset.gni.

The file build/config/ios/imageset.gni was introduced to avoid
breaking the downstream build after the file rename. Remove it
as the downstream code has been fixed to use the new path.

Bug:  764286 
Change-Id: I0dbaccca19f87017ed1a34ee7eeb37d94e1aaad9
Reviewed-on: https://chromium-review.googlesource.com/671384
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Eric Noyau <noyau@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502837}
[delete] https://crrev.com/b4f0224c393a7df73e3e035095075396f03252c8/build/config/ios/imageset.gni

Project Member

Comment 18 by bugdroid1@chromium.org, Sep 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d534feab40dd363424f5437ec4ba3579e172d55

commit 2d534feab40dd363424f5437ec4ba3579e172d55
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 20 11:28:54 2017

Add support for --partial-info-plist to compile_xcassets.py.

The asset catalog compiler (actool) can generate a partial Info.plist
file that needs to be merged with the application Info.plist at build
time (this is needed to support application icon in Assets.car).

Add a --partial-info-plist flag to compile_xcassets.py that can be
used to control the path of the generated partial Info.plist. Also
inspect the list of asset catalogs to be compiled and pass correct
flags to enable their proper treatment by actool (.appiconset and
.launchimage are the only two supported currently).

If --partial-info-plist is not passed or empty, and the compiler
need this flag (i.e. if any special asset catalog is compiled), then
the script create a temporary file and pass it to the compiler.

Bug:  764286 
Change-Id: I3f51e5b6ac65919275a3fafb3408d02686105e21
Reviewed-on: https://chromium-review.googlesource.com/668976
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503110}
[modify] https://crrev.com/2d534feab40dd363424f5437ec4ba3579e172d55/build/toolchain/mac/compile_xcassets.py

Project Member

Comment 19 by bugdroid1@chromium.org, Sep 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d73f3454a10aa2d20f50f1b145148380649e7849

commit d73f3454a10aa2d20f50f1b145148380649e7849
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 20 14:06:09 2017

Add support for partial Info.plist from actool.

Change ios_app_bundle template to merge the generated Info.plist
with the partial .plist created by the asset catalog compiler to
support compiling application icon to Assets.car as is required
for application built with iOS 11.0 SDK.

Quote args of compile_xcasset.py in build/toolchain/mac/BUILD.gn
as some of them may be empty or contain shell special characters
(mostly spaces).

Bug:  764286 
Change-Id: I453f3cbb34c82483bace9900c49e0f3b351b2635
Reviewed-on: https://chromium-review.googlesource.com/671050
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503129}
[modify] https://crrev.com/d73f3454a10aa2d20f50f1b145148380649e7849/build/config/ios/rules.gni
[modify] https://crrev.com/d73f3454a10aa2d20f50f1b145148380649e7849/build/config/mac/plist_util.py
[modify] https://crrev.com/d73f3454a10aa2d20f50f1b145148380649e7849/build/toolchain/mac/BUILD.gn

Blockedon: 766920
Project Member

Comment 21 by bugdroid1@chromium.org, Sep 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/338348fc127f437bdd1089dbc6641f6cff66df09

commit 338348fc127f437bdd1089dbc6641f6cff66df09
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Thu Sep 21 08:38:47 2017

Add bundle_contents_dir property to create_bundle.

Chrome on iOS needs to generate bundle with the same name (variants
of the same application bundle with different resources). They need
to be generated in a sub-directory of $root_out_dir breaking the
assumption that the name of the bundle is the first component of
$bundle_root_dir relative to $root_out_dir.

Introduce a separate property $bundle_contents_dir to create_bundle
target that will correspond to the directory containing the bundle
content ($bundle_root_dir on iOS, $bundle_root_dir/Content on macOS).

Leave the old heuristic if $bundle_contents_dir is undefined to
be able to roll this change without breaking Chrome compilation for
macOS. It will be removed in a followup CL once the templates used
by Chrome have been fixed.

Bug:  764286 
Change-Id: I2a6047bb18ee77e6f51ee7a40acf2ed7f0ee016e
Reviewed-on: https://chromium-review.googlesource.com/675369
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503391}
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/bundle_data.cc
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/bundle_data.h
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/bundle_file_rule.cc
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/create_bundle_target_generator.cc
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/docs/reference.md
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/functions_target.cc
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/misc/emacs/gn-mode.el
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/ninja_create_bundle_target_writer_unittest.cc
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/substitution_type.cc
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/substitution_type.h
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/variables.cc
[modify] https://crrev.com/338348fc127f437bdd1089dbc6641f6cff66df09/tools/gn/variables.h

So, I'm now at a point where I can get an official build locally with the following CLs patched in:
- upstream
  - https://chromium-review.googlesource.com/c/chromium/src/+/675603
  - https://chromium-review.googlesource.com/c/chromium/src/+/677386
  - https://chromium-review.googlesource.com/c/chromium/src/+/671363
- downstream
  - https://chrome-internal-review.googlesource.com/c/chrome/ios_internal/+/459856

I'm still waiting for approval for the first upstream CL and the downstream CL. If I get approval during the night, I'll land them all tomorrow morning and kick a canary build and then work on cherry-picking my CLs on M62.
Project Member

Comment 24 by bugdroid1@chromium.org, Sep 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f8fe3dc09d5768956728b89ff4fb71dff1e92bb

commit 6f8fe3dc09d5768956728b89ff4fb71dff1e92bb
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Fri Sep 22 07:47:00 2017

Convert iOS/macOS build to use bundle_contents_dir.

A new property bundle_contents_dir was added to create_bundle to
allow distinction between the bundle directory and the directory
where the content should be added.

On iOS, this property should be equal to $bundle_root_dir, while
on macOS it should be equal to $bundle_root_dir/Contents. This
will allow creating bundles in a sub-directory of $root_out_dir.

Bug:  764286 
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester
Change-Id: I7742d7b69b3a306ddd405e5dc7e6feab98e26454
Reviewed-on: https://chromium-review.googlesource.com/675603
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503679}
[modify] https://crrev.com/6f8fe3dc09d5768956728b89ff4fb71dff1e92bb/build/config/ios/rules.gni
[modify] https://crrev.com/6f8fe3dc09d5768956728b89ff4fb71dff1e92bb/build/config/mac/rules.gni
[modify] https://crrev.com/6f8fe3dc09d5768956728b89ff4fb71dff1e92bb/chrome/BUILD.gn
[modify] https://crrev.com/6f8fe3dc09d5768956728b89ff4fb71dff1e92bb/components/cronet/ios/BUILD.gn
[modify] https://crrev.com/6f8fe3dc09d5768956728b89ff4fb71dff1e92bb/components/policy/BUILD.gn
[modify] https://crrev.com/6f8fe3dc09d5768956728b89ff4fb71dff1e92bb/content/shell/BUILD.gn
[modify] https://crrev.com/6f8fe3dc09d5768956728b89ff4fb71dff1e92bb/extensions/shell/BUILD.gn
[modify] https://crrev.com/6f8fe3dc09d5768956728b89ff4fb71dff1e92bb/ios/third_party/material_components_ios/BUILD.gn

Project Member

Comment 25 by bugdroid1@chromium.org, Sep 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7aac0a1de0b0c010efde682ad414770eb04eb4b0

commit 7aac0a1de0b0c010efde682ad414770eb04eb4b0
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Fri Sep 22 10:43:52 2017

Add support for building variants of app on iOS.

Chrome on iOS needs to build the same app (exact same binary)
with different application icons (i.e. with different compiled
asset catalogs).

Add a "variants" property to "ios_app_bundle" template that
contains a list of scope, each defining the variant "name" and
the list of additional "bundle_deps".

When the "variants" property is defined, the executable will
be linked once, but n application bundles will be generated in
$root_out_dir/variants/$variant_name and a copy of the first
variant will be created in $root_out_dir.

The hardlink.py script is used to copy the first variant (it
tries to use hardlink if possible, but fallback to copy if it
fails).

Bug:  764286 
Change-Id: I0ea18e757c891ae884ba22c07fe20946715d1d0a
Reviewed-on: https://chromium-review.googlesource.com/677386
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503710}
[add] https://crrev.com/7aac0a1de0b0c010efde682ad414770eb04eb4b0/build/config/ios/hardlink.py
[modify] https://crrev.com/7aac0a1de0b0c010efde682ad414770eb04eb4b0/build/config/ios/rules.gni

Project Member

Comment 26 by bugdroid1@chromium.org, Sep 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a1cfa18b274cdd035a89790af624b88a8f75d723

commit a1cfa18b274cdd035a89790af624b88a8f75d723
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Fri Sep 22 11:51:11 2017

Move app icon for "chrome" to asset catalog.

Application build with iOS 11.0 SDK need to have their app icon
into the compiled asset catalog, so convert the "chrome" target
to this new way of doing.

Bug:  764286 
Change-Id: I5f2fefecd68c0d92bbd5a9e78cddb5f3e2fc9361
Reviewed-on: https://chromium-review.googlesource.com/671363
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503714}
[modify] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/BUILD.gn
[modify] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/Info.plist
[add] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Contents.json
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-120.png
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-152.png
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-167.png
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-180.png
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-29.png
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-40.png
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-58.png
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-76.png
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-80.png
[rename] https://crrev.com/a1cfa18b274cdd035a89790af624b88a8f75d723/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-87.png

Project Member

Comment 28 by bugdroid1@chromium.org, Sep 22 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/c4e17b64d9a4a37b12076fcba7348134df0ce789

commit c4e17b64d9a4a37b12076fcba7348134df0ce789
Author: Sylvain Defresne <sdefresne@google.com>
Date: Fri Sep 22 13:09:55 2017

Blocking: 766920
Blockedon: -766920
Description: Show this description
Your changes work fine in M63 and we need to merge them into 3202 branch.
Labels: Merge-Request-62
Status: Fixed (was: Assigned)
I'll need to cherry-pick the following CLs:

- https://chromium-review.googlesource.com/671264
- https://chromium-review.googlesource.com/671224
- https://chromium-review.googlesource.com/668936 (optional: 1.)
- https://chrome-internal-review.googlesource.com/456752
- https://chromium-review.googlesource.com/671384 (optional: 2.)
- https://chromium-review.googlesource.com/671018 (optional: 3.)
- https://chromium-review.googlesource.com/672704
- https://chrome-internal-review.googlesource.com/457552
- https://chromium-review.googlesource.com/672524 (optional: 4.)
- https://chromium-review.googlesource.com/668976
- https://chromium-review.googlesource.com/671050
- https://chromium-review.googlesource.com/675369 (optional: 1.)
- https://chromium-review.googlesource.com/677194
- https://chromium-review.googlesource.com/675603
- https://chromium-review.googlesource.com/677386
- https://chromium-review.googlesource.com/671363
- https://chromium-review.googlesource.com/677450
- https://chrome-internal-review.googlesource.com/459856

Some of those are optional, here are the reason:

1. those CLs are changes made to tools/gn to make change to the tool, but the tools is prebuilt and rolled, so the changes are not necessary as long as the roll (https://chromium-review.googlesource.com/677194) is included,

2. this CL is a cleanup and not strictly necessary (none of the other CLs depend on it, it just remove unused file)

3. this CL is a roll of buildtools, but another CL in the list roll buildtools to a more recent version, so it is not necessary (though not including it will require the other roll to be made manually instead of being cherry-picked as it will have conflict)

4. just changes OWNERS so not strictly necessary as cherry-picking uses TBR=.

I propose to cherry-pick only the following list of CLs:

- https://chromium-review.googlesource.com/671264
- https://chromium-review.googlesource.com/671224
- https://chrome-internal-review.googlesource.com/456752
- https://chromium-review.googlesource.com/671018 (optional: 3.)
- https://chromium-review.googlesource.com/672704
- https://chrome-internal-review.googlesource.com/457552
- https://chromium-review.googlesource.com/668976
- https://chromium-review.googlesource.com/671050
- https://chromium-review.googlesource.com/677194
- https://chromium-review.googlesource.com/675603
- https://chromium-review.googlesource.com/677386
- https://chromium-review.googlesource.com/671363
- https://chromium-review.googlesource.com/677450
- https://chrome-internal-review.googlesource.com/459856

This should limit the risk of conflicts and bring just what is needed to get the fix in M-62. Estelle can you review them and give approval for merge (I guess the tool will request manual review since we are so late in the process).
Project Member

Comment 34 by sheriffbot@chromium.org, Sep 27 2017

Labels: -Merge-Request-62 Merge-Review-62 Hotlist-Merge-Review
This bug requires manual review: Less than 16 days to go before AppStore submit on M62
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 35 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c45d55ec63771fd45d782c1e38cefdcbfd7aa2e4

commit c45d55ec63771fd45d782c1e38cefdcbfd7aa2e4
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 27 14:05:13 2017

Remove workaround to compute create_bundle output.

A workaround was introduced in GetBundleRootDirOutput in order to
support migration from $bundle_root_dir to $bundle_content_dir.

Remove the workaround now that the GN build files have been fixed
to use the new property.

Bug:  764286 
Change-Id: I7e2c1463360cb8eb678129b7ac8de8530cf7fcd4
Reviewed-on: https://chromium-review.googlesource.com/675643
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504653}
[modify] https://crrev.com/c45d55ec63771fd45d782c1e38cefdcbfd7aa2e4/tools/gn/bundle_data.cc
[modify] https://crrev.com/c45d55ec63771fd45d782c1e38cefdcbfd7aa2e4/tools/gn/runtime_deps_unittest.cc

Labels: -Hotlist-Merge-Review -Merge-Review-62 Merge-Approved-62
Please only cherry pick the CLs that are necessary as you suggested.
Project Member

Comment 39 by bugdroid1@chromium.org, Sep 27 2017

Labels: -merge-approved-62 merge-merged-3202
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/92680a5045d72839328b5578a8ab439258f451c7

commit 92680a5045d72839328b5578a8ab439258f451c7
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 27 15:13:22 2017

Add additional template for the different types of asset catalogs.

Add additional templates to compiled .appiconset and .launchimage
asset catalog types and rename the file defining the templates to
build/config/ios/asset_catalog.gni.

Leave a forwarding .gni named build/config/ios/imageset.gni as the
downstream code still reference this path. The file will be removed
in a followup CL once the downstream code has been fixed to use the
new path.

TBR=yuweih@chromium.org (for remoting/ios/app/resources/BUILD.gn)

(cherry picked from commit 39ee46494805e717c7aca8f35f4d7acadaf43ce0)

Bug:  764286 
Change-Id: Ia229d1bcbbcbeb828103ff283197120da2a21b85
Reviewed-on: https://chromium-review.googlesource.com/671264
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Eric Noyau <noyau@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#502603}
Reviewed-on: https://chromium-review.googlesource.com/687134
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/branch-heads/3202@{#468}
Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098}
[add] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/build/config/ios/asset_catalog.gni
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/build/config/ios/imageset.gni
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/app/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/app/safe_mode/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/autofill/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/activity_services/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/authentication/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/bookmarks/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/content_suggestions/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/contextual_search/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/downloads/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/find_bar/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/first_run/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/infobars/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/ntp/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/omnibox/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/overscroll_actions/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/popup_menu/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/qr_scanner/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/reading_list/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/settings/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/side_swipe/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/stack_view/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/tab_switcher/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/tabs/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/toolbar/keyboard_assist/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/ui/toolbar/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/browser/upgrade/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/ios/chrome/search_widget_extension/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/remoting/ios/app/resources/BUILD.gn
[modify] https://crrev.com/92680a5045d72839328b5578a8ab439258f451c7/third_party/material_design_icons/BUILD.gn

Project Member

Comment 40 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/be894d51ae8ab5b8ef7035ba53d8780115e7c079

commit be894d51ae8ab5b8ef7035ba53d8780115e7c079
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 27 15:30:01 2017

Add support for partial Info.plist to codesign.py script.

The asset catalog compiler may generate a partial Info.plist file
to merge with the bundle Info.plist; add support for creating the
bundle Info.plist to codesign.py script.

(cherry picked from commit 54d19130114243bc339f5fb256dcff7ea99a5b7a)

Bug:  764286 
Change-Id: Ie2664f7b81907deca9c65dfb37834da8dcb15e69
Reviewed-on: https://chromium-review.googlesource.com/671224
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Eric Noyau <noyau@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#502605}
Reviewed-on: https://chromium-review.googlesource.com/686768
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/branch-heads/3202@{#469}
Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098}
[modify] https://crrev.com/be894d51ae8ab5b8ef7035ba53d8780115e7c079/build/config/ios/codesign.py

Project Member

Comment 41 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/993dc88601554b842a7b6f972941d3d2b3b05235

commit 993dc88601554b842a7b6f972941d3d2b3b05235
Author: Sylvain Defresne <sdefresne@google.com>
Date: Wed Sep 27 15:49:30 2017

Project Member

Comment 42 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/tools/buildspec/+/2cdc482a65dca209cd845ba4853c017e0cb8778e

commit 2cdc482a65dca209cd845ba4853c017e0cb8778e
Author: Sylvain Defresne <sdefresne@google.com>
Date: Wed Sep 27 20:00:50 2017

Project Member

Comment 43 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63c4e1e8cdd8d7a3caab86b52de1809518bf19b8

commit 63c4e1e8cdd8d7a3caab86b52de1809518bf19b8
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 27 21:52:05 2017

Add support for --partial-info-plist to compile_xcassets.py.

The asset catalog compiler (actool) can generate a partial Info.plist
file that needs to be merged with the application Info.plist at build
time (this is needed to support application icon in Assets.car).

Add a --partial-info-plist flag to compile_xcassets.py that can be
used to control the path of the generated partial Info.plist. Also
inspect the list of asset catalogs to be compiled and pass correct
flags to enable their proper treatment by actool (.appiconset and
.launchimage are the only two supported currently).

If --partial-info-plist is not passed or empty, and the compiler
need this flag (i.e. if any special asset catalog is compiled), then
the script create a temporary file and pass it to the compiler.

(cherry picked from commit 2d534feab40dd363424f5437ec4ba3579e172d55)

Bug:  764286 
Change-Id: I3f51e5b6ac65919275a3fafb3408d02686105e21
Reviewed-on: https://chromium-review.googlesource.com/668976
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#503110}
Reviewed-on: https://chromium-review.googlesource.com/688277
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/branch-heads/3202@{#481}
Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098}
[modify] https://crrev.com/63c4e1e8cdd8d7a3caab86b52de1809518bf19b8/build/toolchain/mac/compile_xcassets.py

Project Member

Comment 44 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/82f001882f8cea3930023f92494dd348edaf47bc

commit 82f001882f8cea3930023f92494dd348edaf47bc
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 27 21:59:28 2017

Add support for partial Info.plist from actool.

Change ios_app_bundle template to merge the generated Info.plist
with the partial .plist created by the asset catalog compiler to
support compiling application icon to Assets.car as is required
for application built with iOS 11.0 SDK.

Quote args of compile_xcasset.py in build/toolchain/mac/BUILD.gn
as some of them may be empty or contain shell special characters
(mostly spaces).

(cherry picked from commit d73f3454a10aa2d20f50f1b145148380649e7849)

Bug:  764286 
Change-Id: I453f3cbb34c82483bace9900c49e0f3b351b2635
Reviewed-on: https://chromium-review.googlesource.com/671050
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#503129}
Reviewed-on: https://chromium-review.googlesource.com/688278
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/branch-heads/3202@{#482}
Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098}
[modify] https://crrev.com/82f001882f8cea3930023f92494dd348edaf47bc/build/config/ios/rules.gni
[modify] https://crrev.com/82f001882f8cea3930023f92494dd348edaf47bc/build/config/mac/plist_util.py
[modify] https://crrev.com/82f001882f8cea3930023f92494dd348edaf47bc/build/toolchain/mac/BUILD.gn

Project Member

Comment 45 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4266c8e787b2559b6136dbd99dcb79c9b7c9524d

commit 4266c8e787b2559b6136dbd99dcb79c9b7c9524d
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 27 22:07:53 2017

Convert iOS/macOS build to use bundle_contents_dir.

A new property bundle_contents_dir was added to create_bundle to
allow distinction between the bundle directory and the directory
where the content should be added.

On iOS, this property should be equal to $bundle_root_dir, while
on macOS it should be equal to $bundle_root_dir/Contents. This
will allow creating bundles in a sub-directory of $root_out_dir.

(cherry picked from commit 6f8fe3dc09d5768956728b89ff4fb71dff1e92bb)

Bug:  764286 
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester
Change-Id: I7742d7b69b3a306ddd405e5dc7e6feab98e26454
Reviewed-on: https://chromium-review.googlesource.com/675603
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#503679}
Reviewed-on: https://chromium-review.googlesource.com/688279
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/branch-heads/3202@{#483}
Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098}
[modify] https://crrev.com/4266c8e787b2559b6136dbd99dcb79c9b7c9524d/build/config/ios/rules.gni
[modify] https://crrev.com/4266c8e787b2559b6136dbd99dcb79c9b7c9524d/build/config/mac/rules.gni
[modify] https://crrev.com/4266c8e787b2559b6136dbd99dcb79c9b7c9524d/chrome/BUILD.gn
[modify] https://crrev.com/4266c8e787b2559b6136dbd99dcb79c9b7c9524d/components/cronet/ios/BUILD.gn
[modify] https://crrev.com/4266c8e787b2559b6136dbd99dcb79c9b7c9524d/components/policy/BUILD.gn
[modify] https://crrev.com/4266c8e787b2559b6136dbd99dcb79c9b7c9524d/content/shell/BUILD.gn
[modify] https://crrev.com/4266c8e787b2559b6136dbd99dcb79c9b7c9524d/extensions/shell/BUILD.gn
[modify] https://crrev.com/4266c8e787b2559b6136dbd99dcb79c9b7c9524d/ios/third_party/material_components_ios/BUILD.gn

Project Member

Comment 46 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c85d155e937c9f5a229a92a69ea226e481da3cbb

commit c85d155e937c9f5a229a92a69ea226e481da3cbb
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 27 22:16:22 2017

Add support for building variants of app on iOS.

Chrome on iOS needs to build the same app (exact same binary)
with different application icons (i.e. with different compiled
asset catalogs).

Add a "variants" property to "ios_app_bundle" template that
contains a list of scope, each defining the variant "name" and
the list of additional "bundle_deps".

When the "variants" property is defined, the executable will
be linked once, but n application bundles will be generated in
$root_out_dir/variants/$variant_name and a copy of the first
variant will be created in $root_out_dir.

The hardlink.py script is used to copy the first variant (it
tries to use hardlink if possible, but fallback to copy if it
fails).

(cherry picked from commit 7aac0a1de0b0c010efde682ad414770eb04eb4b0)

Bug:  764286 
Change-Id: I0ea18e757c891ae884ba22c07fe20946715d1d0a
Reviewed-on: https://chromium-review.googlesource.com/677386
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#503710}
Reviewed-on: https://chromium-review.googlesource.com/688396
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/branch-heads/3202@{#485}
Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098}
[add] https://crrev.com/c85d155e937c9f5a229a92a69ea226e481da3cbb/build/config/ios/hardlink.py
[modify] https://crrev.com/c85d155e937c9f5a229a92a69ea226e481da3cbb/build/config/ios/rules.gni

Project Member

Comment 47 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1695f9f3a50734a5ff4b2cca920232de2f9d916a

commit 1695f9f3a50734a5ff4b2cca920232de2f9d916a
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 27 22:22:02 2017

Move app icon for "chrome" to asset catalog.

Application build with iOS 11.0 SDK need to have their app icon
into the compiled asset catalog, so convert the "chrome" target
to this new way of doing.

(cherry picked from commit a1cfa18b274cdd035a89790af624b88a8f75d723)

Bug:  764286 
Change-Id: I5f2fefecd68c0d92bbd5a9e78cddb5f3e2fc9361
Reviewed-on: https://chromium-review.googlesource.com/671363
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#503714}
Reviewed-on: https://chromium-review.googlesource.com/688280
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/branch-heads/3202@{#486}
Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098}
[modify] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/BUILD.gn
[modify] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/Info.plist
[add] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Contents.json
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-120.png
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-152.png
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-167.png
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-180.png
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-29.png
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-40.png
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-58.png
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-76.png
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-80.png
[rename] https://crrev.com/1695f9f3a50734a5ff4b2cca920232de2f9d916a/ios/chrome/app/resources/chromium/AppIcon.appiconset/Icon-87.png

Project Member

Comment 48 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8cbd18713ff9e4fd175b0f73035441de3fe1adb3

commit 8cbd18713ff9e4fd175b0f73035441de3fe1adb3
Author: Sylvain Defresne <sdefresne@chromium.org>
Date: Wed Sep 27 22:25:50 2017

Add a gn variable to configure Chrome variants.

Add ios_chrome_app_variants variable to allow to control which
variants of chrome are built when google branded.

(cherry picked from commit fda1785a9e978f9d37bfe78d2a8ab1e199d6f39c)

Bug:  764286 
Change-Id: I6046c5eab85435f6890ac79f504e02a9f4c4b5d4
Reviewed-on: https://chromium-review.googlesource.com/677450
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#503718}
Reviewed-on: https://chromium-review.googlesource.com/688397
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/branch-heads/3202@{#487}
Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098}
[modify] https://crrev.com/8cbd18713ff9e4fd175b0f73035441de3fe1adb3/ios/chrome/app/BUILD.gn
[modify] https://crrev.com/8cbd18713ff9e4fd175b0f73035441de3fe1adb3/ios/chrome/app/resources/BUILD.gn
[modify] https://crrev.com/8cbd18713ff9e4fd175b0f73035441de3fe1adb3/ios/chrome/test/earl_grey/chrome_ios_eg_test.gni
[modify] https://crrev.com/8cbd18713ff9e4fd175b0f73035441de3fe1adb3/ios/clean/chrome/app/BUILD.gn
[modify] https://crrev.com/8cbd18713ff9e4fd175b0f73035441de3fe1adb3/ios/clean/chrome/test/perf/BUILD.gn
[modify] https://crrev.com/8cbd18713ff9e4fd175b0f73035441de3fe1adb3/ios/public/provider/chrome/browser/build_config.gni

Project Member

Comment 49 by bugdroid1@chromium.org, Sep 27 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/e0ba8dc21175417596b486462881d8d8e32260ef

commit e0ba8dc21175417596b486462881d8d8e32260ef
Author: Sylvain Defresne <sdefresne@google.com>
Date: Wed Sep 27 22:32:22 2017

All CLs have been cherry-picked. Note that I had to cherry-pick https://chromium-review.googlesource.com/c/chromium/src/+/685556 to fix a "gn gen error" introduced by the gn roll (the same error happened on the master branch and was fixed but not linked with this issue and I missed it when I listed CLs to cherry-pick).

Sign in to add a comment